:root{color-scheme:dark;--gold:#d2b676;--pale:#f0e6c9;--jade:#58b997;--ink:#102820}*{box-sizing:border-box}body{margin:0;background:#080f0e;color:var(--pale);font-family:Georgia,'Times New Roman',serif;overflow:hidden}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit;color:inherit;cursor:pointer}button:disabled{opacity:.4;cursor:default}button:focus-visible,a:focus-visible{outline:2px solid #f2d293;outline-offset:3px}button{border:1px solid #c2a46948;background:#142d25bd;border-radius:5px;transition:background .2s,border-color .2s,transform .2s}button:hover:not(:disabled){background:#2a5143;border-color:#d2b676}#game{position:relative;width:100%;height:100dvh;min-height:260px;overflow:hidden;border:5px solid #9d7a43;box-shadow:inset 0 0 0 2px #1c281f,inset 0 0 0 4px #d7bb793d;background:#162c24}#stage{position:absolute;inset:0 0 81px}#scene{width:100%;height:100%;display:block}.vignette{position:absolute;inset:0;pointer-events:none;box-shadow:inset 0 0 110px #00140b55;background:linear-gradient(#0b1c2360,transparent 22%,transparent 80%,#0b1c2340)}.hidden{display:none!important}.cover{position:absolute;inset:0;z-index:20;display:flex;align-items:center;justify-content:center;text-align:center}.eyebrow{font:10px/1.5 Arial,sans-serif;letter-spacing:3px;color:var(--gold)}#loader{z-index:60;background:radial-gradient(ellipse at 50% 40%,#234337,#081b16);flex-direction:column}#loader h2{font-weight:normal;font-size:32px;margin:18px}.load-emblem{font-size:76px;color:var(--gold);animation:breathe 2s infinite}.load-track{width:160px;height:2px;background:#c2a46933;margin:18px;overflow:hidden}.load-track i{display:block;width:50%;height:100%;background:var(--gold);animation:loading 1.4s infinite}#loadText{font:12px Arial;color:#b2c4b8}#menu{background:linear-gradient(90deg,#071c16ee 0%,#071c16d9 37%,#071c1640 75%);justify-content:flex-start;padding-left:9%;text-align:center}.menu-panel{max-height:100%;overflow:auto;padding:24px;width:390px;max-width:90%}.title-ornament{color:var(--gold);margin:24px 0 20px;font-size:18px;letter-spacing:5px}h1{font-weight:normal;margin:0;color:#f0e3bb}#menu h1{font-size:clamp(30px,5vw,62px);line-height:1.05;text-shadow:0 2px 22px #0009;letter-spacing:2px}#menu h1 small{display:block;font:12px Arial;letter-spacing:7px;margin-bottom:14px}#menu h1 span{display:block;font-size:18px;letter-spacing:11px;margin-top:18px}.menu-description{color:#c1c7b4;font-size:14px;line-height:1.8;margin:25px 0}.primary,.secondary{display:block;text-align:center;text-decoration:none;padding:12px 30px;margin:10px auto;min-width:185px;width:max-content;max-width:100%;letter-spacing:1px;border-radius:3px}.primary{background:linear-gradient(135deg,#dec48b,#a98b51);color:#172c24;border:1px solid #f4dba5;font-weight:bold;box-shadow:0 5px 24px #0003}.primary:hover{background:#ebd6a8!important;color:#172c24}.secondary{background:#17362c9c;border:1px solid #c2a46966;color:var(--pale);font-size:13px}.menu-foot{font:10px Arial;letter-spacing:1px;color:#9aac9e;margin-top:24px}.credit{position:absolute;bottom:12px;left:18px;font:10px Arial;color:#a7baaa;letter-spacing:1px}#hud{position:absolute;z-index:4;inset:0 0 auto;display:flex;align-items:flex-start;justify-content:space-between;padding:14px 18px;pointer-events:none;background:linear-gradient(#071a16ba,transparent)}#hud button{pointer-events:auto;background:transparent;border-color:transparent;padding:8px;font:12px Arial;text-shadow:0 2px 4px #000}#hud button:hover{border-color:#c2a46966;background:#10282066}.scene-heading{text-align:center;position:absolute;left:50%;transform:translateX(-50%);max-width:40%}.scene-heading span{font:9px Arial;letter-spacing:3px;color:#e5c485}.scene-heading h2{font-size:17px;font-weight:normal;margin:5px 0;text-shadow:0 2px 4px #000}.hud-actions{display:flex;gap:6px}#noteCount{font-size:9px;color:#a0dbc2;margin-left:3px}.nav{position:absolute;z-index:4;top:46%;width:44px;height:68px;border:0;background:#0a221a70;border-radius:30px;font-size:50px;font-weight:normal;line-height:1;text-shadow:0 2px 6px #000}.nav:hover{transform:scale(1.06)}#left{left:13px}#right{right:13px}#inventory{position:absolute;z-index:5;bottom:0;left:50%;transform:translateX(-50%);width:min(720px,calc(100% - 300px));height:80px;background:linear-gradient(#102b22e8,#071a15);border-top:1px solid #ad945a88;border-radius:9px 9px 0 0;padding:6px 13px}.inventory-heading{display:flex;justify-content:space-between;color:var(--gold);font:8px Arial;letter-spacing:2px;height:14px}.inventory-heading small{font:9px Arial;letter-spacing:0;color:#a9b8aa}#items{display:flex;justify-content:safe center;align-items:center;gap:6px;overflow-x:auto;height:56px;scrollbar-width:thin;scrollbar-color:#9a8244 transparent}#items button{flex:0 0 53px;height:51px;padding:3px;background:#24433477;border:1px solid #bca06444;border-radius:4px;position:relative}#items button.selected{border:2px solid #e9d29b;background:#527c5c80;box-shadow:0 0 12px #a8dca522}#items svg{width:100%;height:100%}#items .empty{font-size:12px;color:#809e89;font-style:italic}#brand{position:absolute;right:16px;bottom:12px;z-index:25;width:139px;line-height:0;background:none!important;border:none!important}#brand img{width:100%;filter:drop-shadow(0 2px 3px #000);transition:filter .2s}#brand:hover img{filter:drop-shadow(0 0 4px #e9d29b)}#brand:focus-visible{outline:none}#brand:focus-visible img{filter:drop-shadow(0 0 5px #e9d29b)}#hotspots{position:absolute;inset:0;pointer-events:none;z-index:3}.hotspot{position:absolute;pointer-events:auto;width:26px;height:26px;border:1px solid #f5dca3ab;border-radius:50%;transform:translate(-50%,-50%);background:#0b2c1bc7;box-shadow:0 0 0 5px #10291a28,0 2px 9px #0006;padding:0}.hotspot:after{content:'';display:block;width:5px;height:5px;background:#f4dba5;border-radius:50%;margin:auto}.hotspot span{position:absolute;bottom:32px;left:50%;transform:translateX(-50%);background:#09281fee;color:#edd9ae;border:1px solid #b89b5c66;padding:7px 11px;white-space:nowrap;opacity:0;pointer-events:none;font-size:12px;border-radius:4px}.hotspot:hover span,.hotspot:focus-visible span{opacity:1}.hotspot.done{border-color:#7bb49388;background:#193e2ecc}.hotspot.done:after{background:#8cbaa1}.hotspot:hover{background:#536b43;transform:translate(-50%,-50%) scale(1.1)}#modalLayer{position:absolute;z-index:30;inset:0;background:#04170f9c;display:flex;align-items:center;justify-content:center;padding:16px 20px 90px;backdrop-filter:blur(4px)}#modal{width:min(600px,100%);max-height:100%;display:flex;flex-direction:column;background:linear-gradient(145deg,#213d30,#0b241c);border:1px solid #bca067;box-shadow:0 24px 100px #0009, inset 0 0 0 4px #d6ba7910;border-radius:9px;animation:appear .2s}#modal>header{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:19px 24px 15px;border-bottom:1px solid #c3a76933;flex:none}#modal h2{font-weight:normal;font-size:23px;margin:5px 0 0}#closeModal{font:28px Arial;border:0;background:none;padding:2px 9px}#modalBody{overflow-y:auto;overscroll-behavior:contain;padding:22px 26px;scrollbar-color:#ac935f #173629;scrollbar-width:thin}#modalBody p{font-size:14px;color:#cdd4c0;line-height:1.65;margin:0 0 18px}#modalBody .clue{padding:20px;border:1px solid #bd9d5755;background:#071c1655;color:#f1dca8;line-height:1.9;text-align:center;border-radius:4px;margin:14px 0}.note{border-left:2px solid #b99c61;padding:2px 0 2px 14px;margin:0 0 22px}.note h3{font-weight:normal;color:#e5cf98;margin:0 0 8px}.note p{margin:0!important}.puzzle{margin:18px auto}.dials{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.dial{display:flex;flex-direction:column;align-items:center;gap:4px}.dial button{width:47px;height:29px;background:#122c20}.dial strong{font-size:29px;font-weight:normal;display:grid;place-items:center;width:49px;height:48px;background:#081c15;border:1px solid #b49b5a66;border-radius:3px}.dial small{font:9px Arial;color:#bba97e;padding-top:5px}.puzzle-actions{display:flex;justify-content:center;gap:12px;margin:20px 0 0}.puzzle-actions button{padding:9px 22px;font-size:13px}.puzzle-actions .check{background:#bba16a;color:#102b22}.choice-row{display:flex;gap:10px;justify-content:center;flex-wrap:wrap}.choice{width:84px;min-height:90px;padding:8px;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:7px}.choice svg{width:47px;height:47px}.choice small{font-size:10px}.choice.active{background:#4c7557;border-color:#f3dba4}.color-dot{width:34px;height:34px;border-radius:50%;border:3px double #e6d1a6;display:block;box-shadow:inset 0 0 8px #0006}.installed{display:flex;justify-content:center;flex-wrap:wrap;gap:8px;margin:12px 0}.slot{width:80px;padding:7px;text-align:center;border:1px dashed #9b986a66;border-radius:5px;font:10px Arial;color:#8aa68f}.slot svg{width:35px;height:35px;display:block;margin:0 auto 4px}.slot.filled{border-style:solid;color:#e4ce9d;background:#476b4033}.use{display:block;margin:12px auto;padding:10px 16px;color:#ffe8ae}.feedback{min-height:22px;text-align:center;font:12px/1.5 Arial;color:#e9cc85;margin:14px 0 2px}.solved-badge{color:#92d7ad;text-align:center;font:10px Arial;letter-spacing:2px;margin:16px 0}.mosaic{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;width:min(270px,100%);margin:auto}.tile{aspect-ratio:1;overflow:hidden;padding:0;border:1px solid #d4b97888;border-radius:0;background:#215c45}.tile span{display:block;width:100%;height:100%;background-size:300% 300%;transition:transform .2s}.seal-progress{text-align:center;font:12px Arial;color:#b2c2ab;letter-spacing:3px;margin:16px}.crane-panels{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}.crane-panel{border:2px solid #9b7b47;background:#e2d5af;color:#315a60;min-height:150px;padding:9px;display:flex;flex-wrap:wrap;align-content:start;justify-content:center;gap:9px}.crane-panel svg{width:29px;height:29px}.crane-panel svg path{stroke:#1f3f44}.poem{font-style:italic}.item-preview{width:100px;height:100px;margin:0 auto 15px;display:block}#toast{position:absolute;z-index:45;left:50%;bottom:96px;transform:translate(-50%,15px);background:#08251ff2;border:1px solid #bda367;color:#f0e3c2;padding:12px 22px;border-radius:5px;max-width:85%;text-align:center;font-size:13px;line-height:1.5;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}#toast.visible{opacity:1;transform:translate(-50%,0)}#end{background:radial-gradient(ellipse at 50% 20%,#86ac7655,#0c2a20ee 70%);backdrop-filter:blur(3px)}.end-panel{padding:22px;max-height:100%;overflow:auto}.end-panel h1{font-size:clamp(26px,5vw,48px)}.end-panel h2{font-weight:normal;font-size:28px;color:#cfe6bc;margin:12px}.end-panel p{font-size:14px;line-height:1.8;color:#b9cfb2}.end-seal{font-size:64px;color:#e0c184;line-height:1.3}.credit-inline{font:10px Arial!important;color:#91b49c!important}#endStats{font:11px Arial;color:#cfbc86;margin:20px}@keyframes appear{from{opacity:0;transform:translateY(6px)}to{opacity:1;transform:translateY(0)}}@keyframes breathe{50%{opacity:.45;transform:scale(.95)}}@keyframes loading{from{transform:translateX(-100%)}to{transform:translateX(300%)}}@media(max-width:780px){#inventory{width:calc(100% - 160px);left:10px;transform:none}.scene-heading h2{font-size:14px}#hud{padding:8px}.hud-actions{gap:0}#hud button{padding:7px 5px;font-size:10px}#menu{padding-left:4%}#brand{right:7px;width:132px}.inventory-heading small{display:none}.choice{width:70px}#modalBody{padding:16px}.scene-heading{max-width:42%}#hud #menuButton span{display:none}.nav{width:34px;height:55px;font-size:40px}#left{left:7px}#right{right:7px}}@media(max-height:540px){#stage{bottom:64px}#inventory{height:64px}.inventory-heading{height:9px}.inventory-heading span{font-size:7px}#items{height:44px}#items button{height:40px;flex-basis:44px}.menu-panel{padding:10px}#menu h1{font-size:31px}.title-ornament{margin:8px}#menu h1 small{margin-bottom:7px}#menu h1 span{margin-top:8px}.menu-description{margin:12px 0;font-size:12px}.menu-foot{margin:11px 0}#modalLayer{padding:8px 16px 73px}#modal>header{padding:10px 16px}#modal h2{font-size:18px}#modalBody{padding:14px 20px}#toast{bottom:76px}.end-seal{font-size:36px}.end-panel p{margin:8px}.end-panel h1{font-size:28px}.primary,.secondary{padding:8px 24px}#endStats{margin:10px}.credit{bottom:0;font-size:8px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* Inventory remains usable while examining a mechanism. */
#inventory{z-index:35}

/* Object surfaces provide the pointer targets; keyboard access stays available. */
.hotspot,.hotspot:hover,.hotspot.done{pointer-events:none;opacity:0;border:0;background:transparent;box-shadow:none;width:1px;height:1px;transform:translate(-50%,-50%)}
.hotspot:after{display:none}.hotspot:focus-visible{opacity:1;width:32px;height:32px;outline:2px solid #ebd396}.hotspot:focus-visible span{opacity:1}
#hoverLabel{position:absolute;z-index:4;pointer-events:none;transform:translate(-50%,-100%);padding:7px 12px;max-width:190px;text-align:center;background:#09281fee;border:1px solid #b89b5c77;border-radius:4px;color:#efdfb6;font-size:12px}
/* Every input turns one tile exactly one quarter turn, with no reverse interpolation. */
.tile span{transition:none;pointer-events:none}.tile{touch-action:manipulation;user-select:none}

.chapter-card{text-align:center;padding:14px 12px}.chapter-card h3{font-size:29px;font-weight:normal;color:#e9d39d;margin:14px 0}.water-dial strong{height:115px;position:relative;background:linear-gradient(to top,#4b9d9299 calc(var(--level)*100%),#0c2018 calc(var(--level)*100%));width:72px;border:2px solid #bda76e;box-shadow:inset 0 0 0 5px #092b2466}.water-dial{gap:7px}.water-dial small{font-size:11px}.memory-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;width:min(380px,100%)}.memory-tile{aspect-ratio:1;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:4px;background:linear-gradient(135deg,#345445,#153027);border:1px solid #b99e62}.memory-tile svg{width:58%;height:58%}.memory-tile small{font:10px Arial;color:#e3d0a0}.memory-back{font-size:35px;color:#bc9d62}.memory-tile.matched{background:#4b715155;border-color:#8ac29a;cursor:default}.memory-tile.revealed{box-shadow:inset 0 0 0 3px #bfa86c22}#game.cinematic #stage{bottom:0}#cinematic{position:absolute;inset:0;z-index:23;pointer-events:none;display:flex;align-items:flex-end;justify-content:center;padding:55px 30px;background:linear-gradient(#091c2433,transparent 18%,transparent 70%,#091c24bb);box-shadow:inset 0 28px #07150f,inset 0 -28px #07150f}#cinematic p{font-size:clamp(16px,2.3vw,26px);letter-spacing:1px;color:#faebc6;text-shadow:0 2px 8px #000;text-align:center}#skipEnding{pointer-events:auto;position:absolute;top:42px;right:25px;padding:7px 20px;font-size:11px;background:#10251d77}#end{background:linear-gradient(90deg,#071d1ce6, #09281a99 45%,#09281a15);backdrop-filter:none;justify-content:flex-start;padding-left:7%;text-align:center}#end .end-panel{width:560px;max-width:90%;border:1px solid #d8ba6844;background:linear-gradient(135deg,#163929c7,#102e2455);border-radius:10px;box-shadow:0 20px 80px #001b1933;padding:35px 25px;animation:endingReveal 1s ease both}#end .end-seal{font-size:70px;text-shadow:0 0 35px #ffe4a366}#end h1{color:#f6e4b8}#end h2{color:#c7e5c0}#end .eyebrow{letter-spacing:2px;line-height:1.8}#endStats{line-height:1.8;letter-spacing:1px}@keyframes endingReveal{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@media(max-height:540px){#end .end-panel{padding:12px 20px}#end .end-seal{font-size:32px}#end .end-panel h2{font-size:23px;margin:6px}#endStats{font-size:9px}.water-dial strong{height:80px}}@media(max-width:600px){#end{padding-left:0;justify-content:center}.memory-grid{gap:6px}#endStats{font-size:9px}#cinematic{padding-bottom:65px}}
