:root{font-family:"Avenir Next","Trebuchet MS",sans-serif;color:#f5eddc;background:#101f34;font-synthesis:none;--mint:#86dfce;--gold:#ffda83;--coral:#f18d91}*{box-sizing:border-box}body{margin:0;background:radial-gradient(ellipse at top right,#284b66,transparent 60%),#101f34}main{max-width:1360px;padding:26px 40px;margin:auto}a{color:inherit}header,nav{display:flex;align-items:center;gap:26px}header{justify-content:space-between}.brand{display:flex;gap:12px;align-items:center;color:var(--gold);font-size:34px;text-decoration:none}.brand span{font-size:20px;color:#f5eddc;font-weight:800}nav{font-size:13px;color:#bdd0dc}nav a{text-decoration:none}nav span{padding:8px 13px;border:1px solid #86dfce66;border-radius:20px;color:var(--mint)}.heading{display:flex;justify-content:space-between;align-items:end;margin:34px 0 24px}.eyebrow{color:var(--mint);font-weight:700;font-size:13px;margin:0 0 8px}h1{font-size:clamp(27px,3.4vw,45px);letter-spacing:-1.5px;margin:0;line-height:1.1}.heading>p{font-size:14px;color:#bbccd8;line-height:1.6;margin:0 0 2px}.mission{border:1px solid #7595a560;border-radius:25px;overflow:hidden;background:#203b50;box-shadow:0 25px 80px #050d1b55}.viewport{position:relative;aspect-ratio:1200/640;background:#162e4c;overflow:hidden}canvas{width:100%;height:100%;display:block}.scene-top{position:absolute;top:20px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;gap:15px}.scene-top>span{font-size:13px;background:#14263cbb;padding:10px 16px;border-radius:20px;color:#e5e8e0}.scene-top button{background:#14263ccc;color:#d9e7e6;border:1px solid #8fafb56b;padding:10px 17px;border-radius:20px;font-size:12px}button,select{font:inherit}button{cursor:pointer;touch-action:manipulation}button:disabled{opacity:.45;cursor:default}button:focus-visible,a:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--mint);outline-offset:5px}button:not(:disabled):hover{filter:brightness(1.1)}.welcome,.complete{position:absolute;left:5%;top:22%;max-width:420px}.radio{color:var(--mint);font-size:13px;font-weight:700}h2{letter-spacing:-.8px}.welcome h2,.complete h2,.break-panel h2{font-size:clamp(28px,3.7vw,48px);line-height:1.12;margin:14px 0}.welcome p,.complete p,.break-panel p{color:#d0dfdf;font-size:15px;line-height:1.65}.welcome button:not(.text-button),.complete button,.break-panel button{display:flex;align-items:center;gap:35px;border:0;border-bottom:4px solid #c9a05a;border-radius:12px;background:var(--gold);color:#293c4c;padding:14px 22px;font-weight:800;font-size:16px}.text-button{border:0;background:transparent;color:#d0dfdf;padding:14px 0;font-size:13px;text-decoration:underline;text-underline-offset:4px}.console{padding:20px 28px 25px;background:#e9e4d6;color:#243d4e}.jobs{list-style:none;display:flex;padding:0 0 17px;margin:0 0 20px;border-bottom:1px solid #bbc1b8;gap:36px}.jobs li{display:flex;align-items:center;gap:9px;color:#687779;font-size:13px;font-weight:700}.jobs li span{border:1px solid #a7b4ae;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;font-size:12px}.jobs li.current{color:#243d4e}.jobs li.current span{background:#264c56;color:#fff;border-color:#264c56}.jobs li.done span{background:#b6dacc;border-color:#b6dacc}.task{display:grid;grid-template-columns:1fr 40%;gap:30px;align-items:center}#tool-name{font-size:12px;color:#4a6b6f;font-weight:700}.task h2{font-size:25px;margin:5px 0 7px}.task p{font-size:13px;color:#536d75;line-height:1.5;margin:0;max-width:62ch}.charge-label{display:flex;justify-content:space-between;font-size:12px;gap:10px;margin-bottom:10px}.charge-label span{color:#617772}#charge-meter{height:19px;background:#c6cfc5;padding:4px;border-radius:12px}#charge-fill{display:block;width:0;height:100%;background:#387a73;border-radius:8px;transition:width .45s ease-out}.demo-controls{display:flex;align-items:center;gap:17px;margin-top:20px}.demo-controls button{border:0;border-bottom:4px solid #274a53;background:#3d6d75;color:white;padding:12px 20px;border-radius:12px;font-weight:800;user-select:none;touch-action:none}.demo-controls button[aria-pressed="true"]{background:#255750;transform:translateY(2px);border-bottom-width:2px}.demo-controls button span{padding-left:20px}.demo-controls p{font-size:12px;color:#526e72;line-height:1.5;margin:0}details{border-bottom:1px solid #6d8a9650;padding:18px 4px;color:#c3d5da}summary{cursor:pointer;font-size:14px;font-weight:700}summary span{font-size:12px;font-weight:400;color:#91b4c0;margin-left:18px}.setup-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:19px}.setup-row label{display:flex;align-items:center;gap:10px;font-size:13px}select,.sensor-buttons button{background:#263e53;color:#eef0e4;border:1px solid #7292a0;border-radius:8px;padding:9px 13px;font-size:12px}.sensor-buttons{display:flex;gap:8px}output{color:var(--mint);font-weight:700}#sensor-status{font-size:13px;margin:15px 0 8px}.setup-note{font-size:12px;color:#93aebc;max-width:90ch;line-height:1.6;margin:0 0 5px}footer{display:flex;justify-content:space-between;font-size:12px;color:#96b1be;padding:20px 0}.break-panel{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;flex-direction:column;background:#12283eeb;text-align:center;padding:25px}.complete{top:26%}.celebration{position:absolute;bottom:28px;left:50%;transform:translateX(-50%);padding:13px 22px;background:#152d43e8;border:1px solid #89d7c899;border-radius:16px;font-size:19px;font-weight:800;text-align:center;min-width:280px;max-width:90%}[hidden]{display:none!important}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}@media(max-width:760px){main{padding:18px}nav{gap:12px}nav span{display:none}.brand span{font-size:16px}.heading{margin-top:25px}.heading>p{display:none}.task{grid-template-columns:1fr;gap:18px}.jobs{gap:17px;justify-content:space-between}.jobs li{font-size:11px;gap:5px}.console{padding:18px}.viewport{aspect-ratio:1.25}.welcome,.complete{top:23%;left:7%;max-width:80%}.welcome h2,.complete h2{font-size:34px}.welcome p{font-size:13px}.scene-top{top:12px;left:12px;right:12px}.scene-top>span{font-size:11px;padding:8px 10px}.scene-top button{padding:8px 10px}summary span{display:block;margin:8px 0 0 16px}.charge-label{font-size:11px}footer{font-size:10px;gap:15px}nav a{font-size:11px}.celebration{font-size:15px;bottom:15px}}@media(prefers-reduced-motion:reduce){#charge-fill{transition:none}}
