.tabs {min-width:0}
.tabs [role="tablist"] {display:flex;align-items:stretch;gap:0;overflow-x:auto;max-width:100%;margin-bottom:24px}
.tabs [role="tab"] {position:relative;display:inline-flex;align-items:center;justify-content:center;flex:1 0 auto;min-height:52px;padding:12px 16px;background:var(--mask-clear);color:var(--text-muted);font-size:var(--text-sm);border-bottom:1px solid var(--border);white-space:nowrap}
.tabs [role="tab"]::after {content:"";position:absolute;left:16px;right:16px;bottom:0;height:2px;background:var(--mask-clear)}
.tabs [role="tab"][aria-selected="true"] {color:var(--text)}
.tabs [role="tab"][aria-selected="true"]::after {background:var(--accent)}
.tabs [role="tabpanel"] {min-width:0}
.district-panel {display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;padding:48px;background:var(--bg-panel);box-shadow:var(--shadow-panel),inset 0 1px 0 var(--edge-hi)}
.district-panel>* {min-width:0}
.district-art {display:block;width:100%;height:auto;aspect-ratio:4/3;background:linear-gradient(var(--sky-top),var(--bg));overflow:hidden}
.fact-row {display:flex;align-items:center;flex-wrap:wrap;gap:8px}
.chip,.badge,.tag-label {display:inline-flex;align-items:center;gap:6px;max-width:100%;padding:5px 12px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text);overflow-wrap:anywhere}
.chip {box-shadow:var(--shadow-chip),inset 0 1px 0 var(--edge-hi)}
.badge {border-radius:var(--radius-0);font-family:var(--font-body);padding:6px 14px;box-shadow:var(--shadow-chip)}
.tag-label {background:var(--bg-panel);box-shadow:none}
.badge-dot {width:8px;height:8px;flex-shrink:0;border-radius:var(--radius-dot);background:var(--success);box-shadow:0 0 0 3px var(--success-ring)}
.toc-tabs {position:sticky;top:var(--toc-top);z-index:25;display:flex;align-items:center;gap:8px;overflow-x:auto;max-width:100%;padding:12px;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow-chip);margin-bottom:32px;overscroll-behavior-x:contain}
.toc-tabs a {display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;min-height:40px;padding:8px 14px;white-space:nowrap;color:var(--text-muted);text-decoration:none;font-size:var(--text-sm);border-bottom:2px solid var(--mask-clear)}
.toc-tabs a.is-current {color:var(--text);border-bottom-color:var(--accent)}
.toc-tabs.is-static {position:static}
body:has(.toc-tabs) section[id] {scroll-margin-top:var(--anchor-offset)}
.faq-list {border-top:1px solid var(--border)}
.faq-item {border-bottom:1px solid var(--border);background:var(--bg)}
.faq-item summary {position:relative;list-style:none;cursor:pointer;padding:22px 48px 22px 0;font-weight:var(--weight-medium)}
.faq-item summary::-webkit-details-marker {display:none}
.faq-item summary::after {content:"+";position:absolute;right:12px;top:20px;font-family:var(--font-mono);font-size:var(--text-h3)}
.faq-item[open] summary::after {content:"−"}
.faq-answer {color:var(--text-muted);max-width:70ch;padding-bottom:8px}
.plan-card {position:relative;min-width:0;display:flex;flex-direction:column;gap:20px;padding:32px;background:var(--bg-panel);border:1px solid var(--border);box-shadow:inset 0 1px 0 var(--edge-hi)}
.plan-card.is-current {border-color:var(--text);box-shadow:var(--shadow-panel),inset 0 1px 0 var(--edge-hi)}
.plan-badge {align-self:flex-start;display:inline-flex;padding:4px 10px;font-size:var(--text-xs);background:var(--text);color:var(--bg)}
.plan-card h3,.plan-card p {margin:0}
.plan-price {font-family:var(--font-mono);font-size:var(--text-h2);line-height:1.3;font-variant-numeric:tabular-nums}
.plan-price small {font-family:var(--font-body);font-size:var(--text-sm);color:var(--text-muted)}
.plan-facts {padding:0;margin:0;list-style:none;color:var(--text-muted);font-size:var(--text-sm)}
.plan-card .btn {margin-top:auto;align-self:flex-start}
.table-scroll {width:100%;max-width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch;border:1px solid var(--border);overscroll-behavior-x:contain}
.data-table,.route-table {width:100%;min-width:680px;border-collapse:collapse;text-align:left;font-size:var(--text-sm);background:var(--bg)}
.data-table th,.data-table td,.route-table th,.route-table td {padding:16px 20px;border-bottom:1px solid var(--border);vertical-align:top;word-break:keep-all}
.table-scroll th,.data-table th,.route-table th {background:var(--bg-panel);color:var(--text);font-weight:var(--weight-medium);white-space:nowrap}
.data-table td:first-child,.route-table td:first-child {color:var(--text)}
.route-table .region-row th {background:var(--bg-panel-2);color:var(--text)}
.prose>.data-table {display:block;overflow-x:auto;-webkit-overflow-scrolling:touch;max-width:100%;min-width:0}
.platform-card {display:flex;flex-direction:column;align-items:flex-start;gap:16px;min-width:0;padding:24px;background:var(--bg-panel);border-top:1px solid var(--border)}
.platform-card svg {width:32px;height:32px;color:var(--text-muted)}
.platform-card h3,.platform-card p {margin:0}
.platform-card .btn {font-size:var(--text-sm);padding-inline:16px;margin-top:auto}
.article-card {min-width:0;display:flex;flex-direction:column;gap:16px}
.article-thumb {display:block;aspect-ratio:16/10;background:linear-gradient(145deg,var(--sky-top),var(--bg-panel-2));width:100%;height:auto;overflow:hidden}
.article-card h3 {font-size:var(--text-h3);margin:0}
.article-card h3 a {color:var(--text);text-decoration:none}
.article-card p {color:var(--text-muted);font-size:var(--text-nav);margin:0}
.article-meta {display:flex;align-items:center;flex-wrap:wrap;gap:12px;font-size:var(--text-xs);color:var(--text-muted)}
.article-card>a {align-self:flex-start;min-height:24px}
.callout {margin:24px 0;padding:24px;border-left:3px solid var(--text);background:var(--bg-panel);color:var(--text-muted)}
.callout p:last-child {margin-bottom:0}
.promo-block {display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap;padding:32px;background:var(--bg-panel);border-top:1px solid var(--border);box-shadow:var(--shadow-panel)}
.promo-block p {margin:8px 0 0;color:var(--text-muted)}
.promo-block .btn {flex-shrink:0;white-space:nowrap}
.promo-brand {font-size:var(--text-h3);font-weight:var(--weight-medium)}
.float-cta {position:fixed;z-index:50;right:24px;bottom:calc(24px + env(safe-area-inset-bottom,0px));display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:44px;padding:0 20px;background:var(--text);color:var(--bg);font-size:var(--text-nav);font-weight:var(--weight-medium);text-decoration:none;box-shadow:var(--shadow-float)}
.float-cta svg {width:13px;height:13px}
.float-cta:hover {background:var(--ink-hover)}
body:has(.float-cta)::after {content:"";display:block;height:calc(88px + env(safe-area-inset-bottom,0px))}
.scene-card {min-width:0}
.scene-card h3 {margin-top:24px}
.scene-card p {color:var(--text-muted)}
.scene-card .cta-row {margin-bottom:0}
.scene-art {display:block;aspect-ratio:16/10;width:100%;height:auto;background:linear-gradient(var(--sky-top),var(--bg-panel));overflow:hidden}
.sprite {position:absolute;width:0;height:0;overflow:hidden}
.hero {position:relative;padding:0 var(--inset)}
.canvas {position:relative;height:clamp(620px,82vh,780px);overflow:hidden;max-width:100%;border-radius:var(--radius-canvas);background:linear-gradient(to bottom,var(--sky-top),var(--sky-mid) 28%,var(--bg) 52%,var(--bg));box-shadow:var(--shadow-canvas),0 0 0 1px var(--border),inset 0 1px 0 var(--edge-hi)}
.floor {position:absolute;left:0;top:52%;width:100%;height:48%;display:block;mask-image:linear-gradient(to bottom,var(--mask-clear),var(--mask-solid) 10%,var(--mask-solid) 82%,var(--mask-clear))}
.grid-line {fill:none;stroke:var(--grid-ink);stroke-width:1.2}
.stage,.reflect {position:absolute;left:calc(var(--copy-x) + var(--copy-w) + 40px);right:196px;top:16px;bottom:48%;display:flex;justify-content:center;align-items:flex-end;pointer-events:none}
.stage {z-index:4}
.reflect {z-index:2;opacity:.17;transform:scaleY(-.42);transform-origin:50% 100%;mask-image:linear-gradient(to top,var(--mask-solid),var(--mask-clear) 78%)}
.skyline,.reflect svg {display:block;width:100%;max-width:720px;height:auto;max-height:100%;aspect-ratio:760/420;overflow:visible}
.ground {position:absolute;z-index:3;left:calc(var(--copy-x) + var(--copy-w) + 20px);right:176px;top:calc(52% - 12px);height:30px;background:radial-gradient(closest-side,var(--ground-shade),var(--mask-clear));pointer-events:none}
.haze {position:absolute;z-index:5;left:0;right:0;top:calc(52% - 36px);height:58px;background:linear-gradient(to bottom,var(--mask-clear),var(--haze) 62%,var(--mask-clear));pointer-events:none}
.s-fr-hi {stop-color:var(--bldg-front-hi)}
.s-fr-lo {stop-color:var(--bldg-front-lo)}
.s-sd-hi {stop-color:var(--bldg-side-hi)}
.s-sd-lo {stop-color:var(--bldg-side-lo)}
.s-far-hi {stop-color:var(--bldg-far-hi)}
.s-far-lo {stop-color:var(--bldg-far-lo)}
.s-nr-hi {stop-color:var(--bldg-near-hi)}
.s-nr-lo {stop-color:var(--bldg-near-lo)}
.s-sph-hi {stop-color:var(--bldg-sphere-hi)}
.fr {fill:url(#gFr)}
.sd {fill:url(#gSd)}
.far {fill:url(#gFar)}
.nr {fill:url(#gNr)}
.wn {fill:url(#pWin)}
.sph {fill:url(#gSph)}
.sph-band {fill:var(--bldg-side-lo)}
.glint {fill:var(--glint)}
.edge {fill:none;stroke:var(--glint);stroke-width:1}
.brace {fill:none;stroke:var(--win-line);stroke-width:.9}
.win-line {fill:none;stroke:var(--win-line);stroke-width:.6}
.base-line {fill:var(--bldg-side-lo);opacity:.35}
.arc {fill:none;stroke:var(--arc);stroke-width:1.5;stroke-linecap:round;vector-effect:non-scaling-stroke}
.leader {fill:none;stroke:var(--arc);stroke-width:1;vector-effect:non-scaling-stroke}
.tip,.dot {fill:var(--bg);stroke:var(--arc);stroke-width:1;vector-effect:non-scaling-stroke}
.dot-halo {fill:var(--arc-halo)}
.tag {filter:drop-shadow(0 4px 8px var(--shadow-tint))}
.tag-bg {fill:var(--bg);stroke:var(--border);stroke-width:1;vector-effect:non-scaling-stroke}
.tag-txt {font-family:var(--font-body);font-size:var(--text-sm);font-weight:var(--weight-medium);fill:var(--text)}
.orb {transform-box:view-box;--from:.06;--to:.94;--dur:7s;--delay:0s;animation:glide var(--dur) ease-in-out var(--delay) infinite alternate}
.orb-1 {transform-origin:188.6px 249.4px;--sweep:55.5deg;--dur:7s}
.orb-2 {transform-origin:239.5px 247.8px;--sweep:54.53deg;--from:.22;--dur:8s;--delay:-2s}
.orb-3 {transform-origin:582.6px 262.3px;--sweep:46.66deg;--to:.78;--dur:7.5s;--delay:-4s}
.orb-4 {transform-origin:584.7px 210.6px;--sweep:55.99deg;--dur:8.5s;--delay:-1s}
@keyframes glide {from{transform:rotate(calc(var(--sweep) * var(--from)))}to{transform:rotate(calc(var(--sweep) * var(--to)))}}
.fl-red {fill:var(--flag-red)}
.fl-blue {fill:var(--flag-blue)}
.fl-gold {fill:var(--flag-gold)}
.fl-black {fill:var(--flag-black)}
.fl-white {fill:var(--flag-white)}
.fl-edge {fill:none;stroke:var(--flag-edge);stroke-width:1}
.lane-chips {position:absolute;z-index:6;left:calc(var(--copy-x) + var(--copy-w) + 64px);top:calc(52% + 28px);display:flex;align-items:center;gap:8px}
.lane-label {font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;color:var(--text-faint);margin-right:4px}
.fact-pill {position:absolute;z-index:6;right:40px;bottom:40px;display:inline-flex;align-items:center;gap:12px;min-height:36px;padding:0 18px;background:var(--bg);border:1px solid var(--border);border-radius:var(--radius-pill);box-shadow:var(--shadow-panel),inset 0 1px 0 var(--edge-hi);font-family:var(--font-mono);font-size:var(--text-xs)}
.fact-sep {width:1px;height:14px;background:var(--border)}
.veil {position:absolute;z-index:7;left:0;bottom:0;width:58%;height:80%;background:radial-gradient(farthest-side at 0% 100%,var(--veil),var(--veil) 46%,var(--mask-clear));pointer-events:none}
.copy {position:absolute;z-index:8;left:var(--copy-x);bottom:48px;width:var(--copy-w)}
.hero-title {margin:24px 0 32px;font-family:var(--font-display);font-weight:var(--weight-regular);font-size:var(--h1-size);line-height:var(--leading-title);letter-spacing:var(--tracking-display);color:var(--text)}
.h1-line {display:block}
.h1-mark {background:linear-gradient(var(--accent),var(--accent)) 0 100%/100% 6px no-repeat;-webkit-box-decoration-break:clone;box-decoration-break:clone}
.sub {margin:0 0 16px;font-size:var(--text-lead);line-height:var(--leading-body);color:var(--text-muted)}
.sub strong {font-weight:var(--weight-medium);color:var(--text)}
.trust {display:flex;flex-wrap:wrap;align-items:center;row-gap:4px;margin:0 0 24px;padding:0;list-style:none;font-size:var(--text-sm);color:var(--text)}
.trust li {display:inline-flex;align-items:center;margin:0}
.trust li+li::before {content:"·";margin:0 10px;color:var(--text-faint)}
.marks-rows {display:grid;gap:12px;padding-top:16px;border-top:1px solid var(--border)}
.mark-row {display:flex;align-items:center;gap:8px}
.row-label {flex:none;width:56px;font-family:var(--font-mono);font-size:var(--text-xs);letter-spacing:.06em;color:var(--text-faint)}
.row-items {display:flex;flex-wrap:wrap;align-items:center;gap:6px 18px;margin:0;padding:0;list-style:none;font-size:var(--text-sm);color:var(--text-muted)}
.row-items li {display:inline-flex;align-items:center;gap:6px;white-space:nowrap;margin:0}
.pf-ico {width:16px;height:16px;flex:none;color:var(--text-muted)}
.flag-ico {width:21px;height:14px;flex:none}
.client-card {position:absolute;z-index:9;top:24px;right:calc(var(--inset) + 24px);width:172px;background:var(--bg);border:1px solid var(--border);box-shadow:var(--shadow-panel),inset 0 1px 0 var(--edge-hi);font-size:var(--text-xs);color:var(--text)}
.cc-head {display:flex;align-items:center;gap:5px;height:28px;padding:0 12px;border-bottom:1px solid var(--bg-panel-2);background:var(--bg-panel)}
.cc-head i {width:7px;height:7px;border-radius:var(--radius-dot);background:var(--dot-gray)}
.cc-head span {margin-left:auto;font-family:var(--font-mono);font-size:var(--text-xs);color:var(--text-faint)}
.cc-body {padding:2px 12px 6px}
.cc-row {display:flex;align-items:center;gap:7px;padding:7px 0;white-space:nowrap}
.cc-row+.cc-row {border-top:1px solid var(--bg-panel-2)}
.cc-flag {width:16.5px;height:11px}
.cc-ok {width:7px;height:7px;flex:none;border-radius:var(--radius-dot);background:var(--success);box-shadow:0 0 0 3px var(--success-ring)}
.cc-muted {color:var(--text-muted)}
.marks-wall {padding:24px var(--inset) 40px}
.wall-list {display:flex;flex-wrap:wrap;justify-content:center;align-items:center;gap:16px 40px;color:var(--text-faint);list-style:none;margin:0;padding:0}
.wall-list li {display:inline-flex;align-items:center;gap:8px;font-size:var(--text-nav);font-weight:var(--weight-medium);letter-spacing:-.01em;margin:0}
.wall-list svg {width:18px;height:18px}
.wall-div {width:1px;height:18px;background:var(--border)}
.wm-mono {font-family:var(--font-mono);font-weight:var(--weight-medium)}
.token-grid {display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}
.token-cell {border:1px solid var(--border);min-width:0;font-family:var(--font-mono);font-size:var(--text-xs)}
.token-cell code {display:block;padding:12px}
.swatch {height:72px;border-bottom:1px solid var(--border)}
.sw-bg {background:var(--bg)}
.sw-panel {background:var(--bg-panel)}
.sw-panel-2 {background:var(--bg-panel-2)}
.sw-border {background:var(--border)}
.sw-accent {background:var(--accent)}
.sw-accent-dark {background:var(--accent-dark)}
.sw-violet {background:var(--accent-violet)}
.sw-text {background:var(--text)}
.sw-muted {background:var(--text-muted)}
.sw-faint {background:var(--text-faint)}
.sw-success {background:var(--success)}
.sw-warn {background:var(--warn)}
.sw-error {background:var(--error)}
.sw-sky {background:var(--sky-top)}
.sw-sky-mid {background:var(--sky-mid)}
.sw-front {background:linear-gradient(var(--bldg-front-hi),var(--bldg-front-lo))}
.sw-side {background:linear-gradient(var(--bldg-side-hi),var(--bldg-side-lo))}
.sw-far {background:linear-gradient(var(--bldg-far-hi),var(--bldg-far-lo))}
.sw-near {background:linear-gradient(var(--bldg-near-hi),var(--bldg-near-lo))}
.sw-sphere {background:var(--bldg-sphere-hi)}
.sw-arc {background:var(--arc)}
.sw-grid {background:var(--grid-ink)}
.sw-veil {background:linear-gradient(90deg,var(--veil),var(--bg-panel-2))}
.sw-shadow {background:var(--bg);box-shadow:var(--shadow-panel)}
.sw-red {background:var(--flag-red)}
.sw-blue {background:var(--flag-blue)}
.sw-gold {background:var(--flag-gold)}
.sw-black {background:var(--flag-black)}
.type-display {font-family:var(--font-display);font-size:var(--h1-size);line-height:var(--leading-title);font-weight:var(--weight-regular)}
.demo-stack {display:grid;gap:24px}
.demo-divider {border-top:1px solid var(--border)}
@media(max-width:1360px) {.sub{font-size:var(--text-body)}}
@media(max-width:1100px) {
  .canvas {--hz:clamp(220px,36vw,330px);height:auto;display:flex;flex-direction:column}
  .stage {position:relative;left:auto;right:auto;top:auto;bottom:auto;height:var(--hz);margin-top:24px;display:block;overflow:hidden;flex:none}
  .skyline {position:absolute;left:50%;bottom:0;width:clamp(560px,90vw,760px);max-width:none;max-height:none;transform:translateX(-50%)}
  .floor {top:calc(var(--hz) + 24px);height:calc(100% - var(--hz) - 24px)}
  .haze {top:calc(var(--hz) - 12px)}
  .reflect,.ground,.veil,.lane-chips,.fact-pill {display:none}
  .copy {position:relative;left:auto;bottom:auto;width:auto;max-width:620px;padding:32px 32px 40px}
  .client-card {position:relative;top:auto;right:auto;width:auto;max-width:360px;margin-top:16px}
}
@media(max-width:768px) {
  .district-panel {grid-template-columns:1fr;padding:24px;gap:24px}
  .token-grid {grid-template-columns:repeat(2,minmax(0,1fr))}
  .copy {padding:24px 20px 32px}
  .hero-title {margin:20px 0 24px;letter-spacing:var(--tracking-cjk)}
  .sub {font-size:var(--text-button)}
  .mark-row {align-items:flex-start}
  .row-label {padding-top:2px}
  .row-items {gap:6px 12px}
  .wall-list {gap:14px 24px}
  .wall-div {display:none}
  .float-cta {right:12px;bottom:calc(12px + env(safe-area-inset-bottom,0px))}
  .plan-card,.promo-block {padding:24px}
}
@media(prefers-reduced-motion:reduce) {
  .orb {animation:none;transform:rotate(calc(var(--sweep) * .5))}
}