@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Noto+Sans+SC:wght@400;500;600;700&display=swap');
:root{--ink:#284b3d;--green:#255f4c;--sage:#6e8d6b;--cream:#fff8e9;--muted:#84967b;--gold:#d9a15d;--font:'DM Sans','Noto Sans SC',-apple-system,BlinkMacSystemFont,sans-serif}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{font-family:var(--font);color:var(--ink);background:#bdcbb6;-webkit-font-smoothing:antialiased}button,input,select{font:inherit}button{cursor:pointer;color:inherit}a{color:inherit}button,a,input,select{-webkit-tap-highlight-color:transparent}button:focus-visible,a:focus-visible,input:focus-visible,select:focus-visible{outline:3px solid #d99544;outline-offset:4px}button:disabled{cursor:default;opacity:.6}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}#game,#scene{position:absolute;inset:0;overflow:hidden}#scene canvas{display:block;width:100%;height:100%;touch-action:none}.vignette{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,#e9efdb55 0,transparent 24%,transparent 72%,#6b816d2b 100%)}.game-header{position:absolute;top:0;left:0;right:0;padding:26px 34px;display:flex;align-items:center;justify-content:space-between;pointer-events:none;z-index:6}.game-header>*{pointer-events:auto}.brand{display:flex;gap:11px;align-items:center;text-decoration:none;font-size:21px;font-weight:600;letter-spacing:2px}.brand-mark{height:47px;width:47px;border-radius:50%;background:var(--green);color:var(--cream);display:grid;place-items:center;box-shadow:0 3px 14px #28463610}.brand-mark svg{width:35px}.brand small{display:block;font-size:8px;letter-spacing:2.3px;font-weight:500;margin-top:5px}.chapter-title{position:absolute;left:50%;transform:translateX(-50%);display:flex;align-items:center;gap:14px;color:#5d775d;font-size:11px;letter-spacing:1.5px}.chapter-title span{padding:5px 9px;background:#fbf8e794;border:1px solid #eff0db;border-radius:4px;font-size:9px;letter-spacing:1px}.chapter-title strong{font-weight:500}.header-actions{display:flex;gap:8px}.header-actions button{border:1px solid #fffdf278;display:flex;align-items:center;gap:6px;background:#fcf9eaab;backdrop-filter:blur(14px);padding:10px;border-radius:10px;color:#587451;box-shadow:0 2px 12px #2e513309;min-width:40px;height:40px}.header-actions button:hover{background:#fff9e8}.header-actions svg{width:18px;height:18px}.header-actions button span{font-size:10px;margin-right:3px}.quest{position:absolute;top:137px;left:38px;pointer-events:none;width:235px;z-index:3;text-shadow:0 1px 12px #f0f0dc}.eyebrow{font-size:8px;letter-spacing:1.9px;font-weight:600;color:#91a17d}.quest h1{font-size:34px;line-height:1.48;letter-spacing:2px;font-weight:500;margin:12px 0}.quest h1 em{font-style:normal;color:#4f7753}.quest>p{font-size:11px;line-height:1.9;color:#809371;margin:0 0 22px}.quest-steps{display:flex;flex-direction:column;gap:6px;width:175px}.quest-steps button{pointer-events:auto;display:flex;align-items:center;gap:10px;border:1px solid transparent;padding:8px 10px 8px 0;background:transparent;text-align:left;font-size:11px;color:#8a9b7c;transition:.2s;border-radius:7px}.step-number{width:23px;height:23px;border:1px solid #bccbac;border-radius:50%;display:grid;place-items:center;font-size:8px;color:#8da27b;background:#f2f0df40}.quest-steps button.active{color:var(--green);font-weight:500}.quest-steps button.active .step-number{background:var(--green);color:#fbf6e5;border-color:var(--green);box-shadow:0 0 0 4px #faf6df80}.quest-steps button.complete{color:#668564}.quest-steps button.complete .step-number{background:#e6edd8;color:#477251;border-color:#9fb991}.quest-steps button i{height:4px;width:4px;border-radius:50%;margin-left:auto}.quest-steps button.active i{background:#4d8052}.quest-steps button:hover{background:#fbf6e66b;padding-left:8px}.environment{position:absolute;right:36px;top:113px;display:flex;align-items:flex-end;flex-direction:column;gap:9px;z-index:3}.simulation-badge{font-size:8px;letter-spacing:1px;display:flex;align-items:center;gap:6px;color:#8b835f}.simulation-badge i{height:5px;width:5px;border-radius:50%;background:#cfa05f}.environment select{appearance:none;border:0;background:transparent;text-align:right;color:#5b7556;font-size:11px;padding:3px 0;cursor:pointer;outline-offset:2px}.environment-rh{font-size:8px;color:#91a081}.world-controls{position:absolute;right:34px;bottom:260px;display:flex;flex-direction:column;gap:8px;z-index:5}.world-controls button{display:flex;align-items:center;justify-content:center;gap:7px;border:1px solid #fffaea99;background:#f8f5e6c2;backdrop-filter:blur(12px);box-shadow:0 3px 15px #243d3510;min-height:35px;min-width:35px;border-radius:8px;color:#668060;font-size:18px;padding:7px 9px}.world-controls button span{font-size:9px}.world-controls button:hover,.world-controls button[aria-pressed=true]{background:#fff9e4;color:#305c3b}.action-dock{position:absolute;bottom:47px;left:50%;transform:translateX(-50%);width:min(750px,calc(100% - 76px));z-index:5;padding:20px 24px 16px;background:linear-gradient(120deg,#fffbeded,#f2f2deed);border:1px solid #fffaf0;box-shadow:0 12px 45px #3c513629,inset 0 1px 1px #fffef5;border-radius:18px;backdrop-filter:blur(18px)}.dock-heading{display:flex;gap:13px;align-items:center}.stage-emblem{height:44px;width:44px;border-radius:12px;display:grid;place-items:center;background:#e5ebd7;border:1px solid #d5dfc4;color:#718c5f;font-size:16px;font-weight:500;flex-shrink:0}.dock-title{flex:1;min-width:0}.dock-title .eyebrow{font-size:7px;letter-spacing:1.5px;color:#a5ad8a}.dock-title h2{font-size:19px;letter-spacing:.7px;font-weight:500;margin:5px 0 4px}.dock-title p{font-size:10px;line-height:1.6;color:#8e9b7c;margin:0}.primary-action{border:1px solid #b9783b;background:linear-gradient(180deg,#e3b979,#d9a15b);color:#624b2d;padding:12px 16px;border-radius:9px;display:flex;align-items:center;justify-content:space-between;gap:19px;min-width:133px;box-shadow:0 3px 0 #ae7e41,0 5px 16px #b0823730;font-size:12px;font-weight:500;transition:transform .15s}.primary-action:hover{transform:translateY(-2px)}.primary-action:active{transform:translateY(1px);box-shadow:0 1px 0 #ae7e41}.primary-action>span:last-child{font-size:17px}.recipe-controls{display:flex;gap:25px;align-items:center;border-top:1px solid #dce3cc;margin-top:15px;padding-top:13px}.recipe-field{flex:1;min-width:0}.recipe-field label{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#80916a}.recipe-field output{font-size:13px;color:#446a3e;font-weight:500;font-variant-numeric:tabular-nums}.recipe-field input,.heat-controls input{appearance:none;display:block;width:100%;height:4px;border-radius:4px;background:#d8e0c8;accent-color:var(--green);margin:11px 0 7px;cursor:pointer}.recipe-field input::-webkit-slider-thumb,.heat-controls input::-webkit-slider-thumb{appearance:none;width:13px;height:13px;border-radius:50%;background:#597d4b;border:3px solid #fff7e4;box-shadow:0 0 0 1px #759468}.recipe-field input::-moz-range-thumb,.heat-controls input::-moz-range-thumb{width:8px;height:8px;border-radius:50%;background:#597d4b;border:3px solid #fff7e4;box-shadow:0 0 0 1px #759468}.recipe-field>span{font-size:8px;color:#a0ac8e}.recipe-total{padding-left:20px;border-left:1px solid #dce3cc;text-align:right;width:118px}.recipe-total>span{font-size:8px;color:#96a384}.recipe-total strong{display:block;font-size:27px;font-weight:500;line-height:1;margin-top:9px;letter-spacing:-1px}.recipe-total small{font-size:10px;margin-left:5px;color:#93a17d;font-weight:400}.heat-controls{display:flex;align-items:center;gap:20px;margin-top:16px;padding-top:14px;border-top:1px solid #dce3cc}.heat-controls label{font-size:10px;color:#80916a;min-width:133px}.heat-controls output{font-size:16px;color:#446a3e;margin-left:9px}.heat-controls input{margin:0;flex:1}.heat-controls>span{font-size:8px;color:#99a588}.stage-progress{display:flex;align-items:center;gap:13px;border-top:1px solid #dce3cc;margin-top:16px;padding-top:15px;font-size:9px;color:#78906a}.progress-track{height:6px;border-radius:5px;background:#dfe6cf;overflow:hidden;flex:1}.progress-track span{height:100%;width:0;display:block;background:linear-gradient(90deg,#94b578,#497745);border-radius:5px}.progress-note{font-size:8px;color:#a1ab8c}.game-footer{position:absolute;bottom:14px;left:35px;right:35px;display:flex;align-items:center;justify-content:space-between;font-size:8px;color:#668260;z-index:6;pointer-events:none}.game-footer>span:nth-child(2){position:absolute;left:50%;transform:translateX(-50%);color:#889779;font-size:8px}.game-footer button{border:0;background:none;pointer-events:auto;color:#6d865d;font-size:14px;display:flex;align-items:center;gap:5px}.game-footer button span{font-size:9px}.hotspot{position:absolute;transform:translate(-50%,-100%);display:flex;align-items:center;gap:6px;padding:6px 10px 6px 6px;border-radius:20px;border:1px solid #fff9eec9;background:#fffaeccc;backdrop-filter:blur(9px);box-shadow:0 3px 14px #243d3520;font-size:10px;color:#62775b;white-space:nowrap;cursor:pointer;transition:background .15s,opacity .15s;z-index:2;will-change:left,top}.hotspot .hotspot-number{height:22px;width:22px;display:grid;place-items:center;border-radius:50%;background:#dde8cc;font-size:9px;color:#628354}.hotspot.current{border-color:#fbefd3;background:#fff9e9;box-shadow:0 0 0 5px #f9f6e85c,0 6px 20px #3e5b3130;color:#355b39}.hotspot.current .hotspot-number{background:#3f754d;color:white}.hotspot.completed .hotspot-number{background:#9bb58d;color:#fff}.hotspot:hover{background:#fff9df}.hotspot:after{content:'';position:absolute;width:1px;height:15px;background:#b1bda180;left:50%;top:100%;pointer-events:none}.inspect{position:absolute;right:35px;top:220px;width:235px;padding:20px;border:1px solid #fffbeb;background:#fcf9e9dd;backdrop-filter:blur(14px);border-radius:13px;box-shadow:0 10px 35px #3e5b3120;z-index:7}.inspect>button{position:absolute;top:6px;right:9px;border:0;background:none;color:#9ba88c;font-size:20px}.inspect .eyebrow{font-size:7px}.inspect h2{font-size:15px;font-weight:500;margin:9px 0}.inspect p{font-size:10px;line-height:1.8;color:#8e9b7d;margin:0 0 12px}.inspect strong{font-size:23px;font-weight:500;color:#4b764a}.inspect strong small{font-size:10px;margin-left:6px;color:#9caa8b}.monitor{position:absolute;top:204px;right:35px;width:310px;padding:18px 18px 13px;background:#f9f7e7ed;border:1px solid #fffaf0;border-radius:14px;backdrop-filter:blur(15px);z-index:8;box-shadow:0 10px 35px #3e5b3120}.monitor-top{display:flex;align-items:center;justify-content:space-between;font-size:8px;letter-spacing:1px;color:#8e9e7b}.monitor-top button{border:0;background:none;font-size:20px;color:#95a686;padding:0}.monitor-readings{display:flex;gap:20px;margin-top:12px}.monitor-readings>div{flex:1}.monitor-readings span{display:block;font-size:8px;color:#9ba98a}.monitor-readings strong{display:block;font-size:21px;font-weight:500;margin-top:6px;color:#426a43}.monitor-readings small{font-size:8px;margin-left:3px;color:#9ca98b}#mini-chart{height:93px;width:100%;margin:15px 0 6px}#mini-chart svg{display:block;width:100%;height:100%}.monitor-footer{display:flex;justify-content:space-between;font-size:7px;color:#9aa886;font-variant-numeric:tabular-nums}.toast{position:absolute;top:98px;left:50%;transform:translate(-50%,-8px);opacity:0;background:#2e614eea;color:#fffbe9;border:1px solid #a9c29b5e;backdrop-filter:blur(12px);padding:10px 19px;border-radius:25px;font-size:11px;z-index:25;transition:.25s;pointer-events:none;max-width:80vw;text-align:center;box-shadow:0 4px 20px #284d3c25}.toast.show{opacity:1;transform:translate(-50%,0)}.loading-screen{position:absolute;inset:0;background:#dce5cb;display:flex;align-items:center;justify-content:center;flex-direction:column;z-index:40;transition:opacity .5s}.loading-symbol{font-size:56px;color:#63865a;animation:rotate 3s linear infinite}.loading-screen h2{font-size:22px;letter-spacing:2px;font-weight:500;margin:22px 0 12px}.loading-screen p{font-size:12px;color:#93a27c}.loading-screen.finished{opacity:0;pointer-events:none}@keyframes rotate{to{transform:rotate(360deg)}}.result-layer{position:absolute;inset:0;z-index:20;background:#233d2f24;backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center}.result-card{background:linear-gradient(145deg,#fffae9,#f2efda);border:1px solid #fffcf2;border-radius:24px;box-shadow:0 25px 90px #1e382c40;max-width:440px;width:calc(100% - 40px);text-align:center;padding:28px 35px 23px;position:relative}.result-stamp{display:block;font-size:51px;color:#b28d4b;line-height:1.3;margin-bottom:9px}.result-card>.eyebrow{font-size:8px;color:#a9a583;letter-spacing:2px}.result-card h2{font-size:26px;font-weight:500;margin:15px 0 10px;letter-spacing:1px}.result-subtitle{font-size:11px;color:#8a9976;line-height:1.8;margin:0}.result-metrics{display:flex;justify-content:center;gap:40px;margin:25px 0 19px;padding:18px 0;border-top:1px dashed #d7ddc3;border-bottom:1px dashed #d7ddc3}.result-metrics>div>span{font-size:9px;color:#a1ab8c}.result-metrics strong{display:block;font-size:33px;line-height:1.4;font-weight:500;color:#4a7749}.result-metrics small{font-size:11px;margin-left:5px;color:#a1ab8c}.result-note{font-size:10px;color:#a5ad92;line-height:1.8}.result-actions{display:flex;gap:10px;margin-top:21px}.result-actions button{flex:1;padding:12px 8px;border-radius:8px;font-size:10px;border:1px solid #b8c6a5;background:#e9eedc;color:#66885d}.result-actions button:last-child{background:#35664b;border-color:#35664b;color:#fff5df}.quiet-button{border:0;background:none;font-size:10px;color:#95a484;margin-top:18px;padding:3px}.quiet-button:hover{text-decoration:underline}dialog{border:1px solid #fffaf0;border-radius:19px;background:#faf7e8;max-width:550px;width:calc(100% - 36px);max-height:80vh;color:var(--ink);padding:32px;box-shadow:0 30px 100px #1b342d40}dialog::backdrop{background:#24473555;backdrop-filter:blur(6px)}#book-close{position:absolute;top:14px;right:19px;font-size:25px;border:0;background:none;color:#99a788}dialog h2{font-size:24px;font-weight:500;margin:14px 0 20px}.book-content{font-size:12px;color:#849574;line-height:1.95}.book-content strong{font-weight:500;color:#527547}.book-content h3{font-weight:500;font-size:14px;color:#527547;margin-bottom:6px}.book-content ol{padding-left:20px}.book-content a{color:#597f4c;text-underline-offset:3px}[hidden]{display:none!important}
@media(max-width:1050px){.quest{left:25px;top:122px;width:185px}.quest h1{font-size:28px}.quest>p{font-size:10px}.game-header{padding:23px 25px}.brand{font-size:19px}.chapter-title{font-size:10px;gap:9px}.environment{right:26px;top:107px}.action-dock{width:min(710px,calc(100% - 110px));padding:17px 20px}.dock-title h2{font-size:17px}.dock-title p{font-size:9px}.stage-emblem{height:40px;width:40px}.primary-action{padding:11px 12px;min-width:117px;font-size:11px}.world-controls{right:23px;bottom:258px}.world-controls button span{display:none}.quest-steps{width:150px}.inspect,.monitor{right:24px}.game-footer{left:25px;right:25px}.game-footer>span:first-child{font-size:7px}.game-footer>span:nth-child(2){font-size:7px}}
@media(max-width:700px){.game-header{padding:17px 18px}.brand{font-size:17px;gap:8px;letter-spacing:1px}.brand-mark{height:37px;width:37px}.brand-mark svg{width:28px}.brand small{font-size:6px;letter-spacing:1.8px;margin-top:4px}.header-actions{gap:6px}.header-actions button{height:34px;min-width:34px;padding:8px;border-radius:8px}.header-actions svg{width:16px;height:16px}.header-actions button span{display:none}.chapter-title{display:none}.quest{top:91px;left:20px;width:190px}.quest>.eyebrow{font-size:6px;letter-spacing:1.2px}.quest h1{font-size:24px;line-height:1.35;letter-spacing:1px;margin:9px 0 7px}.quest h1 br{display:none}.quest>p{font-size:9px;line-height:1.7;margin-bottom:13px;max-width:160px}.quest>p br{display:none}.quest-steps{flex-direction:row;width:auto;gap:9px}.quest-steps button{gap:0;padding:0;border:0;background:none!important}.quest-steps button>span:nth-child(2),.quest-steps button i{display:none}.quest-steps .step-number{width:25px;height:25px;font-size:8px}.quest-steps button:hover{padding:0}.environment{top:90px;right:20px;gap:7px}.simulation-badge{font-size:7px}.environment select{font-size:9px;max-width:132px}.environment-rh{font-size:7px}.world-controls{right:14px;bottom:262px;gap:6px}.world-controls button{height:31px;width:31px;min-width:31px;min-height:31px;border-radius:7px;font-size:16px;padding:4px}.action-dock{bottom:37px;width:calc(100% - 24px);padding:14px 15px 12px;border-radius:15px}.dock-heading{gap:9px;flex-wrap:wrap;position:relative;padding-right:0}.stage-emblem{height:32px;width:32px;font-size:12px;border-radius:9px;align-self:flex-start;margin-top:4px}.dock-title{flex:1;padding-right:80px}.dock-title h2{font-size:16px;letter-spacing:.2px;margin:4px 0}.dock-title .eyebrow{font-size:5px;letter-spacing:1px}.dock-title p{font-size:8px;line-height:1.65;min-height:25px}.primary-action{position:absolute;right:0;top:7px;min-width:77px;padding:10px 9px;font-size:9px;gap:6px;border-radius:7px}.primary-action>span:last-child{font-size:13px}.recipe-controls{gap:17px;margin-top:11px;padding-top:10px}.recipe-field label{font-size:9px}.recipe-field output{font-size:12px}.recipe-field>span{font-size:7px}.recipe-total{width:69px;padding-left:12px}.recipe-total>span{font-size:6px}.recipe-total strong{font-size:23px;margin-top:10px}.recipe-total small{font-size:8px}.recipe-field input{margin-top:10px;margin-bottom:8px}.heat-controls{margin-top:12px;padding-top:13px;gap:14px}.heat-controls label{font-size:9px;min-width:102px}.heat-controls output{font-size:15px;margin-left:6px}.heat-controls>span{display:none}.stage-progress{margin-top:12px;padding-top:13px;gap:8px;font-size:8px}.progress-note{font-size:6px}.game-footer{bottom:11px;left:17px;right:17px;font-size:6px}.game-footer>span:first-child{font-size:6px;max-width:60%}.game-footer>span:nth-child(2){display:none}.game-footer button span{font-size:7px}.game-footer button{font-size:12px}.hotspot{font-size:8px;padding:4px 7px 4px 4px;gap:4px}.hotspot .hotspot-number{height:18px;width:18px;font-size:7px}.hotspot.current{box-shadow:0 0 0 3px #f9f6e850,0 4px 12px #3e5b3130}.hotspot:after{height:9px}.inspect{right:15px;top:235px;width:202px;padding:17px}.inspect h2{font-size:14px}.inspect p{font-size:9px}.inspect strong{font-size:20px}.monitor{right:15px;top:210px;width:270px;padding:15px}.monitor-readings strong{font-size:19px}.monitor-readings span{font-size:7px}.monitor-readings{gap:13px}.toast{top:72px;font-size:9px;padding:8px 14px;max-width:85vw;white-space:nowrap}.result-card{padding:24px 25px 20px}.result-card h2{font-size:24px}.result-subtitle{font-size:10px}.result-stamp{font-size:44px}.result-metrics{margin:20px 0 16px;padding:14px 0}.result-metrics strong{font-size:28px}dialog{padding:28px 24px}dialog h2{font-size:21px}.book-content{font-size:11px}.loading-screen h2{font-size:19px}.loading-screen p{font-size:10px}}
@media(max-height:650px) and (min-width:701px){.game-header{padding-top:15px}.quest{top:100px}.quest h1{font-size:25px}.quest>p{display:none}.quest-steps{gap:2px}.environment{top:88px}.action-dock{bottom:34px;padding:13px 19px;width:660px}.dock-title h2{font-size:16px}.recipe-controls{margin-top:10px;padding-top:9px}.world-controls{bottom:210px}.game-footer{bottom:8px}.inspect,.monitor{top:170px}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;transition-duration:.01ms!important}}
/* Instrument setup: a compact game workbench, with the 3D scene kept in view. */
.condition-controls{border-top:1px solid #dce3cc;margin-top:12px;padding-top:10px}.setup-tabs{display:flex;gap:7px;margin-bottom:10px}.setup-tabs button{border:0;border-radius:6px;background:#e8ebd9;color:#81916d;font-size:10px;padding:7px 13px}.setup-tabs button.selected{color:#fff9e9;background:#436e51}.tool-row{display:flex;gap:8px;align-items:center;margin:9px 0}.tool-row button{border:1px solid #bfcdae;background:#edf0df;border-radius:6px;padding:7px 12px;font-size:10px;color:#4f7449}.tool-row button:not(:disabled):hover{background:#dce6ce}.tool-row button.quiet-tool{margin-left:auto;background:transparent}.probe-status-line{display:flex;align-items:center;justify-content:space-between;font-size:11px;color:#708767}.probe-status-line strong{font-size:10px;color:#b07b45;background:#ece5cb;padding:4px 9px;border-radius:5px}.probe-status-line strong.valid{background:#dce8ce;color:#436d43}.depth-label{display:flex;align-items:center;justify-content:space-between;font-size:9px;color:#758b69;margin-top:10px}.depth-label output{font-size:10px;color:#51774d}#probe-depth{appearance:none;width:100%;height:6px;border-radius:5px;background:linear-gradient(to right,#d5ddc5 0% 40%,#8cba79 40% 60%,#d5ddc5 60% 100%);margin:10px 0 5px;cursor:pointer}#probe-depth::-webkit-slider-thumb,#chamber-target::-webkit-slider-thumb{appearance:none;width:15px;height:15px;background:#396546;border:3px solid #fff5dc;border-radius:50%;box-shadow:0 0 0 1px #779568}#probe-depth:disabled{opacity:.4;cursor:default}.depth-scale{display:flex;justify-content:space-between;font-size:7px;color:#98a784}.setup-note{font-size:9px;line-height:1.65;color:#829474;margin:8px 0 0}.chamber-readings{display:flex;align-items:center;gap:25px}.chamber-readings>div>span{display:block;color:#8d9c7c;font-size:8px}.chamber-readings strong{font-size:22px;font-weight:500;color:#466f49}.chamber-readings small{font-size:9px;color:#97a682;margin-left:5px}#chamber-operation{margin-left:auto;background:#e4ead6;border:1px solid #d3dfc3;border-radius:6px;padding:5px 10px;color:#658752;font-size:9px}.chamber-modes{display:flex;gap:8px;margin-top:8px}.chamber-modes button{border:1px solid #cad5b7;border-radius:6px;background:transparent;font-size:10px;color:#839471;padding:6px 11px}.chamber-modes button[aria-pressed=true]{background:#dce8ce;color:#35663d;border-color:#99b88a}.target-row{display:flex;align-items:center;gap:16px;margin:11px 0}.target-row label{font-size:9px;color:#7b916a;min-width:76px}.target-row output{font-size:12px;color:#4a7344;min-width:75px;text-align:right}#chamber-target{appearance:none;flex:1;width:100%;min-width:40px;height:4px;border-radius:4px;background:#cbd9bc;cursor:pointer}.chamber-buttons{margin-bottom:0}.probe-hotspot{position:absolute;z-index:4;transform:translate(-50%,-100%);background:#fff8e8;color:#496c42;border:1px solid #d2bb80;border-radius:23px;padding:10px 16px;box-shadow:0 0 0 6px #f9efd85c,0 8px 20px #20452c25;white-space:nowrap;font-size:11px}.probe-hotspot.target{background:#457a52;color:#fffbed;border-color:#b4d49b}.probe-hotspot:after{content:'';position:absolute;height:24px;width:1px;background:#bca976;left:50%;top:100%}.chart-empty{font-size:11px;color:#94a383;text-align:center;padding-top:28px}.conditioning .world-controls{bottom:370px}.conditioning .action-dock{width:min(750px,calc(100% - 100px))}.conditioning .dock-title p{max-width:425px}.conditioning .quest-steps{gap:2px}.conditioning .primary-action{min-width:135px}
@media(max-width:700px){.condition-controls{margin-top:9px;padding-top:8px}.conditioning .action-dock{width:calc(100% - 24px);padding:12px 14px 10px}.conditioning .quest{top:83px}.conditioning .quest h1{font-size:19px;margin:4px 0}.conditioning .quest>p,.conditioning .quest>.eyebrow{display:none}.conditioning .quest-steps{margin-top:10px;gap:7px}.conditioning .environment{top:84px}.conditioning .world-controls{bottom:367px}.conditioning .primary-action{min-width:90px;font-size:8px;gap:4px}.conditioning .dock-title{padding-right:92px}.conditioning .dock-title h2{font-size:14px}.conditioning .dock-title p{font-size:8px}.setup-tabs{margin-bottom:8px}.setup-tabs button{padding:6px 10px;font-size:9px}.tool-row{gap:7px;margin:7px 0}.tool-row button{font-size:9px;padding:6px 9px}.probe-status-line{font-size:10px}.probe-status-line strong{font-size:8px}.depth-label{font-size:8px}.depth-label output{font-size:9px}.setup-note{font-size:8px;line-height:1.55;margin-top:7px}.chamber-readings{gap:19px}.chamber-readings strong{font-size:20px}.chamber-readings>div>span{font-size:7px}.chamber-readings small{font-size:7px;margin-left:3px}#chamber-operation{font-size:8px;padding:4px 7px}.chamber-modes{margin-top:6px;gap:6px}.chamber-modes button{font-size:9px;padding:5px 9px}.target-row{gap:10px;margin:9px 0}.target-row label{font-size:8px;min-width:67px}.target-row output{font-size:10px;min-width:65px}.probe-hotspot{font-size:9px;padding:8px 12px}.world-controls{bottom:252px;gap:5px}.world-controls button{height:28px;min-height:28px}.conditioning .inspect{top:170px}}
@media(max-height:730px) and (min-width:701px){.conditioning .action-dock{padding-top:12px;padding-bottom:10px;bottom:30px}.conditioning .condition-controls{margin-top:8px;padding-top:7px}.conditioning .setup-tabs{margin-bottom:7px}.conditioning .tool-row{margin:6px 0}.conditioning .setup-note{margin-top:5px}.conditioning .world-controls{bottom:330px}.conditioning .quest>p{display:none}.conditioning .quest h1{font-size:25px}.conditioning .quest{top:102px}.conditioning .quest-steps{gap:1px}.conditioning .quest-steps button{padding-top:5px;padding-bottom:5px}}

@media(max-width:700px){.conditioning .quest h1{max-width:160px}.conditioning .world-controls{top:179px;bottom:auto}.conditioning .world-controls #gallery,.conditioning .world-controls #cutaway,.conditioning .world-controls #reset-camera{display:none}}

/* Keep the next action and the experiment's learning loop visible. */
.condition-checks{display:flex;gap:7px;list-style:none;margin:0 0 10px;padding:0;flex-wrap:wrap}.condition-checks li{font-size:10px;color:#77856b;padding:4px 7px;background:#e9ecdd;border-radius:5px}.condition-checks b{font-weight:500;margin-right:4px}.condition-checks .done{color:#326746;background:#dce9d2}.setup-tabs #condition-pause{margin-left:auto;background:transparent;border:1px solid #a5b898;color:#40694d}.vacuum-route{font-size:10px;line-height:1.6;color:#79612e;background:#f0e7cf;padding:7px 10px;border-radius:6px;margin:9px 0}.pending-reading{font-size:11px!important;color:#7f8c75!important;white-space:nowrap}.comparison-notice{font-size:11px;line-height:1.7;margin:12px 0 0;background:#e1ead7;padding:8px 12px;border-radius:7px;color:#436b48}
.dock-title p,.setup-note{color:#637752}
.result-card{max-width:570px;max-height:calc(100dvh - 40px);overflow-y:auto;text-align:left;padding:25px 30px}.result-card h2{font-size:24px;margin:10px 0 5px}.result-subtitle{color:#718164}.result-metrics{justify-content:space-between;gap:15px;margin:17px 0;padding:12px 0}.result-metrics>div>span{color:#77876a;font-size:10px}.result-metrics strong{font-size:29px}.experiment-summary{margin:0;display:grid;gap:7px;font-size:11px;line-height:1.6}.experiment-summary>div{display:grid;grid-template-columns:34px 1fr;gap:12px}.experiment-summary dt{color:#8a977b}.experiment-summary dd{margin:0;color:#4d674b}.experiment-feedback{background:#e8eddc;border-radius:10px;padding:12px 14px;margin-top:15px}.experiment-feedback h3{font-size:12px;font-weight:600;margin:0 0 5px}.experiment-feedback p{font-size:12px;line-height:1.7;margin:0}.experiment-feedback small{display:block;font-size:10px;color:#79896b;line-height:1.7;margin-top:4px}.experiment-feedback .result-boundary{font-size:10px;color:#79896b;margin-top:7px}.next-experiment{font-size:11px;line-height:1.75;color:#597151;margin:14px 0 8px}#compare-again{width:100%;border:1px solid #35664b;border-radius:8px;background:#35664b;color:#fff8e5;padding:12px;font-size:12px}.result-note{font-size:9px;line-height:1.7;color:#879376;margin:10px 0}.result-actions{margin-top:10px}.result-actions button:last-child{background:transparent;color:#66885d;border-color:#b8c6a5}.quiet-button{display:block;margin:12px auto 0}.toast{white-space:normal;max-width:min(480px,85vw);line-height:1.6}
@media(max-width:700px){.condition-checks{gap:4px;margin-bottom:8px}.condition-checks li{font-size:8px;padding:3px 5px}.vacuum-route{font-size:8px;padding:5px 7px;margin:7px 0}.setup-tabs #condition-pause{font-size:9px;padding:5px 8px}.result-card{width:calc(100% - 24px);max-height:calc(100dvh - 24px);padding:21px 20px}.result-card h2{font-size:21px}.result-metrics strong{font-size:25px}.result-metrics>div>span{font-size:8px}.experiment-summary{font-size:10px;gap:6px}.experiment-feedback p{font-size:11px}.experiment-feedback small,.experiment-feedback .result-boundary{font-size:9px}.next-experiment{font-size:10px}.comparison-notice{font-size:9px}.conditioning .world-controls{top:164px}}
@media(max-width:700px){.dock-title p,.conditioning .dock-title p{font-size:10px;line-height:1.7}.primary-action,.conditioning .primary-action{font-size:10px;min-height:38px}.conditioning .action-dock{max-height:calc(100dvh - 190px);overflow-y:auto}.setup-tabs button,.tool-row button,.chamber-modes button{font-size:11px;min-height:32px}.setup-tabs #condition-pause{font-size:10px}.condition-checks li{font-size:9px}.setup-note,.vacuum-route{font-size:10px;line-height:1.6}.target-row label{font-size:10px}.probe-status-line{font-size:11px}.depth-label,.depth-label output{font-size:10px}.stage-progress{font-size:10px}.progress-note{font-size:8px}}

/* Each production step introduces one operation and its controls. */
.quest-progress{font-size:10px;color:#567750;letter-spacing:.5px;margin:0 0 10px}.quest .unlock-next{font-size:10px;line-height:1.6;margin:14px 0 0;color:#6f8661;max-width:205px}.recipe-controls{display:grid;grid-template-columns:1fr 110px;gap:10px 24px}.ingredient-ledger{grid-column:1;grid-row:1;font-size:11px;color:#607b54;line-height:1.7}.recipe-field{grid-column:1;grid-row:2}.recipe-total{grid-column:2;grid-row:1 / span 2;width:auto;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.production-note{font-size:10px;line-height:1.7;color:#728761;border-top:1px solid #dce3cc;padding-top:12px;margin:13px 0 0}.quest-steps{gap:2px}.primary-action{white-space:nowrap}
@media(max-width:700px){.quest-progress{font-size:9px;margin:6px 0 10px}.quest .unlock-next{font-size:9px;margin-top:10px;max-width:185px}.quest-steps{gap:7px}.recipe-controls{grid-template-columns:1fr 70px;gap:7px 15px}.ingredient-ledger,.production-note{font-size:10px}.recipe-total>span{font-size:9px}.dock-title,.conditioning .dock-title{padding-right:0}.dock-heading,.conditioning .dock-heading{padding-bottom:47px}.primary-action,.conditioning .primary-action{top:auto;bottom:0;right:0;min-width:145px;min-height:37px}.conditioning .quest-progress{margin:5px 0 8px}.conditioning .quest .unlock-next{max-width:160px}.toast{white-space:normal}}

@media(max-width:700px){body:not([data-stage="weigh"]) .quest{top:83px}body:not([data-stage="weigh"]) .quest h1{font-size:19px;max-width:160px;margin:4px 0}body:not([data-stage="weigh"]) .quest>p:not(.unlock-next),body:not([data-stage="weigh"]) .quest>.eyebrow{display:none}body:not([data-stage="weigh"]) .quest-progress{margin:5px 0 8px}}

/* Leave the physically scaled board unobstructed while inspecting on a phone. */
@media(max-width:700px){.hardware-closeup .quest,.hardware-closeup .environment,.hardware-closeup .action-dock{display:none}.hardware-closeup .inspect{top:auto;bottom:38px;left:15px;right:15px;width:auto}.hardware-closeup .inspect p{font-size:11px;line-height:1.7}.hardware-closeup .world-controls{top:84px;bottom:auto}}

.heat-protocol{margin-top:12px;border-top:1px solid #dce3cc;padding-top:12px}.heat-reference-heading{display:flex;align-items:center;gap:10px;font-size:11px}.heat-reference-heading strong{font-weight:500}.heat-reference-heading a{margin-left:auto;color:#62856b;font-size:10px;white-space:nowrap}.heat-reference-heading button{border:1px solid #b9c9a9;border-radius:5px;background:#e8eddb;padding:4px 7px;font-size:10px}.heat-readings{display:grid;grid-template-columns:1fr 1fr 1.4fr;gap:15px;margin:12px 0}.heat-readings span{display:block;color:#7b906f;font-size:9px;margin-bottom:5px}.heat-readings strong{font-size:19px;font-weight:500;font-variant-numeric:tabular-nums;color:#365f45}.heat-readings>div:last-child strong{font-size:16px}.heat-protocol p{font-size:10px;line-height:1.6;color:#6b815f;margin:6px 0}.heat-protocol>small{display:block;color:#8d906f;font-size:9px;line-height:1.5}body[data-stage="heat"] .world-controls{bottom:380px}
body[data-stage="heat"] .stage-progress .progress-note{display:none}
@media(max-width:700px){.heat-protocol{margin-top:9px;padding-top:9px}.heat-reference-heading{font-size:10px;gap:6px}.heat-reference-heading a{font-size:9px}.heat-reference-heading button{font-size:9px}.heat-readings{gap:8px;margin:10px 0}.heat-readings strong{font-size:18px}.heat-readings>div:last-child strong{font-size:14px}.heat-readings span{font-size:9px}.heat-protocol p{font-size:10px}.heat-protocol>small{font-size:9px}body[data-stage="heat"] .world-controls{top:164px;bottom:auto}body[data-stage="heat"] .action-dock{max-height:calc(100dvh - 220px);overflow-y:auto}.hardware-closeup[data-stage="heat"] .world-controls{top:84px}}

/* Unsupported devices stay outside the Three.js entry point. */
.desktop-gate{position:fixed;inset:0;z-index:100;display:grid;place-items:center;overflow-y:auto;padding:28px 20px;background:radial-gradient(ellipse at 25% 15%,#eef0db 0,transparent 65%),#cbd7bd;outline:none}.desktop-gate-card{width:min(100%,480px);padding:35px 30px;border:1px solid #fffbea;border-radius:22px;background:#fffbedeb;box-shadow:0 18px 60px #39553d18;text-align:center}.desktop-gate-brand{display:block;font-size:19px;letter-spacing:2px;color:#315e48}.desktop-gate-brand small{display:block;font-size:8px;letter-spacing:2.4px;margin-top:7px;color:#7e9170}.desktop-gate-icon{display:block;width:96px;height:80px;color:#537c57;margin:30px auto 22px}.desktop-gate h1{font-size:23px;line-height:1.5;font-weight:500;margin:0 0 13px;letter-spacing:.5px}.desktop-gate p{font-size:13px;line-height:1.9;color:#607859;margin:8px 0}.desktop-gate .desktop-gate-requirements{font-size:12px;color:#7e8d71}.desktop-gate .desktop-gate-status{font-size:11px;border-top:1px solid #e0e5d0;margin-top:24px;padding-top:18px;color:#8a947b}.desktop-gated #game{display:none!important;pointer-events:none}
@media(max-width:420px){.desktop-gate-card{padding:28px 21px}.desktop-gate h1{font-size:21px}.desktop-gate p{font-size:12px}.desktop-gate .desktop-gate-requirements{font-size:11px}}

/* Keep data and camera tools outside the action area on short desktop windows. */
@media(min-width:1024px) and (max-height:800px){
  .monitor{top:76px;right:24px;width:288px;padding:10px 12px}
  .monitor-readings{gap:12px;margin-top:6px}
  .monitor-readings strong{font-size:18px;margin-top:3px}
  .monitor #mini-chart{height:58px;margin:7px 0 5px}
  .monitor-footer{font-size:7px}
  .environment{top:80px;right:334px;gap:5px}
  .world-controls,.conditioning .world-controls,body[data-stage="heat"] .world-controls{top:auto;bottom:40px;right:24px;display:grid;grid-template-columns:repeat(2,36px);gap:6px}
  .world-controls button{width:36px;height:34px;min-width:36px;min-height:34px;padding:5px;font-size:17px}
  .world-controls button span{display:none}
}
