@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;450;500;550;600;650;700&family=IBM+Plex+Mono:wght@400;500&display=swap');
:root{--paper:#f2f1e9;--ink:#283526;--muted:#73796b;--line:#d4d7c8;--olive:#435238;--orange:#ef7840;--mono:'IBM Plex Mono',monospace;--sans:'DM Sans',Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--sans);-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input{font:inherit}button,a,input{ -webkit-tap-highlight-color:transparent}button{cursor:pointer}a:focus-visible,button:focus-visible,input:focus-visible,canvas:focus-visible{outline:3px solid var(--orange);outline-offset:5px}::selection{background:#e1e8c9}header,main,footer{max-width:1440px;margin:auto}.nav{height:106px;margin:0 5%;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px}.brand{font-size:28px;font-weight:700;letter-spacing:-1.7px;display:flex;align-items:center;gap:9px}.brand svg{width:27px;height:27px;stroke:var(--ink);stroke-width:2;fill:none}.brand-dot{font-size:12px;align-self:flex-start;margin-top:5px;letter-spacing:0}.nav nav{display:flex;gap:34px;font-size:13px}.nav a:hover,.text-link:hover{color:var(--orange)}.repo-link{font-size:13px;border:1px solid var(--line);padding:12px 17px;border-radius:4px}.repo-link span{margin-left:15px}.hero{padding:55px 5% 0}.eyebrow,.section-number,.hero-meta,.viewer-top,.scan-readout,.viewer-bottom,.controls,.experiment-foot>span,.stage-tag,.step-index,.step-detail>span,.calibration label,.calibration small,.diagram-note,.log-status,footer>span{font-family:var(--mono);font-size:10px;letter-spacing:1px}.eyebrow{display:flex;align-items:center;gap:9px}.status-dot{display:inline-block;width:6px;height:6px;background:#66774b;border-radius:50%;box-shadow:0 0 0 3px #66774b14}.edition{margin-left:auto;color:var(--muted)}.hero-grid{display:grid;grid-template-columns:1.55fr 1fr;gap:70px;align-items:end;margin:29px 0 45px}h1{font-size:clamp(52px,6.8vw,94px);line-height:1.02;letter-spacing:-5.5px;font-weight:500;margin:0}h1 em{font-family:Georgia,serif;font-weight:400;color:#60704c}.hero-aside{max-width:320px;margin-left:auto;padding-bottom:5px}.hero-aside p{font-size:16px;line-height:1.7;color:#68705e;margin:0 0 24px}.text-link{font-size:13px;font-weight:600;display:inline-flex;gap:28px;align-items:center;border-bottom:1px solid #a1aa92;padding-bottom:9px}.hero-meta{border-top:1px solid var(--line);padding:18px 0;display:flex;justify-content:space-between;color:var(--muted);font-size:9px}.hero-meta i{font-style:normal;padding:0 14px}.experiment{margin:35px 5% 0;scroll-margin-top:20px}.experiment-head{display:flex;justify-content:space-between;align-items:end;margin-bottom:24px;gap:18px}.section-number{color:var(--muted);font-size:9px}.experiment h2{font-size:24px;font-weight:500;letter-spacing:-.7px;margin:12px 0 0}.mode-switch{border:1px solid var(--line);padding:4px;border-radius:5px;display:flex;flex-shrink:0}.mode-switch button{border:0;background:none;padding:9px 18px;font-size:12px;color:var(--muted);border-radius:3px}.mode-switch button.active{background:var(--olive);color:var(--paper)}.viewer{height:470px;background:#e8ebde;position:relative;overflow:hidden;border:1px solid #cdd2bf;border-radius:5px 5px 0 0}.viewer canvas{width:100%;height:100%;display:block;cursor:grab;touch-action:pan-y}.viewer canvas:active{cursor:grabbing}.viewer-top{position:absolute;top:21px;left:24px;right:24px;display:flex;justify-content:space-between;pointer-events:none;color:#576249;font-size:9px}.viewer-top .status-dot{margin-right:7px}.simulation{border:1px solid #bec6af;border-radius:3px;padding:5px 7px;margin-top:-5px;font-size:8px}.scan-readout{position:absolute;left:24px;top:64px;display:grid;gap:8px;font-size:9px;color:#7b856f;pointer-events:none}.scan-readout span{display:flex;gap:28px;justify-content:space-between}.scan-readout b{color:#4d5b41;font-weight:400}.anomaly-label{position:absolute;left:65%;top:29%;display:flex;gap:8px;align-items:center;color:#ab512c;background:#f5f0e1e0;border:1px solid #d99a72;padding:9px 11px;border-radius:3px;font:9px var(--mono);pointer-events:none;transition:opacity .3s}.orange-dot{display:inline-block;background:var(--orange);width:5px;height:5px;border-radius:50%}.viewer-bottom{position:absolute;bottom:19px;left:24px;right:24px;display:flex;justify-content:space-between;align-items:center;color:#7a856c;font-size:8px}.viewer-reset{background:transparent;border:0;color:#59654b;font:10px var(--mono);padding:8px}.axis{position:absolute;bottom:70px;left:30px;width:40px;height:40px;font:9px var(--mono);color:#79826f;pointer-events:none}.axis:before,.axis:after{content:'';position:absolute;background:#8b957c;width:32px;height:1px;left:9px;top:25px;transform:rotate(-30deg)}.axis:after{transform:rotate(90deg);width:27px;left:-3px;top:14px}.axis span{position:absolute}.axis-y{left:3px;top:-4px}.axis-x{left:38px;top:10px}.axis-z{left:-6px;top:30px}.controls{display:flex;align-items:center;gap:22px;padding:23px;background:#e4e7d8;border:1px solid #cdd2bf;border-top:0;border-radius:0 0 5px 5px}.play{border:1px solid #b8c0a8;color:var(--olive);background:transparent;width:39px;height:39px;border-radius:50%;flex-shrink:0;font-size:12px}.play:hover{background:#d5dcc5}.timeline{flex:1}.timeline-label{display:flex;justify-content:space-between;font-size:8px;letter-spacing:.7px}.timeline-label span{color:#a65e37}.timeline-ticks{display:flex;justify-content:space-between;font-size:7px;color:#879175;letter-spacing:0}.timeline-ticks span:nth-child(2){color:#a66a40}.timeline input{width:100%;margin:12px 0 6px}input[type=range]{appearance:none;height:2px;background:#b9c3a8;accent-color:var(--olive);cursor:pointer}input[type=range]::-webkit-slider-thumb{appearance:none;width:10px;height:16px;background:var(--olive);border:2px solid #e4e7d8;border-radius:2px}input[type=range]::-moz-range-thumb{width:8px;height:14px;border:2px solid #e4e7d8;background:var(--olive);border-radius:2px}.anomaly-toggle{display:flex;align-items:center;gap:10px;font-size:8px;letter-spacing:0;margin-left:12px}.switch{display:block;position:relative;width:31px;height:18px}.switch input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer;width:100%;height:100%;z-index:1}.switch span{position:absolute;inset:0;background:#b3baa5;border-radius:20px}.switch span:after{content:'';position:absolute;left:3px;top:3px;width:12px;height:12px;background:var(--paper);border-radius:50%;transition:transform .2s}.switch input:checked+span{background:var(--olive)}.switch input:checked+span:after{transform:translateX(13px)}.switch input:focus-visible+span{outline:3px solid var(--orange);outline-offset:3px}.experiment-foot{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:14px}.experiment-foot p{font-size:11px;color:var(--muted)}.tiny-cross{margin-right:8px;color:var(--olive)}.experiment-foot>span{font-size:7px;color:#8c9382}.method{padding:105px 5% 0}.section-intro{display:flex;justify-content:space-between;align-items:end;gap:60px}.section-intro h2,.calibration h2,.roadmap h2{font-size:43px;line-height:1.12;letter-spacing:-1.8px;font-weight:500;margin:18px 0 0}.section-intro>p{max-width:330px;font-size:15px;line-height:1.75;color:var(--muted);margin:0}.pipeline{display:grid;grid-template-columns:repeat(3,1fr);margin-top:45px;border:1px solid var(--line);border-radius:4px;overflow:hidden}.step{text-align:left;padding:25px 28px 27px;border:0;border-right:1px solid var(--line);background:transparent;color:var(--ink);transition:background .2s}.step:last-child{border-right:0}.step:hover{background:#e7eadd}.step.active{background:#e2e7d4}.step-index{display:flex;justify-content:space-between;color:#7a856c}.step-index span{font-size:16px}.step svg{width:100px;height:60px;fill:none;stroke:#6a7b53;stroke-width:1.4;margin:27px 0 12px}.step h3{font-size:18px;font-weight:500;letter-spacing:-.4px;margin:0 0 12px}.step p{font-size:12px;line-height:1.8;color:var(--muted);max-width:260px;margin:0 0 24px}.stage-tag{font-size:7px;color:#879077;letter-spacing:.6px}.stage-tag.current{color:#526b39}.step-detail{display:flex;gap:26px;align-items:center;padding:22px 0;border-bottom:1px solid var(--line)}.step-detail>span:first-child{font-size:8px;color:#6b775c;min-width:150px}.step-detail p{font-size:12px;line-height:1.8;margin:0;color:var(--muted)}.detail-arrow{font-size:20px!important;margin-left:auto}.calibration{margin:100px 5% 0;display:grid;grid-template-columns:1fr 1.1fr;gap:70px;align-items:center}.calibration-copy>p{font-size:14px;line-height:1.8;color:var(--muted);max-width:360px;margin:22px 0}.formula{font:19px var(--mono);padding:18px 0;margin-bottom:26px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:360px;letter-spacing:-.5px}.formula sub{font-size:10px}.calibration label{display:flex;justify-content:space-between;font-size:8px;max-width:360px}.calibration output{color:#a65e37}.calibration input{width:100%;max-width:360px;margin:22px 0}.calibration small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:0;color:var(--muted);max-width:350px;line-height:1.6}.calibration-diagram{background:#35432e;border-radius:4px;padding:30px 12px 20px;color:#b7c2a2}.calibration-diagram svg{width:100%;height:auto}.calibration-diagram text{font:9px var(--mono);fill:#bac5a8;letter-spacing:1px}.diagram-note{border-top:1px solid #5c694d;padding:20px 14px 0;font-size:8px;letter-spacing:.5px}.diagram-note .orange-dot{margin-right:8px}.roadmap{margin:110px 5% 0;padding-top:40px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1.1fr;gap:70px}.roadmap .text-link{margin-top:27px}.build-log article{display:flex;gap:18px;align-items:start;border-bottom:1px solid var(--line);padding:23px 0}.build-log article:first-child{padding-top:0}.log-dot{width:8px;height:8px;background:var(--olive);border-radius:50%;margin-top:7px;flex-shrink:0}.log-dot.outlined{background:none;border:1px solid #a5ae97}.build-log h3{font-size:15px;font-weight:500;margin:0 0 8px}.build-log p{font-size:12px;color:var(--muted);line-height:1.7;margin:0;max-width:320px}.log-status{margin-left:auto;font-size:7px;margin-top:7px;color:#818b73}.log-status.built{color:#465f34;border:1px solid #bbc6a8;border-radius:3px;padding:4px 7px;margin-top:0}.closing{text-align:center;margin:110px 5% 0;padding:65px 0 70px;background:#e5e9d9;border-radius:4px}.closing h2{font-size:54px;font-weight:500;letter-spacing:-2.7px;margin:18px 0 28px}.primary-link{background:var(--olive);color:var(--paper);padding:15px 23px;display:inline-flex;gap:35px;border-radius:3px;font-size:12px}.primary-link:hover{background:#526641}footer{margin:45px 5% 0;padding:30px 0;display:flex;align-items:center;justify-content:space-between;border-top:1px solid var(--line);gap:25px}footer .brand{font-size:23px}footer p{font-size:11px;color:var(--muted)}footer>span{font-size:7px;color:#818b73}footer a:hover{color:var(--orange)}
@media(min-width:1440px){header.nav,footer{max-width:1296px;margin-left:auto;margin-right:auto}}@media(max-width:900px){.nav nav{gap:18px}.hero-grid{gap:30px}h1{letter-spacing:-3px}.hero-meta{font-size:7px}.viewer{height:410px}.experiment-foot>span{display:none}.calibration,.roadmap{gap:35px}.step{padding:20px}.section-intro h2,.calibration h2,.roadmap h2{font-size:36px}.anomaly-toggle{flex-direction:column;gap:8px}.anomaly-label{left:62%}footer p{display:none}}@media(max-width:600px){.nav{height:78px}.brand{font-size:24px}.nav nav{display:none}.repo-link{font-size:10px;padding:10px}.hero{padding-top:32px}.eyebrow{font-size:7px}.edition{font-size:6px}.hero-grid{grid-template-columns:1fr;gap:24px;margin:25px 0 30px}h1{font-size:59px;letter-spacing:-3.5px}.hero-aside{margin:0;max-width:340px}.hero-aside p{font-size:14px;margin-bottom:15px}.hero-meta{font-size:6px}.hero-meta>span:last-child{display:none}.experiment{margin-top:25px}.experiment-head{align-items:start;flex-direction:column;gap:18px}.experiment h2{font-size:21px}.mode-switch button{padding:8px 20px}.viewer{height:370px}.viewer-top{left:15px;right:15px;font-size:7px}.scan-readout{left:15px;font-size:7px;gap:6px}.simulation{font-size:6px}.anomaly-label{font-size:7px;left:auto;right:15px;top:30%;padding:7px}.viewer-bottom{left:15px;right:12px;font-size:6px}.controls{gap:12px;padding:18px 13px;flex-wrap:wrap}.play{width:31px;height:31px}.anomaly-toggle{flex-direction:row;margin-left:43px}.timeline-label{font-size:6px}.timeline-ticks{font-size:6px}.experiment-foot p{font-size:10px;line-height:1.7;margin-bottom:0}.method{padding-top:65px}.section-intro{display:block}.section-intro>p{margin-top:22px;font-size:14px;max-width:100%}.section-intro h2,.calibration h2,.roadmap h2{font-size:35px}.pipeline{grid-template-columns:1fr;margin-top:28px}.step{border-right:0;border-bottom:1px solid var(--line);padding:20px;display:grid;grid-template-columns:65px 1fr;gap:0 17px}.step:last-child{border-bottom:0}.step-index{grid-column:1/-1;margin-bottom:15px}.step svg{grid-row:2/5;width:65px;margin:0;align-self:center}.step h3{font-size:17px}.step p{max-width:100%;margin-bottom:15px}.step-detail{flex-wrap:wrap;gap:10px}.step-detail p{width:100%;font-size:11px}.detail-arrow{display:none}.calibration{margin-top:65px;grid-template-columns:1fr;gap:30px}.calibration-copy>p,.formula,.calibration label,.calibration input{max-width:100%}.calibration-diagram{padding-top:20px}.roadmap{margin-top:65px;grid-template-columns:1fr;gap:35px;padding-top:25px}.closing{margin-top:65px;padding:45px 12px}.closing h2{font-size:37px;letter-spacing:-1.8px}.closing .section-number{font-size:7px}footer{margin-top:30px;align-items:start}footer>span{font-size:6px;text-align:right;line-height:1.8;max-width:140px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

/* Room patrol demo */
.room-intro{font-size:12px;color:var(--muted);line-height:1.7;margin:10px 0 0;max-width:480px}
.room-location{position:absolute;right:24px;top:64px;text-align:right;font:9px var(--mono);line-height:1.9;letter-spacing:.8px;color:#59694c;pointer-events:none}
.room-location span{font-size:7px;color:#879175;letter-spacing:.3px}
.room-summary{display:flex;align-items:center;gap:22px;padding:15px 23px;background:#e9ecdf;border-left:1px solid #cdd2bf;border-right:1px solid #cdd2bf}
.room-summary>span:first-child{font:8px var(--mono);letter-spacing:.6px;color:#647456;flex-shrink:0;min-width:150px}
.room-summary p{font-size:11px;line-height:1.7;color:#707b62;margin:0;max-width:580px}
.room-legend{display:flex;align-items:center;gap:7px;margin-left:auto;white-space:nowrap;font:7px var(--mono);color:#818b73}
.room-legend i{width:5px;height:5px;background:#647b50;border-radius:50%;display:inline-block}.room-legend i:nth-child(2){background:var(--orange);margin-left:7px}
@media(max-width:900px){.room-legend{display:none}.room-summary{gap:16px}.room-summary>span:first-child{min-width:135px}}
@media(max-width:600px){.room-intro{font-size:11px}.room-location{top:64px;right:15px;font-size:7px}.room-location span{font-size:5px}.room-summary{padding:14px;display:block}.room-summary>span:first-child{display:block;font-size:7px;margin-bottom:7px}.room-summary p{font-size:10px}.timeline-label span{font-size:5px;letter-spacing:0}}
