:root{color-scheme:dark;--paper:#f1e6ce;--ink:#253737;--gold:#d5b474;--wine:#713b40}*{box-sizing:border-box}body{margin:0;background:#0b1719;color:var(--paper);font-family:Georgia,serif}button,input{font:inherit}button{cursor:pointer;touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid #edbe60;outline-offset:4px}#museum{height:100svh;overflow:hidden;position:relative;display:grid;place-items:center}#room-frame{position:relative;width:min(100vw,177.7svh);aspect-ratio:16/9}#room-art{width:100%;height:100%;display:block;object-fit:fill}#effects,#hotspots,.vignette{position:absolute;inset:0}.vignette{pointer-events:none;box-shadow:inset 0 0 90px #05111177}header{position:absolute;inset:0 0 auto;display:flex;align-items:center;gap:22px;padding:20px 28px;background:linear-gradient(#081315ee,transparent);z-index:4}.brand{flex:1;text-shadow:0 2px 8px #000}.brand>span{font:10px system-ui;letter-spacing:3px;color:#d0b88d}h1{font-weight:400;font-size:27px;margin:4px 0}nav{display:flex;gap:9px}.paper,.action{border:1px solid #d5bf9588;background:var(--paper);color:var(--ink);padding:12px 21px;box-shadow:2px 4px 0 #0004;clip-path:polygon(1% 3%,98% 0,100% 96%,3% 100%,0 84%);font-weight:bold;min-height:44px}.small{font:600 12px system-ui;letter-spacing:1px;padding:12px 15px}.paper:hover,.action:hover{background:#fff3d9;transform:translateY(-1px)}.action.primary{background:var(--wine);color:var(--paper)}footer{position:absolute;bottom:0;left:0;right:0;min-height:108px;display:flex;align-items:center;gap:20px;padding:14px 28px;background:linear-gradient(transparent,#091719 30%);z-index:3}.bag-label{width:220px}.bag-label>span{font:11px system-ui;letter-spacing:2px;color:var(--gold)}small#instruction{display:block;font:13px/1.45 system-ui;margin-top:9px;color:#e0d8c8}#inventory{display:flex;gap:12px;flex:1;overflow-x:auto;padding:6px}.item{flex:0 0 78px;background:#e9dbc6;border:1px solid #a98d63;color:#273b3c;transform:rotate(-2deg);padding:5px 5px 4px;min-height:76px;box-shadow:3px 4px 3px #0005}.item:nth-child(even){transform:rotate(2deg)}.item img{height:48px;width:60px;object-fit:contain}.item span{display:block;font:10px system-ui}.item.selected{outline:3px solid #edbf68;transform:translateY(-6px)}.empty{font:italic 14px Georgia;color:#bcb6a8}#reveal{font-size:26px;padding:5px 13px}.hotspot{position:absolute;background:transparent;border:1px solid transparent;border-radius:12px;min-width:44px;min-height:44px;color:white}.hotspot:after{content:attr(aria-label);position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background:#efe5cc;color:#263535;border:1px solid #ac9161;padding:8px 12px;font:12px system-ui;white-space:nowrap;opacity:0;pointer-events:none;box-shadow:0 3px 10px #0008}.hotspot:hover,.hotspot:focus-visible{background:#ffdc8420;border-color:#e8c88288}.hotspot:hover:after,.hotspot:focus-visible:after,.show-targets .hotspot:after{opacity:1}.show-targets .hotspot{border-color:#e8c88288}.prop{position:absolute;object-fit:contain;pointer-events:none;filter:drop-shadow(2px 3px 3px #0008)}#toast{position:absolute;bottom:124px;left:50%;transform:translateX(-50%);background:#f2e6cfee;color:#263737;padding:13px 25px;max-width:680px;width:max-content;font:16px/1.4 Georgia;z-index:5;opacity:0;transition:opacity .2s;pointer-events:none}#toast.visible{opacity:1}dialog{border:0;color:var(--ink);background:var(--paper);padding:32px 38px;width:min(600px,90vw);max-height:86svh;overflow:auto;box-shadow:0 20px 100px #0009;background-image:repeating-linear-gradient(15deg,#fff1 0 1px,transparent 1px 5px)}dialog::backdrop{background:#061519a8;backdrop-filter:blur(4px)}dialog h2{font-size:32px;font-weight:400;margin:6px 35px 18px 0}dialog p{font:17px/1.6 Georgia;white-space:pre-line}dialog .eyebrow{font:11px system-ui;letter-spacing:2px;color:#7e6547}.close{position:absolute;right:13px;top:10px;background:none;border:0;color:#37403a;font:26px system-ui;width:44px;height:44px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:24px}.found-items{display:flex;justify-content:center;gap:20px}.found-items img{width:100px;height:110px;object-fit:contain}.map-dialog{width:min(970px,94vw)}.map-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;position:relative;margin:24px 0}.map-card{padding:10px 10px 18px;background:#faf2df;border:1px solid #b09a74;transform:rotate(-2deg);color:var(--ink);box-shadow:3px 5px 0 #79634425}.map-card:nth-child(2){transform:rotate(2deg)}.map-card img{width:100%;aspect-ratio:1.6;object-fit:cover;filter:sepia(.2)}.map-card strong{display:block;font:22px Georgia;margin:12px 0}.map-card small{font:11px system-ui;display:block;letter-spacing:1px;margin-top:8px}.map-card.current{outline:3px solid #733b40}.map-card .dots{color:#8f6832;letter-spacing:5px}.note{border-top:1px dashed #af9777;padding:12px 0}.note h3{font-weight:400;font-size:22px}.note p{font-size:16px}.code-row{display:flex;justify-content:center;gap:10px;margin:24px 0}.code-row input{width:170px;text-align:center;letter-spacing:12px;font:38px Georgia;padding:12px;color:#e9d8b4;background:#263c3b;border:4px double #bda271}.feedback{color:#843d39;min-height:24px;font:14px system-ui!important}.symbol-row{display:flex;gap:10px;justify-content:center}.symbol{min-width:62px;min-height:62px;background:#d5bd84;border:3px double #766340;color:#263737;font-size:27px}.slots{text-align:center;min-height:48px;font-size:26px;letter-spacing:12px;margin:20px}.intro h2{font-size:48px}.intro .seal{font-size:48px;color:#80593a}.clock-face{width:160px;height:160px;border-radius:50%;background:#e7d4a6;border:8px double #967a44;margin:15px auto;position:relative}.clock-face:before{content:'12';position:absolute;top:3px;left:60px}.clock-face:after{content:'6';position:absolute;bottom:3px;left:66px}.hand{position:absolute;bottom:50%;left:50%;width:3px;height:55px;background:#243532;transform-origin:bottom}.hand.hour{height:38px;transform:rotate(252.5deg)}.hand.minute{transform:rotate(150deg)}.beam{position:absolute;inset:0;width:100%;height:100%;filter:drop-shadow(0 0 8px #e0ecbe);opacity:.6}.bloom{animation:bloom 1.8s ease-out}.celebrate{filter:brightness(1.18) saturate(1.1)}@keyframes bloom{from{transform:scale(.15);opacity:0}to{transform:scale(1);opacity:1}}#portrait-warning{display:none}a{color:#65482c}.credits{font:12px/1.5 system-ui!important}@media(max-height:550px){header{padding:9px 16px;gap:15px}h1{font-size:20px}.brand>span{font-size:8px}.small{padding:9px 11px}footer{min-height:78px;padding:6px 18px;gap:12px}.bag-label{width:170px}small#instruction{font-size:11px;margin-top:5px}.item{min-height:59px;flex-basis:64px}.item img{height:33px;width:48px}.item span{font-size:9px}#toast{bottom:83px;font-size:14px;max-width:75vw;padding:8px 15px}dialog{padding:19px 28px;max-height:90svh}dialog h2{font-size:26px;margin-bottom:10px}dialog p{font-size:15px;margin:10px 0}.actions{margin-top:15px}.intro h2{font-size:34px}.intro .seal{display:none}.map-grid{margin:12px 0;gap:18px}.map-card strong{font-size:18px;margin:8px 0}.map-card img{max-height:110px}.found-items img{height:75px}.clock-face{width:130px;height:130px}.clock-face:before{left:44px}.clock-face:after{left:51px}}
@media(orientation:portrait) and (max-width:700px){#portrait-warning{display:block;position:fixed;inset:0;background:#102a2df5;z-index:20;text-align:center;padding:40svh 28px 0;font-size:24px}#portrait-warning p{font:16px/1.5 system-ui}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
.map-grid:before{content:'';position:absolute;left:8%;right:8%;top:48%;border-top:3px dashed #97794e;pointer-events:none}.map-card{position:relative}.map-card:after{content:'↔';position:absolute;right:-26px;top:47%;font-size:22px;color:#806744;z-index:3}.map-card:last-child:after{display:none}@media(max-height:550px){.map-dialog .map-card img{max-height:85px}.map-dialog .map-card{padding-bottom:10px}.map-dialog .map-card small{font-size:9px}.map-dialog .map-grid{gap:18px;margin:10px 0}.map-dialog .actions{margin-top:8px}.map-dialog .credits{margin:7px 0}.map-dialog .map-card strong{font-size:17px}}
/* Visible affordances and direct manipulation */
#museum.busy #hotspots,#museum.busy footer,#museum.busy header{pointer-events:none}.hotspot{cursor:zoom-in}.hotspot:before{content:'✧';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font:19px Georgia;color:#ffe7b0;text-shadow:0 0 7px #161b16,0 1px 3px #000;background:#18252199;border:1px solid #d2b98580;border-radius:50%;width:25px;height:25px;display:grid;place-items:center;transition:opacity .2s}.hotspot:hover:before,.hotspot:focus-visible:before{opacity:0}.hotspot:after{white-space:normal;min-width:100px;max-width:170px}.item-in-hand .hotspot{cursor:copy;border:1px dashed #ead7a555;background:#e3cd8a06}.item-in-hand .hotspot:before{content:'+'}.hotspot.drop-hover{border:2px solid #ffe1a0;background:#fff0b633;box-shadow:0 0 22px #f5d08266}.drop-hover:after{opacity:1}.item{touch-action:none;user-select:none;cursor:grab}.item img{-webkit-user-drag:none;pointer-events:none}.drag-ghost,.install-ghost{position:fixed;width:90px;height:90px;object-fit:contain;pointer-events:none;z-index:100;filter:drop-shadow(0 9px 9px #0007);transform:translate(-50%,-50%)}.drag-ghost{width:100px;height:100px}.live-feedback{padding:12px 16px;background:#e2d0ae;border-left:3px solid #8d653c;font-size:15px!important}.scene-detail{position:relative;overflow:hidden;max-height:270px;max-width:100%;margin:10px auto 20px;box-shadow:0 4px 15px #0005;border:5px solid #d5c19d;isolation:isolate}.detail-room{position:absolute;max-width:none;pointer-events:none}.machine-dialog{width:min(750px,94vw)}.machine-layout{display:grid;grid-template-columns:1fr 1fr;gap:26px}.machine-layout .scene-detail{width:100%;max-height:310px;margin:0}.machine-controls p{margin:8px 0}.detail-record{position:absolute;left:14.7%;top:58%;width:41%;height:8%;object-fit:fill}.turn-crank{position:absolute;left:53%;top:70%;width:25%;height:20%;padding:0;background:none;border:none;transform-origin:18% 30%;min-width:44px;min-height:44px;filter:drop-shadow(0 0 8px #ffd98177)}.turn-crank img{width:100%;height:100%;object-fit:contain;pointer-events:none}.missing-part{position:absolute;font:9px system-ui;border:1px dashed #ead4a1;border-radius:50%;padding:10px;color:#fff1d1;background:#18333199}.platter{left:13%;top:57%}.handle-slot{left:58%;top:74%}.speeds{display:flex;gap:7px}.speed{padding:9px 14px}.speed.chosen{background:#713b40;color:#fff2cf}.charge{display:flex;gap:6px;margin-top:15px}.charge i{width:42px;height:10px;background:#ad9d81;border-radius:3px}.charge i.charged{background:#52755d;box-shadow:0 0 8px #81985977}.attach-part{display:flex;align-items:center;padding:5px 10px;margin:8px 0;font-size:14px}.attach-part img{width:34px;height:34px;object-fit:contain;margin-right:8px}.spinning{animation:record-spin 3s linear infinite}.fitted-crank{transform-origin:20% 30%}.cat-toy{animation:toy 4s ease-in-out infinite}.living-clock{left:19%;top:9%;width:8.3%;height:14.7%;background:#d3c096;border:3px double #614d2d;border-radius:50%}.living-clock .hand{height:39%;width:2px}.living-clock .hour{height:27%}.living-clock .second-hand{position:absolute;bottom:50%;left:50%;height:42%;width:1px;background:#7e3c37;transform-origin:bottom;animation:record-spin 60s linear infinite}.open-drawer{left:13.2%;top:55.6%;width:15.2%;height:4.8%;background:linear-gradient(#140e07 20%,#45301d 26%,#64472d 80%);border:2px solid #84603c;transform:translateY(7px);box-shadow:0 10px 12px #0007}.open-drawer:after{content:'◉';position:absolute;left:47%;top:15%;color:#b89950;font-size:13px}.lamplight #room-art{filter:brightness(1.16)}.book-shelf{display:flex;gap:10px;justify-content:center;border-bottom:14px solid #674c31;padding:22px 8px 0}.book-spine{writing-mode:vertical-rl;text-transform:uppercase;letter-spacing:3px;border:3px double #a68a54;background:#324f48;color:#e9d4a8;width:64px;height:180px;padding:15px 10px;box-shadow:4px 0 5px #0004;transition:transform .25s}.book-1{background:#743f40;height:165px}.book-2{background:#31465a;height:177px}.book-3{background:#76623f;height:160px}.book-4{background:#594657;height:170px}.book-spine:hover{transform:translateY(-8px)}.book-spine.pulled{transform:translateY(-18px) rotate(-4deg);filter:brightness(1.3)}.book-order{font:15px system-ui;margin:18px 0;text-align:center}.mirror-dialog{width:min(720px,94vw)}.mirror-board{height:210px;background:radial-gradient(ellipse at top,#263e4e,#0c2227);position:relative;overflow:hidden;border:5px solid #b19a6d}.mirror-board svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.aim-ray{fill:none;stroke:#f5edb6;stroke-width:3;filter:drop-shadow(0 0 4px #e7dca0);transition:d .2s}.moon-source{position:absolute;left:13%;top:-6%;font-size:45px;color:#fcf4d3}.adjust-mirror{position:absolute;width:55px;height:100px;left:17%;bottom:0;object-fit:contain;transition:transform .2s}.aim-flower{position:absolute;width:62px;height:62px;right:6%;top:12%;object-fit:contain}.mirror-controls{display:flex;gap:14px;align-items:center;justify-content:center}.mirror-controls output{font:18px Georgia;min-width:45px}.action:disabled{opacity:.4;cursor:default}@keyframes record-spin{to{rotate:360deg}}@keyframes toy{0%,70%,100%{rotate:-8deg}80%{rotate:18deg}90%{rotate:-12deg}}@media(max-height:550px){.machine-layout{grid-template-columns:180px 1fr;gap:22px}.machine-layout .scene-detail{height:210px;max-width:180px}.machine-dialog h2{font-size:24px}.machine-controls p{margin:3px 0}.machine-dialog .actions{margin-top:10px}.machine-dialog .charge{margin-top:7px}.scene-detail{max-height:140px}.book-spine{height:100px;font-size:12px;width:54px}.book-shelf{padding-top:12px}.book-order{margin:10px 0}.mirror-board{height:135px}.adjust-mirror{height:70px;width:40px}.aim-flower{width:45px;height:45px}.mirror-controls .action{padding:8px 13px}.hotspot:before{width:20px;height:20px;font-size:15px}}
.detail-record img,.room-record img{position:absolute;left:0;top:50%;width:100%;height:auto;transform:translateY(-50%) scaleY(.24)}.room-record{left:70.5%;top:51%;width:7%;height:2.5%}.detail-record .disc-spin,.room-record .disc-spin{animation:disc-turn 2.4s linear infinite}@keyframes disc-turn{from{transform:translateY(-50%) scaleY(.24) rotate(0deg)}to{transform:translateY(-50%) scaleY(.24) rotate(360deg)}}.machine-controls{min-height:285px}@media(max-height:550px){.machine-controls{min-height:210px}}
dialog .close{position:sticky;float:right;top:-12px;margin:-18px -23px 0 0;right:auto;z-index:8;background:var(--paper);border-radius:50%}.mirror-dialog .feedback{font-size:13px!important}@media(max-height:550px){.mirror-dialog .mirror-board{height:105px}.mirror-dialog p{margin:6px 0}.mirror-dialog .feedback{min-height:16px}.mirror-dialog .actions{margin-top:6px}.mirror-dialog h2{font-size:23px}.mirror-dialog .adjust-mirror{height:53px;width:32px}.mirror-dialog .aim-flower{width:35px;height:35px}}
/* Original textured dial, separate wrought-metal hands; no opaque replacement disc. */
.clock-restoration{position:absolute;inset:0;width:100%;height:100%;clip-path:ellipse(4.7% 9.5% at 23.45% 16.9%);pointer-events:none}.clock-hand-layer{position:absolute;left:18.85%;top:7.6%;width:9.2%;height:18.6%;pointer-events:none}.antique-hands{width:100%;height:100%;overflow:visible;filter:drop-shadow(1px 1px .6px #0007)}.antique-hands g{transform-origin:50px 50px}.hour-iron,.minute-iron{transform:rotate(var(--angle))}.running .seconds-iron{animation:clock-seconds 60s steps(60,end) infinite}.winding .hour-iron{animation:clock-wind-hour 1.8s cubic-bezier(.25,.1,.2,1)}.winding .minute-iron{animation:clock-wind-minute 1.8s cubic-bezier(.25,.1,.2,1)}.antique-clock-detail{position:relative;width:240px;height:300px;overflow:hidden;margin:10px auto 20px}.antique-clock-detail>img{position:absolute;width:1858px;height:1046px;max-width:none;left:-316px;top:-27px}.antique-clock-detail>.antique-hands{position:absolute;left:33.9px;top:52.5px;width:171px;height:194.6px}#hotspots [data-target="clock"]:before{left:91%;top:82%}#hotspots [data-target="clock"]:after{top:90%}@keyframes clock-seconds{to{transform:rotate(360deg)}}@keyframes clock-wind-hour{from{transform:rotate(0deg)}to{transform:rotate(252.5deg)}}@keyframes clock-wind-minute{from{transform:rotate(0deg)}to{transform:rotate(870deg)}}@media(max-height:550px){.antique-clock-detail{zoom:.58;margin:6px auto}}@media(prefers-reduced-motion:reduce){.antique-hands *{animation:none!important}}
/* Investigation journal */
.casebook-dialog{width:min(880px,94vw)}.casebook-summary{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid #b6a181;border-bottom:1px solid #b6a181;padding:16px 0;text-align:center}.casebook-summary strong{display:block;font-size:35px;font-weight:400}.casebook-summary strong small{font-size:20px;color:#89785d}.casebook-summary span{font:9px system-ui;letter-spacing:1.5px}.casebook-meter{height:4px;background:#c5b795;margin-top:7px}.casebook-meter i{display:block;height:100%;background:#486a57;transition:width .5s}.casebook-tabs{display:flex;gap:10px;margin:20px 0}.casebook-tabs .action{font-size:14px;padding:10px 16px}.casebook-tabs .chosen{background:#364f49;color:#f8ead1}#casebook-page{min-height:190px}.casebook-room{margin:14px 0 22px}.casebook-room h3{font-size:21px;font-weight:400;border-bottom:1px dashed #b09b78;padding-bottom:10px}.casebook-task{display:flex;gap:12px;align-items:center;padding:8px 0;font-size:16px}.casebook-task>span:first-child{color:#907953;font-size:20px}.casebook-task.complete{color:#526954}.casebook-task small{margin-left:auto;font:9px system-ui;letter-spacing:1px}.room-jump{background:none;border:0;border-bottom:1px solid #aa9674;color:#6e5034;padding:8px 0;font-size:13px}.collection-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.collection-grid>div{padding:15px 8px;background:#e2d3b5;text-align:center;border:1px solid #bea884}.collection-grid img{width:100%;height:90px;object-fit:contain}.collection-grid strong{display:block;font-size:14px}.collection-grid small{display:block;font:8px system-ui;margin-top:8px}.undiscovered>span{display:grid;place-items:center;height:90px;font-size:42px;color:#aa9672}.casebook-dialog #casebook-page .note:first-child{border-top:none}
/* In-scene optical puzzle */
.moonlight-rays{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.optics-overlay{position:absolute;inset:0;z-index:4;pointer-events:none}.optics-rays{position:absolute;inset:0}.optics-mode header,.optics-mode footer{opacity:0;pointer-events:none}.optics-mode #hotspots{visibility:hidden}.optics-mode #effects>.prop[src$="mirror.png"],.optics-mode #effects>.moonlight-rays{visibility:hidden}.mirror-grip{position:absolute;left:12.8%;top:21%;width:7.5%;height:18%;background:none;border:none;pointer-events:auto;touch-action:none;cursor:grab;padding:0;filter:drop-shadow(0 0 8px #c5d2b566)}.mirror-grip img{width:100%;height:100%;object-fit:contain;transform:rotate(var(--mirror-turn,0deg));transform-origin:50% 42%;pointer-events:none;-webkit-user-drag:none;transition:transform .08s linear}.mirror-grip.turning{cursor:grabbing}.mirror-grip:focus-visible{outline:2px dashed #e2d6ad;outline-offset:10px}.optics-toolbar{position:absolute;bottom:0;left:0;right:0;display:flex;align-items:center;gap:28px;padding:20px 30px;background:linear-gradient(transparent,#0b2021 20%);z-index:6;color:#ecdfc4}.optics-toolbar>div{flex:1}.optics-toolbar small{font:9px system-ui;letter-spacing:2px;color:#c0aa80}.optics-toolbar h2{font-size:24px;font-weight:400;margin:5px 0}.optics-toolbar p{font:13px/1.5 system-ui;margin:6px 0;max-width:440px;min-height:38px}.brass-control{display:flex;align-items:center;gap:10px;padding:10px 16px;border:1px solid #ab8e5955;border-radius:40px;background:#213637}.brass-control input{width:160px;accent-color:#d3b371;cursor:ew-resize;min-height:44px}.brass-control span{font-size:23px;color:#d3b371}.flower-charge{position:absolute;left:45%;top:9%;width:11%;height:22%;opacity:0;border-radius:50%;background:radial-gradient(ellipse,#fff4cf77,transparent 68%);pointer-events:none;transition:opacity .1s}.flower-charge.bloom-complete{animation:moon-bloom 2s ease-out forwards}@keyframes moon-bloom{to{opacity:0;scale:1.8}}
/* Mechanical locks */
.hardware-dialog{width:min(690px,94vw)}.puzzle-caption{font:14px/1.5 system-ui!important;color:#5a584b}.number-hardware{display:flex;align-items:center;justify-content:center;gap:34px;background:linear-gradient(110deg,#3c271b,#654630 45%,#342519);padding:20px 25px;border:7px ridge #745535;box-shadow:inset 0 0 30px #0009,0 8px 15px #0003;position:relative;border-radius:5px}.lock-rivets{position:absolute;top:8px;left:13px;color:#b4965b}.number-wheels{display:flex;gap:6px;background:#241d15;padding:0 9px;border:3px solid #9b804e;border-radius:8px;box-shadow:inset 0 0 8px #000}.number-wheel{display:grid;grid-template-rows:38px 61px 38px;width:58px}.number-wheel>button{border:0;background:linear-gradient(90deg,#775c32,#c7ad75 24%,#e3cc97 52%,#927242);color:#32271a;text-shadow:0 1px #f5deaa;font-size:23px}.number-wheel .digit-face{font-size:43px;border-top:2px solid #53422b;border-bottom:2px solid #58472d;background:linear-gradient(#7b643e,#d6bf8a 26%,#ddc692 65%,#7b643e);font-family:Georgia}.lock-latch{min-width:70px;min-height:100px;background:none;border:none;color:#d0b681;font:10px system-ui;letter-spacing:2px}.lock-latch span{display:block;width:38px;height:70px;border:7px ridge #ba9d64;border-radius:25px;box-shadow:4px 5px 7px #0008;margin:0 auto 13px;transition:translate .2s}.lock-latch:active span{translate:0 8px}.symbol-hardware{display:flex;justify-content:center;gap:13px;padding:30px 20px;background:linear-gradient(110deg,#3b2a1d,#644832,#302318);border:7px ridge #715735;margin:20px 0;box-shadow:inset 0 0 30px #0009}.brass-seal{background:radial-gradient(circle at 35% 25%,#dbc38b,#a68a4f 57%,#604a2a);border:4px ridge #b19456;border-radius:50%;width:104px;height:104px;box-shadow:3px 4px 8px #0008;color:#352a18;padding:12px;transition:filter .15s}.brass-seal:hover{filter:brightness(1.15)}.brass-seal svg{height:60px;width:60px;fill:none;stroke:#3f321d;stroke-width:3;filter:drop-shadow(0 1px #eed5a0)}.brass-seal>span{display:block;font:9px system-ui;text-transform:uppercase;letter-spacing:1px}.hardware-dialog>.cabinet-latch{display:block;margin:auto}
/* Rearrangeable volumes */
.botanical-shelf{background:linear-gradient(#142824aa,#24170d55),url('assets/library.png') 5% 35%/400% auto;padding:20px 20px 0;border:8px ridge #6e5133;box-shadow:inset 0 0 30px #0009}.arrange-books{display:flex;align-items:end;justify-content:center;gap:8px;border-bottom:10px solid #866440;padding-top:14px}.volume{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:space-between;width:70px;height:185px;background:repeating-linear-gradient(0deg,#0000 0 4px,#0001 4px 5px),linear-gradient(90deg,#0008,transparent 15%,#fff1 40%,#0007);background-color:#3c5043;color:#d6bf84;border:3px double #ae9359;box-shadow:inset 0 0 9px #0008,5px 0 6px #0006;padding:13px 5px;touch-action:none;cursor:grab;user-select:none;transition:transform .2s}.volume strong{writing-mode:vertical-rl;letter-spacing:3px;text-transform:uppercase;font:17px Georgia}.book-gold{font-size:10px;letter-spacing:1px}.volume-fruit{background-color:#754247;height:174px}.volume-seed{background-color:#3e4e5e;height:193px}.volume-flower{background-color:#8a734b;height:181px}.volume-root{background-color:#544458;height:188px}.volume.lifted,.volume:hover{transform:translateY(-10px);outline:2px solid #d5b574}.volume.lifting{cursor:grabbing;transition:none;rotate:-4deg}.folded-note{margin:12px 0 16px;border-bottom:1px dashed #aa9169;padding-bottom:10px}.folded-note summary{cursor:pointer;font-size:15px;min-height:34px;display:list-item}.folded-note p{font-size:14px!important;line-height:1.5!important;margin:8px 0}.hotspot:before{opacity:.6;font-size:16px;width:23px;height:23px;background:#18252155;border-color:#d2b98555}.hotspot:hover:before{opacity:0}.show-targets .hotspot:before{opacity:0}#journal{min-width:126px}
@media(max-height:550px){.casebook-summary{padding:8px 0}.casebook-summary strong{font-size:26px}.casebook-tabs{margin:12px 0}.casebook-tabs .action{min-height:40px;padding:8px 13px}.casebook-task{font-size:14px}.collection-grid img,.undiscovered>span{height:65px}.optics-toolbar{padding:12px 18px;gap:15px}.optics-toolbar h2{font-size:19px}.optics-toolbar p{font-size:11px;max-width:320px;min-height:30px;margin:3px 0}.optics-toolbar .action{font-size:13px;padding:10px 14px}.brass-control{gap:5px;padding:0 10px}.brass-control input{width:125px}.number-hardware{padding:10px 20px}.number-wheel{grid-template-rows:32px 47px 32px;width:52px}.number-wheel .digit-face{font-size:34px}.number-wheel>button{min-height:32px}.symbol-hardware{padding:13px 17px;margin:10px 0}.brass-seal{width:87px;height:87px;padding:8px}.brass-seal svg{height:47px;width:47px}.volume{height:120px!important;width:61px;padding:6px 3px}.volume strong{font-size:13px}.botanical-shelf{padding:0 10px}.arrange-books{padding-top:15px}.book-gold{font-size:8px}.folded-note{margin:6px 0}.puzzle-caption{font-size:12px!important}.hardware-dialog .feedback{margin:7px 0;min-height:16px}.hotspot:before{width:18px;height:18px;font-size:13px}}
.furniture-patch{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.drawer-photo{clip-path:inset(55% 70% 35% 12%)}.cabinet-photo{clip-path:inset(9% 18% 65% 62%)}
.case-photo{clip-path:inset(30% 22% 47% 65%)}.keepsake-photo{clip-path:inset(55% 12% 30% 76%)}.number-hardware{background-image:linear-gradient(#32220d44,#291b1155),url('assets/library.png');background-size:100% 100%,1100% auto;background-position:center,74% 47%}.symbol-hardware{background-image:linear-gradient(#21170b55,#21170b66),url('assets/gallery.png');background-size:100% 100%,710% auto;background-position:center,78% 18%}
/* One proportional crop for every inspection window. Height limits shrink both axes. */
.scene-detail,.machine-layout .scene-detail{--detail-height:300px;width:min(100%,calc(var(--detail-height) * var(--detail-ratio)));height:auto;max-height:none;max-width:100%;aspect-ratio:var(--detail-ratio);border:0;outline:4px solid #d5c19d;box-shadow:0 5px 18px #0004;margin:14px auto 22px;flex-shrink:0}
.detail-room{height:auto;display:block;user-select:none}
.machine-layout{align-items:start;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
.machine-layout .scene-detail{--detail-height:310px;margin:4px auto}
.fit-from-pocket{display:inline-flex;align-items:center;gap:10px}
.fit-from-pocket img{width:30px;height:30px;object-fit:contain}
#cancel-item{flex-shrink:0}
[hidden]{display:none!important}
.casebook-tabs .action:focus-visible{outline-offset:1px}
@media(max-height:550px){.scene-detail{--detail-height:170px;margin:10px auto 16px}.machine-layout{grid-template-columns:minmax(130px,180px) minmax(0,1fr)}.machine-layout .scene-detail{--detail-height:210px}.fit-from-pocket img{width:25px;height:25px}#cancel-item{font-size:10px;padding:7px 10px}.bag-label{flex-shrink:0;width:150px}}
@media(max-width:740px) and (orientation:landscape){header{gap:10px;padding:8px 12px}.brand>span{letter-spacing:1px}h1{font-size:17px}nav{gap:5px}.small{font-size:10px;padding:9px 10px}#journal{min-width:112px}footer{gap:9px;padding-left:12px;padding-right:12px}.bag-label{width:115px}.bag-label #instruction{font-size:10px}.optics-toolbar{gap:10px;padding:10px 14px}.optics-toolbar h2{font-size:17px}.optics-toolbar p{font-size:11px}.brass-control input{width:100px}.optics-toolbar .action{max-width:124px}.casebook-tabs{gap:6px}.casebook-tabs .action{padding:8px 10px}}
.inspection-pockets{margin-top:18px;border-top:1px dashed #aa9674;padding-top:5px}.inspection-pockets>div{display:flex;gap:8px;flex-wrap:wrap}.inspection-pockets .action{font-size:14px;padding:7px 13px}.inspection-pockets p{margin:6px 0 10px}

/* A quiet connection to the teacher, after the story is complete. */
.museum-site-link{font:12px/1.5 system-ui!important;margin:12px 0!important}.museum-site-link a{text-underline-offset:4px;display:inline-block;padding:6px 0}.museum-invitation{margin-top:28px;padding-top:22px;border-top:1px dashed #af9777}.museum-invitation h3{font:26px/1.2 Georgia;margin:8px 0 12px}.museum-invitation>p:not(.credits){font:14px/1.6 system-ui}.museum-invitation>div{display:flex;align-items:center;gap:22px;flex-wrap:wrap}.museum-invitation .action{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;font-size:16px}.museum-more{font:14px system-ui;text-underline-offset:5px}.museum-invitation a:focus-visible,.museum-site-link a:focus-visible{outline:3px solid #886d3d;outline-offset:4px}@media(max-height:550px){.museum-invitation{margin-top:20px;padding-top:15px}.museum-invitation h3{font-size:23px}}
