:root{--bg: #05070c;--panel: #14171b;--text: #e8ebef;--muted: #8a929d;--line: #23272d;--go: #2f9e5b;--wait: #d99a1e;--stop: #d64545;--r: 3px;color-scheme:dark}*{box-sizing:border-box}html{scroll-behavior:smooth}html,body{margin:0}body{background:var(--bg);color:var(--text);font-family:B612,system-ui,sans-serif;line-height:1.55}.mono,.label,.btn,.hint,th,dt{font-family:B612 Mono,ui-monospace,monospace}.muted{color:var(--muted)}a{color:inherit}.lnav{position:absolute;top:0;left:0;right:0;z-index:3;display:flex;gap:22px;align-items:center;padding:20px 28px;font-family:B612 Mono,monospace;font-size:13px;letter-spacing:.04em}.lnav .wordmark{font-family:B612,sans-serif;font-weight:700;font-size:17px;letter-spacing:0;margin-right:auto;text-decoration:none;color:var(--text)}.lnav a{color:var(--muted);text-decoration:none}.lnav a:hover{color:var(--text)}.hero{position:relative;height:100vh;height:100svh;min-height:560px;overflow:hidden}canvas.stage{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block;z-index:0;pointer-events:none}.hero{z-index:1}.copy{position:absolute;left:0;right:0;bottom:5vh;z-index:2;text-align:center;padding:0 16px;pointer-events:none}h1{font-size:clamp(34px,5.5vw,62px);line-height:1.08;margin:0 0 10px}.copy p{font-size:18px;color:var(--muted);margin:0 auto 26px;max-width:620px}.copy h1,.copy p,.copy .btns,.copy .scroll{opacity:0;transform:translateY(12px);transition:opacity .8s,transform .8s}.copy p{transition-delay:.15s}.copy .btns{transition-delay:.3s}.copy .scroll{transition-delay:.6s}.ready .copy h1,.ready .copy p,.ready .copy .btns,.ready .copy .scroll{opacity:1;transform:none}.btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}.ready .btns,.ready .scroll{pointer-events:auto}.btn{display:inline-block;font-size:14px;letter-spacing:.04em;padding:14px 22px;border:1px solid var(--line);border-radius:var(--r);text-decoration:none;color:var(--text);background:var(--panel)}.btn:hover{border-color:var(--muted)}.btn.solid{background:var(--text);color:var(--bg);border-color:var(--text)}.btn.solid:hover{background:#fff}.hint{display:block;margin-top:16px;font-size:11px;letter-spacing:.1em;color:var(--muted);text-decoration:none;text-transform:uppercase}#skip{transition:opacity .4s}.ready #skip{opacity:0;height:0;margin:0}.capture *{transition:none!important}.info{position:relative;z-index:1;max-width:1200px;margin:0 auto;padding:40px 24px 80px}@media (min-width: 900px){.info section{max-width:640px}.place-left{margin-right:auto}.place-indent{margin-left:8%}.place-right{margin-left:auto}.place-center{margin-left:auto;margin-right:auto;text-align:center}.place-wide{max-width:820px!important}.place-center .hazards{max-width:520px;margin-left:auto;margin-right:auto;text-align:left}}section{padding:56px 0}section.reveal>:not(.fly):not(svg):not(ol):not(.pv){opacity:0;transform:translate(var(--fx, 0),var(--fy, 40px));transition:opacity .8s ease,transform .9s cubic-bezier(.22,.9,.3,1)}section.reveal>.in:not(.fly){opacity:1;transform:none}.w{display:inline-block;white-space:nowrap}.fly .w{position:relative;opacity:0}.fly.in .w{animation:whoosh .9s cubic-bezier(.22,.9,.3,1) both;animation-delay:calc(var(--i) * var(--step))}.fly .w:after{content:"";position:absolute;left:var(--ax, 100%);top:var(--ay, 52%);height:1.5px;width:90px;pointer-events:none;background:linear-gradient(to right,#d6e6ffbf,#d6e6ff00);transform-origin:left center;opacity:0}.fly.in .w:after{animation:streak .9s ease-out both;animation-delay:calc(var(--i) * var(--step))}.dir-r{--fx: 180px;--fy: 0px;--ax: 100%;--ay: 52%;--rot: 0deg}.dir-l{--fx: -180px;--fy: 0px;--ax: 0%;--ay: 52%;--rot: 180deg}.dir-u{--fx: 0px;--fy: 90px;--ax: 50%;--ay: 100%;--rot: 90deg}.dir-d{--fx: 0px;--fy: -90px;--ax: 50%;--ay: 0%;--rot: -90deg}.dir-ur{--fx: 150px;--fy: 90px;--ax: 100%;--ay: 100%;--rot: 31deg}.dir-ul{--fx: -150px;--fy: -90px;--ax: 0%;--ay: 0%;--rot: -149deg}@keyframes whoosh{0%{opacity:0;transform:translate(calc(var(--fx) * 2.2),calc(var(--fy) * 2.2))}12%{opacity:1}80%{transform:translate(calc(var(--fx) * -.03),calc(var(--fy) * -.05))}to{opacity:1;transform:none}}@keyframes streak{0%{opacity:.95;transform:rotate(var(--rot)) scaleX(2.2)}60%{opacity:.35;transform:rotate(var(--rot)) scaleX(.5)}to{opacity:0;transform:rotate(var(--rot)) scaleX(0)}}.label{display:block;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}h2{font-size:clamp(28px,3.8vw,42px);line-height:1.15;margin:0 0 22px}section p{font-size:18px;line-height:1.7;margin:0 0 18px}.link{color:var(--text);text-underline-offset:4px;text-decoration-color:var(--muted)}.story{margin-top:28px}.big{font-weight:700;font-size:clamp(56px,9vw,96px);line-height:.9;color:var(--stop);float:left;margin:6px 18px 0 0}.step{position:relative;padding-left:3.2em}.num{position:absolute;left:0;top:2px;font-family:B612 Mono,monospace;color:var(--muted)}.flow b{color:var(--text)}.flow{color:#c3c8cf}.word{white-space:nowrap}.word.green{color:var(--go)}.word.yellow{color:var(--wait)}.word.red{color:var(--stop)}.word.none{color:var(--muted)}.live-message{font-weight:700}.hazards{list-style:none;margin:0 0 18px;padding:0}.hazard{display:grid;grid-template-columns:18px 8em 1fr 10px;align-items:center;gap:10px;padding:6px 0}.glyph{width:16px;height:16px;fill:none;stroke:var(--muted);stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}.hazard .name{font-family:B612 Mono,monospace;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)}.dot{width:10px;height:10px;justify-self:end;background:var(--muted)}.dot.green{background:var(--go)}.dot.yellow{background:var(--wait)}.dot.red{background:var(--stop)}.hazard:has(.dot.red) .glyph{stroke:var(--stop)}.hazard:has(.dot.red) .name{color:var(--stop)}#live-stats{font-size:15px}.prop-cursor{position:fixed;left:0;top:0;width:44px;height:44px;margin:-22px 0 0 -22px;pointer-events:none;z-index:10;opacity:0;transition:opacity .2s,width .2s,height .2s,margin .2s}.prop-cursor svg{width:100%;height:100%;overflow:visible}.prop-cursor .rot{animation:spin .35s linear infinite}.prop-cursor.fast .rot{animation-duration:.1s}.prop-cursor.big{width:56px;height:56px;margin:-28px 0 0 -28px}.below-hero .prop-cursor{opacity:1}@media (hover: hover) and (pointer: fine){.below-hero,.below-hero *{cursor:none!important}}@media (hover: none),(pointer: coarse){.prop-cursor{display:none}}@keyframes spin{to{transform:rotate(360deg)}}.lfoot{position:relative;z-index:1;background:transparent;display:flex;flex-wrap:wrap;gap:20px;padding:24px 28px;border-top:1px solid var(--line);font-size:13px}.lfoot a{color:var(--muted);text-decoration:none}.lfoot a:hover{color:var(--text)}.lfoot span{margin-left:auto;color:var(--muted)}@media (max-width: 640px){.lnav{padding:16px;gap:14px}.lnav a[href="#live"],.lnav a[href="#how"]{display:none}.copy p{font-size:16px}.hazard{grid-template-columns:18px 1fr 10px}.hazard .name{grid-column:2;grid-row:1}.hazard .detail{grid-column:2;grid-row:2}.dot{grid-column:3;grid-row:1}}@media (prefers-reduced-motion: reduce){*{animation:none!important}html{scroll-behavior:auto}section.reveal>*{opacity:1!important}}.wv{opacity:0}.in .wv{animation:whoosh 1s cubic-bezier(.22,.9,.3,1) both;animation-delay:calc(.1s + var(--i) * .14s)}svg .wv{transform-box:fill-box}.radar{width:100%;max-width:760px;height:auto;display:block;margin:8px 0 18px;overflow:visible}.radar .rings circle{fill:none;stroke:var(--line);stroke-dasharray:3 5}.radar .ray{stroke-width:1;stroke-dasharray:4 6;opacity:0}.radar.in .ray{animation:ray .9s ease 1.3s both}@keyframes ray{0%{opacity:0;stroke-dashoffset:60}to{opacity:.55;stroke-dashoffset:0}}.radar .hg{fill:none;stroke-width:1.3;stroke-linecap:round;stroke-linejoin:round}.radar text{fill:var(--text);font-family:B612 Mono,monospace;font-size:14px;letter-spacing:.03em}.radar .core .arm{stroke:#8a929d;stroke-width:3}.radar .core .rotor{fill:none;stroke:#8a929d;stroke-width:1.2}.radar .core .body{fill:#e8ebef}.flowline{list-style:none;margin:10px 0 18px;padding:0;display:flex;gap:0;align-items:flex-start}.flowline li{flex:1;position:relative;padding:0 18px 0 0;font-size:20px;font-weight:700}.flowline li+li:before{content:"";position:absolute;left:-18px;right:calc(100% + 0px);top:14px}.flowline .n{display:block;font-family:B612 Mono,monospace;font-weight:400;font-size:13px;color:var(--muted);padding-bottom:10px;margin-bottom:10px;border-bottom:1px solid var(--line)}.verdicts b{font-size:22px}.verdicts .g{color:var(--go)}.verdicts .y{color:var(--wait)}.verdicts .r{color:var(--stop)}.credit{font-size:14px!important;color:var(--muted)}.names{font-size:22px!important;font-weight:700;letter-spacing:.01em}.device-art{width:100%;max-width:520px;height:auto;display:block;margin:8px 0 14px;overflow:visible}.device-art .ctl{fill:none;stroke:#8a929d;stroke-width:2}.device-art .stick{fill:#8a929d}.device-art .box{fill:#14171b;stroke:#e8ebef;stroke-width:1.5}.device-art .lcd{fill:#1d2b1a}.device-art .lcdt{fill:#b9e27a;font-family:B612 Mono,monospace;font-size:15px;letter-spacing:.08em}.device-art .led-red{fill:#d64545}.device-art .led-off{fill:#2a3a2e}.device-art .tag{fill:#8a929d;font-family:B612 Mono,monospace;font-size:11px}.device-art.in .lcdt{animation:blink 1.2s steps(1) 1.4s 3}@keyframes blink{50%{opacity:.2}}.pv{display:flex;gap:28px;margin:8px 0 14px}.pv figure{margin:0;flex:1;max-width:240px}.pv svg{width:100%;height:auto;display:block}.pv .grid line{stroke:var(--line);stroke-width:1}.pv .cross{stroke:#d64545;stroke-width:2}.pv .zone{fill:#d99a1e59;stroke:#d99a1e;stroke-width:1.5}.pv figcaption{margin-top:10px;font-size:15px;color:var(--muted)}.pv figcaption b{color:var(--text)}.story .big{margin-right:14px}@media (max-width: 640px){.flowline{flex-direction:column;gap:18px}.radar text{font-size:18px}}@media (prefers-reduced-motion: reduce){.wv{opacity:1!important}.radar .ray{opacity:.55}}
