:root{--bg: #0a0e14;--bg-raised: #0f141c;--bg-overlay: rgba(10, 14, 20, .88);--ink: #e8edf2;--ink-dim: #8a94a6;--ink-faint: #4a5568;--hairline: #232b38;--hairline-lit: #3a4556;--ai: #4fd8eb;--ai-deep: #157e8c;--fema: #e8a13d;--fema-deep: #8c5a15;--alert: #e85d4a;--ai-chart: #1a97ab;--fema-chart: #b0751a;--font-display: "Space Grotesk", system-ui, sans-serif;--font-body: "Inter", system-ui, sans-serif;--font-mono: "IBM Plex Mono", ui-monospace, "SF Mono", monospace;--s1: 8px;--s2: 16px;--s3: 24px;--s4: 40px;--s5: 64px;--s6: 104px;--label-size: 11px;--label-tracking: .14em}*,*:before,*:after{box-sizing:border-box}html{scroll-behavior:smooth}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}}body{margin:0;background:var(--bg);color:var(--ink);font-family:var(--font-body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased}h1,h2,h3{font-family:var(--font-display);line-height:1.1;margin:0}a{color:var(--ai);text-decoration:none}a:hover{text-decoration:underline;text-underline-offset:3px}:focus-visible{outline:1px solid var(--ai);outline-offset:2px}.label{font-family:var(--font-mono);font-size:var(--label-size);letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--ink-dim)}.mono{font-family:var(--font-mono)}.dotgrid{background-image:radial-gradient(circle,rgba(138,148,166,.1) 1px,transparent 1px);background-size:32px 32px}.titleblock{display:flex;align-items:stretch;border-top:1px solid var(--hairline);border-bottom:1px solid var(--hairline);margin:var(--s5) 0 var(--s4)}.titleblock .tb-index{font-family:var(--font-mono);font-size:13px;color:var(--ink-dim);padding:var(--s2);border-right:1px solid var(--hairline);display:flex;align-items:center}.titleblock .tb-title{font-family:var(--font-mono);font-size:13px;letter-spacing:var(--label-tracking);text-transform:uppercase;padding:var(--s2);flex:1;display:flex;align-items:center}.titleblock .tb-ruler{width:96px;border-left:1px solid var(--hairline);background-image:repeating-linear-gradient(90deg,var(--hairline) 0 1px,transparent 1px 8px);background-position:center;background-size:100% 8px;background-repeat:no-repeat}.btn{position:relative;display:inline-block;padding:14px 28px;border:1px solid var(--hairline-lit);background:transparent;color:var(--ink);font-family:var(--font-mono);font-size:12px;letter-spacing:var(--label-tracking);text-transform:uppercase;cursor:pointer;transition:border-color .12s}.btn:hover{border-color:var(--ink-dim);text-decoration:none}.btn:before,.btn:after{content:"";position:absolute;width:7px;height:7px;opacity:0;transition:opacity .12s}.btn:before{top:-1px;left:-1px;border-top:1px solid var(--ai);border-left:1px solid var(--ai)}.btn:after{bottom:-1px;right:-1px;border-bottom:1px solid var(--ai);border-right:1px solid var(--ai)}.btn:hover:before,.btn:hover:after{opacity:1}.btn--primary{border-color:var(--ai-deep)}.panel{background:var(--bg-raised);border:1px solid var(--hairline)}.container{max-width:1120px;margin:0 auto;padding:0 var(--s3)}.prose{max-width:68ch}.vh{position:absolute;width:1px;height:1px;clip-path:inset(50%);overflow:hidden;white-space:nowrap}.map-root{position:relative;width:100%;height:100%}.map-root .maplibregl-canvas-container{cursor:crosshair}.coords-readout{position:absolute;left:var(--s2);bottom:var(--s2);z-index:5;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--ink-dim);background:var(--bg-overlay);border:1px solid var(--hairline);padding:6px 10px;pointer-events:none}.map-key{position:absolute;right:var(--s2);bottom:var(--s2);z-index:5;background:var(--bg-overlay);border:1px solid var(--hairline);padding:var(--s2);min-width:200px}.map-key .key-title{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--hairline);padding-bottom:8px;margin-bottom:10px}.map-key .key-row{display:flex;align-items:center;gap:10px;margin:7px 0}.map-key .key-swatch{width:24px;height:12px;border:1px solid;flex:none}.map-key .key-label{font-family:var(--font-mono);font-size:11px;color:var(--ink)}.map-key .key-note{font-family:var(--font-mono);font-size:9px;letter-spacing:.1em;color:var(--ink-faint);border-top:1px solid var(--hairline);padding-top:8px;margin-top:10px}.maplibregl-ctrl-scale{background:transparent!important;border:none!important;border-top:1px solid var(--ink-dim)!important;color:var(--ink-dim)!important;font-family:var(--font-mono)!important;font-size:10px!important;letter-spacing:.08em;height:14px;position:relative}.maplibregl-ctrl-scale:before,.maplibregl-ctrl-scale:after{content:"";position:absolute;top:0;width:1px;height:5px;background:var(--ink-dim)}.maplibregl-ctrl-scale:before{left:0}.maplibregl-ctrl-scale:after{right:0}.maplibregl-ctrl-attrib{background:var(--bg-overlay)!important;font-family:var(--font-mono);font-size:9px!important}.maplibregl-ctrl-attrib a{color:var(--ink-dim)!important}.swipe-divider{position:absolute;top:0;bottom:0;width:1px;background:var(--ink);z-index:10;cursor:ew-resize}.swipe-divider .swipe-handle{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:44px;height:44px;background:var(--bg-overlay);border:1px solid var(--ink);display:flex;align-items:center;justify-content:center;touch-action:none;cursor:ew-resize}.swipe-handle:before{content:"↔";color:var(--ink);font-size:16px}.swipe-label{position:absolute;top:var(--s2);z-index:6;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--label-tracking);text-transform:uppercase;background:var(--bg-overlay);border:1px solid var(--hairline);padding:5px 10px;pointer-events:none}.swipe-label--left{left:var(--s2);color:var(--fema);border-color:var(--fema-deep)}.swipe-label--right{right:var(--s2);color:var(--ai);border-color:var(--ai-deep)}.map-toolbar{position:absolute;top:var(--s2);left:50%;transform:translate(-50%);z-index:6;display:flex;border:1px solid var(--hairline);background:var(--bg-overlay)}.map-toolbar button{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--ink-dim);background:transparent;border:none;border-right:1px solid var(--hairline);padding:8px 14px;cursor:pointer}.map-toolbar button:last-child{border-right:none}.map-toolbar button[aria-pressed=true]{color:var(--ink);background:var(--bg-raised)}.hero{position:relative;min-height:92vh;display:flex;align-items:center;border-bottom:1px solid var(--hairline);overflow:hidden}.hero-frame{max-width:1120px;margin:0 auto;padding:var(--s6) var(--s3)}.hero h1{font-size:clamp(52px,9vw,128px);font-weight:700;letter-spacing:-.02em;margin:var(--s2) 0 var(--s3)}.hero-sub{font-size:19px;color:var(--ink-dim)}.hero-ctas{display:flex;gap:var(--s2);margin-top:var(--s4);flex-wrap:wrap}.hero-coords{position:absolute;bottom:var(--s2);left:var(--s3)}.hero-scanline{position:absolute;top:0;bottom:0;width:1px;background:linear-gradient(to bottom,transparent,var(--ai) 40%,var(--ai) 60%,transparent);opacity:.35;animation:scan 14s linear infinite}@keyframes scan{0%{left:-2%}to{left:102%}}.stats-band{border-bottom:1px solid var(--hairline);background:var(--bg-raised)}.stats-grid{display:grid;grid-template-columns:repeat(4,1fr)}.stat{padding:var(--s4) var(--s3);border-left:1px solid var(--hairline)}.stat:first-child{border-left:none}.stat-num{font-family:var(--font-display);font-size:clamp(36px,4.5vw,60px);font-weight:700;font-variant-numeric:tabular-nums}.stat--accent .stat-num{color:var(--ai)}.stat-unit{margin-top:var(--s1);line-height:1.6}@media(max-width:900px){.stats-grid{grid-template-columns:repeat(2,1fr)}.stat:nth-child(3){border-left:none}.stat:nth-child(n+3){border-top:1px solid var(--hairline)}}.embed-map{position:relative;height:72vh;min-height:420px;margin-top:var(--s3)}.embed-placeholder{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;align-items:center;justify-content:center}.embed-actions{margin-top:var(--s2);display:flex;justify-content:flex-end}.scrolly{display:grid;grid-template-columns:1fr 1fr;gap:var(--s4);align-items:start}.scrolly-stage{position:sticky;top:8vh;height:84vh;overflow:hidden}.scrolly-steps{padding:20vh 0 30vh}.step{min-height:55vh;display:flex;flex-direction:column;justify-content:center;opacity:.3;transition:opacity .3s}.step.is-active{opacity:1}.step h3{font-size:22px;margin-bottom:var(--s2)}.step p{color:var(--ink-dim);max-width:44ch}.step em{color:var(--ink);font-style:normal}@media(max-width:900px){.scrolly{grid-template-columns:1fr}.scrolly-stage{top:0;height:46vh}.step{min-height:40vh}}.stage-frame{position:absolute;top:0;right:0;bottom:0;left:0;display:flex;flex-direction:column;opacity:0;transition:opacity .45s;pointer-events:none}.scrolly-stage[data-step=terrain] .stage-frame[data-stage=terrain],.scrolly-stage[data-step=tiling] .stage-frame[data-stage=tiling],.scrolly-stage[data-step=model] .stage-frame[data-stage=model],.scrolly-stage[data-step=pairs] .stage-frame[data-stage=pairs],.scrolly-stage[data-step=conus] .stage-frame[data-stage=conus]{opacity:1}.stage-art{flex:1;background-size:cover;background-position:center}.stage-art--terrain{background:radial-gradient(ellipse 60% 45% at 30% 40%,#1d2735 0%,transparent 60%),radial-gradient(ellipse 45% 60% at 72% 65%,#18202c 0%,transparent 65%),linear-gradient(160deg,#131a24,#0c1119)}.stage-art--conus{background:radial-gradient(ellipse 70% 50% at 50% 50%,rgba(79,216,235,.12) 0%,transparent 70%),linear-gradient(160deg,#10161f,#0b0f16)}.stage-grid{position:absolute;top:0;right:0;bottom:44px;left:0;background-image:repeating-linear-gradient(0deg,rgba(79,216,235,.25) 0 1px,transparent 1px 12.5%),repeating-linear-gradient(90deg,rgba(79,216,235,.25) 0 1px,transparent 1px 12.5%)}.stage-caption{padding:var(--s2);border-top:1px solid var(--hairline);background:var(--bg-raised)}#gan-diagram{flex:1;width:100%;height:100%;padding:var(--s3)}.pair-strip{flex:1;display:grid;grid-template-columns:repeat(3,1fr);gap:2px;padding:var(--s3)}.pair-cell{display:flex;flex-direction:column;gap:8px}.pair-art{flex:1;border:1px solid var(--hairline)}.pair-art--dem{background:linear-gradient(145deg,#202a38,#121924)}.pair-art--fema{background:linear-gradient(145deg,#0d1420 40%,#e8a13d59)}.pair-art--ai{background:linear-gradient(145deg,#0d1420 40%,#4fd8eb59)}.chart{margin:var(--s4) 0;padding:var(--s3);border:1px solid var(--hairline)}.chart figcaption{margin-bottom:var(--s3)}.c-rowlabel,.c-legend{font-family:var(--font-mono);font-size:10px;letter-spacing:.12em;fill:var(--ink-dim)}.c-value{font-family:var(--font-mono);font-size:11px;fill:var(--ink-dim)}.c-value--strong{fill:var(--ink);font-size:12px}.c-value--accent{fill:var(--ai)}.c-value--alert{fill:var(--alert);font-size:11px;letter-spacing:.08em}.c-axis{stroke:var(--hairline-lit);stroke-width:1}.sub-h{margin-top:var(--s5);font-size:20px}.table-wrap{overflow-x:auto;margin-top:var(--s3)}.val-table{border-collapse:collapse;width:100%;font-variant-numeric:tabular-nums}.val-table th,.val-table td{text-align:right;padding:10px 14px;border-bottom:1px solid var(--hairline);font-family:var(--font-mono);font-size:13px}.val-table thead tr:first-child th{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--label-tracking);text-transform:uppercase;color:var(--ink-dim);border-bottom:1px solid var(--hairline-lit)}.val-table thead tr:last-child th{color:var(--ink-faint);font-size:10px}.val-table th:first-child,.val-table td:first-child{text-align:left}.val-table td.gain{color:var(--ai)}.notice{border:1px solid var(--fema-deep);margin:var(--s5) 0}.notice-head{padding:var(--s2);border-bottom:1px solid var(--fema-deep);color:var(--fema)}.notice ul{margin:0;padding:var(--s3) var(--s3) var(--s3) calc(var(--s3) + 18px)}.notice li{margin-bottom:var(--s2);color:var(--ink-dim);max-width:80ch}.notice li strong{color:var(--ink)}.footer{border-top:1px solid var(--hairline);padding-bottom:var(--s5)}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr;gap:var(--s5);align-items:start}.footer h3{font-size:24px;margin-bottom:var(--s2)}.footer-links{display:flex;gap:var(--s3);margin-top:var(--s3);flex-wrap:wrap}.footer-links a{font-family:var(--font-mono);font-size:12px;letter-spacing:.08em}.footer-ctas{display:flex;flex-direction:column;gap:var(--s2)}.footer-fineprint{margin-top:var(--s5)}@media(max-width:900px){.footer-grid{grid-template-columns:1fr}}section.container{padding-bottom:var(--s5)}
