:root{--font-body:system-ui, -apple-system, "Segoe UI", Roboto, "Helvetica Neue", Arial, sans-serif;--font-display:"Iowan Old Style", "Palatino Linotype", Palatino, Georgia, serif;--radius:0;--radius-small:0;--topbar-h:60px}:root,:root[data-theme=dark]{--ctrl-icon-filter:invert(1);--lightningcss-light: ;--lightningcss-dark:initial;color-scheme:dark;--bg:#070c16;--surface-1:#0f1626;--surface-2:#151e32;--surface-3:#1c2740;--border:#2a3654;--grid:#ffffff12;--text-primary:#f0efec;--text-secondary:#c3c9d6;--text-muted:#8f9ab0;--accent:#3987e5;--accent-ink:#fff;--focus:#ffd166;--series-1:#3987e5;--series-2:#d95926;--div-neutral:#383835;--div-cool:#256abf;--div-cool-deep:#6da7ec;--div-warm:#c73a39;--div-warm-deep:#f08a89;--heat-dot:#f5f5f5;--place-a:#3987e5;--place-b:#9085e9;--good:#0ca30c;--warning:#fab219;--hero-glow:radial-gradient(1200px 600px at 75% 115%, #3987e559, transparent 60%), radial-gradient(700px 400px at 10% -10%, #1baf7a1f, transparent 60%)}:root[data-theme=light]{--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light;--bg:#f4f3ef;--surface-1:#fcfcfb;--surface-2:#f3f2ee;--surface-3:#fff;--border:#d6d4cc;--grid:#00000014;--text-primary:#0b0b0b;--text-secondary:#3f3e3b;--text-muted:#62615c;--accent:#1c5cab;--accent-ink:#fff;--focus:#b35c00;--series-1:#2a78d6;--series-2:#d4521f;--div-neutral:#f0efec;--div-cool:#6da7ec;--div-cool-deep:#184f95;--div-warm:#eb7c7b;--div-warm-deep:#a32524;--heat-dot:#111;--place-a:#1c5cab;--place-b:#6250d6;--hero-glow:radial-gradient(1200px 600px at 75% 115%, #2a78d62e, transparent 60%)}*{box-sizing:border-box}html{font-size:17px}body{background:var(--bg);color:var(--text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;margin:0;line-height:1.55}h1,h2,h3{font-family:var(--font-display);margin:0 0 .5em;font-weight:600;line-height:1.2}h1{letter-spacing:-.01em;font-size:clamp(2rem,4.5vw,3.4rem)}h2{font-size:1.45rem}h3{font-size:1.15rem}p{margin:0 0 .8em}a{color:var(--accent)}:root[data-theme=dark] a{color:#86b6ef}img{max-width:100%}[hidden]{display:none!important}.muted{color:var(--text-muted)}.hint{color:var(--text-muted);margin:.35em 0 0;font-size:.85rem}.eyebrow{text-transform:uppercase;letter-spacing:.1em;color:var(--text-muted);margin-bottom:.4em;font-size:.75rem;font-weight:600}.sr-only{clip:rect(0 0 0 0);white-space:nowrap;width:1px;height:1px;position:absolute;overflow:hidden}.row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.75rem;display:flex}:focus-visible{outline:3px solid var(--focus);outline-offset:2px}.skip{background:var(--surface-3);z-index:2000;color:var(--text-primary);padding:8px 14px;position:absolute;top:8px;left:-999px}.skip:focus{left:8px}.btn{font:inherit;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface-3);color:var(--text-primary);cursor:pointer;justify-content:center;align-items:center;gap:.4em;padding:.55em 1em;font-size:.95rem;font-weight:600;text-decoration:none;display:inline-flex}.btn:hover{border-color:var(--text-muted)}.btn-primary{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)!important}.btn-primary:hover{filter:brightness(1.1)}.btn-large{border-radius:0;padding:.8em 1.6em;font-size:1.1rem}.btn-quiet{background:0 0}.btn-small{padding:.4em .8em;font-size:.85rem}.btn:disabled{opacity:.5;cursor:default}.topbar{z-index:1000;height:var(--topbar-h);background:color-mix(in srgb, var(--bg) 88%, transparent);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border-bottom:1px solid var(--border);justify-content:space-between;align-items:center;gap:1rem;padding:0 20px;display:flex;position:sticky;top:0}.brand{font-family:var(--font-display);white-space:nowrap;align-items:center;gap:.6rem;font-size:1.1rem;text-decoration:none;display:flex;color:var(--text-primary)!important}.nav{align-items:center;gap:1.2rem;display:flex}.nav a{font-size:.95rem;font-weight:600;text-decoration:none;color:var(--text-secondary)!important}.nav a[aria-current=page]{box-shadow:inset 0 -2px 0 var(--accent);color:var(--text-primary)!important}.landing{min-height:calc(100vh - var(--topbar-h));background:var(--hero-glow);padding:clamp(32px,7vw,96px) 20px 64px}.hero{max-width:880px;margin:0 auto}.hero h1 span{color:var(--text-secondary);font-style:italic}.lede{color:var(--text-secondary);max-width:46em;margin:1rem 0 1.8rem;font-size:1.15rem}.steps{grid-template-columns:repeat(3,1fr);gap:1rem;margin:2.6rem 0 0;padding:0;list-style:none;display:grid}.steps li{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);gap:.8rem;padding:1rem;display:flex}.steps span{background:var(--surface-3);width:2rem;height:2rem;color:var(--accent);flex:none;place-items:center;font-weight:700;display:grid}:root[data-theme=dark] .steps span{color:#86b6ef}.steps strong{display:block}.steps div{color:var(--text-secondary);font-size:.92rem}.landing-cases{max-width:880px;margin:3.5rem auto 0}.case-list{grid-template-columns:repeat(2,1fr);gap:.75rem;margin:0;padding:0;list-style:none;display:grid}.case-card{text-align:left;width:100%;height:100%;font:inherit;color:var(--text-primary);background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);cursor:pointer;align-items:flex-start;gap:.9rem;padding:1rem;display:flex}.case-card:hover,.case-card.is-active{border-color:var(--accent)}.case-card .muted{margin-top:.15rem;font-size:.9rem;display:block}.case-letter{font-family:var(--font-display);background:var(--surface-3);flex:none;place-items:center;width:2.2rem;height:2.2rem;font-size:1.4rem;display:grid}.case-list.compact{grid-template-columns:1fr;gap:.5rem}.case-list.compact .case-card{gap:.6rem;padding:.6rem .7rem;font-size:.9rem}.case-list.compact .case-letter{width:1.8rem;height:1.8rem;font-size:1.1rem}.case-list.compact .muted{display:none}.workspace{height:calc(100vh - var(--topbar-h));grid-template-columns:290px minmax(0,1fr) minmax(460px,42%);display:grid}.controls{border-right:1px solid var(--border);background:var(--surface-1);flex-direction:column;gap:1.2rem;padding:18px;display:flex;overflow-y:auto}.field{border:0;min-width:0;margin:0;padding:0}.field>label,legend,.side-heading{font-size:.9rem;font-weight:700;font-family:var(--font-body);margin-bottom:.4rem;display:block}input[type=search],input[type=date],select{font:inherit;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface-2);width:100%;color:var(--text-primary);padding:.5em .7em;font-size:.95rem}.search-row{gap:.4rem;display:flex}.search-results{gap:.3rem;margin:.4rem 0 0;padding:0;list-style:none;display:grid}.search-results:empty{display:none}.result{text-align:left;width:100%;font:inherit;border-radius:var(--radius-small);border:1px solid var(--border);background:var(--surface-2);color:var(--text-primary);cursor:pointer;padding:.5rem .6rem;font-size:.88rem}.result:hover{border-color:var(--accent)}.result .muted{text-overflow:ellipsis;white-space:nowrap;font-size:.8rem;display:block;overflow:hidden}.places{gap:.5rem;display:grid}.place-row{align-items:center;gap:.5rem;font-size:.92rem;display:flex}.place-dot{color:#fff;border-radius:50%;flex:none;place-items:center;width:1.5rem;height:1.5rem;font-size:.75rem;font-weight:800;display:grid}.dot-a{background:var(--place-a)}.dot-b{background:var(--place-b)}.switch{cursor:pointer;align-items:center;gap:.5rem;font-size:.92rem;font-weight:600;display:flex}.switch input{width:1.1rem;height:1.1rem;accent-color:var(--accent)}.segmented{flex-wrap:wrap;align-items:center;gap:.4rem;display:flex}.segmented .hint{width:100%;margin:0}.segmented button{font:inherit;border:1px solid var(--border);color:var(--text-primary);cursor:pointer;background:0 0;border-radius:0;padding:.35em .8em;font-size:.85rem}.segmented button[aria-pressed=true]{background:var(--accent);border-color:var(--accent);color:var(--accent-ink)}.range-label{justify-content:space-between;margin-top:.3rem;font-size:.9rem;display:flex}.range-label output{font-variant-numeric:tabular-nums;font-weight:700}input[type=range]{width:100%;accent-color:var(--accent)}.map-wrap{flex-direction:column;min-width:0;display:flex}#map{background:var(--surface-2);flex:1;min-height:300px}.map-foot{border-top:1px solid var(--border);background:var(--surface-1);flex-wrap:wrap;align-items:center;gap:.5rem .8rem;padding:8px 12px;font-size:.85rem;display:flex}.map-foot label{font-weight:600}.map-foot input{width:auto;padding:.25em .5em}.map-foot .hint{flex-basis:100%;margin:0}.place-tip{font-weight:700;font-family:var(--font-body)}.casefile-wrap{border-left:1px solid var(--border);background:var(--bg);padding:20px;overflow-y:auto}.leaflet-container{font-family:var(--font-body)}#map.is-globe{background:radial-gradient(#0d1a33 0%,#04060c 70%)}.maplibregl-map{font-family:var(--font-body)}#map .maplibregl-ctrl-group{background:var(--surface-3);border:1px solid var(--border);box-shadow:none}#map .maplibregl-ctrl-group button{width:32px;height:32px}#map .maplibregl-ctrl-group button+button{border-top:1px solid var(--border)}#map .maplibregl-ctrl button .maplibregl-ctrl-icon{filter:var(--ctrl-icon-filter,none)}#map .maplibregl-ctrl-attrib{background:color-mix(in srgb, var(--surface-1) 88%, transparent);color:var(--text-secondary)}#map .maplibregl-ctrl-attrib-button{filter:var(--ctrl-icon-filter,none);background-color:#0000}#map .maplibregl-ctrl-attrib a{color:var(--text-primary)}#map .maplibregl-ctrl-scale{background:color-mix(in srgb, var(--surface-1) 80%, transparent);color:var(--text-primary);border-color:var(--text-secondary)}#map .layer-picker{max-width:260px;color:var(--text-primary);padding:0}.layer-picker summary{cursor:pointer;padding:6px 10px;font-size:.85rem;font-weight:600;list-style:none}.layer-picker summary::-webkit-details-marker{display:none}.layer-picker summary:before{content:"☰ "}.layer-picker fieldset{border:0;margin:0;padding:4px 10px 8px;font-size:.82rem}.layer-picker legend{color:var(--text-secondary);padding:0;font-weight:700}.layer-picker label{cursor:pointer;align-items:center;gap:6px;padding:2px 0;display:flex}.layer-picker input{width:auto}.globe-place{pointer-events:none;flex-direction:column;align-items:center;display:flex}.globe-label{background:var(--surface-3);color:var(--text-primary);border:1px solid var(--border);white-space:nowrap;margin-bottom:4px;padding:2px 7px;font-size:.8rem;font-weight:700}.globe-dot{border:2px solid #fff;border-radius:50%;width:16px;height:16px;margin-bottom:-8px;box-shadow:0 0 0 1px #0006}.leaflet-control-layers,.leaflet-bar a{background:var(--surface-3)!important;color:var(--text-primary)!important;border-color:var(--border)!important}.leaflet-bar,.leaflet-bar a,.leaflet-control-layers,.leaflet-tooltip,.maplibregl-ctrl-group,.maplibregl-ctrl-attrib,.maplibregl-ctrl-attrib-button{border-radius:0!important}.leaflet-control-layers-expanded{padding:8px 12px}.leaflet-control-attribution{background:color-mix(in srgb, var(--surface-1) 85%, transparent)!important;color:var(--text-secondary)!important}.leaflet-control-attribution a{color:var(--text-primary)!important}.state-card{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:1.4rem}.state-error{border-color:var(--div-warm)}.case-chips{flex-wrap:wrap;gap:.5rem;display:flex}.chip{font:inherit;border:1px solid var(--border);background:var(--surface-3);color:var(--text-primary);cursor:pointer;border-radius:0;padding:.45em .9em;font-size:.9rem}.chip:hover{border-color:var(--accent)}.chip b{color:var(--accent);margin-right:.2em}:root[data-theme=dark] .chip b{color:#86b6ef}.spinner{border:3px solid var(--border);border-top-color:var(--accent);border-radius:50%;width:34px;height:34px;margin-bottom:1rem;animation:.9s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}@media (prefers-reduced-motion:reduce){.spinner{animation-duration:3s}}.narration{background:var(--surface-2);border:1px solid var(--border);border-left:4px solid var(--accent);border-radius:var(--radius);margin-bottom:1.2rem;padding:1rem 1.2rem}.narration-head{justify-content:space-between;align-items:center;display:flex}.narration ol{color:var(--text-secondary);margin:0;padding-left:1.2rem}.narration li{margin-bottom:.45rem}.case{gap:1.2rem;display:grid}.case-head h2{margin-bottom:.2rem;font-size:1.6rem}.verdict{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);padding:1.2rem 1.3rem}.verdict.has-warning{border-color:var(--warning)}.verdict-top{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.6rem;margin-bottom:.6rem;display:flex}.verdict-headline{margin:0;font-size:1.5rem}.verdict-text{font-size:1.08rem}.verdict-windows{color:var(--text-secondary)}.warn-icon{color:var(--warning);font-size:1.1em}.badge{background:var(--surface-3);border:1px solid var(--border);border-radius:0;align-items:center;gap:.5em;padding:.3em .8em;font-size:.85rem;font-weight:700;display:inline-flex}.dots{gap:3px;display:inline-flex}.dots i{border:1.5px solid var(--text-secondary);border-radius:50%;width:8px;height:8px}.dots i.on{background:var(--text-primary);border-color:var(--text-primary)}.keynums{grid-template-columns:repeat(3,1fr);gap:.75rem;display:grid}.stat{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.15rem;min-width:0;padding:.9rem 1rem;display:flex}.stat-label{color:var(--text-muted);text-transform:uppercase;letter-spacing:.06em;font-size:.8rem;font-weight:600}.stat-value{font-variant-numeric:tabular-nums;font-size:1.7rem;font-weight:700;line-height:1.15}.stat-unit{color:var(--text-secondary);font-size:.82rem}.panel{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);min-width:0;padding:1.1rem 1.2rem}.chart-box{height:300px;margin:.4rem 0 .8rem;position:relative}.chart-box-short{height:220px}.chart-summary{color:var(--text-secondary);font-size:.95rem}.explain{margin-top:.4rem;font-size:.9rem}.explain summary{cursor:pointer;color:var(--text-secondary);font-weight:600;display:inline-block}.explain summary::marker{color:var(--accent)}.explain p{background:var(--surface-2);border-radius:var(--radius-small);color:var(--text-secondary);margin:.5rem 0 0;padding:.7rem .9rem}.stat .explain{margin-top:.3rem}.table-toggle summary{cursor:pointer;color:var(--text-secondary);font-size:.9rem;font-weight:600}.table-scroll{max-height:320px;margin-top:.5rem;overflow:auto}.table-scroll.table-full{max-height:none}table{border-collapse:collapse;font-variant-numeric:tabular-nums;width:100%;font-size:.9rem}th,td{text-align:left;border-bottom:1px solid var(--border);padding:.4rem .6rem}thead th{background:var(--surface-2);font-size:.82rem;position:sticky;top:0}caption{text-align:left;color:var(--text-secondary);padding:.4rem 0;font-weight:600}.heatmap-frame{position:relative}.heatmap-canvas{width:100%;display:block}.heatmap-tip{background:var(--surface-3);border:1px solid var(--border);border-radius:var(--radius-small);white-space:nowrap;pointer-events:none;padding:.35rem .6rem;font-size:.85rem;position:absolute;transform:translate(-50%,-100%);box-shadow:0 4px 16px #00000040}.heatmap-legend{color:var(--text-secondary);flex-wrap:wrap;align-items:center;gap:.4rem .8rem;margin:.6rem 0;font-size:.8rem;display:flex}.lg-bar{width:140px;height:10px}.lg-dot i{background:var(--text-primary);vertical-align:middle;border-radius:50%;width:7px;height:7px;margin-right:3px;display:inline-block}.lg-current i{border:2.5px solid var(--text-primary);vertical-align:middle;width:11px;height:11px;margin-right:3px;display:inline-block}.seasons{grid-template-columns:repeat(4,1fr);gap:.5rem;margin:.6rem 0;padding:0;list-style:none;display:grid}.season{background:var(--surface-2);border:1px dashed var(--border);border-radius:var(--radius-small);flex-direction:column;padding:.6rem;font-size:.85rem;display:flex}.season.is-clear{border-style:solid;border-color:var(--text-muted)}.season-name{font-weight:700}.season-value{font-variant-numeric:tabular-nums;font-size:1.1rem;font-weight:700}.season-p{color:var(--text-muted);font-size:.78rem}.limits{border-left:4px solid var(--warning)}.second-head{align-items:center;gap:.5rem;margin:0 0 .4rem;display:flex}.second-mark{background:var(--surface-3);border:2px solid var(--border);place-items:center;width:1.6rem;height:1.6rem;font-weight:700;display:inline-grid}.second-agree .second-mark{border-color:var(--text-primary)}.second-conflict .second-mark{border-color:var(--warning);color:var(--warning)}.second-table{border-collapse:collapse;width:100%;margin:.6rem 0;font-size:.92rem}.second-table th,.second-table td{text-align:left;border-bottom:1px solid var(--border);padding:.35rem .5rem}.second-table thead th{color:var(--text-secondary);font-weight:600}.small{font-size:.85rem}.limits ul{color:var(--text-secondary);margin:0;padding-left:1.2rem}.notes{grid-template-columns:max-content 1fr;gap:.4rem 1rem;margin:0 0 1rem;font-size:.92rem;display:grid}.notes dt{color:var(--text-secondary);font-weight:700}.notes dd{margin:0}.compare-head{margin-bottom:1rem}.compare-summary{font-size:1.5rem}.tabs{flex-wrap:wrap;gap:.4rem;margin-top:.6rem;display:flex}.tab{font:inherit;border:1px solid var(--border);color:var(--text-secondary);cursor:pointer;background:0 0;border-radius:0;padding:.4em .9em;font-size:.88rem;font-weight:600}.tab[aria-selected=true]{background:var(--surface-3);color:var(--text-primary);border-color:var(--accent)}.compare-grid{grid-template-columns:1fr 1fr;gap:1rem;display:grid}.mini{background:var(--surface-1);border:1px solid var(--border);border-radius:var(--radius);flex-direction:column;gap:.3rem;min-width:0;padding:1rem;display:flex}#mini-A .mini{border-top:4px solid var(--place-a)}#mini-B .mini{border-top:4px solid var(--place-b)}.mini .badge{align-self:flex-start}.mini-rate{margin-top:.4rem;font-size:1.05rem}.method{padding:40px 20px 80px}.prose{max-width:820px;margin:0 auto}.prose section{margin-top:2.2rem}.prose h2{font-size:1.5rem}.validation td:nth-child(n+2){white-space:nowrap}.ok{color:var(--good);font-weight:700}.bad{color:var(--div-warm);font-weight:700}.sources li{margin-bottom:.5rem}code{background:var(--surface-2);padding:.1em .35em}@media (width<=1180px){.workspace{grid-template-rows:62vh auto;grid-template-columns:280px minmax(0,1fr);height:auto}.controls{grid-row:1;max-height:62vh}.map-wrap{grid-row:1}.casefile-wrap{border-left:0;border-top:1px solid var(--border);grid-column:1/-1;overflow:visible}.casefile-wrap>*{max-width:900px;margin-left:auto;margin-right:auto}}@media (width<=760px){html{font-size:16px}.topbar{padding:0 16px}.brand span{display:none}.nav{gap:.8rem}#theme-toggle{width:2.2rem;height:2.2rem;padding:.4em;font-size:0}#theme-toggle:before{content:"◐";font-size:1rem}.landing{padding:32px 16px 48px}.steps,.case-list{grid-template-columns:1fr}.workspace{flex-direction:column;display:flex}.controls{border-right:0;border-bottom:1px solid var(--border);max-height:none;padding:16px}#map{flex:none;height:55vh}.casefile-wrap{padding:16px}.keynums{grid-template-columns:1fr}.seasons{grid-template-columns:repeat(2,1fr)}.compare-grid,.notes{grid-template-columns:1fr}.notes dd{margin-bottom:.4rem}.method{padding:24px 16px 60px}}@media (width>=761px) and (width<=1500px){.casefile-wrap .keynums{grid-template-columns:1fr 1fr 1fr}.compare-grid{grid-template-columns:1fr}}.hero-actions{flex-wrap:wrap;align-items:center;gap:.8rem;display:flex}.tour-blocker{z-index:2000;position:fixed;inset:0}.tour-spot{z-index:2001;outline:3px solid var(--focus);pointer-events:none;transition:top .25s,left .25s,width .25s,height .25s;position:fixed;box-shadow:0 0 0 9999px #02040aad}.tour-card{z-index:2002;background:var(--surface-1);width:min(360px,100vw - 32px);color:var(--text-primary);border:1px solid var(--border);border-top:4px solid var(--accent);padding:1rem 1.1rem;position:fixed;box-shadow:0 12px 40px #00000073}.tour-card.is-centred{width:min(440px,100vw - 32px);top:50%;left:50%;transform:translate(-50%,-50%)}.tour-card.is-sheet{width:auto;bottom:16px;left:16px;right:16px}.tour-card.is-sheet.is-top{top:16px;bottom:auto}.tour-card h2{font-family:var(--font-display);margin:.1rem 0 .4rem;font-size:1.3rem}.tour-card p{color:var(--text-secondary);margin:0 0 .8rem;line-height:1.5}.tour-count{letter-spacing:.08em;text-transform:uppercase;font-size:.78rem;margin-bottom:.2rem!important}.tour-actions{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.tour-nav{gap:.5rem;display:flex}@media (prefers-reduced-motion:reduce){.tour-spot{transition:none}}@media (width<=760px){#tour-btn{padding:.4em .6em}}
