@import url('https://fonts.googleapis.com/css2?family=Cormorant+Garamond:wght@400;500;600&family=Manrope:wght@400;500;600;700&display=swap');
:root{color-scheme:dark;--bg:#141512;--panel:#1b1d18;--gold:#c6a56c;--cream:#e6dfce;--muted:#929486;--line:#36382d}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at 65% 25%,#30302540,transparent 55%),var(--bg);color:var(--cream);font:13px Manrope,Arial,sans-serif}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;cursor:pointer;color:inherit;border:1px solid var(--line);background:transparent;transition:.2s}button:hover{border-color:var(--gold);color:#f3d49b;background:#c6a56c0b}button:focus-visible,a:focus-visible{outline:2px solid var(--gold);outline-offset:4px}button:disabled{opacity:.35;cursor:default}a{color:inherit}header{height:86px;display:flex;align-items:center;gap:30px;margin:0 5%;border-bottom:1px solid var(--line)}.brand{font-size:12px;letter-spacing:2.5px;font-weight:700;text-decoration:none;display:flex;align-items:center;gap:15px}.sigil{font:40px Georgia;color:var(--gold)}.edition{margin:auto;font-size:9px;letter-spacing:2.5px;color:var(--muted)}i{font-style:normal;color:#636851;padding:0 12px}.quiet{border:0;color:var(--muted);font-size:11px;padding:12px}main{max-width:1500px;padding:0 5%;margin:auto}.intro{display:flex;align-items:center;justify-content:space-between;padding:44px 0 36px}.eyebrow{font-size:9px;letter-spacing:2.3px;font-weight:600;color:var(--gold);margin:0 0 15px}h1,h2,h3{font-family:'Cormorant Garamond',Georgia,serif;font-weight:400;margin:0}h1{font-size:clamp(42px,4.1vw,65px);line-height:1.03;letter-spacing:-1.7px}.lede{font-size:12px;line-height:1.9;color:var(--muted);margin:18px 0 0}.chapter{padding-right:45px;text-align:center}.chapter>span{font:22px Georgia;color:var(--gold)}.chapter p{color:var(--muted);font-size:11px;line-height:1.9}.ornament{color:#65634b;margin-top:20px}.game-layout{display:grid;grid-template-columns:205px minmax(360px,1fr) 210px;gap:28px;align-items:start}.locations{padding-top:22px}.locations>.eyebrow,.journal>.eyebrow{font-size:8px;letter-spacing:1.7px}nav{display:grid;gap:8px}.level{border:1px solid transparent;text-align:left;display:grid;grid-template-columns:26px 1fr;gap:5px 9px;padding:17px 12px;position:relative}.level .number{grid-row:span 2;font:17px Georgia;color:#6e7160}.level strong{font-size:11px;font-weight:500}.level small{font-size:9px;color:#818577}.level.active{background:linear-gradient(90deg,#c6a56c16,transparent);border-color:#5b5135}.level.active:before{content:'';position:absolute;left:-1px;top:15px;bottom:15px;width:2px;background:var(--gold)}.level.active .number{color:var(--gold)}.level.done:after{content:'✓';position:absolute;right:9px;top:12px;color:#9ea980}.aside-note{display:flex;gap:15px;border-top:1px solid var(--line);padding:24px 10px 12px;margin-top:25px;color:#7b806e}.aside-note span{color:var(--gold);font-size:20px}.aside-note p{font:italic 16px/1.5 'Cormorant Garamond',Georgia;margin:0}.text-button{border:0;color:var(--muted);font-size:10px;padding:12px}.workbench{border:1px solid #414233;background:#1c1e18;position:relative;box-shadow:0 25px 60px #0003}.bench-heading{display:flex;justify-content:space-between;align-items:center;padding:21px 27px;border-bottom:1px solid var(--line)}.bench-heading .eyebrow{font-size:8px;margin-bottom:7px}.bench-heading h2{font-size:28px}.difficulty{font-size:8px;letter-spacing:1.2px;color:#a3a58f;border:1px solid #414633;padding:7px 10px}.lock-scene{height:360px;position:relative;overflow:hidden;display:flex;justify-content:center;align-items:center;background:radial-gradient(ellipse at 60% 25%,#b98b4930,transparent 60%),repeating-linear-gradient(0deg,#090a0730 0 2px,transparent 2px 5px),repeating-linear-gradient(90deg,#30271c 0px,#221e17 2px,#332a1f 90px,#151710 93px,#31291d 96px);isolation:isolate}.lock-scene:after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 90px 30px #060906aa;pointer-events:none;z-index:5}.ambient{position:absolute;inset:0;background:radial-gradient(ellipse at 5% 0,#f9a14022,transparent 60%);animation:flicker 7s ease-in-out infinite}.iron-band{position:absolute;width:36px;height:130%;top:-10%;background:linear-gradient(90deg,#1c1c17,#424338,#292c22,#131710);border:2px solid #48483b;box-shadow:8px 0 12px #0007;transform:rotate(-7deg)}.iron-band:before,.iron-band:after{content:'●';position:absolute;color:#141911;text-shadow:1px 1px #72745b;left:11px;top:45px}.iron-band:after{top:auto;bottom:60px}.band-left{left:8%}.band-right{right:7%}.lock-case{width:330px;position:relative;padding:22px 25px 12px;background:linear-gradient(115deg,#6c6451,#494635 18%,#36392b 60%,#5d5843);border:3px solid #88816a;border-radius:35px 35px 19px 19px;box-shadow:0 0 0 5px #1a1c14,0 0 0 7px #514e3d,8px 17px 18px #000b,inset 1px 1px 5px #c0ad7b6b,inset -6px -5px 12px #171b12;z-index:2}.lock-case:before{content:'';pointer-events:none;position:absolute;inset:0;border-radius:inherit;opacity:.12;background:repeating-linear-gradient(17deg,transparent 0 11px,#e1c58a 12px,transparent 13px 22px)}.engraving{font:8px Georgia;letter-spacing:2px;text-align:center;color:#181e15;text-shadow:0 1px #aaa38177;margin-bottom:15px}.rivet{position:absolute;width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 25%,#b9b18a,#484b36 60%,#171e13);box-shadow:1px 1px 2px #111}.r1{top:22px;left:11px}.r2{top:22px;right:11px}.r3{bottom:18px;left:11px}.r4{bottom:18px;right:11px}.mechanism{position:relative;background:#161a12;padding:10px 10px 8px;box-shadow:inset 0 4px 9px #000;border:1px solid #86816a;border-radius:4px}.center-guide{position:absolute;left:calc(50% - 15px);width:30px;top:4px;bottom:4px;background:#bca16b11;border-left:1px dashed #a2966960;border-right:1px dashed #a2966960}.plate-row{position:relative;width:100%;height:31px;margin:5px 0;border:1px solid #77745c;border-radius:3px;background:linear-gradient(#7e7c60,#4e523d 20%,#393f2b 48%,#555941 60%,#77765b 94%,#242b1b);box-shadow:0 3px 3px #000a,inset 1px 0 #b6a97d;color:#b9b79a;padding:0;display:block}.plate-row:hover{background:linear-gradient(#898565,#555b3f,#696b4d);border-color:#d3ba7f}.plate-row.selected{border-color:#dac28b;box-shadow:0 0 0 1px #c8a96188,0 0 14px #d1a45625,inset 0 1px #e2c791}.plate-row.selected:before{content:'▸';position:absolute;left:-26px;top:5px;color:#ead29d;font-size:16px;text-shadow:0 0 7px #ffd77d}.plate-number{position:absolute;left:-43px;top:8px;font-size:9px;color:#b7ac87}.holes{display:flex;justify-content:space-around;align-items:center;position:absolute;inset:0 5px}.hole{width:12px;height:12px;border-radius:50%;background:radial-gradient(circle,#0a1008 45%,#272b1d 66%,#aaa17b 85%,#313724);box-shadow:0 1px #a6a07888}.pin{position:absolute;left:calc(7.142857% + var(--pos) * 14.285714%);top:7px;width:17px;height:17px;margin-left:-8.5px;transition:left .32s cubic-bezier(.2,.8,.25,1),background .3s;background:radial-gradient(circle at 35% 25%,#ecd2a1,#ab8c50 35%,#69532b 66%,#c0a56c 74%,#3b351f 88%);border:1px solid #b49d67;border-radius:50%;box-shadow:2px 3px 4px #000b}.plate-row.centered .pin{background:radial-gradient(circle at 35% 25%,#ffc5a0,#bd6446 40%,#783c26 70%,#bb7650);border-color:#e09e6c;box-shadow:0 0 10px #db775533,2px 3px 3px #0009}.lock-bottom{display:flex;justify-content:center;align-items:center;gap:30px;margin-top:12px;color:#a39b76;font:12px Georgia}.keyhole{width:12px;height:19px;background:#131b10;clip-path:polygon(15% 0,85% 0,100% 25%,70% 50%,90% 100%,10% 100%,30% 50%,0 25%)}.scene-caption{position:absolute;bottom:14px;font-size:7px;letter-spacing:2px;color:#bbb29599;z-index:6}.bench-status{min-height:59px;display:flex;align-items:center;gap:10px;padding:10px 22px;background:#21251b;border-top:1px solid #494b35}.status-dot{height:5px;width:5px;background:var(--gold);border-radius:50%;flex-shrink:0}#message{font-size:10px;line-height:1.6;margin:0;flex:1;color:#b8bda4}#aligned{color:var(--gold);font-size:11px;white-space:nowrap}.controls{display:flex;gap:22px;padding:17px 22px;align-items:center}.control-group{display:flex;align-items:center;gap:5px}.control-group button{width:30px;height:30px;background:#25291e;font-size:15px}.control-group span{font-size:9px;color:var(--muted);margin-left:5px}.reset{border:0;margin-left:auto;color:var(--muted);font-size:17px}.reset span{font-size:10px;margin-left:5px}.journal{padding-top:22px}.journal h3{font-size:35px;line-height:1.1;margin:19px 0}.story{font-size:11px;line-height:1.9;color:var(--muted)}.inventory{margin:25px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:13px 0;display:grid;gap:14px}.inventory>div{display:flex;justify-content:space-between;font-size:10px;color:#a0a48e}.inventory strong{font-weight:500;color:var(--gold);letter-spacing:2px}.tip{display:flex;gap:14px;align-items:start;margin-bottom:23px}.tip p{font-size:10px;line-height:1.9;color:var(--muted);margin:0}.tip-number{font:24px Georgia;color:var(--gold)}.hint-button{width:100%;padding:12px 5px;font-size:10px;color:#cdb88d;border-color:#58523a}.hint-note{text-align:center;font-size:8px;color:#757d68}footer{display:flex;justify-content:space-between;gap:20px;padding:28px 0;border-top:1px solid var(--line);margin-top:38px;font-size:7px;letter-spacing:1.2px;color:#767c68}dialog{max-width:580px;width:90%;background:#20231a;border:1px solid #7b6b46;padding:40px;color:var(--cream);box-shadow:0 30px 100px #000}dialog::backdrop{background:#050804cc;backdrop-filter:blur(5px)}dialog h2{font-size:33px}dialog p:not(.eyebrow){font-size:12px;line-height:1.8;color:#b3b8a4}dialog a{color:var(--gold)}.close{position:absolute;right:10px;top:8px;border:0;font-size:24px}.victory{position:absolute;z-index:10;inset:85px 0 0;background:#151a12eF;backdrop-filter:blur(6px);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:30px;text-align:center}.victory[hidden]{display:none}.victory h2{font-size:47px}.victory p{color:var(--muted);line-height:1.8}.primary{padding:15px 24px;border-color:var(--gold);color:var(--gold);margin:20px 0 8px}.shake{animation:shake .25s}.danger #message{color:#e0a17c}.danger .status-dot{background:#d57550}@keyframes shake{25%{transform:translateX(-4px)}75%{transform:translateX(4px)}}@keyframes flicker{50%{opacity:.5}}@media(min-width:1500px){.lock-scene{height:410px}.lock-case{transform:scale(1.1)}}@media(max-width:1100px){.game-layout{grid-template-columns:170px minmax(340px,1fr);gap:22px}.journal{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr 1fr;gap:10px 30px}.journal>.eyebrow{grid-column:1/-1}.journal h3{margin:0}.inventory{margin:0}.tip{grid-column:1/3;margin:0}.story{margin:0}.hint-note{display:none}.chapter{padding-right:0}}@media(max-width:700px){header{height:65px}.edition{display:none}.quiet{margin-left:auto}.brand{font-size:9px;letter-spacing:1.3px;gap:8px}.intro{padding:28px 0}.chapter{display:none}h1{font-size:43px}.lede{font-size:11px}.game-layout{display:flex;flex-direction:column;gap:16px}.locations{width:100%;padding:0}.locations>.eyebrow,.aside-note,#about{display:none}nav{display:flex;overflow-x:auto;gap:8px;padding:2px}.level{min-width:140px;padding:12px 8px;background:#1b1e17}.level strong{font-size:10px}.workbench{width:100%}.bench-heading{padding:18px}.bench-heading h2{font-size:25px}.lock-scene{height:355px}.lock-case{width:290px;padding:22px 23px 12px}.controls{gap:12px;padding:15px 12px}.control-group span{font-size:8px}.reset span{display:none}.journal{display:grid;grid-template-columns:1fr 1fr;width:100%;gap:15px}.journal h3{font-size:30px}.inventory{grid-column:2;grid-row:2/4}.story{grid-column:1}.tip{grid-column:1/-1}.hint-button{grid-column:1/-1}.journal>.eyebrow{margin:10px 0 0}footer{flex-wrap:wrap;font-size:7px;line-height:1.8;gap:10px;margin-top:25px}.plate-number{left:-36px}.bench-status{padding:10px 15px}.victory{inset:79px 0 0}}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation:none!important;transition:none!important}}

.plate-row{transform:translateX(var(--shift,0px));transition:transform .32s cubic-bezier(.2,.8,.25,1),border-color .2s}.plate-row:disabled{opacity:1}.pin{left:calc(5px + (100% - 10px) * (var(--pos) + .5) / 7)}.lock-scene:has(.plate-row:nth-child(7)){height:440px}.lock-scene:has(.plate-row:nth-child(6)):not(:has(.plate-row:nth-child(7))){min-height:400px}@media(max-width:700px){#about{display:block;font-size:9px;padding:10px 2px 0}}
