/* Immersive edition: a continuous room, with tactile close-up mechanisms. */
#worldViewport{position:absolute;inset:0;z-index:1;cursor:grab;touch-action:none}#worldViewport:active{cursor:grabbing}#worldViewport canvas{display:block;width:100%;height:100%;outline:none}.webgl-ready .room-art{opacity:0}.webgl-ready .scene-shade{z-index:2;pointer-events:none;background:linear-gradient(#02101555,transparent 22%,transparent 70%,#02101566)}.webgl-ready .caustics{z-index:2;opacity:.12}.webgl-ready #dust{z-index:2;opacity:.22}.webgl-ready .hotspots{z-index:3;pointer-events:none}.webgl-ready .hotspot{pointer-events:auto;transition:opacity .2s!important;will-change:left,top}.webgl-ready .hotspot .pin{height:36px;width:36px;background:#07242ba6;border-color:#e2c68cac;box-shadow:0 0 20px #b0edff15;backdrop-filter:blur(4px)}.webgl-ready .hotspot .hot-label{opacity:0;transform:translateX(-4px);transition:.25s;pointer-events:none;background:#041820df;border-color:#d4be8a35;font-size:14px;padding:9px 14px}.webgl-ready .hotspot:hover .hot-label,.webgl-ready .hotspot:focus-visible .hot-label{opacity:1;transform:none}.webgl-ready .hotspot .pin:before{animation:none}.webgl-ready .playing .scene,.webgl-ready.playing .scene{inset:0 0 106px}.webgl-ready .room-heading{top:106px;max-width:370px}.webgl-ready .room-heading h1{font-size:34px}.webgl-ready .room-heading p:last-child{font-size:14px;text-shadow:0 2px 8px #001b23}.webgl-ready .topbar{height:84px;background:linear-gradient(#041017c9,#04101735);border-bottom:1px solid #a9cfcc16}.webgl-ready .scene-caption{display:none!important}.webgl-ready .dock{height:106px;background:linear-gradient(#03151dcc,#03151dfd);backdrop-filter:blur(12px)}.webgl-ready .room-nav{height:43px;border-bottom:0;position:absolute;right:3.5%;top:8px}.webgl-ready .room-tab{padding:0 19px;font-size:13px}.webgl-ready .tool-row{min-height:106px;padding:47px 3.5% 13px}.webgl-ready .tools{position:absolute;left:3.5%;top:12px}.webgl-ready .tool{border-color:transparent;padding:5px 10px;min-height:34px;background:none}.webgl-ready .tool.active{border-color:#ddbd8466}.webgl-ready .tool kbd{display:none}.webgl-ready .progress-area{display:flex;align-items:center;gap:18px}.webgl-ready .progress-pips{margin:0}.webgl-ready .inventory{margin-left:auto}.webgl-ready .inventory button{height:32px;width:32px;font-size:20px}.webgl-ready .toast{bottom:135px}.compass{position:absolute;top:31px;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;z-index:5;font:12px monospace;color:#adc5c4;letter-spacing:2px}.compass i{width:30px;height:8px;border-top:1px solid #c7d7c74d;border-left:1px solid #c7d7c733;border-right:1px solid #c7d7c733}.compass b{color:var(--gold);font-weight:400}.webgl-ready .top-status .depth{display:none}.webgl-ready .top-status{margin-left:auto;margin-right:22px}.look-controls{position:absolute;bottom:122px;left:50%;transform:translateX(-50%);z-index:5;display:flex;gap:14px;align-items:center;white-space:nowrap}.look-controls span{font:12px monospace;color:#c5d4d2;letter-spacing:1.5px;text-shadow:0 2px 7px #000}.look-controls button{font-size:12px;color:#dfd7bf;padding:9px;border:1px solid #ddbd843c;backdrop-filter:blur(8px);background:#04191e80}.look-controls button:hover{background:#153a41}.subtitle{position:absolute;bottom:187px;left:50%;transform:translateX(-50%);max-width:670px;width:max-content;padding:17px 25px;background:#04171cee;border-top:1px solid #ddbd8466;text-align:center;font:20px/1.5 Georgia;z-index:8;box-shadow:0 10px 40px #001a}.subtitle small{display:block;color:var(--gold);font:12px monospace;letter-spacing:3px;margin-bottom:7px}#powerBloom{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 30%,#c2fffb77,transparent 70%);z-index:4;opacity:0;pointer-events:none;transition:opacity 1.3s}#powerBloom.flare{opacity:.85}.echo-marks{z-index:4}.webgl-ready.echo-view #worldViewport{filter:sepia(.5) hue-rotate(130deg) saturate(.68) brightness(1.1)}.webgl-ready .intro{background:linear-gradient(90deg,#021017ec 0%,#021017a8 37%,#02101710 80%)}.webgl-ready .intro h1{font-size:clamp(68px,7.6vw,120px)}.webgl-ready .intro-coordinate{bottom:9%}.viewing-object .room-heading,.viewing-object .compass,.viewing-object .look-controls{opacity:0;pointer-events:none}
.modal.mechanical{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;background:linear-gradient(90deg,#031219a6,#031219f5);border:0;box-shadow:none;overflow-y:auto}.modal.mechanical::backdrop{background:#02131875;backdrop-filter:blur(5px)}.mechanical .modal-inner{padding:42px 5%;min-height:100dvh}.mechanical .close{right:3%;top:30px;width:48px;height:48px;border:1px solid #ddbd8455;border-radius:50%;font-size:28px}.mechanical h2{font-size:38px;margin:12px 0 14px}.mechanical .puzzle-layout{display:grid;grid-template-columns:minmax(400px,1fr) 330px;grid-template-rows:auto 1fr;gap:0 40px;min-height:calc(100dvh - 180px)}.mechanical .mechanism-stage{grid-column:1;grid-row:1 / span 2;min-height:420px;position:relative;border:1px solid #bfd3c712;background:radial-gradient(ellipse at 50% 45%,#163b4533,transparent 72%);touch-action:none;cursor:grab}.mechanism-stage canvas{display:block;width:100%;height:100%;position:absolute;inset:0;outline:none}.mechanism-stage:after{content:'DRAG TO EXAMINE · CLICK THE MECHANISM';position:absolute;bottom:15px;left:0;width:100%;text-align:center;font:12px monospace;letter-spacing:2px;color:#afc3be;pointer-events:none}.mechanical .puzzle-notes{grid-column:2;grid-row:1;font-size:14px}.mechanical .puzzle-notes>p:first-child{font-size:15px;line-height:1.6;margin-top:0}.mechanical .puzzle-notes .evidence{font-size:17px;margin:14px 0;padding:12px 0}.mechanical .puzzle-notes .caption{display:none}.mechanical #puzzleHint{font-size:13px;padding:6px 0;margin-bottom:15px}.mechanical .puzzle-panel{grid-column:2;grid-row:2;align-self:start;background:#08222a80;border:1px solid #c5d4b626;padding:20px;gap:14px}.webgl-ready .mechanical #clockDrawing,.webgl-ready .mechanical #orbitDrawing{display:none}.mechanical .puzzle-panel .primary{width:100%;justify-content:center;font-size:14px;padding:13px}.mechanical .counter-control{gap:5px}.mechanical .counter-value{min-width:33px}.mechanical .time-controls{gap:12px}.mechanical .counter-control button{width:34px;height:34px}.mechanical .circuit-wrap{max-width:190px}.mechanical .terminal-label{font-size:12px}.mechanical .valves{gap:6px}.mechanical .valve{width:57px;height:57px;font-size:24px}.mechanical .valve-unit .caption{display:none}.mechanical .gauge{display:none}.mechanical .valve-unit .name{font-size:12px}.pressure-readout{width:100%;display:flex;justify-content:space-around;margin-top:5px}.pressure-readout div{font:13px monospace;text-align:center}.pressure-readout strong{font-size:22px;display:block;color:var(--cyan)}.pressure-readout small{font:12px Arial;color:#b8c9c8}.tuning{width:100%;display:flex;align-items:center;gap:10px}.tuning input{accent-color:var(--gold);width:100%;height:30px}.tuning label{font:12px monospace;color:var(--gold)}.signal-meter{width:100%;height:3px;background:#486069}.signal-meter i{display:block;background:var(--cyan);height:100%;transition:width .1s}.mechanical .radio-display{font-size:25px;padding:10px}.mechanical .radio-key{min-height:60px;font-size:12px}.mechanical .fragment{padding:9px 8px;gap:8px}.mechanical .fragment-text{font-size:12px}.mechanical .fragment button{min-width:33px;font-size:12px;padding:4px}.mechanical .fragment .number{font-size:18px}.ascent-cinematic{position:absolute;inset:0;z-index:34;pointer-events:none;opacity:1;transition:opacity 2s}.ascent-cinematic canvas{width:100%;height:100%;display:block}.ascent-label{position:absolute;bottom:12%;width:100%;text-align:center;color:#eceddf;font:14px monospace;letter-spacing:4px}.ascent-skip{position:absolute;right:30px;top:30px;pointer-events:auto;color:#e4d4ac;border:1px solid #e4d4ac70;padding:10px 20px;font-size:13px;background:#041b2870}.ending{background:linear-gradient(90deg,#022334e0,#051b2fde)}.ending-content{position:relative;z-index:35}.cinematic-playing .ending-content{opacity:0;pointer-events:none}.cinematic-playing .ending{background:none}.ending .ending-content{transition:opacity 1.5s}.room-unlocked{animation:seal-flash 1.3s ease-out}@keyframes seal-flash{0%{box-shadow:inset 0 0 100px #77ffff77}100%{box-shadow:inset 0 0 0 transparent}}
@media(max-width:1050px){.compass{display:none}.mechanical .puzzle-layout{grid-template-columns:minmax(280px,1fr) 300px;gap:0 24px}.mechanical .modal-inner{padding:35px 30px}.webgl-ready .room-tab{padding:0 12px}.webgl-ready .tool{font-size:13px;gap:6px}.look-controls{gap:8px}.look-controls span{font-size:12px;letter-spacing:1px}}
@media(max-width:700px){.webgl-ready.playing .scene{inset:0 0 116px}.webgl-ready .topbar{height:74px;padding:14px 17px}.webgl-ready .top-status{margin:0 6px 0 auto}.webgl-ready .room-heading{top:85px;left:20px;max-width:270px;pointer-events:none}.webgl-ready .room-heading h1{font-size:27px;margin:7px 0}.webgl-ready .room-heading .eyebrow{font-size:12px;letter-spacing:2px}.webgl-ready .room-heading p:last-child{display:none}.webgl-ready .dock{height:116px;background:linear-gradient(#03151db0,#03151de8);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}.webgl-ready .room-nav{position:static;height:36px;justify-content:space-around;border-bottom:1px solid #d8bb8220}.webgl-ready .room-tab{padding:0 10px;font-size:12px}.webgl-ready .tool-row{padding:6px 15px 8px;min-height:78px;align-content:space-between}.webgl-ready .tools{position:static;gap:5px;width:100%;justify-content:space-between}.webgl-ready .tool{font-size:12px;min-height:32px;padding:4px 8px}.webgl-ready .inventory{margin:0}.webgl-ready .progress-area{min-width:115px;width:auto;gap:10px}.webgl-ready .progress-area>span{font-size:12px}.webgl-ready .progress-pips{gap:4px}.webgl-ready .progress-pips i{width:10px}.webgl-ready .playing .hotspots,.webgl-ready .hotspots{display:block;padding:0;position:absolute;inset:0}.webgl-ready .hotspot{position:absolute!important;transform:translate(-50%,-50%)!important;background:none!important;border:0!important;min-height:50px;padding:6px;gap:7px}.webgl-ready .hotspot .hot-label{font-size:12px;max-width:100px;opacity:1;background:#071c24cb;padding:7px;line-height:1.25;white-space:normal}.webgl-ready .hotspot .pin{flex:0 0 29px;width:29px;height:29px}.look-controls{bottom:130px;width:100%;justify-content:center;padding:0 14px;gap:6px;flex-wrap:wrap}.look-controls span{display:none}.look-controls button{font-size:12px;min-height:34px;padding:6px 10px}.webgl-ready .toast{bottom:177px;background:#04171cb0;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.subtitle{font-size:16px;max-width:calc(100% - 34px);bottom:184px;padding:10px 16px;background:#04171ccc;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}.subtitle small{font-size:12px}.mechanical .modal-inner{padding:28px 18px}.mechanical .close{right:14px;top:16px;width:40px;height:40px}.mechanical h2{font-size:28px;max-width:80%;margin:10px 0}.mechanical .eyebrow{font-size:12px;max-width:82%}.mechanical .puzzle-layout{display:flex;flex-direction:column;gap:15px}.mechanical .mechanism-stage{height:300px;min-height:300px;order:0;flex:none}.mechanical .mechanism-stage:after{font-size:12px;letter-spacing:1px;bottom:12px}.mechanical .puzzle-notes{order:1}.mechanical .puzzle-notes>p:first-child{font-size:14px;margin-bottom:10px}.mechanical .puzzle-notes .evidence{font-size:15px;padding:9px 0;margin:10px 0}.mechanical #puzzleHint{margin-bottom:0}.mechanical .puzzle-panel{order:2;width:100%;padding:16px;gap:14px}.mechanical .circuit-wrap{max-width:220px}.mechanical .time-controls{justify-content:center;gap:25px}.mechanical .valve{width:70px;height:70px}.mechanical .radio-keys{grid-template-columns:repeat(4,1fr)}.mechanical .radio-key{font-size:12px}.mechanical .fragment-text{font-size:14px}.mechanical .fragment button{font-size:12px}.mechanical .puzzle-panel .primary{font-size:15px}.webgl-ready .intro .intro-detail{font-size:14px}.webgl-ready .intro h1{font-size:74px}.webgl-ready .intro{padding-top:110px}.ascent-label{font-size:12px;letter-spacing:2px}.webgl-ready .memory-stamp{top:26%!important;left:18%!important}}

.ending[data-choice="carry"]{background:radial-gradient(ellipse at 70% 20%,#806944aa,transparent 60%),linear-gradient(90deg,#083340ed,#032635f5)}.ending[data-choice="leave"]{background:radial-gradient(ellipse at 50% 85%,#b987392a,transparent 40%),linear-gradient(90deg,#061c32ed,#021722f5)}.cinematic-playing .ending{background:none}

#game:not(.webgl-ready) .mechanism-stage{display:none}#game:not(.webgl-ready) .mechanical .puzzle-layout{display:flex;flex-wrap:wrap;gap:24px}#game:not(.webgl-ready) .mechanical .puzzle-notes{flex:1;min-width:240px}#game:not(.webgl-ready) .mechanical .puzzle-panel{flex:1;min-width:280px}
