:root{--ink:#06120f;--panel:#071713;--paper:#edf6f1;--muted:#9db4aa;--line:#dcf4e92b;--mint:#75f0bb;--orange:#ffb15f;--danger:#ff857a}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--ink);color:var(--paper);margin:0;font-family:Arial,Helvetica,sans-serif}button,input{font:inherit}a{color:inherit}main{background:radial-gradient(circle at 80% 2%, #75f0bb1c, transparent 27rem), var(--ink);min-height:100vh;overflow:hidden}.topbar{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;width:min(1440px,100% - 48px);min-height:78px;margin:0 auto;display:flex}.monogram{font:700 20px/1 var(--font-geist-mono), monospace;letter-spacing:-.04em;text-decoration:none}.monogram span{color:var(--mint)}.nav-links{gap:clamp(18px,3vw,42px);display:flex}.nav-links a{color:var(--muted);font-size:13px;text-decoration:none}:is(.nav-links a:hover,.nav-links a:focus-visible){color:var(--paper)}.hero{grid-template-columns:minmax(0,1fr) 300px;align-items:end;gap:clamp(64px,10vw,150px);width:min(1280px,100% - 48px);margin:0 auto;padding:clamp(72px,10vw,148px) 0 96px;display:grid}.eyebrow{color:var(--mint);font:600 11px/1.4 var(--font-geist-mono), monospace;letter-spacing:.14em;text-transform:uppercase;margin:0 0 22px}.hero h1{max-width:980px;font:600 clamp(46px, 6.6vw, 94px)/.98 var(--font-geist-sans), Arial, sans-serif;letter-spacing:-.065em;margin:0}.lede{color:#c3d7ce;max-width:750px;margin:38px 0 28px;font-size:clamp(17px,1.8vw,22px);line-height:1.55}.tech-line{color:var(--muted);font:12px/1.5 var(--font-geist-mono), monospace;flex-wrap:wrap;gap:8px 24px;display:flex}.hero-aside{border-top:1px solid var(--mint);padding-top:20px}.aside-number{color:var(--mint);font:13px var(--font-geist-mono), monospace;margin:0 0 30px}.hero-aside>p:not(.aside-number){color:#c3d7ce;margin:0;line-height:1.6}.hero-aside dl{margin:38px 0 0}.hero-aside dl div{border-top:1px solid var(--line);justify-content:space-between;padding:13px 0;font-size:12px;display:flex}.hero-aside dt{color:var(--muted)}.hero-aside dd{font-family:var(--font-geist-mono), monospace;margin:0}.lab{background:var(--paper);color:#0b1d17;padding:96px max(24px,50vw - 720px)}.section-heading{max-width:720px;margin-bottom:46px}.section-heading .eyebrow{color:#168b61}.section-heading h2,.method h2,.contribution h2{letter-spacing:-.055em;margin:0;font-size:clamp(38px,5vw,68px);line-height:1}.section-heading>p:last-child{color:#53685f;max-width:620px;margin:23px 0 0;font-size:17px;line-height:1.55}.lab-grid{border:1px solid #c4d7ce;grid-template-columns:minmax(0,1.55fr) minmax(300px,.55fr);display:grid}.viewport{background:var(--panel);min-width:0;color:var(--paper)}.viewport-meta{border-bottom:1px solid var(--line);height:56px;font:11px var(--font-geist-mono), monospace;text-transform:uppercase;letter-spacing:.07em;justify-content:space-between;align-items:center;padding:0 18px;display:flex}.viewport-meta .accepted{color:var(--mint)}.viewport-meta .rejected{color:var(--danger)}.geometry-canvas{width:100%;height:clamp(430px,56vw,690px);display:block}.legend{border-top:1px solid var(--line);min-height:56px;color:var(--muted);font:10px var(--font-geist-mono), monospace;text-transform:uppercase;flex-wrap:wrap;gap:18px;padding:15px 18px;display:flex}.legend span{align-items:center;gap:7px;display:inline-flex}.dot{border-radius:50%;width:7px;height:7px;display:inline-block}.dot-surface{background:var(--paper)}.dot-axis{background:var(--mint)}.dot-ball{background:var(--orange)}.controls{background:#e4efe9;border-left:1px solid #c4d7ce;padding:28px}.controls fieldset{border:0;margin:0 0 34px;padding:0}.controls legend,.range-control>span{justify-content:space-between;width:100%;margin-bottom:12px;font-size:12px;display:flex}.controls output{color:#39705a;font-family:var(--font-geist-mono), monospace}.segmented{border:1px solid #aac0b6;display:grid}.segmented button{color:#496158;text-align:left;cursor:pointer;background:0 0;border:0;border-bottom:1px solid #aac0b6;padding:12px}.segmented button:last-child{border-bottom:0}.segmented button.active{color:var(--paper);background:#0b1d17}.control-note{color:#60766c;min-height:38px;margin:12px 0 0;font-size:12px;line-height:1.5}.range-control{margin-top:28px;display:block}.controls input[type=range]{accent-color:#168b61;cursor:pointer;width:100%}.transport{grid-template-columns:1fr 1fr;gap:8px;margin-top:34px;display:grid}.transport button{color:var(--paper);cursor:pointer;background:#0b1d17;border:1px solid #0b1d17;padding:13px 10px}.transport button.secondary{color:#0b1d17;background:0 0}:is(.transport button:hover,.transport button:focus-visible){border-color:#168b61}.readout{border-top:1px solid #b8cbc2;margin-top:34px}.readout div{border-bottom:1px solid #b8cbc2;justify-content:space-between;padding:12px 0;font-size:11px;display:flex}.readout span{color:#60766c}.readout strong{font-family:var(--font-geist-mono), monospace;font-weight:500}.metrics{border:1px solid #c4d7ce;border-top:0;grid-template-columns:repeat(3,1fr) minmax(260px,1.4fr);display:grid}.metrics article{border-right:1px solid #c4d7ce;min-height:164px;padding:24px}.metrics article:last-child{border-right:0}.metrics p{color:#60766c;margin:0;font-size:12px}.metrics strong{font:500 34px var(--font-geist-mono), monospace;letter-spacing:-.06em;margin:13px 0 6px;display:block}.metrics article>span{color:#7b9087;font-size:11px}.histogram-card{flex-direction:column;display:flex}.histogram-heading{justify-content:space-between;display:flex}.histogram-heading span{color:#7b9087;font:10px var(--font-geist-mono), monospace}.histogram{align-items:end;gap:4px;height:85px;margin-top:auto;display:flex}.histogram i{background:#168b61;flex:1;min-height:4px}.method{grid-template-columns:.85fr 1.15fr;gap:9vw;width:min(1280px,100% - 48px);margin:0 auto;padding:130px 0;display:grid}.method .section-heading{color:var(--paper)}.method .section-heading .eyebrow{color:var(--mint)}.sticky-heading{align-self:start;position:sticky;top:36px}.process-list{border-top:1px solid var(--line);margin:0;padding:0;list-style:none}.process-list li{border-bottom:1px solid var(--line);grid-template-columns:54px 1fr;gap:20px;padding:32px 0;display:grid}.process-list li>span{color:var(--mint);font:11px var(--font-geist-mono), monospace}.process-list h3{margin:0 0 10px;font-size:20px}.process-list p{color:var(--muted);margin:0;line-height:1.6}.contribution{background:var(--orange);color:#28170a;grid-template-columns:.8fr 1.2fr;gap:9vw;padding:110px max(24px,50vw - 640px);display:grid}.contribution .eyebrow{color:#68401d}.contribution-copy{max-width:700px}.contribution-copy>p:first-child{margin-top:0;font-size:20px;line-height:1.55}.contribution-copy ul{border-top:1px solid #28170a59;margin:34px 0;padding:0;list-style:none}.contribution-copy li{border-bottom:1px solid #28170a59;padding:14px 0}.provenance{color:#68401d;font:12px/1.6 var(--font-geist-mono), monospace}footer{width:min(1280px,100% - 48px);min-height:140px;color:var(--muted);justify-content:space-between;align-items:center;gap:24px;margin:0 auto;font-size:12px;display:flex}footer a{color:var(--paper);text-decoration:none}@media (max-width:960px){.hero{grid-template-columns:1fr}.hero-aside{max-width:520px}.lab-grid{grid-template-columns:1fr}.controls{border-top:1px solid #c4d7ce;border-left:0}.metrics{grid-template-columns:repeat(2,1fr)}.metrics article:nth-child(2){border-right:0}.metrics article:nth-child(-n+2){border-bottom:1px solid #c4d7ce}.method,.contribution{grid-template-columns:1fr;gap:48px}.sticky-heading{position:static}}@media (max-width:620px){.topbar,.hero,.method,footer{width:min(100% - 32px,1280px)}.nav-links a:not(:last-child){display:none}.hero{padding-top:72px}.hero h1{font-size:45px}.geometry-canvas{height:430px}.viewport-meta{flex-direction:column;align-items:flex-start;gap:8px;height:auto;padding:14px}.controls{padding:22px}.transport,.metrics{grid-template-columns:1fr}.metrics article{border-bottom:1px solid #c4d7ce;border-right:0}.metrics article:last-child{border-bottom:0}.contribution{padding-top:80px;padding-bottom:80px}footer{flex-direction:column;justify-content:center;align-items:flex-start;padding:34px 0}}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
