/* Cinematic scene skin. The underlying lock engine is unchanged. */
:root{--cream:#eee5d1;--gold:#c4aa79;--muted:#beb4a1;--line:#ac956745;--bg:#100e0b}body{min-height:820px;height:100svh;overflow-x:hidden;background:#100e0b;color:var(--cream);--stage-height:max(820px,100svh)}.world{position:absolute;inset:0;min-height:820px;height:var(--stage-height);overflow:hidden;pointer-events:none;isolation:isolate}.room{position:absolute;inset:0;background-position:center;background-size:cover;transition:opacity 1.3s,filter 1.3s;transform:scale(1.015)}.room-shed{background-image:url('assets/shed-v2.png')}.room-crypt{background-image:url('assets/crypt-v2.png');opacity:0}[data-scene=crypt] .room-crypt{opacity:1}[data-scene=crypt] .room-shed{opacity:0}[data-level="2"] .room-shed{filter:saturate(.6) hue-rotate(12deg)}[data-level="3"] .room-shed{filter:brightness(.8) saturate(.7)}.vignette{position:absolute;inset:0;background:linear-gradient(0deg,#080907f5 0%,transparent 24%,transparent 75%,#060806b3 100%),linear-gradient(90deg,#060704af,transparent 34%,transparent 65%,#0607049c);box-shadow:inset 0 0 100px #0006}.candlelight{position:absolute;inset:0;background:radial-gradient(ellipse at 94% 36%,#fca54627,transparent 49%);mix-blend-mode:screen;animation:lantern 6s ease-in-out infinite}.moonlight{position:absolute;inset:0;background:linear-gradient(125deg,transparent 12%,#92b6c710 22%,transparent 37%);mix-blend-mode:screen;opacity:.65}.dust{position:absolute;inset:0;overflow:hidden}.dust i{position:absolute;left:20%;top:30%;width:2px;height:2px;padding:0;background:#f0d5a4;border-radius:50%;opacity:0;box-shadow:0 0 5px #ffe3b8;animation:mote 19s linear infinite}.dust i:nth-child(2){left:44%;top:60%;animation-delay:-5s}.dust i:nth-child(3){left:60%;top:40%;animation-delay:-11s}.dust i:nth-child(4){left:80%;top:70%;animation-delay:-3s}.dust i:nth-child(5){left:38%;top:80%;animation-delay:-8s}.dust i:nth-child(6){left:70%;top:25%;animation-delay:-14s}.dust i:nth-child(7){left:30%;top:50%;animation-delay:-17s}.dust i:nth-child(8){left:55%;top:75%;animation-delay:-9s}header{height:85px;position:relative;z-index:4;margin:0 3.5%;border-bottom:1px solid #dbc39120;gap:25px}.brand{font-family:'Cormorant Garamond',Georgia,serif;font-size:15px;font-weight:500;letter-spacing:2px;text-shadow:0 2px 5px #000}.sigil{font-size:34px}.compass{display:flex;align-items:center;gap:18px;position:absolute;left:50%;transform:translateX(-50%);font:10px Georgia;color:#b7b7aa8c;letter-spacing:2px}.compass i{padding:0;color:#d2c6ac73;font-size:11px}.quiet{font-size:10px;letter-spacing:.6px;color:#ded5c1}#locations-toggle{margin-left:auto}.menu-count{font-size:9px;color:#a89a80;margin-left:10px}main{max-width:none;padding:0;margin:0;position:relative;height:calc(var(--stage-height) - 85px)}.scene-intro{text-align:center;position:absolute;top:28px;width:100%;pointer-events:none;text-shadow:0 2px 12px #000}.scene-intro .eyebrow{font-size:8px;letter-spacing:4px;margin-bottom:10px;color:#ddc69b99}.scene-subtitle{font:italic 16px 'Cormorant Garamond',Georgia;color:#c5c0b1b8}.game-layout{display:block}.workbench{position:static;border:0;background:none;box-shadow:none}.bench-heading{position:absolute;top:107px;left:50%;transform:translateX(-50%);width:520px;display:flex;flex-direction:column;gap:15px;text-align:center;padding:0;border:0;text-shadow:0 3px 12px #000}.bench-heading .eyebrow{letter-spacing:2.5px;font-size:8px;color:#e4d3b3b3}.bench-heading h2{font-size:43px;letter-spacing:1px;line-height:1.12}.difficulty{font-family:Georgia,serif;font-size:10px;letter-spacing:3px;border:0;padding:0;color:#b8ac96;display:flex;align-items:center;gap:14px}.difficulty:before,.difficulty:after{content:'◇';font-size:9px;color:#b89e70}.lock-scene,.lock-scene:has(.plate-row:nth-child(7)),.lock-scene:has(.plate-row:nth-child(6)):not(:has(.plate-row:nth-child(7))){position:absolute;left:50%;top:54%;transform:translate(-50%,-40%);height:auto;min-height:0;width:410px;display:flex;align-items:center;justify-content:center;overflow:visible;background:none;isolation:auto;padding:0 0 48px}.lock-scene:after{display:none}.lock-scene>.ambient,.iron-band,.lock-shadow{display:none}.lock-case{width:310px;padding:29px 26px 13px;border-radius:45px 45px 15px 15px;border:2px solid #a28c60;background:repeating-linear-gradient(17deg,transparent 0 14px,#ab8c4f18 15px,transparent 16px 33px),radial-gradient(ellipse at 95% 5%,#b48b4e66,transparent 60%),linear-gradient(125deg,#6d6047,#433e2e 25%,#302e23 56%,#625039 95%);box-shadow:0 0 0 4px #241e16,0 0 0 6px #746044,6px 11px 7px #000b,14px 25px 28px #0009,inset 2px 1px 3px #e6d0a16b,inset -6px -5px 12px #131510;transform:perspective(1000px) rotateX(3deg);transition:filter .4s,box-shadow .4s}.lock-case:after{content:'';position:absolute;top:-26px;left:calc(50% - 24px);width:48px;height:28px;background:linear-gradient(90deg,#242720,#676251 25%,#4a4b3d 80%,#20261f);border:1px solid #847961;border-bottom:0;box-shadow:3px 1px 5px #0008;z-index:-1}.engraving{font-size:7px;letter-spacing:2px;color:#bca77c80;text-shadow:0 1px 1px #000;margin-bottom:15px}.mechanism{padding:9px 9px 7px;border-color:#877657;background:#151811;border-radius:8px;box-shadow:inset 0 4px 9px #000,0 1px #c2a87555}.plate-row{height:29px;margin:6px 0;background:linear-gradient(#9f8d65,#716447 15%,#494731 48%,#5f5940 60%,#8a7957 94%,#343324);border:1px solid #938569;box-shadow:0 3px 3px #000b,inset 0 1px #bbac80;opacity:1}.plate-row:hover{background:linear-gradient(#b4a076,#7e7150,#6a6546);border-color:#e9d4a3}.plate-row.selected{border-color:#efd29c;box-shadow:0 0 0 1px #c8a96155,0 0 12px #d1a45619,inset 0 1px #f1d5a0}.plate-row.selected:before{left:-25px;font-size:13px;top:6px}.plate-number{left:-42px;top:8px;font:9px Georgia;color:#d6c29b;text-shadow:1px 2px #000}.pin{top:5px;background:radial-gradient(circle at 30% 20%,#f0dcb1,#bc9e63 28%,#8f733c 55%,#dbc18b 72%,#564626 90%)}.plate-row.centered .pin{background:radial-gradient(circle at 30% 20%,#fce6ad,#daae61 30%,#967745 63%,#c6a164 75%);border-color:#f0d7a7;box-shadow:0 0 9px #f5bd514d,2px 3px 3px #0009}.plate-row.centered:after{content:'·';position:absolute;left:calc(50% - 2px);bottom:-3px;color:#f6db9d}.center-guide{background:#d1ab5e0a;border-color:#c3ad7440}.lock-bottom{gap:45px;color:#a99a72;margin-top:14px;height:21px}.keyhole{width:14px;height:22px;background:#090d07}.rivet{width:10px;height:10px;background:radial-gradient(circle at 35% 25%,#cbbb90,#6d6142 45%,#2d2d1e 75%)}.r1,.r2{top:30px}.pick-tool{position:absolute;left:calc(100% - 29px);top:calc(75px + var(--selected-row,3)*35px);width:178px;height:21px;transform:rotate(16deg);transform-origin:left center;transition:top .2s,transform .25s;pointer-events:none;filter:drop-shadow(3px 8px 3px #0009);z-index:8}.pick-shaft{position:absolute;left:-15px;top:7px;width:138px;height:4px;background:linear-gradient(#b6b8a8,#41473b 45%,#89907d 65%,#262d24);border-radius:2px;box-shadow:0 -1px #d0c5a180}.pick-shaft:before{content:'';position:absolute;left:0;top:-8px;width:4px;height:10px;background:linear-gradient(90deg,#b2af99,#4e5744);transform:rotate(-20deg)}.pick-handle{position:absolute;left:108px;top:0;width:84px;height:18px;background:repeating-linear-gradient(94deg,transparent 0 4px,#110d08aa 5px 6px),linear-gradient(#665039,#302519 40%,#493724 70%,#1d180f);border:1px solid #82704a;border-radius:3px 10px 10px 3px;box-shadow:inset 0 2px #987a4433}.pick-handle:before{content:'';position:absolute;left:-6px;top:-1px;width:8px;height:18px;background:linear-gradient(#a9a58c,#494c3b 40%,#84806a)}.tool-moving .pick-tool{transform:rotate(12deg) translateX(-4px)}.shake .pick-tool{transform:rotate(21deg)}.tension-tool{position:absolute;left:calc(50% - 3px);bottom:20px;width:7px;height:100px;transform:rotate(37deg);transform-origin:top;background:linear-gradient(90deg,#3d4339,#aaa98d 35%,#5a6350 70%,#252e21);box-shadow:5px 6px 4px #0008;border-radius:1px 1px 4px 4px;pointer-events:none}.tension-tool:after{content:'';position:absolute;bottom:0;right:0;width:70px;height:7px;background:linear-gradient(#a6a38b,#454c3b);border-radius:4px 1px 1px 3px}.scene-caption{position:absolute;top:calc(100% + 43px);bottom:auto;left:-10px;right:-10px;display:flex;flex-direction:column;align-items:center;gap:9px;letter-spacing:2.5px;color:#e0cfacb3;font-size:8px;text-shadow:0 2px 5px #000}.scene-caption .ornament-line{color:#bb9d62;font:12px Georgia}.scene-caption small{font-size:9px;letter-spacing:1px;color:#b5ad9a}.bench-status{position:absolute;left:50%;bottom:105px;transform:translateX(-50%);width:min(650px,80%);background:linear-gradient(90deg,transparent,#090c08a8 20%,#090c08a8 80%,transparent);border:0;padding:13px 35px;min-height:48px;gap:12px;text-shadow:0 2px #000}.bench-status #message{font-size:11px;color:#e1d5bd;text-align:center}.status-dot{width:4px;height:4px;box-shadow:0 0 8px #ceac68}.bench-status.danger{background:linear-gradient(90deg,transparent,#381a10a8 20%,#381a10a8 80%,transparent)}.bench-status #aligned{font-size:11px}.controls{position:absolute;left:50%;bottom:50px;transform:translateX(-50%);padding:0;gap:30px;white-space:nowrap}.control-group button{width:31px;height:29px;background:#10130b80;border:1px solid #b6a47b60;box-shadow:inset 0 0 0 2px #0005;border-radius:2px;color:#ded3bc}.control-group span{font-size:10px;color:#c5baa3;margin-left:8px;text-shadow:0 2px 4px #000}.reset{font-size:20px;color:#d0c3a9;display:flex;align-items:center;gap:5px}.reset span{font-size:10px}.journal{position:absolute;right:5%;top:42%;width:205px;padding:0;text-shadow:0 2px 8px #000}.journal>.eyebrow{font-size:8px;color:#c4af87;letter-spacing:2px}.journal h3{font-size:44px;margin:10px 0 14px;color:#e3d5bb}.story{font:italic 17px/1.6 'Cormorant Garamond',Georgia;color:#d3c9b5;margin:0}.inventory{position:fixed;left:5%;top:50%;width:160px;border:0;margin:0;padding:0;gap:20px}.inventory>div{display:grid;grid-template-columns:1fr;gap:7px;color:#c9c2b0;font-size:9px;letter-spacing:1.5px;text-transform:uppercase}.inventory>div:first-child:before{content:'╱';float:left;position:absolute;left:-27px;font-size:37px;color:#d2b582;transform:rotate(20deg)}.inventory strong{color:#e5d2ac;font:25px 'Cormorant Garamond',Georgia;letter-spacing:3px}.inventory>div:nth-child(2) strong{font-size:15px}.tip{margin:25px 0 20px;padding-top:20px;border-top:1px solid #cab17b35;gap:12px}.tip-number{font-size:22px;color:#cfb786}.tip p{color:#c1b7a2;font-size:10px;line-height:1.8}.hint-button{border-color:#b8a16e66;background:#13160dc2;font-size:9px;letter-spacing:.6px;color:#e1cda7;padding:13px 7px}.hint-note{color:#aa9c80;font-size:8px;line-height:1.6}.locations{position:fixed;left:0;top:0;bottom:0;width:320px;padding:75px 30px 30px;background:linear-gradient(90deg,#13150ff7,#15150ff2);box-shadow:20px 0 70px #0009;border-right:1px solid #b8a16e55;z-index:40;transform:translateX(-110%);transition:transform .3s;overflow-y:auto;visibility:hidden}.drawer-open .locations{transform:translateX(0);visibility:visible}.locations>.eyebrow{font-size:10px;margin-bottom:25px}.locations nav{gap:8px;display:grid}.level{padding:21px 14px;grid-template-columns:30px 1fr;gap:8px;background:none}.level strong{font-size:12px}.level small{color:#aaa18b;font-size:10px}.level .number{font-size:22px}.level.active{background:linear-gradient(90deg,#b695551f,transparent);border-color:#ad92504d}.level.active:before{background:#d5b477}.aside-note{margin-top:35px}.aside-note p{color:#b7ad96;font-size:18px}.text-button{color:#bdb39d}.drawer-backdrop{position:fixed;inset:0;z-index:30;background:#0007;backdrop-filter:blur(4px)}.drawer-backdrop[hidden]{display:none}.locations .close{right:24px;top:24px}.locations #about{display:block}footer{position:absolute;bottom:0;left:3.5%;right:3.5%;margin:0;padding:10px 0;height:34px;border-top:1px solid #a58e5c26;font-size:7px;color:#9c9788;letter-spacing:1.1px;align-items:center}footer .text-button{font-size:8px;padding:0;color:#a29b88}footer i{padding:0 8px}footer>span:last-child{font-size:6px}.victory{position:fixed;inset:0;z-index:20;background:radial-gradient(ellipse at center,#1d2114de,#060906eb);backdrop-filter:blur(7px);padding:40px}.victory .eyebrow{letter-spacing:5px}.victory h2{font-size:65px}.victory p{font-family:'Cormorant Garamond',Georgia;font-size:23px;color:#c9c3af}.primary{background:#20271ac9;border-color:#ad9360;color:#e6d0a8;letter-spacing:1px}.lock-open .lock-case{filter:brightness(1.4)}dialog{z-index:60;background:linear-gradient(135deg,#25261d,#13180f);border-color:#9a8156;box-shadow:0 0 0 4px #13160f,0 0 0 5px #9a815650,0 30px 100px #000}dialog .eyebrow{font-size:9px}.scene-intro,.bench-heading,.journal,.inventory,footer{animation:arrive .9s ease both}@keyframes lantern{0%,100%{opacity:.6}23%{opacity:.9}25%{opacity:.7}60%{opacity:1}64%{opacity:.8}}@keyframes mote{0%{opacity:0;transform:translate(0,30px)}20%,70%{opacity:.4}100%{opacity:0;transform:translate(70px,-160px)}}@keyframes arrive{from{opacity:0}to{opacity:1}}@media(min-width:1600px){.lock-case{width:350px;padding:32px 29px 16px}.plate-row{height:33px;margin:7px 0}.pick-tool{top:calc(79px + var(--selected-row,3)*40px)}.pin{top:7px}.bench-heading h2{font-size:53px}.journal{width:230px;right:7%}.inventory{left:7%}.lock-scene{width:450px}.scene-caption{font-size:9px}.story{font-size:19px}.journal h3{font-size:49px}}@media(max-width:1100px){.compass{display:none}.journal{right:3%;width:170px;display:block;top:45%}.inventory{left:4%;width:120px}.journal h3{font-size:36px}.story{font-size:15px}.lock-scene{width:350px;left:49%}.lock-case{width:285px;padding:27px 23px 12px}.pick-tool{width:135px}.pick-shaft{width:95px}.pick-handle{left:70px;width:65px}.bench-heading{width:450px}.tip{margin-top:18px}.hint-note{display:block}.journal>.eyebrow{line-height:1.7}.scene-intro{top:25px}}@media(max-width:760px){body{--stage-height:1050px;min-height:1050px;height:auto}.world{min-height:1050px}.room{background-size:auto 1050px;background-position:center}.vignette{background:linear-gradient(0deg,#080907 0%,#080907c9 10%,transparent 50%,#08090777 90%)}header{height:68px;margin:0 5%;gap:6px}.brand{font-size:11px;letter-spacing:1.2px;gap:6px}.sigil{font-size:25px}.quiet{font-size:9px;padding:8px 5px}.menu-count{display:none}#sound{font-size:0;width:32px}#sound:before{content:'♪';font-size:18px;color:var(--gold)}#sound[aria-pressed=true]{border-bottom:1px solid var(--gold)}main{height:982px}.scene-intro{top:25px}.scene-intro .eyebrow{font-size:7px}.scene-subtitle{font-size:14px}.bench-heading{top:98px;width:92%;gap:12px}.bench-heading h2{font-size:35px}.bench-heading .eyebrow{font-size:7px;letter-spacing:1.6px}.difficulty{font-size:9px}.lock-scene,.lock-scene:has(.plate-row:nth-child(7)),.lock-scene:has(.plate-row:nth-child(6)):not(:has(.plate-row:nth-child(7))){top:345px;left:50%;transform:translate(-50%,-25%);width:100%;padding-bottom:20px}.lock-case{width:260px;padding:27px 20px 12px;border-radius:36px 36px 15px 15px}.plate-row{height:27px;margin:5px 0}.pin{top:4px}.plate-number{left:-35px}.pick-tool{top:calc(73px + var(--selected-row,3)*32px);left:calc(100% - 22px);width:64px;transform:rotate(25deg)}.pick-shaft{width:40px}.pick-handle{left:22px;width:40px;height:15px;top:1px}.pick-handle:before{height:15px}.tool-moving .pick-tool{transform:rotate(19deg) translateX(-3px)}.tension-tool{height:70px;width:6px}.tension-tool:after{width:45px;height:6px}.scene-caption{top:calc(100% + 30px);gap:7px;font-size:7px;letter-spacing:1.6px}.scene-caption small{font-size:8px}.scene-caption .ornament-line{font-size:10px}.journal{top:auto;bottom:178px;left:6%;right:6%;width:auto;display:block;padding:0}.journal>.eyebrow,.journal h3,.story,.tip,.hint-note{display:none}.inventory{position:static;display:flex;justify-content:space-between;width:100%;gap:25px;margin:0 0 23px;padding:0;border:0}.inventory>div{font-size:8px;gap:8px;text-align:center;flex:1}.inventory>div:first-child:before{display:none}.inventory strong{font-size:24px}.inventory>div:nth-child(2) strong{font-size:14px;line-height:28px}.hint-button{display:block;width:230px;margin:auto;padding:11px 8px;font-size:9px}.bench-status{bottom:110px;width:94%;padding:10px 14px;min-height:48px}.bench-status #message{font-size:10px;line-height:1.6}.controls{bottom:62px;gap:20px;width:90%;justify-content:center}.control-group{gap:3px}.control-group button{width:30px;height:30px}.control-group span{font-size:8px;margin-left:4px}.reset{margin-left:0}.reset span{display:none}footer{height:40px;flex-wrap:wrap;justify-content:center;gap:7px;left:5%;right:5%;font-size:6px;padding:9px 0}footer>span:last-child{display:none}.locations{width:min(320px,90%);padding:75px 25px 25px}.locations>.eyebrow{display:block}.locations nav{display:grid;overflow:visible}.locations .aside-note{display:flex}.locations #about{font-size:10px}.victory h2{font-size:46px}.victory p{font-size:20px}.lock-scene:has(.plate-row:nth-child(7)){top:315px}.lock-scene:has(.plate-row:nth-child(7)) .scene-caption{top:calc(100% + 14px)}.lock-scene:has(.plate-row:nth-child(6)):not(:has(.plate-row:nth-child(7))){top:330px}dialog{padding:30px 22px;max-height:85svh}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}
.lock-case:before{background:url("assets/iron-grain.svg");opacity:.2;mix-blend-mode:soft-light}.tension-tool{top:calc(100% - 28px);bottom:auto}.lock-scene .scene-caption{pointer-events:none}@media(min-width:761px) and (max-height:950px){.lock-scene,.lock-scene:has(.plate-row:nth-child(7)),.lock-scene:has(.plate-row:nth-child(6)):not(:has(.plate-row:nth-child(7))){top:52%;transform:translate(-50%,-50%) scale(.85)}.scene-caption{display:none}.bench-heading{top:80px}.bench-heading h2{font-size:36px}.scene-intro{top:10px}.scene-subtitle{display:none}.journal{top:36%}.journal h3{font-size:34px}.story{font-size:16px}.inventory{top:47%}}

body{min-height:720px;--stage-height:max(720px,100svh)}.world{min-height:720px}.tension-tool{height:75px}@media(min-width:761px) and (max-height:760px){.scene-intro{display:none}.bench-heading{top:55px}.lock-scene,.lock-scene:has(.plate-row:nth-child(7)),.lock-scene:has(.plate-row:nth-child(6)):not(:has(.plate-row:nth-child(7))){top:53%;transform:translate(-50%,-50%) scale(.78)}}@media(max-width:760px){body{--stage-height:1050px;min-height:1050px}.world{min-height:1050px}.tension-tool{height:70px}}
@media(max-width:760px){.scene-caption{left:0;right:0}}
