:root{color-scheme:light dark;--bg: #f9f9f7;--surface: #fcfcfb;--surface-2: #f1f0ea;--text: #0b0b0b;--text-2: #52514e;--muted: #898781;--line: rgba(11, 11, 11, .12);--grid: #e1e0d9;--accent: #2a78d6;--danger: #c23b3b;--ok: #1baf7a;--warn-bg: rgba(154, 119, 20, .14);--warn-fg: #8a6a0f;--hover: rgba(42, 120, 214, .1);--wash: rgba(42, 120, 214, .08);--shadow: rgba(11, 11, 11, .16);--mono: ui-monospace, "SF Mono", Menlo, monospace;--map-ctrl-invert: 0}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--bg: #0d0d0d;--surface: #1a1a19;--surface-2: #242423;--text: #f2f1ec;--text-2: #c3c2b7;--muted: #898781;--line: rgba(255, 255, 255, .12);--grid: #2c2c2a;--accent: #3987e5;--danger: #e05c5c;--ok: #199e70;--warn-bg: #574a17;--warn-fg: #ffdd75;--hover: rgba(90, 140, 220, .16);--wash: rgba(90, 140, 220, .12);--shadow: rgba(0, 0, 0, .45);--map-ctrl-invert: 1}}:root[data-theme=dark]{color-scheme:dark;--bg: #0d0d0d;--surface: #1a1a19;--surface-2: #242423;--text: #f2f1ec;--text-2: #c3c2b7;--muted: #898781;--line: rgba(255, 255, 255, .12);--grid: #2c2c2a;--accent: #3987e5;--danger: #e05c5c;--ok: #199e70;--warn-bg: #574a17;--warn-fg: #ffdd75;--hover: rgba(90, 140, 220, .16);--wash: rgba(90, 140, 220, .12);--shadow: rgba(0, 0, 0, .45);--map-ctrl-invert: 1}:root[data-theme=light]{color-scheme:light}.brand{position:relative}.brand>button{background:none;border:none;padding:0;font:inherit;color:inherit;letter-spacing:inherit;cursor:pointer}.brand .accent{color:var(--accent);font-weight:400}.brand-caret{display:inline-block;margin-left:5px;font-size:.85em;color:var(--muted);transition:transform .15s ease;vertical-align:2px}.brand>button[aria-expanded=true] .brand-caret{transform:rotate(180deg)}.site-menu{position:absolute;top:calc(100% + 6px);left:0;z-index:40;display:flex;flex-direction:column;min-width:230px;padding:6px;background:var(--surface);border:1px solid var(--line);border-radius:10px;box-shadow:0 6px 24px var(--shadow);font-size:.85rem;font-weight:400;letter-spacing:normal}.site-option{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:7px 10px;border-radius:7px;color:var(--text);text-decoration:none}.site-option:hover{background:var(--hover);text-decoration:none}.site-option.active{background:var(--wash)}.site-option strong{font-weight:600}.site-option .site-desc{color:var(--muted);font-size:.78em;white-space:nowrap}.fr-head{display:flex;align-items:baseline;gap:14px;min-height:48px;box-sizing:border-box}.fr-head:before{content:"​";font-size:17px;line-height:48px;margin-right:-14px}.fr-head .fr-account,.fr-head .fr-spacer{align-self:center}.fr-head nav{display:flex;gap:14px}.fr-head nav a{color:var(--muted);text-decoration:none;font-size:14px}.fr-head nav a:hover{color:var(--text)}.fr-head nav a.on{color:var(--text);text-decoration:underline;text-decoration-color:var(--accent);text-decoration-thickness:2px;text-underline-offset:7px}.fr-head .brand,.fr-head>h1{font-size:17px;font-weight:700;line-height:1.2;margin:0;letter-spacing:.01em}.fr-head-bar{padding:0 16px;border-bottom:1px solid var(--line)}.fr-head-page{margin-bottom:14px}.fr-spacer{flex:1}body{margin:0}.fr-page{box-sizing:content-box;max-width:var(--fr-page-width, 46rem);margin:0 auto;padding:0 16px 64px}.maplibregl-map .maplibregl-ctrl-group{background:var(--surface);border:1px solid var(--line);box-shadow:0 1px 4px var(--shadow)}.maplibregl-map .maplibregl-ctrl-group button{background:none}.maplibregl-map .maplibregl-ctrl-group button+button{border-top:1px solid var(--line)}.maplibregl-map .maplibregl-ctrl button .maplibregl-ctrl-icon{filter:invert(var(--map-ctrl-invert, 0))}.maplibregl-map .maplibregl-ctrl-attrib{background:color-mix(in srgb,var(--surface) 82%,transparent);color:var(--muted)}.maplibregl-map .maplibregl-ctrl-attrib a{color:var(--text-2, var(--text))}.maplibregl-map .maplibregl-ctrl-attrib-button{filter:invert(var(--map-ctrl-invert, 0))}.fr-account{display:inline-flex;align-items:center;position:relative;flex:none}.fr-signin{padding:4px 12px;border:1px solid var(--line, var(--border, rgba(128, 148, 179, .4)));border-radius:999px;background:none;color:var(--accent, #2a78d6);font:inherit;font-size:.85em;cursor:pointer;white-space:nowrap}.fr-signin:hover{border-color:var(--accent, #2a78d6)}.fr-avatar{width:28px;height:28px;padding:0;border:1px solid var(--line, var(--border, rgba(128, 148, 179, .4)));border-radius:50%;background:var(--accent, #2a78d6);color:#fff;font:inherit;font-size:13px;font-weight:600;line-height:1;display:inline-flex;align-items:center;justify-content:center;cursor:pointer;overflow:hidden}.fr-avatar img{width:100%;height:100%;object-fit:cover}.fr-avatar.anon{background:var(--surface-2, rgba(128, 140, 160, .25));color:var(--muted, #8595b3)}.fr-menu-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:39}.fr-menu{position:absolute;top:calc(100% + 6px);right:0;z-index:40;min-width:200px;display:flex;flex-direction:column;padding:6px;border:1px solid var(--line, var(--border, rgba(128, 148, 179, .4)));border-radius:10px;background:var(--panel, var(--surface, var(--bg, #16203a)));box-shadow:0 8px 28px #00000059;font-size:.9em}.fr-menu-id{display:flex;flex-direction:column;gap:1px;padding:7px 9px 9px;border-bottom:1px solid var(--line, var(--border, rgba(128, 148, 179, .25)));margin-bottom:4px}.fr-menu-id strong{font-weight:600;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-menu-id span{color:var(--dim, var(--muted, var(--ink-muted, #8595b3)));font-size:.85em;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.fr-menu>a,.fr-menu>button{display:block;width:100%;padding:6px 9px;border:none;border-radius:6px;background:none;color:inherit;font:inherit;text-align:left;text-decoration:none;cursor:pointer}.fr-menu>a:hover,.fr-menu>button:hover{background:#5a8cdc29}.fr-menu>.fr-menu-jump:after{content:"↗";margin-left:5px;font-size:.9em;opacity:.6}.fr-menu>.fr-menu-jump:hover:after{opacity:1}.fr-menu-theme{display:flex;align-items:center;gap:5px;padding:6px 9px}.fr-menu-theme>span{margin-right:auto;color:var(--dim, var(--muted, var(--ink-muted, #8595b3)));font-size:.85em;white-space:nowrap}.fr-menu-theme>button{white-space:nowrap;padding:2px 9px;border:1px solid var(--line, var(--border, rgba(128, 148, 179, .4)));border-radius:999px;background:none;color:inherit;font:inherit;font-size:.8em;cursor:pointer}.fr-menu-theme>button.on{border-color:var(--accent, #2a78d6);color:var(--accent, #2a78d6)}.fr-menu-lang{display:flex;align-items:center;gap:5px;padding:6px 9px}.fr-menu-lang>span{margin-right:auto;color:var(--dim, var(--muted, var(--ink-muted, #8595b3)));font-size:.85em;white-space:nowrap}.fr-menu-lang>select{max-width:150px;padding:2px 6px;border:1px solid var(--line, var(--border, rgba(128, 148, 179, .4)));border-radius:999px;background:none;color:inherit;font:inherit;font-size:.8em;cursor:pointer}.fr-menu-lang>select>option{background:var(--panel, var(--bg, #fff));color:var(--text, var(--ink, #1c2733))}.fr-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:50;display:flex;align-items:center;justify-content:center;background:#0000008c}.fr-modal{width:min(360px,92vw);max-height:84vh;overflow-y:auto;padding:18px 20px;border:1px solid var(--line, var(--border, rgba(128, 148, 179, .4)));border-radius:10px;background:var(--panel, var(--surface, var(--bg, #16203a)));color:var(--text, var(--ink, #e8eefc))}.fr-modal h2{margin:0 0 12px;font-size:1.05em;font-weight:600}.fr-modal form{display:flex;flex-direction:column;gap:10px}.fr-modal label{display:flex;flex-direction:column;gap:3px;font-size:.85em;color:var(--dim, var(--muted, var(--ink-muted, #8595b3)))}.fr-modal input{padding:6px 9px;border:1px solid var(--line, var(--border, rgba(128, 148, 179, .4)));border-radius:6px;background:var(--bg, var(--page, #0b1220));color:inherit;font:inherit}.fr-modal input:focus{outline:none;border-color:var(--accent, #2a78d6)}.fr-modal form>button{padding:7px 12px;border:1px solid var(--accent, #2a78d6);border-radius:6px;background:none;color:var(--accent, #2a78d6);font:inherit;font-weight:600;cursor:pointer}.fr-modal form>button:disabled{opacity:.5;cursor:default}.fr-turnstile{min-height:65px;display:flex;justify-content:center}.fr-note{padding:6px 9px;border-left:3px solid var(--accent, #2a78d6);border-radius:0 5px 5px 0;background:#5a8cdc1f;font-size:.85em}.fr-note.fr-err{border-left-color:var(--danger, #e05c5c);background:#e05c5c1f}.fr-modal-row{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 14px;margin-top:10px;color:var(--dim, var(--muted, var(--ink-muted, #8595b3)));font-size:.85em}.fr-linkish{padding:0;border:none;background:none;color:var(--accent, #2a78d6);font:inherit;font-size:inherit;cursor:pointer}.fr-linkish:hover{text-decoration:underline}*{box-sizing:border-box;margin:0}:root{--page: var(--bg);--ink: var(--text);--ink-2: var(--text-2);--ink-muted: var(--muted);--border: var(--line);--cool: var(--accent);--good: var(--ok);--warm: #eb6834;--sky-day: #dcebf7;--sky-night: #1c2438}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--warm: #d95926;--sky-day: #2a3b4d;--sky-night: #10141f}}:root[data-theme=dark]{--warm: #d95926;--sky-day: #2a3b4d;--sky-night: #10141f}body{background:var(--page);color:var(--ink);font:17px/1.65 system-ui,-apple-system,Segoe UI,sans-serif}:root{--fr-page-width: 46rem}main>*{min-width:0}footer{margin:56px 0 0;padding-top:16px;border-top:1px solid var(--grid);color:var(--ink-muted);font-size:.82rem}footer a{color:var(--ink-muted)}a{color:var(--accent)}.empty{color:var(--ink-2)}.home{display:grid;gap:28px}.hero h2{font-size:1.9rem;line-height:1.2;letter-spacing:-.015em;margin-bottom:12px}.hero p{color:var(--ink-2);max-width:40rem}.hero-cta{margin-top:16px}.btn{display:inline-block;background:var(--accent);color:#fff!important;text-decoration:none;font-weight:600;font-size:.95rem;padding:9px 18px;border-radius:10px}.btn:hover{filter:brightness(1.08)}.curriculum{list-style:none;padding:0;display:grid;gap:10px;counter-reset:c}.curriculum a{display:flex;gap:16px;align-items:baseline;text-decoration:none;background:var(--surface);border:1px solid var(--border);border-radius:12px;padding:14px 18px;color:var(--ink)}.curriculum a:hover{border-color:var(--accent)}.curriculum .num{font:700 1.05rem/1 ui-monospace,monospace;color:var(--accent);flex-shrink:0}.curriculum .body{display:grid;gap:3px}.curriculum .title{font-weight:650}.curriculum .tagline{color:var(--ink-2);font-size:.88rem}.curriculum .mins{margin-left:auto;color:var(--ink-muted);font-size:.8rem;white-space:nowrap}.arc{display:grid;gap:12px}.arc-title{font-size:.85rem;font-weight:700;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);margin-top:8px}.arc-tagline{color:var(--ink-2);font-size:.92rem;max-width:40rem;margin-top:-6px}.home-note p{color:var(--ink-muted);font-size:.88rem}.course-meta{color:var(--ink-muted);font-size:.82rem}.course-meta a{color:var(--ink-muted)}.course h1{font-size:2.05rem;line-height:1.15;letter-spacing:-.015em;margin:8px 0 10px}.course .lede{color:var(--ink-2);font-size:1.12rem;margin-bottom:8px}.course h2{font-size:1.4rem;letter-spacing:-.01em;margin:40px 0 12px}.course p{margin:14px 0}.course ul,.course ol{margin:14px 0;padding-left:26px}.course li{margin:8px 0}.course li::marker{color:var(--ink-muted)}.course i{color:inherit}.takeaways{margin-top:40px;padding:18px 22px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:12px}.takeaways h3{font-size:.92rem;margin-bottom:6px}.takeaways ul{margin:0;padding-left:22px}.takeaways li{margin:7px 0;font-size:.92rem;color:var(--ink-2)}.course-nav{display:flex;justify-content:space-between;gap:16px;margin-top:44px;padding-top:18px;border-top:1px solid var(--grid)}.course-nav a{display:grid;gap:2px;text-decoration:none;color:var(--ink);font-weight:600;font-size:.95rem;max-width:46%}.course-nav a span{color:var(--ink-muted);font-weight:400;font-size:.78rem}.course-nav a:hover{color:var(--accent)}.course-nav .next{text-align:right;margin-left:auto}figure.viz{margin:26px 0;background:var(--surface);border:1px solid var(--border);border-radius:14px;padding:14px 14px 12px}.viz-body{display:grid;gap:10px}.viz-canvas{width:100%;display:block;border-radius:8px}figure.viz svg{width:100%;height:auto;display:block}figure.viz figcaption{margin-top:10px;color:var(--ink-2);font-size:.84rem;line-height:1.55}figure.viz figcaption .hint{display:inline-block;margin-right:10px;color:var(--accent);font-size:.76rem;border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:999px;padding:0 9px;white-space:nowrap}figure.viz figcaption b{color:var(--ink)}.viz-controls{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:4px}.viz-note{color:var(--ink-muted);font-size:.78rem}.viz-legend{color:var(--ink-muted);font-size:.78rem;display:inline-flex;align-items:center;gap:5px}.viz-legend i{display:inline-block;width:14px;height:9px;border:1.5px dashed;border-radius:2px}.viz-slider{display:inline-flex;align-items:center;gap:8px;font-size:.82rem;color:var(--ink-2)}.viz-slider input{accent-color:var(--accent)}.chips{display:flex;gap:6px;flex-wrap:wrap}.chips button{background:none;border:1px solid var(--border);border-radius:999px;color:var(--ink-2);font-size:.8rem;padding:3px 12px;cursor:pointer}.chips button.on{background:var(--ink);color:var(--surface);border-color:var(--ink)}.c-blue{color:var(--cool)}.c-orange{color:var(--warm)}.seabreeze .sky{fill:var(--sky-day);transition:fill .6s}.seabreeze.night .sky{fill:var(--sky-night)}.seabreeze .sea{fill:#2f6fb4}.seabreeze .land{fill:#6f8a5a}.seabreeze .sun circle{fill:#f5c443}.seabreeze .sun line{stroke:#f5c443;stroke-width:3;stroke-linecap:round}.seabreeze .moon{fill:#e8e6da}.seabreeze .bubble{fill:color-mix(in srgb,var(--warm) 55%,transparent);animation:rise 3.4s linear infinite}.seabreeze .flow{fill:none;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:10 12;animation:flowdash 1.1s linear infinite}.seabreeze .flow.warm{stroke:var(--warm)}.seabreeze .flow.cool{stroke:#7fb2e8}.seabreeze .flow.aloft{stroke:color-mix(in srgb,var(--ink-muted) 70%,transparent)}.seabreeze .lbl{font:600 14px system-ui,sans-serif;fill:#fff}.seabreeze .breeze-lbl{fill:var(--ink);font-size:15px}.seabreeze .aloft-lbl{fill:var(--ink-muted);font-weight:400;font-size:12px}@keyframes flowdash{to{stroke-dashoffset:-22}}@keyframes rise{0%{transform:translateY(0);opacity:0}15%{opacity:.9}to{transform:translateY(-95px);opacity:0}}@media(prefers-reduced-motion:reduce){.seabreeze .flow,.seabreeze .bubble{animation:none}}.gridline{stroke:var(--grid);stroke-width:1}.tick{font:11px ui-monospace,monospace;fill:var(--ink-muted)}.axis{font:12px system-ui,sans-serif;fill:var(--ink-muted)}.lbl{font:600 12.5px system-ui,sans-serif;fill:var(--ink-2)}.windprofile .curve{fill:none;stroke:var(--accent);stroke-width:2.5}.windprofile .ref{stroke:var(--ink-muted);stroke-dasharray:3 4;stroke-width:1}.windprofile .dot{stroke:var(--surface);stroke-width:1.5}.windprofile .dot10{fill:var(--warm)}.windprofile .dot2{fill:var(--good)}.windprofile .marklbl{font:600 12.5px system-ui,sans-serif;fill:var(--ink)}.sigmalevels .terrain{fill:#6f8a5a}.sigmalevels .level{fill:none;stroke:color-mix(in srgb,var(--accent) 55%,transparent);stroke-width:1}.sigmalevels .level.lowest{stroke:var(--warm);stroke-width:2}.sigmalevels .lbl{fill:var(--ink-muted);font-weight:400;font-size:12px}.sigmalevels .lowest-lbl{fill:var(--warm);font-weight:600}.assim .future{fill:color-mix(in srgb,var(--accent) 5%,transparent)}.assim .truth{fill:none;stroke:var(--ink-muted);stroke-width:2.5;opacity:.55}.assim .ob{fill:var(--warm)}.assim .model{fill:none;stroke:var(--accent);stroke-width:2}.assim .model.forecast{stroke-dasharray:6 4}.assim .pull line{stroke:var(--good);stroke-width:2}.assim .pull circle{fill:var(--good)}.assim .truth-lbl{fill:var(--ink-muted)}.assim .model-lbl{fill:var(--accent)}.ensemble .member{fill:none;stroke:var(--accent);stroke-width:1.1;opacity:.38}.ensemble .member.control{stroke:var(--warm);stroke-width:2;opacity:1}.modelzoo .rowline{stroke:var(--grid)}.modelzoo .rowlbl{font:600 12.5px system-ui,sans-serif;fill:var(--ink-2)}.modelzoo text{font:600 11.5px system-ui,sans-serif;fill:var(--ink-2)}.modelzoo .tick,.modelzoo .axis{font-weight:400}.modelzoo .dot-global circle{fill:var(--cool)}.modelzoo .dot-continental circle{fill:#9085e9}.modelzoo .dot-regional circle{fill:var(--warm)}.modelzoo .dot-local circle{fill:var(--good)}.modelzoo .us text{fill:var(--ink)}.modelzoo .us circle{stroke:var(--ink);stroke-width:1.5}.pipeline .pbox rect{fill:var(--page);stroke:var(--border);stroke-width:1.2}.pipeline .pbox.wrf rect{stroke:var(--accent)}.pipeline .ptitle{font:700 14px system-ui,sans-serif;fill:var(--ink)}.pipeline .psub{font:11.5px system-ui,sans-serif;fill:var(--ink-muted)}.pipeline .nest rect{fill:none;stroke-width:1.5}.pipeline .nest text{font:600 10.5px ui-monospace,monospace}.pipeline .nest.n1 rect{stroke:var(--ink-muted)}.pipeline .nest.n1 text{fill:var(--ink-muted)}.pipeline .nest.n2 rect{stroke:#e8b93c}.pipeline .nest.n2 text{fill:#b8912a}.pipeline .nest.n3 rect{stroke:var(--good)}.pipeline .nest.n3 text{fill:var(--good)}.pipeline .flowline{fill:none;stroke:var(--ink-muted);stroke-width:1.6;stroke-dasharray:6 5;animation:flowdash 1.2s linear infinite}.pipeline .arrhead{fill:var(--ink-muted)}@media(prefers-reduced-motion:reduce){.pipeline .flowline{animation:none}}.obs-list{list-style:none;padding:0!important;display:grid;gap:10px}.obs-list li{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:10px 14px;font-size:.92rem;color:var(--ink-2);margin:0!important}.obs-list b{color:var(--ink)}figure.namelist{padding:0 0 12px;overflow:hidden}.nl-title{font:600 .78rem ui-monospace,monospace;color:var(--ink-muted);padding:10px 16px 8px;border-bottom:1px solid var(--grid);background:color-mix(in srgb,var(--ink) 3%,var(--surface))}.nl-body{margin:0;padding:10px 0;overflow-x:auto;font:.8rem/1.55 ui-monospace,monospace;color:var(--ink-2);display:grid}.nl-line{display:block;padding:0 16px;white-space:pre}button.nl-line{background:none;border:none;font:inherit;text-align:left;cursor:pointer;color:var(--ink);position:relative;border-left:3px solid color-mix(in srgb,var(--accent) 45%,transparent);padding-left:13px}button.nl-line:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}button.nl-line.on{background:color-mix(in srgb,var(--accent) 12%,transparent);border-left-color:var(--accent)}.nl-note{margin:10px 14px 0;padding:10px 14px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);border-radius:10px;font-size:.85rem;line-height:1.55;color:var(--ink-2)}.nl-note b,.nl-note code{color:var(--ink)}figure.namelist figcaption{padding:0 16px}.course code{font:.85em ui-monospace,monospace;background:color-mix(in srgb,var(--ink) 6%,transparent);padding:1px 5px;border-radius:5px}.toolchain .tbox{cursor:pointer}.toolchain .tbox rect{fill:var(--page);stroke:var(--border);stroke-width:1.2}.toolchain .tbox:hover rect{stroke:var(--accent)}.toolchain .tbox.on rect{stroke:var(--accent);stroke-width:2;fill:color-mix(in srgb,var(--accent) 7%,var(--page))}.toolchain .tname{font:700 15px ui-monospace,monospace;fill:var(--ink)}.toolchain .tsub{font:10px system-ui,sans-serif;fill:var(--ink-muted)}.toolchain .tflow{fill:none;stroke:var(--ink-muted);stroke-width:1.5;stroke-dasharray:5 5}.toolchain .tarr{fill:var(--ink-muted)}.toolchain .tfile{font:600 11px ui-monospace,monospace;fill:var(--accent)}.toolchain .tsrc{font-weight:400;fill:var(--ink-muted)}.boundaryfeed .bcell{stroke:var(--grid);stroke-width:.6;fill:var(--page)}.boundaryfeed .bcell.spec{fill:color-mix(in srgb,var(--warm) 55%,var(--page))}.boundaryfeed .bcell.r1{fill:color-mix(in srgb,var(--warm) 32%,var(--page))}.boundaryfeed .bcell.r2{fill:color-mix(in srgb,var(--warm) 22%,var(--page))}.boundaryfeed .bcell.r3{fill:color-mix(in srgb,var(--warm) 13%,var(--page))}.boundaryfeed .bcell.r4{fill:color-mix(in srgb,var(--warm) 6%,var(--page))}.boundaryfeed .bflow{stroke:var(--warm);stroke-width:2.5;stroke-linecap:round;stroke-dasharray:5 7;animation:flowdash 1.1s linear infinite}.boundaryfeed .blbl{font:600 12.5px system-ui,sans-serif}.boundaryfeed .spec-lbl{fill:var(--warm)}.boundaryfeed .relax-lbl{fill:color-mix(in srgb,var(--warm) 55%,var(--ink-muted))}@media(prefers-reduced-motion:reduce){.boundaryfeed .bflow{animation:none}}.arakawa .mass{fill:var(--ink-2)}.arakawa .avars{font:600 12px ui-monospace,monospace;fill:var(--ink-2)}.arakawa .uarrow{stroke:var(--warm);stroke-width:2.5;fill:none}.arakawa .uhead{fill:var(--warm)}.arakawa .varrow{stroke:var(--cool);stroke-width:2.5;fill:none}.arakawa .vhead{fill:var(--cool)}.arakawa .ulbl{fill:var(--warm);font-size:15px}.arakawa .vlbl{fill:var(--cool);font-size:15px}.arakawa .mlbl{fill:var(--ink-2)}.dttrace .curve{fill:none;stroke:var(--accent);stroke-width:2.5}.dttrace .cap{stroke:var(--warm);stroke-dasharray:5 5;stroke-width:1.5}.dttrace .caplbl{fill:var(--warm);font-size:11.5px}.dttrace .frontlbl{fill:var(--ink-muted);font-weight:400}.thermalcol .water{fill:#2f6fb4}.thermalcol .forest{fill:#4e6b40}.thermalcol .field{fill:#b08a4f}.thermalcol .bubble{fill:color-mix(in srgb,var(--warm) 55%,transparent);animation:rise 3.2s linear infinite}.thermalcol .flow{fill:none;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:10 12;animation:flowdash 1.1s linear infinite}.thermalcol .flow.rise{stroke:var(--warm)}.thermalcol .flow.spread{stroke:color-mix(in srgb,var(--ink-muted) 70%,transparent);stroke-width:2.5}.thermalcol .flow.inflow{stroke:#7fb2e8}.thermalcol .inhead{fill:#7fb2e8}.thermalcol .lbl{fill:var(--ink);font-size:13px}.thermalcol .feedlbl{fill:#7fb2e8}.thermalcol .riselbl{fill:var(--warm)}@media(prefers-reduced-motion:reduce){.thermalcol .flow,.thermalcol .bubble{animation:none}}.spotmap .sea{fill:#2f6fb4}.spotmap .land{fill:#6f8a5a}.spotmap .flats{fill:#a8a568;transition:fill .5s}.spotmap .flats.hot{fill:#c29a52}.spotmap .ridge{fill:#46603c}.spotmap .lowland{fill:#8ea065}.spotmap .shallow{fill:color-mix(in srgb,#7fc4c9 55%,#2f6fb4)}.spotmap .island{fill:#5d7a4e}.spotmap .coldpool{fill:color-mix(in srgb,#9fd4e8 38%,transparent);stroke:#9fd4e8;stroke-width:1.5;stroke-dasharray:6 6}.spotmap .coldlbl{font:600 12.5px system-ui,sans-serif;fill:#c9ecfa}.spotmap .flow{fill:none;stroke-width:3.5;stroke-linecap:round;stroke-dasharray:9 11;animation:flowdash 1s linear infinite}.spotmap .flow.thermal{stroke:#8fd0ff}.spotmap .flow.opposing{stroke:var(--warm)}.spotmap .flow.weak{stroke:color-mix(in srgb,#8fd0ff 45%,transparent);stroke-width:2.5}.spotmap .flow.offshore{stroke:#e0b25e}.spotmap .flow.cold{stroke:#bfeaff}.spotmap .flow.big{stroke-width:5}.spotmap .cshead{fill:#cfe8ff}.spotmap .stratus ellipse{fill:#bec3c8d1}.spotmap .stratus text{font:600 12.5px system-ui,sans-serif;fill:#3c4147}.spotmap .wlbl{font:600 12.5px system-ui,sans-serif;fill:#d7e7f7}.spotmap .glbl{font:600 12.5px system-ui,sans-serif;fill:#f0ead8}.spotmap .spot{fill:#fff;stroke:var(--warm);stroke-width:3}.spotmap .spot.dim{fill:#ffffff73;stroke:#ffffff80;stroke-width:2}.spotmap .spotlbl{font:700 13px system-ui,sans-serif;fill:#fff;paint-order:stroke;stroke:#00000059;stroke-width:2.5px}.spotmap .spotlbl.dim{font-weight:600;fill:#ffffffbf}.spotmap .badge rect{fill:#00000073}.spotmap .badge text{font:700 12.5px system-ui,sans-serif;fill:#ffb199}.spotmap.is-on .badge text{fill:#79e0b8}@media(prefers-reduced-motion:reduce){.spotmap .flow{animation:none}}@media(max-width:480px){body{font-size:16px}.course h1{font-size:1.65rem}.hero h2{font-size:1.5rem}.curriculum .mins{display:none}figure.viz{padding:10px;margin-left:-4px;margin-right:-4px}}.brand>button span{color:var(--accent);font-weight:400}
