@import url('https://fonts.googleapis.com/css2?family=IBM+Plex+Mono:wght@400;500;600&family=IBM+Plex+Sans:wght@400;500;600&display=swap');:root{--bg:#060e10;--panel:#102024;--mint:#a8edc5;--text:#dceae3;--muted:#69887f;--line:#28413c}*{box-sizing:border-box}[hidden]{display:none!important}html{scroll-behavior:smooth}body{margin:0;background:var(--bg);color:var(--text);font-family:'IBM Plex Sans',sans-serif}a{color:inherit;text-decoration:none}button{cursor:pointer}button,input{font:inherit}button:disabled{opacity:.35;cursor:default}button:focus-visible,a:focus-visible,input:focus-visible{outline:2px solid var(--mint);outline-offset:4px}header{padding:25px 4%;display:flex;justify-content:space-between;align-items:center;border-bottom:1px solid var(--line)}.brand{font-size:24px;font-weight:600;letter-spacing:-.04em;display:flex;gap:10px;align-items:center}.logo{font-size:40px;color:var(--mint)}.brand small{font:8px 'IBM Plex Mono',monospace;letter-spacing:.1em;border-left:1px solid #49695c;padding-left:20px;margin-left:10px}.fiction-label{display:block;color:var(--muted);font-size:8px;margin-bottom:6px}header>div{font:9px 'IBM Plex Mono';text-align:right;letter-spacing:.1em}.system-bar{padding:13px 4%;display:flex;justify-content:space-between;align-items:center;font:9px 'IBM Plex Mono';color:#7fa28f;border-bottom:1px solid var(--line)}.system-bar b{font-weight:400}.system-bar i{display:inline-block;width:5px;height:5px;border-radius:50%;background:#81998b;margin-right:10px}.system-bar button{background:none;border:0;color:var(--mint);font:9px 'IBM Plex Mono';padding:0}.receiver{display:grid;grid-template-columns:70% 30%;min-height:650px;border-bottom:1px solid var(--line)}.scope{position:relative;min-height:650px;overflow:hidden}.scope-head,.scope-bottom{position:absolute;left:5.7%;right:5.7%;display:flex;justify-content:space-between;font:8px 'IBM Plex Mono';letter-spacing:.08em;color:#6e9b85;z-index:3}.scope-head{top:28px}.scope-bottom{bottom:27px}.scope-image{position:absolute;inset:0;background:url('assets/hero.webp') center/cover;opacity:.28;transition:opacity 1s}.scope.recovered .scope-image{opacity:.75}.scope.recovered canvas{opacity:.12}.grid{position:absolute;inset:0;background-image:linear-gradient(#a3d9bf07 1px,transparent 1px),linear-gradient(90deg,#a3d9bf07 1px,transparent 1px);background-size:45px 45px;pointer-events:none}.scope-intro{position:absolute;left:8%;top:25%;z-index:2}.eyebrow{font:9px 'IBM Plex Mono';letter-spacing:.12em;color:#77a08a}h1,h2{font-weight:500;letter-spacing:-.055em;line-height:1.02}h1{font-size:clamp(46px,5vw,80px);margin:25px 0}em{color:var(--mint);font-style:normal}.scope-intro>p:not(.eyebrow){font-size:15px;line-height:1.7;color:#a4bdad}.button{display:inline-flex;align-items:center;justify-content:space-between;gap:50px;border:1px solid #a8edc5;background:#a8edc5;color:#10271a;padding:15px 20px;font:600 10px 'IBM Plex Mono';letter-spacing:.1em}.button:hover:not(:disabled){background:#d5ffe5}.scope-intro .button{margin-top:15px}canvas{position:absolute;width:100%;height:55%;left:0;top:24%;opacity:.65;pointer-events:none;transition:opacity .5s}.scope-intro~canvas{opacity:.25}.scope.scanning canvas{opacity:.9}.instrument{background:#0d1c1e;border-left:1px solid var(--line);padding:30px 32px}.panel-title{display:flex;justify-content:space-between;font:8px 'IBM Plex Mono';letter-spacing:.1em;color:#6f9984;border-bottom:1px solid var(--line);padding-bottom:18px}.quality{display:flex;justify-content:space-between;align-items:center;margin-top:30px}.quality>span{font:9px 'IBM Plex Mono';color:#8caf99}.quality>span small{display:block;color:#4d7360;font-size:7px;margin-top:6px}.quality strong{font:400 45px 'IBM Plex Mono';color:var(--mint);letter-spacing:-.08em}.quality strong small{font-size:13px;letter-spacing:0;margin-left:3px}.quality-track{height:3px;background:#1b372a;margin:12px 0 35px}.quality-track>div{height:100%;background:var(--mint);width:0;transition:width .2s}.sliders label{display:flex;justify-content:space-between;font:9px 'IBM Plex Mono';letter-spacing:.07em;color:#8cb39b}.sliders output{color:#d9f4e3;font-size:12px}.sliders input{width:100%;accent-color:#a8edc5;margin:16px 0 6px;cursor:pointer;height:5px}.sliders input:disabled{cursor:default;opacity:.3}.hint-row{display:flex;justify-content:space-between;font:7px 'IBM Plex Mono';color:#456b57;margin-bottom:28px}.hint-row>span:nth-child(2){color:#9bd6ad}.lock{width:100%;margin-top:5px}#feedback{font:10px/1.7 'IBM Plex Mono';color:#91b69e;min-height:40px}.text-button{border:0;background:none;color:#a8edc5;font:9px 'IBM Plex Mono';padding:8px 0;letter-spacing:.06em}.help{color:#d2b879}#targets{font:10px 'IBM Plex Mono';color:#d2b879}.mini-guide{border-top:1px solid var(--line);padding-top:20px;margin-top:15px}.mini-guide>span{font:8px 'IBM Plex Mono';color:#739d83}.mini-guide p{font-size:11px;line-height:1.7;color:#5e8770}.decoded,.complete{position:absolute;left:8%;right:8%;top:31%;z-index:4}.decoded h2{font-size:clamp(32px,3.5vw,55px);max-width:620px;line-height:1.15;text-shadow:0 2px 20px #000}.decoded .eyebrow{color:#d0ffe0}.complete h2{font-size:clamp(45px,5vw,80px)}.complete .text-button{display:block;margin-top:20px}.log{padding:30px 4% 40px;border-bottom:1px solid var(--line);background:#091514}.log-header{display:flex;justify-content:space-between;font:9px 'IBM Plex Mono';color:#6b957a;letter-spacing:.1em}.empty-log{font:10px 'IBM Plex Mono';color:#3d6650;margin:28px 0 0}.log-row{display:grid;grid-template-columns:70px 110px 1fr;gap:20px;margin-top:25px;font:11px/1.6 'IBM Plex Mono';color:#a2ccb1}.log-row>span{color:#537f62}.log-row strong{font-weight:500}.about{padding:90px 8%;display:grid;grid-template-columns:1.3fr 1fr;gap:10%;align-items:end}.about h2{font-size:clamp(45px,5vw,75px);margin:25px 0 0}.about>div:last-child{max-width:420px;color:#799e86;font-size:14px;line-height:1.8}footer{border-top:1px solid var(--line);padding:30px 4%;display:flex;justify-content:space-between;align-items:center;gap:25px;font:9px 'IBM Plex Mono';color:#678f73}footer>strong{font-family:'IBM Plex Sans';font-size:20px;color:#b4d1bc;letter-spacing:-.04em}footer p{font:10px/1.7 'IBM Plex Sans';max-width:350px}.contract{padding:15px 4%;display:flex;flex-wrap:wrap;gap:15px;border-bottom:1px solid #a8edc5;font:10px 'IBM Plex Mono';color:var(--mint)}.contract code{overflow-wrap:anywhere}.contract button{border:0;background:none;color:inherit;font:inherit}.image-unavailable{background:#0d2520}@media(max-width:900px){.receiver{grid-template-columns:60% 40%}.scope{min-height:700px}.instrument{padding:28px 20px}.scope-head>span:last-child{display:none}h1{font-size:42px}.scope-intro{left:8%;right:5%}.button{gap:20px}.brand small{display:none}.system-bar>span:last-child{display:none}}@media(max-width:650px){.receiver{grid-template-columns:1fr}.scope{min-height:520px}.scope-intro{top:23%}.scope h1{font-size:45px}.instrument{border-left:0;border-top:1px solid var(--line)}.about{grid-template-columns:1fr;gap:25px;padding:60px 6%}.about h2{font-size:48px}.log-row{grid-template-columns:40px 1fr}.log-row strong{grid-column:1 / -1}footer{align-items:start;flex-direction:column}.decoded h2{font-size:32px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}
