:root{--paper: #f4f6fa;--glow: #ece6f8;--glow-2: #e5ece8;--sheet: #ffffff;--well: #eef1f6;--raised: #ffffff;--hero-from: #ffffff;--hero-to: #f0ebfa;--ink: #1c2030;--ink-2: #4b5266;--ink-3: #636b80;--rule: rgba(28, 32, 48, .09);--rule-strong: rgba(28, 32, 48, .22);--band: rgba(28, 32, 48, .04);--signal: #8e78c8;--signal-ink: #5b4699;--accent: #6a53ad;--accent-hover: #5b4699;--accent-fg: #ffffff;--accent-soft: #f0ebfa;--shadow-sm: 0 1px 2px rgba(20, 26, 45, .07);--shadow: 0 1px 2px rgba(20, 26, 45, .05), 0 8px 24px -10px rgba(20, 26, 45, .14);--shadow-lg: 0 2px 6px rgba(20, 26, 45, .06), 0 22px 44px -16px rgba(20, 26, 45, .24);--radius: 16px;--radius-sm: 10px;--serif: "Fraunces", Georgia, serif;--sans: "Inter", system-ui, -apple-system, "Segoe UI", sans-serif;--mono: "JetBrains Mono", ui-monospace, "SF Mono", Menlo, monospace;--gutter: 32px;--max: 1280px;color-scheme:light}:root[data-theme=dark]{--paper: #0f1117;--glow: rgba(182, 164, 234, .12);--glow-2: rgba(150, 190, 175, .06);--sheet: #171a23;--well: #1d212c;--raised: #2a2f3d;--hero-from: #171a23;--hero-to: #1e1b2e;--ink: #eceef4;--ink-2: #b7bccb;--ink-3: #8f95a7;--rule: rgba(236, 238, 244, .09);--rule-strong: rgba(236, 238, 244, .22);--band: rgba(236, 238, 244, .05);--signal: #b6a4ea;--signal-ink: #c9bcf2;--accent: #a993e3;--accent-hover: #bba9ec;--accent-fg: #160f26;--accent-soft: rgba(182, 164, 234, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -12px rgba(0, 0, 0, .6);--shadow-lg: 0 2px 6px rgba(0, 0, 0, .35), 0 24px 48px -16px rgba(0, 0, 0, .7);color-scheme:dark}@media(prefers-color-scheme:dark){:root:not([data-theme=light]){--paper: #0f1117;--glow: rgba(182, 164, 234, .12);--glow-2: rgba(150, 190, 175, .06);--sheet: #171a23;--well: #1d212c;--raised: #2a2f3d;--hero-from: #171a23;--hero-to: #1e1b2e;--ink: #eceef4;--ink-2: #b7bccb;--ink-3: #8f95a7;--rule: rgba(236, 238, 244, .09);--rule-strong: rgba(236, 238, 244, .22);--band: rgba(236, 238, 244, .05);--signal: #b6a4ea;--signal-ink: #c9bcf2;--accent: #a993e3;--accent-hover: #bba9ec;--accent-fg: #160f26;--accent-soft: rgba(182, 164, 234, .12);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .35);--shadow: 0 1px 2px rgba(0, 0, 0, .3), 0 10px 28px -12px rgba(0, 0, 0, .6);--shadow-lg: 0 2px 6px rgba(0, 0, 0, .35), 0 24px 48px -16px rgba(0, 0, 0, .7);color-scheme:dark}}*{box-sizing:border-box}html{-webkit-text-size-adjust:100%}body{margin:0;min-height:100vh;background:radial-gradient(1000px 520px at 8% -10%,var(--glow),transparent 70%),radial-gradient(800px 460px at 96% -6%,var(--glow-2),transparent 70%),var(--paper);background-repeat:no-repeat;background-color:var(--paper);color:var(--ink);font:400 15px/1.55 var(--sans);-webkit-font-smoothing:antialiased;overflow-x:hidden}a{color:inherit}button,input,select{font:inherit;color:inherit}button{cursor:pointer}h1,h2,h3{text-wrap:balance}p{margin:0 0 12px}::selection{background:var(--signal);color:#fff}:focus-visible{outline:2px solid var(--signal);outline-offset:2px}main{overflow-x:clip}main:focus{outline:none}.mono{font-family:var(--mono)}.muted{color:var(--ink-3)}.small{font-size:11.5px}.num{text-align:right;justify-self:end}code{padding:1px 6px;border-radius:5px;background:var(--well);font-family:var(--mono);font-size:.88em}.skip-link{position:absolute;left:16px;top:-60px;z-index:60;padding:10px 14px;border-radius:var(--radius-sm);background:var(--sheet);box-shadow:var(--shadow-lg)}.skip-link:focus{top:12px}.wrap{max-width:var(--max);margin:0 auto;padding:0 var(--gutter)}.chip{display:inline-block;padding:3px 9px;border-radius:999px;background:var(--accent-soft);color:var(--signal-ink);font-size:11px;letter-spacing:.04em}.masthead{position:sticky;top:0;z-index:20;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--paper) 88%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}.masthead-inner{display:flex;align-items:center;gap:32px;min-height:64px}.brand-link{display:flex;align-items:center;text-decoration:none}.brand{display:inline-flex;align-items:baseline;gap:12px}.brand-name{font:600 21px/1 var(--serif);letter-spacing:-.01em}.brand-i{position:relative;color:var(--signal)}.brand-i:after{content:"";position:absolute;left:50%;top:.17em;width:.2em;height:.2em;border-radius:50%;background:var(--accent);box-shadow:0 0 0 .06em color-mix(in srgb,var(--signal) 24%,transparent);transform:translate(-50%)}.brand-link:hover .brand-i:after,.brand-link:focus-visible .brand-i:after{animation:brand-pulse 1.6s ease-out infinite}@keyframes brand-pulse{0%{box-shadow:0 0 color-mix(in srgb,var(--signal) 55%,transparent)}to{box-shadow:0 0 0 .42em color-mix(in srgb,var(--signal) 0%,transparent)}}@media(prefers-reduced-motion:reduce){.brand-link:hover .brand-i:after,.brand-link:focus-visible .brand-i:after{animation:none}}.brand-long{font:600 10px/1 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.sheets-nav{display:flex;align-items:center;gap:28px;margin-left:auto;overflow-x:auto;scrollbar-width:none}.sheets-nav::-webkit-scrollbar{display:none}.sheets-nav a{padding:4px 0;white-space:nowrap;text-decoration:none;font:400 16px/1 var(--serif);letter-spacing:.005em;color:var(--ink-2);background:linear-gradient(var(--signal),var(--signal)) 0 100% / 0 1.5px no-repeat;transition:color .25s,background-size .35s cubic-bezier(.2,.8,.2,1)}.sheets-nav a:hover,.sheets-nav a:focus-visible,.sheets-nav a[aria-current=page]{color:var(--signal-ink);background-size:100% 1.5px;outline:none}.theme-toggle{flex:none;display:grid;place-items:center;width:32px;height:32px;border:0;background:none;color:var(--ink-2);transition:color .2s}.theme-toggle:hover{color:var(--signal-ink)}.sheet{padding-bottom:72px}.page-banner{padding:40px 0 22px}.page-banner h1{margin:0;font:700 clamp(36px,4.2vw,54px)/1.05 var(--serif);letter-spacing:-.02em}@media(max-width:640px){.page-banner{padding:28px 0 16px}}.stack{display:grid;gap:18px;min-width:0}.tb-item{display:flex;align-items:center;gap:10px}.tb-label,.field-label,.readout-label,.mono.plate-index,.mono.chip,.mono.index-class,.mono.legend,.inline-links>.mono,.partners .mono,.data-table th,.table .tr.th{display:block;font:600 10.5px/1.3 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}.mono.plate-index,.mono.chip{display:inline-block;color:var(--signal-ink)}.data-table th{display:table-cell}.table .tr.th{display:grid}.tb-range{font-size:12.5px;color:var(--ink-2)}select{appearance:none;-webkit-appearance:none;border-radius:0;background-color:transparent;background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-size:5px 5px;background-repeat:no-repeat}.tb-building select{border:0;padding:0 22px 0 0;font-size:15px;font-weight:600;background-position:calc(100% - 9px) 55%,calc(100% - 4px) 55%}.segmented{display:inline-flex;gap:2px;padding:3px;border-radius:11px;background:var(--well)}.segmented button{padding:5px 11px;border:0;border-radius:8px;background:none;font-family:var(--mono);font-size:12px;color:var(--ink-2);text-transform:uppercase}.segmented button:hover{color:var(--ink)}.segmented button[aria-pressed=true]{background:var(--raised);box-shadow:var(--shadow-sm);color:var(--ink);font-weight:600}.building-card{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 28px;margin:28px 0 20px;padding:20px 22px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--sheet);box-shadow:var(--shadow)}.bc-main{display:grid;gap:4px;min-width:0}.bc-title{margin:0;font:700 clamp(26px,2.8vw,34px)/1.15 var(--serif);letter-spacing:-.015em}.bc-meta{font-size:13.5px;color:var(--ink-2)}.bc-controls{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px}.tabs.bc-tabs{flex:1 1 100%;gap:26px;margin:2px -22px -20px;padding:0 22px;border-top:1px solid var(--rule);border-radius:0;background:none}.tabs.bc-tabs a{padding:13px 0 11px;border-bottom:2px solid transparent;border-radius:0}.tabs.bc-tabs a[aria-current=page]{border-bottom-color:var(--accent);background:none;box-shadow:none;color:var(--ink)}.tabs{display:flex;gap:2px;padding:4px;overflow-x:auto;border-radius:12px;background:var(--well);scrollbar-width:none}.tabs a{padding:8px 16px;border-radius:9px;white-space:nowrap;text-decoration:none;font-size:14.5px;font-weight:500;color:var(--ink-2);transition:background .15s,color .15s}.tabs a:hover{color:var(--ink)}.tabs a[aria-current=page]{background:var(--raised);box-shadow:var(--shadow-sm);color:var(--ink);font-weight:600}.plate{min-width:0;margin:0;padding:20px 22px 22px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--sheet);box-shadow:var(--shadow)}.plate-head{display:flex;align-items:center;gap:10px;margin:0 0 14px}.plate-index{padding:2px 7px;border-radius:6px;background:var(--accent-soft);white-space:nowrap;font-size:10.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--signal-ink)}.plate-head h2{margin:0;font:700 19px/1.25 var(--serif);letter-spacing:-.01em}.plate-action{flex:none;margin-left:auto}.plate-foot{margin:16px 0 0;padding-top:12px;border-top:1px solid var(--rule);font-size:11.5px;color:var(--ink-3)}.part{margin-top:16px;border:1px solid var(--rule);border-radius:14px;background:var(--sheet);box-shadow:var(--shadow-sm)}.part-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;min-height:50px;padding:9px 12px 9px 16px;border-bottom:1px solid var(--rule);border-radius:13px 13px 0 0;background:color-mix(in srgb,var(--well) 50%,var(--sheet))}.part-head h3{margin:0;font:600 15px/1.3 var(--serif);letter-spacing:-.005em;color:var(--ink);overflow-wrap:anywhere}.part-head>:not(h3){margin-left:auto}.part-meta{font:400 13px var(--sans);letter-spacing:0;color:var(--ink-3)}.part-body{min-width:0;padding:14px 16px 16px}@media(max-width:640px){.part-head{padding-left:12px}.part-body{padding:12px 12px 14px}}.btn{display:inline-flex;align-items:center;gap:8px;height:44px;padding:0 20px;border:1px solid var(--rule-strong);border-radius:12px;background:var(--sheet);box-shadow:var(--shadow-sm);font-size:14.5px;font-weight:600;text-decoration:none;transition:transform .15s,box-shadow .15s,background .15s}.btn:hover{transform:translateY(-1px);box-shadow:var(--shadow)}.btn.primary{border-color:transparent;background:var(--accent);color:var(--accent-fg);box-shadow:0 6px 18px -6px color-mix(in srgb,var(--accent) 60%,transparent)}.btn.primary:hover{background:var(--accent-hover)}.btn.wide{width:100%;justify-content:center}.link-button,.link{display:inline-flex;align-items:center;gap:6px;padding:0;border:0;background:none;font-size:14px;font-weight:600;text-decoration:underline;text-decoration-thickness:1px;text-decoration-color:var(--rule-strong);text-underline-offset:4px}.link-button:hover,.link:hover{color:var(--signal-ink);text-decoration-color:var(--signal)}.status{display:inline-flex;align-items:center;gap:7px;padding:3px 9px;border-radius:999px;background:var(--accent-soft);white-space:nowrap;font-family:var(--mono);font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--signal-ink)}.status i{flex:none;width:8px;height:8px;border-radius:2px;background:currentColor}.field select{width:100%;height:40px;padding:0 32px 0 12px;border:1px solid var(--rule-strong);border-radius:var(--radius-sm);background-color:var(--sheet);font-size:14px;background-position:calc(100% - 16px) 55%,calc(100% - 11px) 55%}.field-label{margin-bottom:8px}fieldset{min-width:0;margin:0;padding:0;border:0}.definition{margin:16px 0 0;padding:12px 14px;border-radius:12px;background:var(--well);font-size:14px;line-height:1.55}.definition .mono{display:block;margin-bottom:4px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.readout-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.readout{position:relative;display:flex;flex-direction:column;gap:4px;min-width:0}.readout.card{padding:18px 20px 20px;border:1px solid var(--rule);border-radius:var(--radius);background:var(--sheet);box-shadow:var(--shadow)}.readout-chip{position:absolute;top:16px;right:16px;display:grid;place-items:center;width:34px;height:34px;border-radius:10px;background:var(--accent-soft);color:var(--signal-ink)}.readout-value{margin-top:6px;font:700 clamp(30px,3vw,40px)/1.05 var(--serif);letter-spacing:-.02em;font-variant-numeric:tabular-nums lining-nums}.readout-value small{margin-left:6px;font:500 14px/1 var(--sans);letter-spacing:0;color:var(--ink-3)}.readout-note{font-size:13px;color:var(--ink-2)}.readouts.compact{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(0,1fr);gap:12px;margin-top:16px}.compact .readout{padding:12px 14px;border-radius:12px;background:var(--well)}.compact .readout-value{margin-top:2px;font-size:21px}.chart{position:relative}.chart svg{display:block;width:100%;height:auto;overflow:visible;touch-action:pan-y}.chart svg:focus-visible{outline-offset:6px}.chart-grid{stroke:var(--rule);stroke-width:1}.chart-axis{stroke:var(--rule-strong);stroke-width:1}.chart-tick,.chart-unit,.chart-flag,.chart-callout text{font-family:var(--mono);font-size:10.5px;fill:var(--ink-3)}.chart-unit{fill:var(--ink-2);font-weight:500}.chart-band{fill:color-mix(in srgb,var(--ink) 3.5%,transparent)}.chart-range{fill:color-mix(in srgb,var(--signal) 18%,transparent)}.chart-forecast-zone{fill:color-mix(in srgb,var(--signal) 7%,transparent)}.chart-line{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:round;stroke-linecap:round}.chart-line.forecast{stroke:var(--signal)}.chart-now{stroke:var(--ink-3);stroke-width:1}.chart-flag{font-weight:600;letter-spacing:.06em;fill:var(--ink-2)}.chart-callout path{fill:none;stroke:color-mix(in srgb,var(--signal) 55%,transparent);stroke-width:1}.chart-callout rect{fill:var(--sheet);stroke:var(--rule-strong)}.chart-callout circle{fill:var(--sheet);stroke:var(--signal);stroke-width:2}.chart-callout text{font-weight:600;fill:var(--ink)}.chart-callout text.sub{font-weight:400;fill:var(--ink-2)}.chart-cross line{stroke:var(--ink-3);stroke-width:1}.chart-cross circle{fill:var(--accent);stroke:var(--sheet);stroke-width:2}.chart-cross circle.forecast{fill:var(--signal)}.chart-tip{position:absolute;top:26px;display:flex;flex-direction:column;gap:1px;padding:8px 11px;border:1px solid var(--rule);border-radius:10px;background:var(--sheet);box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;font-family:var(--mono);font-size:11px;color:var(--ink-2)}.chart-tip strong{font-size:14px;color:var(--ink)}.chart-tip strong small{font-size:11px;font-weight:400;color:var(--ink-3)}.chart-tip b{font-weight:600;color:var(--signal-ink)}.chart-empty{padding:48px 16px;border:1px dashed var(--rule-strong);border-radius:12px;text-align:center;color:var(--ink-3)}.spark{display:block;width:100%;height:28px}.spark path{fill:none;stroke:var(--signal);stroke-width:1.5;stroke-linejoin:round}.legend{display:flex;flex-wrap:wrap;gap:6px 22px;margin-bottom:8px;font-size:11.5px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.swatch{display:inline-block;width:22px;margin-right:6px;vertical-align:middle;border-top:2px solid var(--accent)}.swatch.range{height:8px;border:0;border-radius:2px;background:color-mix(in srgb,var(--signal) 18%,transparent)}.kpis{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:4px 0 20px;padding-bottom:18px;border-bottom:1px solid var(--rule)}.kpis .readout{padding:0 20px}.kpis .readout:first-child{padding-left:0}.kpis .readout+.readout{border-left:1px solid var(--rule)}.kpis .readout-value{font-size:clamp(26px,2.4vw,32px)}.swatch.baseline{border-top-color:var(--signal)}.table .tr{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,2fr) 104px;gap:24px;align-items:center;width:100%;padding:10px 12px;border:0;border-radius:10px;background:none;text-align:left;font-size:14px;transition:background .12s}.table .tr.th{padding-top:0;padding-bottom:6px;font-family:var(--mono);font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.table button.tr:hover{background:var(--well)}.table .tr.current{background:color-mix(in srgb,var(--accent-soft) 70%,transparent);box-shadow:inset 3px 0 0 var(--accent)}.table .tr strong{font-size:14.5px;font-weight:600}.table .num small{color:var(--ink-3)}.data-table{width:100%;border-collapse:collapse;font-size:14px}.data-table th{padding:0 12px 8px 0;border-bottom:1px solid var(--rule);text-align:left;font-family:var(--mono);font-size:10.5px;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.data-table td{padding:9px 12px 9px 0;border-bottom:1px solid var(--rule)}.data-table tr:last-child td{border-bottom:0}.data-table .num{padding-right:0;text-align:right}.data-table tr.current td{background:var(--accent-soft)}.kicker{display:block;font:600 11px/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;color:var(--signal-ink)}.features{display:grid;gap:24px}.feature{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,7fr);gap:36px;align-items:center;padding:26px;border:1px solid var(--rule);border-radius:22px;background:color-mix(in srgb,var(--well) 55%,var(--sheet));box-shadow:var(--shadow-sm)}.feature.flip{grid-template-columns:minmax(0,7fr) minmax(0,4fr)}.feature.flip .feature-copy{order:2}.feature-copy{padding:0 14px}.feature-copy h2{margin:10px 0 0;font:700 clamp(24px,2.4vw,30px)/1.15 var(--serif);letter-spacing:-.015em}.feature-copy p{margin:12px 0 0;font:400 17px/1.5 var(--serif);color:var(--ink-2)}.ahu-story{padding:18px 18px 14px;border:1px solid var(--rule);border-radius:18px;background:var(--sheet);box-shadow:var(--shadow)}.ahu-story svg{display:block;width:100%;height:auto;overflow:visible}.ahu-story{--ahu-line: color-mix(in srgb, var(--signal-ink) 45%, var(--ink));--ahu-face: color-mix(in srgb, var(--signal) 5%, var(--sheet));--ahu-lid: color-mix(in srgb, var(--signal) 9%, var(--sheet));--ahu-wall: color-mix(in srgb, var(--signal) 13%, var(--sheet));--ahu-end: color-mix(in srgb, var(--signal) 19%, var(--sheet));--ahu-floor: color-mix(in srgb, var(--signal) 24%, var(--sheet));--ahu-side: color-mix(in srgb, var(--signal) 30%, var(--sheet));--ahu-deep: color-mix(in srgb, var(--signal) 42%, var(--sheet));--ahu-cool: var(--accent);--ahu-hot: color-mix(in srgb, #cf7f90 82%, var(--ink-2))}:root[data-theme=dark] .ahu-story{--ahu-face: color-mix(in srgb, var(--signal) 24%, var(--sheet));--ahu-lid: color-mix(in srgb, var(--signal) 28%, var(--sheet));--ahu-wall: color-mix(in srgb, var(--signal) 9%, var(--sheet));--ahu-end: color-mix(in srgb, var(--signal) 18%, var(--sheet));--ahu-floor: color-mix(in srgb, var(--signal) 6%, var(--sheet));--ahu-side: color-mix(in srgb, var(--signal) 14%, var(--sheet));--ahu-deep: color-mix(in srgb, var(--signal) 3%, var(--sheet))}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .ahu-story{--ahu-face: color-mix(in srgb, var(--signal) 24%, var(--sheet));--ahu-lid: color-mix(in srgb, var(--signal) 28%, var(--sheet));--ahu-wall: color-mix(in srgb, var(--signal) 9%, var(--sheet));--ahu-end: color-mix(in srgb, var(--signal) 18%, var(--sheet));--ahu-floor: color-mix(in srgb, var(--signal) 6%, var(--sheet));--ahu-side: color-mix(in srgb, var(--signal) 14%, var(--sheet));--ahu-deep: color-mix(in srgb, var(--signal) 3%, var(--sheet))}}.ahu-drawing{fill:none;stroke:var(--ahu-line);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}.ahu-drawing .guide{stroke:var(--rule-strong);stroke-width:.8}.ahu-drawing .face{fill:var(--ahu-face)}.ahu-drawing .lid{fill:var(--ahu-lid)}.ahu-drawing .wall{fill:var(--ahu-wall);stroke-width:1}.ahu-drawing .end,.ahu-drawing .rim{fill:var(--ahu-end)}.ahu-drawing .floor,.ahu-drawing .side-in{fill:var(--ahu-floor);stroke-width:1}.ahu-drawing .side,.ahu-drawing .blade{fill:var(--ahu-side)}.ahu-drawing .blade{stroke-width:1.1}.ahu-drawing .sweep{fill:var(--ahu-side);stroke:var(--ahu-side);stroke-width:.8}.ahu-drawing .deep{fill:var(--ahu-deep)}.ahu-drawing .inner{stroke-width:1;opacity:.55}.ahu-drawing .thin{stroke-width:1}.ahu-drawing .hatch{stroke-width:.8;opacity:.5}.ahu-drawing .tube{stroke:var(--ahu-cool);stroke-width:2.2}.ahu-drawing .tube.hot{stroke:var(--ahu-hot)}.ahu-drawing .drop{fill:color-mix(in srgb,var(--ahu-cool) 22%,var(--sheet));stroke:var(--ahu-cool);stroke-width:1.1}.ahu-drawing .wave{stroke-width:1.2}.ahu-drawing .air{fill:url(#ahu-air);stroke:none}.ahu-drawing .air.inside{opacity:.95}.air-stop{stop-color:var(--signal)}.ahu-drawing .sensor-stem{stroke:var(--signal);stroke-width:2}.ahu-drawing .sensor{fill:var(--accent-soft);stroke:var(--signal);stroke-width:2}.step-1 .ahu-art{opacity:.28}.step-2 .ahu-art,.step-3 .ahu-art{opacity:0}.ahu-art{transition:opacity .6s}.graph-head{fill:var(--signal);stroke:none}.ahu-leaders path{stroke:var(--signal);stroke-width:1;stroke-dasharray:3 3;opacity:0;transition:opacity .4s .5s}.step-1 .ahu-leaders path{opacity:.8}.ahu-pill{opacity:0;transition:transform .9s cubic-bezier(.2,.8,.2,1),opacity .5s}.ahu-pill rect{fill:var(--sheet);stroke:var(--signal);stroke-width:1.5}.ahu-pill text{font:500 11px var(--mono);fill:var(--ink)}.ahu-pill.main rect{fill:var(--accent);stroke:var(--accent)}.ahu-pill.main text{fill:var(--accent-fg);font-weight:600}.step-1 .ahu-pill:not(.late),.step-2 .ahu-pill,.step-3 .ahu-pill.main,.step-3 .ahu-pill.hot{opacity:1}.step-3 .ahu-pill:not(.main):not(.hot){opacity:.12}.step-3 .ahu-pill.late{opacity:0}.ahu-edges path{fill:none;stroke:color-mix(in srgb,var(--signal) 62%,var(--sheet));stroke-width:1.6;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset .9s .4s ease}.ahu-edges text{font:10px var(--mono);fill:var(--ink-3);opacity:0;paint-order:stroke;stroke:var(--sheet);stroke-width:4px;transition:opacity .4s .9s}.step-2 .ahu-edges path,.step-3 .ahu-edges path{stroke-dashoffset:0}.step-2 .ahu-edges text{opacity:1}.step-3 .ahu-edges{opacity:0}.ahu-edges{opacity:0;transition:opacity .5s}.step-2 .ahu-edges{opacity:1}.ahu-telemetry{opacity:0;transition:opacity .5s}.ahu-telemetry rect{fill:var(--sheet);stroke:var(--rule-strong)}.ahu-telemetry .grid,.ahu-telemetry .rule{stroke:var(--rule)}.ahu-telemetry .link{stroke:var(--signal);stroke-dasharray:3 3}.ahu-telemetry .t-id{font:600 11.5px var(--mono);fill:var(--ink)}.ahu-telemetry .t-unit{font:500 10.5px var(--sans);fill:var(--ink-3)}.ahu-telemetry .t-big{font:700 26px var(--serif);fill:var(--ink)}.ahu-telemetry .t-big-unit{font:500 13px var(--sans);fill:var(--ink-3)}.ahu-telemetry .t-note{font:400 11px var(--sans);fill:var(--ink-2)}.ahu-telemetry .t-tick{font:400 9.5px var(--mono);fill:var(--ink-3)}.ahu-telemetry .peak{fill:var(--signal);stroke:var(--sheet);stroke-width:2}.ahu-telemetry .reading{fill:none;stroke:var(--signal);stroke-width:2.2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.6s .5s ease}.step-3 .ahu-telemetry{opacity:1}.step-3 .ahu-telemetry .reading{stroke-dashoffset:0}.tele-story .t-step{opacity:0;transition:opacity .5s}.tele-story.step-0 .s0,.tele-story.step-1 .s1,.tele-story.step-2 .s2,.tele-story.step-3 .s3{opacity:1}.tele-story .line{fill:none;stroke:var(--accent);stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:1;stroke-dashoffset:1;transition:stroke-dashoffset 1.2s .15s ease}.tele-story.step-0 .s0 .line,.tele-story.step-1 .s1 .line,.tele-story.step-2 .s2 .line,.tele-story.step-3 .s3 .line{stroke-dashoffset:0}.tele-story .line.ahead{stroke:var(--signal);transition-delay:1.1s}.tele-story .area{fill:color-mix(in srgb,var(--signal) 13%,transparent)}.tele-story .future{fill:color-mix(in srgb,var(--signal) 10%,transparent)}.tele-story .now{stroke:var(--signal-ink);stroke-dasharray:3 3}.tele-story .line.setpoint{stroke:var(--ink-3);stroke-width:1}.tele-story .line.flow{stroke:var(--signal);stroke-width:1.2}.tele-story .band{fill:color-mix(in srgb,var(--signal) 22%,transparent);opacity:0;transition:opacity .6s 1.2s}.tele-story.step-2 .s2 .band,.tele-story.step-3 .s3 .band{opacity:1}.tele-story .ui-menu>rect{fill:var(--sheet);stroke:var(--rule-strong);filter:drop-shadow(0 4px 8px rgba(20,26,45,.12))}.tele-story .ui-crumb{font-weight:600;fill:var(--ink)}.tele-story .peak{fill:var(--sheet);stroke:var(--accent);stroke-width:1.6}.tele-story .mon-frame{fill:var(--ahu-lid);stroke:var(--ahu-line);stroke-width:1.5;stroke-linejoin:round}.tele-story .mon-screen{fill:var(--sheet);stroke:var(--ahu-line);stroke-width:1}.tele-story .mon-shadow{fill:color-mix(in srgb,var(--ink) 7%,transparent)}.tele-story .ui-bar{fill:color-mix(in srgb,var(--signal) 7%,var(--sheet))}.tele-story .ui-side{fill:color-mix(in srgb,var(--well) 60%,var(--sheet))}.tele-story .ui-rule{fill:none;stroke:var(--rule)}.tele-story .ui-pill{fill:var(--accent-soft)}.tele-story .ui-brand{font:700 11px var(--serif);fill:var(--ink)}.tele-story .ui-tab{font:500 9px var(--sans);fill:var(--ink-3)}.tele-story .ui-tab.on,.tele-story .ui-item.on,.tele-story .ui-seg-text.on{font-weight:600;fill:var(--signal-ink)}.tele-story .ui-field{fill:var(--sheet);stroke:var(--rule-strong)}.tele-story .ui-field.on{stroke:var(--accent);stroke-width:1.4}.tele-story .ui-icon{fill:none;stroke:var(--ink-3);stroke-width:1.2;stroke-linecap:round}.tele-story .ui-caret{stroke:var(--accent);stroke-width:1.2;animation:tele-caret 1s steps(1) infinite}@keyframes tele-caret{50%{opacity:0}}.tele-story .ui-hint{font:8.5px var(--sans);fill:var(--ink-3)}.tele-story .ui-item{font:8.5px var(--sans);fill:var(--ink-2)}.tele-story .ui-head{font:500 6.6px var(--mono);fill:var(--ink-3)}.tele-story .ui-title{font:700 13px var(--serif);fill:var(--ink)}.tele-story .ui-class{font:7px var(--mono);fill:var(--ink-3)}.tele-story .ui-seg{fill:var(--sheet);stroke:var(--rule-strong)}.tele-story .ui-seg.on{fill:var(--accent-soft);stroke:var(--signal)}.tele-story .ui-seg-text{font:7.5px var(--mono);fill:var(--ink-3)}.tele-story .ui-link{font:600 8px var(--sans);fill:var(--accent)}.tele-story .ui-card{fill:color-mix(in srgb,var(--well) 55%,var(--sheet));stroke:var(--rule)}.tele-story .ui-value{font:700 12px var(--serif);fill:var(--ink)}.tele-story .ui-unit{font:400 8px var(--sans);fill:var(--ink-3)}.tele-story .ui-cursor{fill:var(--sheet);stroke:var(--ink);stroke-width:1.1;stroke-linejoin:round}.tele-story .ui-toast rect{fill:var(--sheet);stroke:var(--rule-strong);filter:drop-shadow(0 4px 8px rgba(20,26,45,.14))}.tele-story .ui-file{fill:var(--accent-soft);stroke:var(--signal);stroke-linejoin:round}@media(prefers-reduced-motion:reduce){.tele-story .ui-caret{animation:none}}.ahu-steps{display:flex;flex-wrap:wrap;justify-content:center;gap:6px;margin-top:10px}.ahu-steps button{padding:6px 12px;border:0;border-radius:999px;background:none;font-size:13px;color:var(--ink-3)}.ahu-steps button[aria-pressed=true]{background:var(--accent-soft);color:var(--signal-ink);font-weight:600}.ahu-steps .mono{font-size:11px}.hero-actions{display:flex;flex-wrap:wrap;gap:12px}.cta-card{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 32px;padding:32px 40px;border:1px solid var(--rule);border-radius:22px;background:var(--sheet);box-shadow:var(--shadow-sm)}.cta-card h2{margin:0;font:700 clamp(22px,2.2vw,28px)/1.15 var(--serif);letter-spacing:-.015em}.cta-card p{max-width:52ch;margin:8px 0 0;font:400 17px/1.5 var(--serif);color:var(--ink-2)}.search{display:flex;align-items:center;gap:8px;padding:8px 12px;border-radius:var(--radius-sm);background:var(--well);color:var(--ink-3)}.search:focus-within{box-shadow:0 0 0 2px var(--signal)}.search input{width:100%;border:0;outline:none;background:none;font-size:14px}.empty-note{margin:14px 0 0 10px;font-size:14px;color:var(--ink-2)}.stream-meta{display:flex;flex-wrap:wrap;gap:6px 10px;margin:-4px 0 12px;font-size:13px;color:var(--ink-2)}.stream-meta>span{padding:2px 8px;border-radius:6px;background:var(--well)}.stream-meta .mono{font-size:12px}.kg-plate .plate-head{flex-wrap:wrap;align-items:center;gap:10px 16px}.kg-count{margin-left:auto;font-size:11.5px;color:var(--ink-3)}.kg-wrap{position:relative;height:clamp(460px,70vh,740px);overflow:hidden;border:1px solid var(--rule);border-radius:14px;background:radial-gradient(circle at 50% 50%,color-mix(in srgb,var(--accent-soft) 70%,var(--sheet)) 0%,var(--sheet) 72%)}.kg{display:block;width:100%;height:100%;touch-action:none;cursor:grab;user-select:none;-webkit-user-select:none}.kg:active{cursor:grabbing}.kg:focus-visible{outline:2px solid var(--signal);outline-offset:-2px}.kg-ring{fill:none;stroke:var(--rule);stroke-dasharray:2 6;vector-effect:non-scaling-stroke}.kg-edge{fill:none;stroke:color-mix(in srgb,var(--signal) 50%,transparent);stroke-width:1.1;vector-effect:non-scaling-stroke;transition:opacity .3s}.kg-edge.point{display:none;stroke:color-mix(in srgb,var(--ink-3) 35%,transparent)}.kg.show-points .kg-edge.point,.kg-edge.point.on{display:inline}.kg-edge.on{stroke:var(--accent);stroke-width:1.6}.kg-edge.extra{stroke-dasharray:4 4}.kg-node{cursor:pointer;transition:opacity .3s}.kg.focusing .kg-edge:not(.on),.kg.focusing .kg-node:not(.on){opacity:.12}.kg-tick{stroke:var(--signal-ink);stroke-width:3;stroke-linecap:butt;vector-effect:non-scaling-stroke;transform:scale(calc(1 / var(--kg-k, 1)))}.kg-node.equipment .kg-tick{stroke:var(--accent);stroke-width:4.5}.kg-node.point{display:none}.kg.show-points .kg-node.point,.kg-node.point.on{display:inline}.kg-node.point .kg-tick{stroke:var(--ink-3);stroke-width:2}.kg-node.plotted .kg-tick{stroke:color-mix(in srgb,#cf7f90 82%,var(--ink-2));stroke-width:3.5}.kg-label{display:none;font:500 calc(11px / var(--kg-k, 1)) / 1 var(--mono);fill:var(--ink-2);paint-order:stroke;stroke:var(--sheet);stroke-width:calc(4px / var(--kg-k, 1));stroke-linejoin:round}.kg.show-labels .kg-node:not(.point) .kg-label,.kg.show-points .kg-node.point .kg-label,.kg-node.hub .kg-label,.kg-node.on .kg-label{display:inline}.kg-node.hub .kg-label{font-size:calc(12px / var(--kg-k, 1));font-weight:700;fill:var(--ink)}.kg-node.point .kg-label{font-size:calc(10px / var(--kg-k, 1));fill:var(--ink-3)}.kg-node:hover .kg-label{fill:var(--ink)}.kg-node.selected .kg-tick{stroke:var(--accent);stroke-width:7}.kg-node.selected .kg-label{font-weight:700;fill:var(--accent)}.kg-root-label{font:700 calc(15px / var(--kg-k, 1)) var(--serif);fill:var(--ink);paint-order:stroke;stroke:var(--sheet);stroke-width:calc(6px / var(--kg-k, 1));stroke-linejoin:round}.kg-node.root.selected .kg-root-label{fill:var(--accent)}.kg-tools{position:absolute;top:12px;right:12px;display:flex;flex-direction:column;gap:6px}.kg-tools button{display:grid;place-items:center;width:34px;height:34px;border:1px solid var(--rule-strong);border-radius:10px;background:var(--sheet);box-shadow:var(--shadow-sm);color:var(--ink-2)}.kg-tools button:hover{color:var(--accent);border-color:var(--signal)}.kg-hint{position:absolute;bottom:10px;left:14px;margin:0;font-size:11.5px;color:var(--ink-3);pointer-events:none}.kg-key{display:flex;flex-wrap:wrap;gap:6px 20px;margin:12px 0 0;font-size:12px;color:var(--ink-3)}.kg-key i{display:inline-block;width:14px;height:3px;margin-right:6px;vertical-align:middle;border-radius:2px;background:var(--signal-ink)}.kg-key .key-equipment{height:5px;background:var(--accent)}.kg-key .key-point{height:2px;background:var(--ink-3)}.kg-key .key-plotted{background:color-mix(in srgb,#cf7f90 82%,var(--ink-2))}.kg-find{position:relative;width:min(280px,100%)}.kg-results{position:absolute;z-index:5;top:calc(100% + 6px);right:0;left:0;margin:0;padding:4px;list-style:none;border:1px solid var(--rule);border-radius:12px;background:var(--sheet);box-shadow:var(--shadow-lg)}.er,.tb{--s0: #6a53ad;--s1: #eb6834;--s2: #2a78d6;--s3: #1baf7a;--s4: #eda100;--s5: #e87ba4;--s6: #008300;--s7: #e34948}:root[data-theme=dark] .er,:root[data-theme=dark] .tb{--s0: #9085e9;--s1: #d95926;--s2: #3987e5;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #e66767}@media(prefers-color-scheme:dark){:root:not([data-theme=light]) .er,:root:not([data-theme=light]) .tb{--s0: #9085e9;--s1: #d95926;--s2: #3987e5;--s3: #199e70;--s4: #c98500;--s5: #d55181;--s6: #008300;--s7: #e66767}}.er .s0,.tb .s0{--c: var(--s0)}.er .s1,.tb .s1{--c: var(--s1)}.er .s2,.tb .s2{--c: var(--s2)}.er .s3,.tb .s3{--c: var(--s3)}.er .s4,.tb .s4{--c: var(--s4)}.er .s5,.tb .s5{--c: var(--s5)}.er .s6,.tb .s6{--c: var(--s6)}.er .s7,.tb .s7{--c: var(--s7)}.tb-why{margin:8px 0 12px;padding:10px 14px;border-left:3px solid var(--signal);border-radius:0 10px 10px 0;background:color-mix(in srgb,var(--well) 55%,var(--sheet));font:italic 400 15px/1.5 var(--serif);color:var(--ink-2)}.sg{position:relative;margin:10px 0 12px;border:1px solid var(--rule);border-radius:12px;background:var(--sheet)}.sg-links{position:absolute;inset:0;width:100%;height:100%;overflow:visible;pointer-events:none}.sg-link{fill:none;stroke:var(--ink-3);stroke-width:1.6}.sg-link.feeds{stroke:var(--accent)}.sg-link.isLocationOf{stroke-dasharray:4 4}.sg-row{position:relative;display:grid;grid-template-columns:var(--sg-gutter) minmax(170px,240px) minmax(0,1fr);gap:0 14px;align-items:start;padding:10px 14px 10px 0}.sg-row+.sg-row{border-top:1px solid var(--rule)}.sg-dot{position:absolute;top:14px;z-index:1;width:11px;height:11px;margin-left:-5.5px;border:2px solid var(--ink-3);border-radius:50%;background:var(--sheet)}.sg-dot.host{border-color:var(--accent);background:var(--accent)}.sg-node{grid-column:2;display:flex;flex-direction:column;gap:2px;min-width:0}.sg-name{padding:0;border:0;background:none;text-align:left;font-size:13px;font-weight:600;color:var(--ink);overflow-wrap:anywhere;cursor:pointer}.sg-name:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.sg-node small{font-size:10.5px;color:var(--signal-ink);overflow-wrap:anywhere}.sg-points{grid-column:3;display:flex;flex-wrap:wrap;gap:6px}.sg-chip{display:inline-block;padding:3px 9px;border:1px solid var(--rule);border-radius:999px;background:var(--well);font-size:11.5px;color:var(--ink-2)}button.sg-chip:not(.sg-group){cursor:pointer}button.sg-chip:not(.sg-group):hover{border-color:var(--accent);color:var(--ink)}.sg-chip.target{border-color:var(--accent);background:var(--accent);color:var(--accent-fg)}.sg-group{border-style:dashed;border-color:var(--rule-strong);background:var(--sheet);color:var(--ink);cursor:pointer}.sg-group:hover,.sg-group[aria-expanded=true]{border-color:var(--accent)}.sg-legend{display:flex;flex-wrap:wrap;gap:6px 20px;margin-bottom:10px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.sg-key{display:inline-block;width:20px;margin-right:6px;vertical-align:middle;border-top:2px solid var(--ink-3)}.sg-key.feeds{border-top-color:var(--accent)}.sg-key.isLocationOf{border-top-style:dashed}.sg-key.cohort{width:16px;height:10px;border:1px dashed var(--rule-strong);border-radius:999px}@media(max-width:640px){.sg-row{grid-template-columns:var(--sg-gutter) minmax(0,1fr)}.sg-points{grid-column:2;margin-top:6px}}.tb-note{margin:10px 0 0;font-size:12.5px;color:var(--ink-3)}.er-lane{margin-right:4px;font:600 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}.er-note{margin:6px 0 0;font-size:12px}.er-list{display:grid;gap:16px;margin:18px 0 0;padding:0;list-style:none}.er-list>li>ul{margin:6px 0 0;padding:0;list-style:none;border:1px solid var(--rule);border-radius:12px;overflow:hidden}.er-item{display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:0 12px;padding:5px 12px;border-top:1px solid var(--rule)}.er-item:first-child{border-top:0}.er-item.open{background:color-mix(in srgb,var(--well) 50%,var(--sheet))}.er-toggle{display:grid;place-items:center;width:24px;height:24px;padding:0;border:1px solid var(--rule-strong);border-radius:7px;background:var(--sheet)}.er-toggle i{width:12px;height:3px;border-radius:2px;background:var(--c, var(--rule-strong))}.er-toggle[aria-pressed=true]{border-color:var(--c)}.er-toggle[aria-pressed=false] i{background:transparent}.er-toggle:disabled{cursor:default}.er-toggle:disabled:not([aria-pressed=true]){opacity:.4}.er-name{display:flex;flex-wrap:wrap;align-items:baseline;gap:2px 14px;min-width:0;padding:6px 0;border:0;background:none;text-align:left;overflow-wrap:anywhere}.er-id{font:600 13px var(--mono);color:var(--ink)}.er-item.focus .er-id{color:var(--accent)}.er-class{font-size:11.5px;color:var(--signal-ink)}.er-u{font-size:11.5px;color:var(--ink-3)}.er-def{grid-column:2 / -1;margin:0 0 8px;font-size:13.5px;line-height:1.5;color:var(--ink-2)}.er-def .mono{display:block;margin-bottom:2px;font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.er-def .link-button{margin-left:10px}.er-plot{position:relative}.er-plot svg{display:block;width:100%;height:auto;overflow:visible}.er-title{font:600 11px var(--sans);fill:var(--ink-2)}.er-unit{font-weight:400;fill:var(--ink-3)}.er-rule{fill:none;stroke:var(--rule)}.er-grid{stroke-dasharray:2 4;opacity:.8}.er-lane-bg{fill:color-mix(in srgb,var(--well) 45%,transparent)}.part-series .er-list{margin-top:16px;padding-top:16px;border-top:1px solid var(--rule)}.er-tick{font:10px var(--mono);fill:var(--ink-3)}.er-line{fill:none;stroke:var(--c);stroke-width:1.8;stroke-linejoin:round;stroke-linecap:round}.er-line.focus{stroke-width:2.8}.er-dot{fill:var(--c);stroke:var(--sheet);stroke-width:2}.er-cross{stroke:var(--ink-3)}.er-tip{position:absolute;top:6px;display:flex;flex-direction:column;gap:3px;padding:8px 11px;border:1px solid var(--rule);border-radius:10px;background:var(--sheet);box-shadow:var(--shadow-lg);pointer-events:none;white-space:nowrap;font-size:11px;color:var(--ink-3)}.er-row{display:flex;align-items:center;gap:7px;font:11.5px var(--mono);color:var(--ink-2)}.er-row i{width:10px;height:3px;border-radius:2px;background:var(--c)}.er-row b{margin-left:auto;padding-left:16px;font-weight:600;color:var(--ink)}.kg-note{margin:20px 0 0;font-size:13.5px;color:var(--ink-3)}.kg-actions{display:flex;flex-wrap:wrap;align-items:center;gap:10px 16px;margin-left:auto}.kg-results button{display:flex;flex-direction:column;width:100%;padding:7px 10px;border:0;border-radius:8px;background:none;text-align:left;font-weight:600;overflow-wrap:anywhere}.kg-results button:hover{background:var(--well)}.kg-results small{font-size:11px;font-weight:400;color:var(--ink-3)}.kg-focus{grid-column:1 / -1;min-width:0}.kg-focus .plate-head{flex-wrap:wrap;align-items:baseline;gap:8px 12px}.kg-focus .plate-head h2{overflow-wrap:anywhere}.kg-focus .inspector-class{margin:0}.kg-focus .definition{margin:0 0 20px}.tg-scroll{overflow-x:auto;padding-bottom:4px}.tg{display:block}.tg-col{font:600 10px var(--sans);letter-spacing:.12em;text-transform:uppercase;fill:var(--ink-3)}.tg-edge path{fill:none;stroke:color-mix(in srgb,var(--signal) 62%,var(--sheet));stroke-width:1.5}.tg-arrow{fill:var(--signal)}.tg-edge text{font:9.5px var(--mono);fill:var(--ink-3);paint-order:stroke;stroke:var(--sheet);stroke-width:4px;stroke-linejoin:round}.tg-node{cursor:pointer}.tg-node rect{fill:var(--sheet);stroke:var(--signal-ink);stroke-width:1.3}.tg-node text{font:500 11px var(--mono);fill:var(--ink)}.tg-node.equipment rect{fill:var(--accent-soft);stroke:var(--accent)}.tg-node.point rect{fill:color-mix(in srgb,var(--well) 70%,var(--sheet));stroke:var(--rule-strong)}.tg-node.point text{fill:var(--ink-2)}.tg-node.plotted rect{stroke:color-mix(in srgb,#cf7f90 82%,var(--ink-2));stroke-width:1.8}.tg-node.anchor rect,.tg-node.selected rect{fill:var(--accent);stroke:var(--accent)}.tg-node.anchor text,.tg-node.selected text{fill:var(--accent-fg);font-weight:700}.tg-node:hover rect{stroke-width:2.2}.tg-node:focus-visible{outline:none}.tg-node:focus-visible rect{stroke:var(--signal);stroke-width:3}.tg-more rect{fill:none;stroke:var(--rule-strong);stroke-dasharray:3 3}.tg-more text{font:11px var(--sans);fill:var(--ink-3)}.inspector-class{margin:6px 0 14px;font-size:12.5px;color:var(--signal-ink);overflow-wrap:anywhere}.empty-state{max-width:600px}.empty-state h2{margin:0 0 8px;font:700 24px/1.2 var(--serif)}.home{display:grid;gap:56px;padding-top:32px;padding-bottom:80px}.home>*{position:relative;z-index:1}.hero-zone{position:relative;isolation:isolate;z-index:0}.hero-zone:before{content:"";position:absolute;z-index:-1;top:50%;right:calc(-1 * var(--gutter) - 14vw);width:min(56vw,820px);aspect-ratio:3675 / 5005;transform:translateY(-50%);background:var(--signal);opacity:.3;-webkit-mask:url(./skyline-ring-DgBIR4mi.svg) center / contain no-repeat;mask:url(./skyline-ring-DgBIR4mi.svg) center / contain no-repeat;pointer-events:none}.hero-card{position:relative;overflow:hidden;display:grid;grid-template-columns:minmax(0,1fr);align-items:center;min-height:520px;padding:64px;border:1px solid var(--rule);border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--hero-from) 82%,transparent),color-mix(in srgb,color-mix(in srgb,var(--hero-to) 80%,var(--signal)) 82%,transparent));box-shadow:var(--shadow-lg)}.acronym{margin:0;font:700 clamp(40px,5vw,68px)/1.06 var(--serif);letter-spacing:-.02em;color:var(--ink)}.acronym span{display:block}.acronym b{font-weight:inherit;color:var(--signal)}.hero-sub{max-width:30ch;margin:18px 0 30px;font:italic 400 clamp(18px,1.7vw,21px)/1.45 var(--serif);color:var(--ink-2)}.hero-chart{margin:0;padding:18px 20px 14px;border:1px solid var(--rule);border-radius:18px;background:var(--sheet);box-shadow:var(--shadow-lg);transform:rotate(-.4deg)}.hero-chart figcaption{display:flex;flex-wrap:wrap;align-items:baseline;justify-content:space-between;gap:4px 12px;margin-bottom:8px}.hero-chart figcaption strong{font:700 17px/1.2 var(--serif)}.hero-chart figcaption .mono{font-size:11px;color:var(--ink-3)}.section-title{margin:0 0 14px;font-size:20px;font-weight:650;letter-spacing:-.01em}.refs{margin:0;padding:0;list-style:none}.refs li{padding:12px 0;border-bottom:1px solid var(--rule)}.refs li:first-child{padding-top:0}.refs li:last-child{padding-bottom:0;border-bottom:0}.ref-title{font:600 15.5px/1.4 var(--sans);color:var(--ink);text-decoration:none}.ref-title:hover{color:var(--signal-ink)}.ref-title svg{vertical-align:-1px;color:var(--ink-3)}.ref-authors{display:block;margin-top:4px;font-size:13px;color:var(--ink-3)}.info-page .plate-head{margin-bottom:18px;padding-bottom:14px;border-bottom:1px solid var(--rule)}.info-page .plate-head h2{display:flex;align-items:center;gap:12px;font:700 26px/1.15 var(--serif);letter-spacing:-.02em}.info-page .plate-head h2:before{content:"";flex:none;width:4px;height:22px;border-radius:2px;background:var(--sec, var(--signal))}.tone-violet{--sec: #6e56cf}.tone-blue{--sec: #0090ff}.tone-teal{--sec: #12a594}.info-page .plate[class*=tone-]{background:radial-gradient(120% 80% at 0% 0%,color-mix(in srgb,var(--sec) 8%,transparent),transparent 62%),var(--sheet)}.info-page [class*=tone-] .compact .readout{background:color-mix(in srgb,var(--sec) 9%,var(--sheet))}.info-page [class*=tone-] .compact .readout-value{color:color-mix(in srgb,var(--sec) 72%,var(--ink))}.info-page [class*=tone-] .ref-title:hover{color:color-mix(in srgb,var(--sec) 75%,var(--ink))}.inline-links{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 18px;margin:16px 0 0}.inline-links>.mono{font-size:10.5px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.data-line{margin:0;font:400 17px/1.5 var(--serif)}.more{margin-top:18px;border-radius:12px;background:var(--well)}.more summary{display:flex;align-items:center;gap:10px;padding:12px 14px;cursor:pointer;list-style:none;font-size:14px;font-weight:600}.more summary::-webkit-details-marker{display:none}.more summary:before{content:"+";display:grid;place-items:center;width:22px;height:22px;border-radius:7px;background:var(--sheet);box-shadow:var(--shadow-sm);font-family:var(--mono);font-size:13px}.more[open] summary:before{content:"−"}.more>:not(summary){margin-left:14px;margin-right:14px}.more>p{font-size:14px;color:var(--ink-2)}.candidates{width:calc(100% - 28px);margin-bottom:14px;border-radius:10px;background:var(--sheet)}.candidates th,.candidates td{padding-left:12px}.candidates th{padding-top:8px}.issues{margin-bottom:0;padding:0 0 14px 18px;font-size:13.5px;color:var(--ink-2)}.issues li{margin-bottom:6px}.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.25fr);gap:18px}.about-grid>.plate{display:flex;flex-direction:column}.about-grid>.plate>.link:last-child{align-self:flex-start;margin-top:auto}.contact-mail{display:flex;align-items:center;gap:8px;margin:0 0 18px}.contact-mail-addr{font:400 clamp(20px,2vw,24px) / 1.3 var(--serif);letter-spacing:-.01em;overflow-wrap:anywhere;user-select:all}.contact-address{margin:0 0 18px;font:400 17px/1.6 var(--serif);font-style:normal;color:var(--ink-2)}.about-text{margin:0 0 16px;font:400 17px/1.55 var(--serif);color:var(--ink-2)}.partners{margin:18px 0 0}.partners .mono{margin-bottom:8px}.chips{display:flex;flex-wrap:wrap;gap:6px;margin:0;padding:0;list-style:none}.chips li{padding:4px 11px;border:1px solid color-mix(in srgb,var(--sec, var(--signal)) 22%,var(--rule));border-radius:999px;background:color-mix(in srgb,var(--sec, var(--signal)) 6%,var(--sheet));font-size:13px;color:var(--ink-2)}.about-note{margin:10px 0 16px;font-size:13px;color:var(--ink-3)}.site-foot{position:relative;isolation:isolate;overflow:hidden;margin-top:64px;padding:44px 0 36px;border-top:1px solid var(--rule);background:linear-gradient(135deg,var(--hero-from) 0%,color-mix(in srgb,var(--hero-to) 85%,var(--signal)) 100%)}.site-foot:after{content:"";position:absolute;z-index:-1;right:max(-60px,calc((100vw - var(--max)) / 2 - 140px));bottom:-240px;width:400px;aspect-ratio:3675 / 5005;background:var(--signal);opacity:.2;-webkit-mask:url(./skyline-ring-DgBIR4mi.svg) center / contain no-repeat;mask:url(./skyline-ring-DgBIR4mi.svg) center / contain no-repeat;pointer-events:none}.foot-main{display:grid;grid-template-columns:minmax(0,1fr) repeat(2,max-content);align-items:stretch;gap:28px clamp(40px,6vw,88px)}.foot-brand{display:flex;flex-direction:column;align-items:flex-start}.foot-brand .brand{flex-direction:column;align-items:flex-start;gap:10px}.foot-brand .brand-name{font-size:36px;line-height:.9}.foot-brand p{max-width:32ch;margin:auto 0 0;padding-top:18px;font:italic 400 17px/1.35 var(--serif);color:var(--ink-2)}.foot-col{display:flex;flex-direction:column;align-items:flex-start;gap:10px}.foot-col h2{margin:0 0 3px;font:600 17px/1.3 var(--serif);letter-spacing:-.01em;color:var(--ink)}.foot-col a{display:inline-flex;align-items:baseline;gap:7px;font:400 16px/1.35 var(--serif);color:var(--ink-2);text-decoration:none;overflow-wrap:anywhere}.foot-col a:hover{color:var(--accent)}.foot-col a>svg{flex:none;align-self:center;color:var(--accent)}.foot-col h2.foot-sub{margin-top:18px}.foot-list{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:10px;margin:0;padding:0;list-style:none;font:400 16px/1.35 var(--serif);color:var(--ink-2)}.foot-col .nowrap{white-space:nowrap}.foot-out{margin-left:4px;vertical-align:-1px;color:var(--ink-3)}.foot-credit{margin:28px 0 0;padding-top:16px;border-top:1px solid var(--rule);font-size:12px;color:var(--ink-3)}.foot-credit a{color:inherit;text-decoration:underline;text-decoration-color:var(--rule-strong);text-underline-offset:3px}.foot-credit a:hover{color:var(--ink);text-decoration-color:currentColor}@media(max-width:900px){.foot-main{grid-template-columns:repeat(2,max-content)}.foot-brand{grid-column:1 / -1}}@media(max-width:640px){.foot-main{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.foot-list{justify-content:flex-start}}.toast{position:fixed;left:50%;bottom:20px;z-index:50;display:flex;align-items:center;gap:10px;max-width:calc(100vw - 32px);padding:12px 16px;border:1px solid var(--rule);border-radius:12px;background:var(--sheet);box-shadow:var(--shadow-lg);transform:translate(-50%);font-size:14px}.toast svg{color:var(--signal-ink)}@media(max-width:1180px){.hero-card{grid-template-columns:minmax(0,1fr);padding:36px}.hero-chart{transform:none}}@media(max-width:980px){.masthead-inner{flex-wrap:wrap;gap:0 12px}.brand-link{min-height:56px}.theme-toggle{margin-left:auto}.sheets-nav{order:3;flex:1 1 100%;gap:22px;margin-left:0;padding:2px 0 14px}.sheets-nav a{font-size:15px}.feature,.feature.flip,.about-grid{grid-template-columns:minmax(0,1fr)}.feature.flip .feature-copy{order:0}.readout-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.kpis{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.kpis .readout:nth-child(odd){padding-left:0;border-left:0}}@media(max-width:720px){:root{--gutter: 16px}.toolbar{padding:12px 14px}.page-head{padding-top:22px}.plate{padding:16px 14px 18px}.readout-grid{gap:12px}.tabs.bc-tabs{gap:8px;justify-content:space-between}.tabs.bc-tabs a{font-size:13.5px}.readout.card{padding:14px}.readout-chip{top:12px;right:12px;width:28px;height:28px}.readouts.compact{grid-auto-flow:row;grid-template-columns:minmax(0,1fr) minmax(0,1fr)}.table .tr{grid-template-columns:minmax(0,1fr) auto;padding:10px 8px}.table .tr>:nth-child(2){display:none}.hero-card{padding:24px 18px;border-radius:20px}.hero-chart{padding:14px 12px 10px}.home{gap:48px}.feature{gap:20px;padding:18px 14px}.feature-copy{padding:0 4px}.ahu-story{padding:10px}.hero-zone:before{display:none}.plate-head{flex-wrap:wrap}.plate-action{margin-left:0;flex-basis:100%}.kg-wrap{height:460px}}@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}.mono.legend{display:flex}.fc-none p{margin:0 0 14px;color:var(--ink-2)}.fc-picks{display:flex;flex-wrap:wrap;gap:8px}.fc-picks .chip{border:0;padding:6px 12px;font-family:var(--mono);font-size:12px;cursor:pointer}.fc-picks .chip:hover{background:color-mix(in srgb,var(--accent) 22%,transparent)}.tb-used{margin:14px 0 0;font-size:12px;letter-spacing:.02em;color:var(--ink-2)}.chat-launcher{position:fixed;right:22px;bottom:22px;z-index:60;display:grid;place-items:center;width:52px;height:52px;border:0;border-radius:50%;background:var(--accent);color:var(--accent-fg);box-shadow:var(--shadow-lg);cursor:pointer;transition:transform .15s}.chat-launcher:hover{transform:translateY(-2px)}.chat-launcher.away{border:1px solid var(--rule);background:var(--sheet);color:var(--accent)}.chat{position:fixed;z-index:60;display:flex;flex-direction:column;overflow:hidden;border:1px solid var(--rule);background:var(--sheet);box-shadow:var(--shadow-lg);color:var(--ink);font-family:var(--sans)}.chat-float{right:22px;bottom:22px;width:380px;height:520px;min-width:300px;min-height:320px;max-width:calc(100vw - 16px);max-height:calc(100vh - 16px);border-radius:16px;resize:both}.chat-sidebar{top:0;right:0;bottom:0;width:380px;border-width:0 0 0 1px;box-shadow:none}body.chat-docked{padding-right:380px}.chat-pip{position:static;width:100%;height:100vh;border:0;box-shadow:none}.chat-pip-body{margin:0;background:var(--sheet)}.chat-head{display:flex;align-items:center;justify-content:space-between;gap:8px;padding:10px 12px 10px 16px;border-bottom:1px solid var(--rule);background:color-mix(in srgb,var(--well) 50%,var(--sheet))}.chat-float .chat-head{cursor:grab;touch-action:none;user-select:none}.chat-title{display:flex;align-items:center;gap:8px;margin:0;white-space:nowrap;font:600 16px/1.2 var(--serif)}.chat-status{padding:2px 7px;border-radius:999px;background:var(--well);font:500 10px/1.4 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.chat-status.on{width:7px;height:7px;padding:0;background:#30a46c;box-shadow:0 0 0 3px color-mix(in srgb,#30a46c 22%,transparent)}.chat-tools{display:flex;align-items:center;gap:2px}.chat-modes{display:flex;margin-right:4px;padding:2px;border-radius:9px;background:var(--well)}.chat-modes button,.chat-icon{display:grid;place-items:center;width:30px;height:28px;border:0;border-radius:7px;background:none;color:var(--ink-2);cursor:pointer}.chat-modes button[aria-pressed=true]{background:var(--sheet);color:var(--accent);box-shadow:0 1px 2px #00000014}.chat-modes button:disabled{opacity:.35;cursor:not-allowed}.chat-modes button:hover:not(:disabled),.chat-icon:hover{color:var(--ink)}.chat-log{display:flex;flex:1;flex-direction:column;gap:10px;overflow-y:auto;padding:14px 14px 8px}.chat-notice{margin:auto 0;text-align:center;font-size:13px;color:var(--ink-3)}.chat-msg{max-width:85%;padding:9px 12px;border-radius:14px;font-size:14px;line-height:1.45;white-space:pre-wrap;overflow-wrap:anywhere}.chat-msg.user{align-self:flex-end;border-bottom-right-radius:4px;background:var(--accent);color:var(--accent-fg)}.chat-msg.assistant{align-self:flex-start;border-bottom-left-radius:4px;background:var(--well)}.chat-msg.error{align-self:flex-start;background:color-mix(in srgb,#e34948 12%,var(--sheet))}.chat-compose{display:flex;align-items:flex-end;gap:8px;padding:10px 12px 12px;border-top:1px solid var(--rule)}.chat-compose textarea{flex:1;padding:9px 11px;border:1px solid var(--rule-strong);border-radius:12px;background:var(--sheet);color:var(--ink);font:14px/1.4 var(--sans);resize:none}.chat-compose textarea:focus-visible{outline:2px solid var(--accent);outline-offset:-1px}.chat-compose button{display:grid;place-items:center;width:40px;height:40px;border:0;border-radius:12px;background:var(--accent);color:var(--accent-fg);cursor:pointer}.chat-compose button:disabled,.chat-compose textarea:disabled{opacity:.5;cursor:not-allowed}@media(max-width:900px){body.chat-docked{padding-right:0}.chat-sidebar{width:100%}}@media(max-width:640px){.chat-float{top:auto!important;right:8px!important;bottom:8px;left:8px!important;width:auto;height:70vh;resize:none}.chat-launcher{right:16px;bottom:16px}.chat-float{height:min(82dvh,680px)}.chat-modes{display:none}}.chat-sidebar .chat-head{min-height:64px}.focus-bar{display:flex;flex:1 1 100%;flex-wrap:wrap;align-items:center;gap:10px 22px}.focus-find{position:relative;flex:0 1 340px;min-width:220px}.focus-search{width:100%}.focus-results{max-height:min(420px,60vh);overflow-y:auto;position:absolute;top:calc(100% + 6px);left:0;z-index:30;width:max(100%,380px);max-width:calc(100vw - 32px);margin:0;padding:6px;border:1px solid var(--rule);border-radius:12px;background:var(--sheet);box-shadow:var(--shadow-lg);list-style:none}.focus-results li{display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:8px;cursor:pointer}.focus-results li[aria-selected=true]{background:var(--accent-soft)}.focus-results .mono{font-size:13px;color:var(--ink)}.focus-results small{font-size:11.5px;color:var(--ink-3)}.focus-none{position:absolute;top:calc(100% + 6px);left:0;z-index:30;margin:0;padding:10px 14px;border:1px solid var(--rule);border-radius:12px;background:var(--sheet);box-shadow:var(--shadow-lg);font-size:13px;color:var(--ink-3);white-space:nowrap}.crumbs{display:flex;flex:1 1 320px;flex-wrap:wrap;align-items:baseline;gap:4px 12px;min-width:0}.crumbs ol{display:flex;flex-wrap:wrap;align-items:baseline;margin:0;padding:0;list-style:none;font-size:14px}.crumbs li{display:flex;align-items:baseline}.crumbs li+li:before{content:"›";margin:0 8px;color:var(--ink-3)}.crumbs button{padding:0;border:0;background:none;font:inherit;color:var(--ink-2);cursor:pointer}.crumbs button:hover{color:var(--accent);text-decoration:underline;text-underline-offset:3px}.crumbs [aria-current]{font-weight:600;color:var(--ink)}.crumb-class{font-size:11px;color:var(--signal-ink)}.er-go{display:inline-flex;flex-wrap:wrap;gap:4px 16px;margin-left:10px}@media(max-width:640px){.focus-find{flex-basis:100%}}.fn-tools{display:inline-flex;gap:4px;padding-left:10px;border-left:1px solid var(--rule)}.icon-action{display:grid;place-items:center;width:32px;height:32px;border:1px solid transparent;border-radius:9px;background:none;color:var(--ink-2);cursor:pointer}.icon-action:hover:not(:disabled){border-color:var(--rule);background:var(--well);color:var(--ink)}.icon-action:disabled{opacity:.35;cursor:not-allowed}.fn-view{display:flex;flex-direction:column;gap:12px;margin-top:4px}.fn-view>.field-label{margin:10px 0 -4px}@media(max-width:640px){.kg-focus .kg-actions{width:100%;margin-left:0}}.er-tools{display:flex;flex-wrap:wrap;align-items:center;gap:8px}.er-zone{fill:color-mix(in srgb,var(--signal) 7%,transparent)}.er-now{stroke:var(--ink-3);stroke-width:1}.er-flag{font:600 10px var(--mono);letter-spacing:.06em;fill:var(--ink-2)}.er-band{fill:var(--c);opacity:.16}.er-line.er-median{stroke-width:2.2}.er-has-fc{color:var(--signal-ink)}@keyframes er-reveal{0%{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}@keyframes er-fade{0%{opacity:0}to{opacity:1}}.er-data{animation:er-reveal .75s cubic-bezier(.22,.7,.2,1) both}.er-data.er-later{animation-delay:.6s}.er-later-fade{animation:er-fade .4s ease-out .55s both}.er-fade,.er-fade-in{animation:er-fade .45s ease-out both}.er-fade-in{display:inline-block}.er-more{margin-top:6px;animation:er-fade .5s ease-out both}@media(prefers-reduced-motion:reduce){.er-data,.er-fade,.er-fade-in,.er-more,.er-later-fade{animation:none}}.ov{display:flex;flex-direction:column;gap:18px;--d0: #6e56cf;--d1: #0090ff;--d2: #12a594;--d3: #ffc53d;--d4: #e93d82;--cold: #0090ff;--warm: #e5484d}.ov .d0{--c: var(--d0)}.ov .d1{--c: var(--d1)}.ov .d2{--c: var(--d2)}.ov .d3{--c: var(--d3)}.ov .d4{--c: var(--d4)}.ov-kpis{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));padding:20px 22px}.ov-kpis .readout{padding:0 20px}.ov-kpis .readout:first-child{padding-left:0}.ov-kpis .readout+.readout{border-left:1px solid var(--rule)}.ov-kpis .readout-value{font-size:clamp(24px,2.2vw,30px)}.ov-grid{display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:18px;align-items:start}.ov-grid>.plate{margin:0}.ov-stack{position:relative}.ov-stack svg{display:block;overflow:visible;touch-action:pan-y}.ov-area{fill:var(--c);stroke:var(--sheet);stroke-width:.8}.ov-cross{stroke:var(--ink-3);stroke-width:1}.ov-tip{top:34px}.ov-tip-row{display:flex;align-items:center;gap:6px}.ov-legend{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 12px;font-size:11px;letter-spacing:.04em;text-transform:uppercase;color:var(--ink-2)}.ov-key{display:inline-block;width:10px;height:10px;margin-right:6px;border-radius:3px;background:var(--c);vertical-align:-1px}.ov-key.cold,.ov-bar.cold{background:var(--cold)}.ov-key.warm,.ov-bar.warm{background:var(--warm)}.ov-bars{display:flex;flex-direction:column;gap:4px;margin:0;padding:0;list-style:none}.ov-bars button{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1.4fr) auto;gap:12px;align-items:center;width:100%;padding:8px 10px;border:0;border-radius:10px;background:none;text-align:left;font-size:13.5px;color:var(--ink);cursor:pointer}.ov-bars button:hover{background:var(--well)}.ov-bar-name{overflow:hidden;white-space:nowrap;text-overflow:ellipsis}.ov-share button{grid-template-columns:minmax(0,1fr) auto;gap:6px 12px}.ov-share .ov-bar-track{grid-column:1 / -1;grid-row:2}.ov-bar-track{display:flex;height:10px;overflow:hidden;border-radius:5px;background:var(--well)}.ov-bar{height:100%;background:var(--c)}.ov-bar-value{font-size:11.5px;color:var(--ink-2);white-space:nowrap}.ov-rtus{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.ov-rtu{display:flex;flex-direction:column;gap:8px;padding:14px;border:1px solid var(--rule);border-radius:12px;background:var(--sheet);text-align:left;color:var(--ink);cursor:pointer;transition:border-color .12s,box-shadow .12s}.ov-rtu:hover{border-color:var(--accent);box-shadow:var(--shadow)}.ov-rtu strong{font:600 14px var(--mono)}.ov-rtu-figs{display:flex;justify-content:space-between;gap:8px;font:600 14px var(--sans)}.ov-rtu-figs small{display:block;font:500 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.ov-model{display:flex;flex-wrap:wrap;align-items:center;gap:14px 28px;padding:20px 22px}.ov-model h2{margin:0;font:600 20px var(--serif)}.ov-model dl{display:flex;flex:1;flex-wrap:wrap;gap:10px 28px;margin:0}.ov-model dl div{display:flex;flex-direction:column;gap:2px}.ov-model dt{font:500 10.5px var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}.ov-model dd{margin:0;font-size:18px;color:var(--ink)}@media(max-width:900px){.ov-grid{grid-template-columns:minmax(0,1fr)}.ov-model{flex-direction:column;align-items:flex-start}.ov-kpis{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:18px}.ov-kpis .readout:nth-child(odd){padding-left:0;border-left:0}}.visually-hidden{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}.bsw{position:relative;display:inline-block}.bsw-button{display:inline-flex;align-items:center;gap:6px;margin:-2px -8px;padding:2px 8px;border:0;border-radius:10px;background:none;font:inherit;letter-spacing:inherit;color:inherit;cursor:pointer;transition:background-color .15s}.bsw-button:hover,.bsw-button[aria-expanded=true]{background:color-mix(in srgb,var(--well) 70%,transparent)}.bsw-chevron{flex:none;color:var(--ink-3);transition:transform .2s}.bsw-button[aria-expanded=true] .bsw-chevron{transform:rotate(180deg)}.bsw-button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}.bsw-list:focus{outline:none}.bsw-list{position:absolute;top:calc(100% + 10px);left:-8px;z-index:30;display:grid;gap:2px;width:max-content;min-width:300px;max-width:calc(100vw - 32px);margin:0;padding:6px;list-style:none;border:1px solid var(--rule);border-radius:14px;background:var(--sheet);box-shadow:var(--shadow-lg);animation:bsw-in .16s ease-out}@keyframes bsw-in{0%{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.bsw-list{animation:none}}.bsw-item{display:grid;grid-template-columns:minmax(0,1fr) 20px;align-items:center;gap:2px 14px;padding:10px 12px;border-radius:10px;cursor:pointer}.bsw-item.active{background:var(--well)}.bsw-item.current{background:var(--accent-soft)}.bsw-name{font:600 17px/1.25 var(--serif);letter-spacing:-.01em;color:var(--ink)}.bsw-item.current .bsw-name{color:var(--accent)}.bsw-place{grid-row:2;font:400 13px var(--sans);letter-spacing:0;color:var(--ink-3)}.bsw-check{grid-row:1 / span 2;grid-column:2;color:var(--accent)}.er-near p{margin:0 0 10px}.er-near .chip small{color:var(--ink-3)}.fp{--fp-base: color-mix(in srgb, var(--ink) 3%, var(--sheet));position:relative;display:flex;flex-direction:column;gap:14px}.fp-floor{margin:0}.fp-name{margin:0 0 6px;font-size:11px;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}.fp svg{display:block;width:100%;height:auto;overflow:visible}.fp-scroll{overflow-x:auto;overscroll-behavior-x:contain}@media(max-width:640px){.fp-scroll svg{width:860px;margin:6px 0}}.fp-outline{fill:var(--well);stroke:var(--rule-strong);stroke-width:2;stroke-linejoin:round}.fp-core{fill:color-mix(in srgb,var(--ink) 9%,var(--well))}.fp-zone rect{fill:var(--fp-base);stroke:color-mix(in srgb,var(--ink) 10%,transparent);stroke-width:1.5;transition:fill .25s,opacity .25s,stroke .15s}.fp-zone.none rect{fill:transparent;stroke:var(--rule-strong);stroke-dasharray:7 6}.fp-zone.off{opacity:.8}.fp-zone.on rect{fill:var(--accent);stroke:var(--accent)}.fp-zone.on .fp-label,.fp-zone.strong .fp-label{fill:#fff}.fp-zone.pick{cursor:pointer}.fp-zone.hot rect,.fp-zone:focus-visible rect{stroke:var(--ink);stroke-width:3.5}.fp-zone:focus{outline:none}.fp-label{font-family:var(--mono);font-weight:600;fill:var(--ink-2);text-anchor:middle;dominant-baseline:central;pointer-events:none}.fp-tip{z-index:3}.fp-compact{gap:10px;margin-bottom:18px}@media(max-width:600px){.fp:not(.fp-compact) .fp-label{display:none}}.fp-note{margin:0 0 10px;font-size:13px;color:var(--ink-2)}.fp-source{margin:0;font-size:11px;color:var(--ink-3)}.fp-source a{color:inherit}.fp-ramp{display:inline-block;width:30px;height:10px;margin-right:6px;border-radius:3px;vertical-align:-1px;background:linear-gradient(90deg,color-mix(in srgb,var(--ink) 3%,var(--sheet)),var(--c));box-shadow:inset 0 0 0 1px var(--rule)}.fp-ramp.cold{--c: var(--cold)}.fp-ramp.warm{--c: var(--warm)}.fp-key-none{display:inline-block;width:12px;height:10px;margin-right:6px;border:1px dashed var(--rule-strong);border-radius:3px;vertical-align:-1px}.ov-full{grid-column:1 / -1}.ov-bars button.hot{background:var(--well)}.chat-msg p{margin:0}.chat-msg p+p,.chat-msg p+ul,.chat-msg ul+p{margin-top:8px}.chat-msg ul{margin:4px 0 0;padding-left:18px}.chat-msg li+li{margin-top:3px}.chat-ref{display:inline;margin:0 1px;padding:0 6px;border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);border-radius:6px;background:var(--accent-soft);font:12.5px var(--mono);color:var(--signal-ink);cursor:pointer}.chat-ref:hover{border-color:var(--accent)}.chat-wait{color:var(--ink-3)}.chat-start{display:flex;flex-direction:column;gap:8px;margin:auto 0}.chat-start button{padding:9px 12px;border:1px solid var(--rule);border-radius:12px;background:var(--sheet);text-align:left;font:13.5px/1.4 var(--sans);color:var(--ink-2);cursor:pointer}.chat-start button:hover{border-color:var(--accent);color:var(--ink)}.chat-record{margin:4px 2px 0;font:11.5px/1.45 var(--sans);color:var(--ink-3)}.chat-past{display:flex;flex-direction:column;gap:6px}.chat-past h3{margin:6px 2px 0;font:600 11px var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3)}.chat-past ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:4px}.chat-past li button{width:100%;display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:8px 10px;border:1px solid var(--rule);border-radius:10px;background:var(--sheet);text-align:left;font:13px/1.35 var(--sans);color:var(--ink-2);cursor:pointer}.chat-past li button span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.chat-past li button time{flex:none;font:11px var(--mono);color:var(--ink-3)}.chat-past li button:hover,.chat-past li button[aria-current]{border-color:var(--accent);color:var(--ink)}.chat-past .chat-notes li{padding:2px 2px 2px 12px;border-left:2px solid var(--rule);font:13px/1.45 var(--sans);color:var(--ink-2)}.chat-past-empty{margin:0 2px;font:13px var(--sans);color:var(--ink-3)}.chat-forget{align-self:flex-start;margin-top:2px;padding:5px 10px;border:1px solid var(--rule);border-radius:8px;background:none;font:12px var(--sans);color:var(--ink-2);cursor:pointer}.chat-forget:hover{border-color:var(--accent);color:var(--ink)}.chat-left{margin:-6px 12px 10px;font:11px var(--mono);color:var(--ink-3);text-align:right}.chat-table{display:block;max-width:100%;margin:8px 0 0;overflow-x:auto;border-collapse:collapse;font-size:12.5px}.chat-table th,.chat-table td{padding:4px 8px;border-bottom:1px solid var(--rule);text-align:left;vertical-align:top}.chat-table th{font-weight:600;color:var(--ink-2)}@keyframes chat-in{0%{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}.chat-block{animation:chat-in .35s ease-out both}.chat-wait{display:inline-block;animation:chat-in .3s ease-out both}@media(prefers-reduced-motion:reduce){.chat-block,.chat-wait{animation:none}}.ask-slab,.ask-slab-edge,.ask-unit polygon,.ask-room polygon{stroke:var(--ahu-line);stroke-width:1.2;stroke-linejoin:round}.ask-slab{fill:var(--ahu-face)}.ask-slab-edge{fill:var(--ahu-side)}.ask-core{fill:var(--ahu-end)}.ask-zone{fill:var(--sheet);stroke:color-mix(in srgb,var(--ahu-line) 30%,transparent);stroke-width:.8}.ask-zone.target{fill:var(--accent-soft);stroke:var(--accent)}.ask-plant{opacity:.4;transition:opacity .5s}.step-2 .ask-plant,.step-3 .ask-plant{opacity:1}.ask-unit .top{fill:var(--ahu-lid)}.ask-unit .front{fill:var(--ahu-face)}.ask-unit .side{fill:var(--ahu-side)}.ask-unit .fan{fill:var(--ahu-side);stroke:var(--ahu-line);stroke-width:1}.ask-duct{fill:none;stroke:color-mix(in srgb,var(--signal) 20%,var(--sheet));stroke-width:7;stroke-linecap:round;stroke-linejoin:round}.ask-flow{fill:none;stroke:var(--signal);stroke-width:2;stroke-linecap:round;stroke-linejoin:round;stroke-dasharray:5 9;opacity:0;transition:opacity .4s}.step-2 .ask-flow,.step-3 .ask-flow{opacity:1;animation:ask-flow .8s linear infinite}@keyframes ask-flow{to{stroke-dashoffset:-14}}.ask-supply{fill:url(#ask-air);opacity:0;transition:opacity .15s}.step-2 .ask-supply,.step-3 .ask-supply{opacity:1;transition:opacity .5s .3s}.ask-heat-stop{stop-color:var(--ahu-hot)}.ask-heat polygon{fill:url(#ask-heat);opacity:0;transition:opacity .5s 1s}.step-2 .ask-heat polygon,.step-3 .ask-heat polygon{opacity:1;animation:ask-heat 1.8s ease-in-out infinite;animation-delay:calc(var(--i) * .3s)}@keyframes ask-heat{50%{transform:translate(-8px)}}.ask-room{transform-box:fill-box;transform-origin:50% 100%;filter:drop-shadow(0 6px 10px color-mix(in srgb,var(--accent) 35%,transparent))}.ask-room .top{fill:color-mix(in srgb,var(--accent) 34%,var(--sheet))}.ask-room .front{fill:color-mix(in srgb,var(--accent) 52%,var(--sheet))}.ask-room .side{fill:color-mix(in srgb,var(--accent) 70%,var(--sheet))}.ask-room polygon{stroke:var(--accent)}.step-0 .ask-room{animation:ask-rise .8s .95s cubic-bezier(.2,.9,.3,1.25) backwards}@keyframes ask-rise{0%{opacity:0;transform:scaleY(0)}1%{opacity:1;transform:scaleY(.02)}}.ask-room-label{font:700 11px var(--mono);fill:var(--accent-fg);text-anchor:middle}.ask-cursor{fill:var(--sheet);stroke:var(--ink);stroke-width:1.1;stroke-linejoin:round}.ask-point{opacity:0;transition:opacity .3s}.step-0 .ask-point{opacity:1;animation:ask-cursor 1s cubic-bezier(.3,.7,.2,1) backwards}@keyframes ask-cursor{0%{opacity:0;transform:translate(-150px,60px)}}.ask-tag{opacity:0}.ask-tag-body{transform-box:fill-box;transform-origin:center}.ask-tag rect{fill:var(--sheet);stroke:var(--signal);stroke-width:1.2;filter:drop-shadow(0 3px 6px rgba(20,26,45,.1))}.ask-tag.hot rect{stroke:var(--ahu-hot)}.step-3 .ask-tag.hot rect{stroke-width:2}.ask-tag-name{font:500 10px var(--mono);fill:var(--ink-3)}.ask-tag-value{font:600 11px var(--sans);fill:var(--ink)}.ask-leader{fill:none;stroke:var(--signal);stroke-dasharray:3 3}.ask-story svg>.ask-tag{opacity:1}.step-0 svg>.ask-tag{animation:ask-pop .45s var(--d) backwards}.step-2 .ask-found .ask-tag,.step-3 .ask-found .ask-tag{opacity:1}.step-2 .ask-found .ask-tag{animation:ask-pop .45s calc(var(--d) + .3s) backwards}@keyframes ask-pop{0%{opacity:0;transform:translateY(6px)}}.ask-window{fill:var(--sheet);stroke:var(--rule-strong);filter:drop-shadow(0 8px 18px rgba(20,26,45,.12))}.ask-rule{stroke:var(--rule)}.ask-title{font:700 13px var(--serif);fill:var(--ink)}.ask-live{fill:#30a46c;stroke:color-mix(in srgb,#30a46c 25%,transparent);stroke-width:6;paint-order:stroke}.ask-starter{transition:opacity .3s}.ask-starter rect{fill:none;stroke:var(--rule-strong)}.ask-starter text{font:11px var(--sans);fill:var(--ink-2)}.sent .ask-starter,.ask-q{opacity:0}.sent .ask-q{opacity:1}.step-1.sent .ask-q{animation:ask-pop .35s backwards}.ask-q path{fill:var(--accent)}.ask-q text{font:500 11px var(--sans);fill:var(--accent-fg)}.ask-wait{opacity:0}.step-2 .ask-wait{opacity:1}.ask-wait rect{fill:var(--well);animation:ask-wait .9s ease-in-out infinite alternate}.ask-wait rect+rect{animation-delay:.3s}@keyframes ask-wait{to{opacity:.35}}.ask-a{opacity:0}.step-3 .ask-a{opacity:1}.ask-a path{fill:var(--well)}.ask-a text{font:11px var(--sans);fill:var(--ink)}.step-3 .ask-a text{animation:ask-line .4s calc(var(--i) * .35s + .2s) backwards}@keyframes ask-line{0%{opacity:0;transform:translate(-4px)}}.ask-input{fill:var(--sheet);stroke:var(--rule-strong)}.step-1:not(.sent) .ask-input{stroke:var(--accent)}.ask-input-text{font:11px var(--sans);fill:var(--ink-3)}.ask-input-text.on{fill:var(--ink)}.ask-caret{fill:var(--accent);animation:tele-caret 1s steps(1) infinite}@media(prefers-reduced-motion:reduce){.ask-story *{animation:none!important}}
