/* =========================================================
   VIS — Vacancy Activated System · website styles (v3)
   Implements /workspace/vis-web/VIS-web-design-spec.md
   ALL DESIGN TOKENS (colors, type, spacing, motion) live in section 1 below.
   Map pin colors live in js/config.js (TYPE_COLORS).
   Order: fonts → tokens → base → layout → components → sections → map → motion
   ========================================================= */

/* ---------- Fonts (prototype: self-hosted subsets; production: Google Fonts link in spec) ---------- */
@font-face{font-family:"Sora";src:url("../assets/fonts/Sora-Variable.woff2") format("woff2");font-weight:100 800;font-style:normal;font-display:swap}
@font-face{font-family:"Instrument Sans";src:url("../assets/fonts/InstrumentSans-Variable.woff2") format("woff2");font-weight:400 700;font-stretch:75% 100%;font-style:normal;font-display:swap}
@font-face{font-family:"DM Mono";src:url("../assets/fonts/DMMono-Regular.woff2") format("woff2");font-weight:400;font-style:normal;font-display:swap}

/* ---------- 1. Tokens ---------- */
:root{
  /* Brand */
  --vis-ink:#121212;
  --vis-paper:#F6F5F1;
  --vis-vermilion:#FF4B1F;
  /* Derived neutrals */
  --vis-ink-2:#1C1C1B;         /* raised surface on dark */
  --vis-ink-3:#262625;         /* hover surface on dark */
  --vis-paper-2:#ECEAE3;       /* raised surface on light */
  --vis-paper-3:#E2DFD6;       /* hover surface on light */
  --vis-mute-on-ink:#A19F97;   /* secondary text on ink  (7.07:1) */
  --vis-mute-on-paper:#5E5C56; /* secondary text on paper (6.13:1) */
  --vis-line-on-ink:#363636;   /* hairline, decorative (1.55:1) */
  --vis-line-on-paper:#D2D1CD; /* hairline, decorative (1.40:1) */
  --vis-control-on-ink:#6E6D69;   /* input/outline borders (3.62:1) */
  --vis-control-on-paper:#807F7A; /* input/outline borders (3.68:1 on paper, 3.33:1 on paper-2) */
  /* Accent derivatives */
  --vis-vermilion-hover:#FF6A43;  /* primary hover */
  --vis-vermilion-press:#E8401A;  /* primary active */
  --vis-vermilion-text:#B8330E;   /* vermilion TEXT on paper (5.47:1) */

  /* Semantic (default = dark theme, flipped by [data-theme="light"]) */
  --bg:var(--vis-ink); --bg-raised:var(--vis-ink-2); --bg-hover:var(--vis-ink-3);
  --fg:var(--vis-paper); --fg-muted:var(--vis-mute-on-ink);
  --line:var(--vis-line-on-ink); --line-control:var(--vis-control-on-ink);
  --accent:var(--vis-vermilion); --accent-text:var(--vis-vermilion);
  --focus:var(--vis-vermilion);

  /* Type */
  --font-display:"Sora",ui-sans-serif,system-ui,sans-serif;
  --font-body:"Instrument Sans",ui-sans-serif,system-ui,-apple-system,"Segoe UI",sans-serif;
  --font-mono:"DM Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --fs-display:clamp(2.75rem,1.2rem + 5.2vw,6.25rem);   /* 44 → 94px @1440 → 100 */
  --fs-mega:clamp(3.25rem,0.6rem + 8.4vw,9.5rem);       /* footer headline 52 → 131px @1440 */
  --fs-h2:clamp(2rem,1.1rem + 2.6vw,3.625rem);          /* 32 → 55px @1440 → 58 */
  --fs-h3:clamp(1.5rem,1.05rem + 1.25vw,2.375rem);      /* 24 → 36px @1440 → 38 */
  --fs-h4:clamp(1.25rem,1.1rem + .4vw,1.5rem);          /* 20 → 24 */
  --fs-lead:clamp(1.125rem,1rem + .35vw,1.3125rem);     /* 18 → 21 */
  --fs-body:1.0625rem;                                   /* 17 */
  --fs-small:.875rem;                                    /* 14 */
  --fs-label:.75rem;                                     /* 12, mono caps */
  --fs-micro:.6875rem;                                   /* 11, mono caps */

  /* Space (4px base) */
  --space-1:.25rem; --space-2:.5rem; --space-3:.75rem; --space-4:1rem; --space-5:1.5rem;
  --space-6:2rem; --space-7:3rem; --space-8:4rem; --space-9:6rem; --space-10:8rem; --space-11:10rem;
  --section-y:clamp(5rem,2.5rem + 6.5vw,10rem);        /* 80 → 134px @1440 → 160 */
  --gutter:clamp(1.25rem,.5rem + 3.2vw,3.5rem);        /* 20 → 54px @1440 → 56 */
  --grid-gap:clamp(1rem,.6rem + 1vw,1.5rem);
  --container:1360px;
  --measure:40rem;

  /* Shape */
  --radius-0:0; --radius-1:2px; --radius-2:4px;
  --hairline:1px;

  /* Motion */
  --ease-out:cubic-bezier(.2,.7,.2,1);
  --ease-inout:cubic-bezier(.65,0,.35,1);
  --ease-beam:cubic-bezier(.7,0,.2,1);
  --dur-1:.15s; --dur-2:.25s; --dur-3:.45s; --dur-4:.8s; --dur-5:1.2s;

  --nav-h:76px;
}
[data-theme="light"]{
  --bg:var(--vis-paper); --bg-raised:var(--vis-paper-2); --bg-hover:var(--vis-paper-3);
  --fg:var(--vis-ink); --fg-muted:var(--vis-mute-on-paper);
  --line:var(--vis-line-on-paper); --line-control:var(--vis-control-on-paper);
  --accent-text:var(--vis-vermilion-text);
  --focus:var(--vis-vermilion-text);
}
[data-theme="light-2"]{
  --bg:var(--vis-paper-2); --bg-raised:var(--vis-paper); --bg-hover:var(--vis-paper-3);
  --fg:var(--vis-ink); --fg-muted:var(--vis-mute-on-paper);
  --line:#CFCCC4; --line-control:var(--vis-control-on-paper);
  --accent-text:var(--vis-vermilion-text);
  --focus:var(--vis-vermilion-text);
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:var(--nav-h)}
body{margin:0;background:var(--vis-ink);color:var(--vis-paper);font-family:var(--font-body);font-size:var(--fs-body);line-height:1.6;font-weight:400;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}
img,video,svg{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3,h4,p,ul,ol,figure{margin:0}
ul,ol{padding:0;list-style:none}
button,input,select,textarea{font:inherit;color:inherit}
::selection{background:var(--vis-vermilion);color:var(--vis-ink)}
:focus-visible{outline:2px solid var(--focus);outline-offset:3px}
.visually-hidden{position:absolute!important;width:1px;height:1px;margin:-1px;padding:0;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}
.skip-link{position:fixed;left:var(--gutter);top:-100px;z-index:1200;background:var(--vis-vermilion);color:var(--vis-ink);padding:.75rem 1rem;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;text-decoration:none}
.skip-link:focus{top:1rem}

/* ---------- 3. Layout ---------- */
.section{background:var(--bg);color:var(--fg);padding-block:var(--section-y);position:relative}
.container{width:min(100% - 2*var(--gutter),var(--container));margin-inline:auto}
.grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gap)}

/* ---------- 4. Type ---------- */
.t-display{font-family:var(--font-display);font-weight:300;font-size:var(--fs-display);line-height:1;letter-spacing:-.035em}
.t-mega{font-family:var(--font-display);font-weight:200;font-size:var(--fs-mega);line-height:.95;letter-spacing:-.045em}
.t-h2{font-family:var(--font-display);font-weight:300;font-size:var(--fs-h2);line-height:1.08;letter-spacing:-.025em}
.t-h3{font-family:var(--font-display);font-weight:300;font-size:var(--fs-h3);line-height:1.15;letter-spacing:-.018em}
.t-h4{font-family:var(--font-display);font-weight:400;font-size:var(--fs-h4);line-height:1.25;letter-spacing:-.01em}
.t-lead{font-size:var(--fs-lead);line-height:1.5;color:var(--fg-muted)}
.t-body{font-size:var(--fs-body);line-height:1.6}
.t-small{font-size:var(--fs-small);line-height:1.5}
.t-label{font-family:var(--font-mono);font-size:var(--fs-label);line-height:1.2;letter-spacing:.14em;text-transform:uppercase;font-weight:400}
.t-micro{font-family:var(--font-mono);font-size:var(--fs-micro);line-height:1.2;letter-spacing:.14em;text-transform:uppercase}
.muted{color:var(--fg-muted)}
.accent{color:var(--accent-text)}
.balance{text-wrap:balance}

/* ---------- 5. Node motif (hollow ring from the logo) ---------- */
.node{display:inline-block;flex:none;width:9px;height:9px;border:1.5px solid currentColor;border-radius:50%;vertical-align:middle}
.node--accent{border-color:var(--vis-vermilion)}
.node--fill{background:var(--vis-vermilion);border-color:var(--vis-vermilion)}
.label-node{display:inline-flex;align-items:center;gap:.75rem}

/* ---------- 6. Buttons ---------- */
.btn{--btn-h:52px;display:inline-flex;align-items:center;justify-content:center;gap:.875rem;height:var(--btn-h);padding:0 1.25rem 0 1.5rem;border:1px solid transparent;border-radius:var(--radius-1);font-family:var(--font-body);font-weight:500;font-size:.9375rem;line-height:1;letter-spacing:.01em;text-decoration:none;white-space:nowrap;cursor:pointer;background:none;transition:background-color var(--dur-2) var(--ease-out),color var(--dur-2) var(--ease-out),border-color var(--dur-2) var(--ease-out)}
.btn__beam{width:22px;height:10px;flex:none;overflow:visible}
.btn__beam line{transform-origin:3px 5px;transform:scaleX(.72);transition:transform var(--dur-3) var(--ease-beam)}
.btn__beam path{transform:translateX(-5px);transition:transform var(--dur-3) var(--ease-beam)}
.btn:hover .btn__beam line,.btn:focus-visible .btn__beam line{transform:scaleX(1)}
.btn:hover .btn__beam path,.btn:focus-visible .btn__beam path{transform:translateX(0)}
.btn--primary{background:var(--vis-vermilion);color:var(--vis-ink);border-color:var(--vis-vermilion)}
.btn--primary:hover{background:var(--vis-vermilion-hover);border-color:var(--vis-vermilion-hover)}
.btn--primary:active{background:var(--vis-vermilion-press);border-color:var(--vis-vermilion-press)}
.btn--secondary{color:var(--fg);border-color:var(--line-control)}
.btn--secondary:hover{background:var(--fg);color:var(--bg);border-color:var(--fg)}
.btn--glass{color:var(--vis-paper);border-color:rgba(246,245,241,.55);background:rgba(18,18,18,.28);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}
.btn--glass:hover{background:var(--vis-paper);color:var(--vis-ink);border-color:var(--vis-paper)}
.btn--sm{--btn-h:40px;padding:0 .875rem 0 1.125rem;font-size:.875rem;gap:.625rem}
.btn--block{width:100%}
.link{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:.625rem;padding-block:.5rem;border-bottom:1px solid var(--line-control);transition:color var(--dur-2),border-color var(--dur-2)}
.link:hover{color:var(--accent-text);border-color:currentColor}

/* ---------- 7. Nav ---------- */
.nav{position:fixed;inset:0 0 auto 0;z-index:1100;height:var(--nav-h);color:var(--vis-paper);transition:background-color var(--dur-3) var(--ease-out),color var(--dur-3) var(--ease-out),border-color var(--dur-3);border-bottom:1px solid transparent}
.nav__inner{height:100%;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:var(--space-6)}
.nav__brand{display:inline-flex;align-items:center;color:inherit;width:max-content}
.nav__brand svg{height:34px;width:auto;aspect-ratio:2.3320}
.nav__links{display:flex;gap:2.25rem}
.nav__links a{font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;text-decoration:none;display:inline-flex;align-items:center;gap:.5rem;padding-block:.5rem;opacity:.86;transition:opacity var(--dur-2)}
.nav__links a::before{content:"";width:7px;height:7px;border-radius:50%;border:1.5px solid var(--vis-vermilion);transform:scale(0);transition:transform var(--dur-2) var(--ease-out);margin-left:-15px}
.nav__links a:hover{opacity:1}
.nav__links a:hover::before,.nav__links a[aria-current="page"]::before{transform:scale(1)}
.nav__cta{justify-self:end;display:flex;align-items:center;gap:1rem}
.nav__menu-btn{display:none;align-items:center;gap:.625rem;height:40px;padding:0 .875rem;border:1px solid currentColor;border-radius:var(--radius-1);background:none;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:.14em;text-transform:uppercase;cursor:pointer}
.nav__menu-btn i{display:block;width:16px;height:6px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}
.nav.is-solid{background:rgba(18,18,18,.78);-webkit-backdrop-filter:blur(16px) saturate(1.2);backdrop-filter:blur(16px) saturate(1.2);border-bottom-color:rgba(246,245,241,.1)}
.nav.is-solid[data-nav-theme="light"]{background:rgba(246,245,241,.84);color:var(--vis-ink);border-bottom-color:rgba(18,18,18,.1)}
.menu{position:fixed;inset:0;z-index:1090;background:var(--vis-ink);color:var(--vis-paper);padding:calc(var(--nav-h) + 2rem) var(--gutter) 2rem;display:flex;flex-direction:column;justify-content:space-between;opacity:0;visibility:hidden;transition:opacity var(--dur-3) var(--ease-out),visibility 0s linear var(--dur-3)}
.menu.is-open{opacity:1;visibility:visible;transition-delay:0s}
.menu__links a{display:flex;align-items:baseline;gap:1rem;font-family:var(--font-display);font-weight:300;font-size:clamp(2.25rem,9vw,3.5rem);letter-spacing:-.03em;line-height:1.25;text-decoration:none;border-bottom:1px solid var(--vis-line-on-ink);padding-block:.5rem}
.menu__links a span{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;color:var(--vis-mute-on-ink)}
body.menu-open{overflow:hidden}
body.menu-open .nav{background:var(--vis-ink)!important;color:var(--vis-paper)!important}

/* ---------- 8. Hero ---------- */
.hero{position:relative;min-height:max(640px,100svh);color:var(--vis-paper);background:var(--vis-ink);overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;isolation:isolate}
.hero__media{position:absolute;inset:0 0 auto 0;height:80%;z-index:-2}
.hero__media video,.hero__media img{width:100%;height:100%;object-fit:cover;object-position:50% 30%}
.hero__scrim{position:absolute;inset:0 0 auto 0;height:80%;z-index:-1;background:
  linear-gradient(180deg,rgba(18,18,18,.6) 0%,rgba(18,18,18,0) 18%,rgba(18,18,18,0) 40%,rgba(18,18,18,.5) 60%,rgba(18,18,18,.78) 80%,#121212 100%), /* v3.3: darker from 40% so hero copy stays legible over the brighter street-view loop */
  linear-gradient(90deg,rgba(18,18,18,.5) 0%,rgba(18,18,18,0) 50%)}
.hero__content{padding-bottom:clamp(2rem,1rem + 3vw,3.5rem)}
.hero__eyebrow{grid-column:1/-1;margin-bottom:1.75rem;color:rgba(246,245,241,.8)}
.hero__title{grid-column:1/span 8;text-wrap:balance}
.hero__aside{grid-column:9/span 4;align-self:end;display:flex;flex-direction:column;gap:1.75rem}
.hero__aside p{font-size:var(--fs-lead);line-height:1.5;color:rgba(246,245,241,.82);max-width:30rem}
.hero__aside p.hero__edge{font-size:.9375rem;line-height:1.55;color:rgba(246,245,241,.72);margin-top:-.75rem;padding-left:.875rem;border-left:1px solid var(--vis-vermilion)}
.hero__ctas{display:flex;flex-wrap:wrap;gap:.75rem}
.hero__rail{border-top:1px solid rgba(246,245,241,.16);padding-block:1.125rem 1.25rem}
.hero__rail .container{display:flex;align-items:center;justify-content:space-between;gap:2rem;color:rgba(246,245,241,.72)}
.hero__rail-corridors{display:flex;gap:1rem;flex-wrap:nowrap;white-space:nowrap}
.hero__rail-corridors span{display:inline-flex;align-items:center;gap:1rem}
.hero__rail-corridors span+span::before{content:"";width:4px;height:4px;border-radius:50%;background:rgba(246,245,241,.4)}
.loop-toggle{white-space:nowrap;display:inline-flex;align-items:center;gap:.625rem;background:none;border:0;padding:.375rem 0;cursor:pointer;color:inherit}
.loop-toggle .node{width:8px;height:8px;background:var(--vis-vermilion);border-color:var(--vis-vermilion);animation:pulse 2.4s var(--ease-inout) infinite}
.loop-toggle[aria-pressed="true"] .node{background:transparent;animation:none}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 rgba(255,75,31,.5)}50%{box-shadow:0 0 0 6px rgba(255,75,31,0)}}
.scroll-cue{display:inline-flex;align-items:center;gap:.625rem;text-decoration:none}
.scroll-cue svg{width:10px;height:14px;animation:cue 2s var(--ease-inout) infinite}
@keyframes cue{0%,100%{transform:translateY(-2px)}50%{transform:translateY(3px)}}

/* ---------- 9. Section head ---------- */
.section-head{row-gap:var(--space-5);margin-bottom:clamp(3rem,2rem + 3vw,5.5rem);align-items:start}
.section-head__label{grid-column:1/span 3;padding-top:.9em;color:var(--fg-muted)}
.section-head__title{grid-column:4/span 9;max-width:19ch}
.section-head__title.wide{max-width:24ch}
.section-head__intro{grid-column:4/span 6;margin-top:var(--space-5)}

/* ---------- 10. Intro statement ---------- */
.intro__grid{align-items:center;row-gap:var(--space-8)}
.intro__label{grid-column:1/span 3;align-self:start;padding-top:.8em;color:var(--fg-muted)}
.intro__statement{grid-column:4/span 6;font-family:var(--font-display);font-weight:300;font-size:clamp(1.75rem,1rem + 2.1vw,3rem);line-height:1.18;letter-spacing:-.022em;text-wrap:pretty}
.intro__statement em{font-style:normal;color:var(--accent-text)}
.intro__mark{grid-column:10/span 3;justify-self:end;width:min(100%,260px);color:var(--vis-ink)}
.intro__meta{grid-column:4/span 9;display:flex;flex-wrap:wrap;gap:var(--space-5) var(--space-8);margin-top:var(--space-7);padding-top:var(--space-5);border-top:1px solid var(--line)}
.intro__meta div{display:flex;flex-direction:column;gap:.375rem}
.intro__meta strong{font-family:var(--font-display);font-weight:300;font-size:1.5rem;letter-spacing:-.02em}

/* SVG draw-on (logo mark) */
.vis-mark path,.vis-mark circle{stroke-dasharray:1 1;stroke-dashoffset:1}
.vis-mark .vis-mark__source{stroke:var(--vis-vermilion)}
.is-drawn .vis-mark path,.is-drawn .vis-mark circle{stroke-dashoffset:0}
.is-drawn .vis-mark .vis-mark__source{transition:stroke-dashoffset .5s var(--ease-out) 0s}
.is-drawn .vis-mark .vis-mark__ray{transition:stroke-dashoffset .7s var(--ease-beam)}
.is-drawn .vis-mark .vis-mark__ray:nth-of-type(5){transition-delay:.35s}
.is-drawn .vis-mark .vis-mark__ray:nth-of-type(6){transition-delay:.45s}
.is-drawn .vis-mark .vis-mark__ray:nth-of-type(7){transition-delay:.55s}
.is-drawn .vis-mark .vis-mark__ray:nth-of-type(8){transition-delay:.65s}
.is-drawn .vis-mark .vis-mark__wall{transition:stroke-dashoffset .6s var(--ease-out)}
.is-drawn .vis-mark .vis-mark__wall:nth-of-type(1){transition-delay:1.05s}
.is-drawn .vis-mark .vis-mark__wall:nth-of-type(2){transition-delay:1.2s}
.is-drawn .vis-mark .vis-mark__wall:nth-of-type(3){transition-delay:1.35s}
.is-drawn .vis-mark .vis-mark__wall:nth-of-type(4){transition-delay:1.5s}
.is-drawn .vis-mark .vis-mark__node{transition:stroke-dashoffset .45s var(--ease-out) 1.75s}

/* ---------- 11. Dual path ---------- */
.paths{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.path{position:relative;display:flex;flex-direction:column;gap:var(--space-6);padding:clamp(2rem,1rem + 3vw,4rem) clamp(1.5rem,.5rem + 3vw,4rem) clamp(2rem,1rem + 3vw,3.5rem);text-decoration:none;color:inherit;transition:background-color var(--dur-3) var(--ease-out)}
.path+.path{border-left:1px solid var(--line)}
.path:first-child{padding-left:0}
.path:last-child{padding-right:0}
.path__top{display:flex;justify-content:space-between;align-items:flex-start;gap:1rem}
.path__label{display:inline-flex;align-items:center;gap:.75rem;color:var(--fg)}
.path__illus{width:132px;height:84px;color:var(--fg-muted);transition:color var(--dur-3)}
.path__illus .hl{stroke:var(--vis-vermilion)}
.path__title{max-width:15ch}
.path__list{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.path__list li{display:flex;gap:1rem;align-items:baseline;padding-block:.95rem;border-bottom:1px solid var(--line);color:var(--fg-muted)}
.path__list li .node{transform:translateY(-1px);color:var(--fg)}
.path__foot{margin-top:auto;padding-top:var(--space-3)}
.path:hover .path__illus{color:var(--fg)}

/* ---------- 12. Steps ---------- */
.steps{position:relative}
.steps__rail{position:relative;height:9px;margin-bottom:var(--space-7)}
.steps__rail::before{content:"";position:absolute;left:0;right:0;top:4px;height:1px;background:var(--line)}
.steps__rail::after{content:"";position:absolute;left:0;top:4px;height:1px;width:100%;background:var(--vis-vermilion);transform-origin:left;transform:scaleX(0);transition:transform 1.6s var(--ease-beam) .2s}
.steps.is-in .steps__rail::after{transform:scaleX(1)}
.steps__list{display:grid;grid-template-columns:repeat(3,1fr);column-gap:var(--grid-gap)}
.step{position:relative;padding-right:clamp(0rem,2vw,2.5rem)}
.step__node{position:absolute;top:calc(-1 * var(--space-7) - 9px);left:0;width:9px;height:9px;border-radius:50%;border:1.5px solid var(--fg);background:var(--bg);transition:background-color .3s,border-color .3s}
.steps.is-in .step:nth-child(1) .step__node{background:var(--vis-vermilion);border-color:var(--vis-vermilion);transition-delay:.25s}
.steps.is-in .step:nth-child(2) .step__node{background:var(--vis-vermilion);border-color:var(--vis-vermilion);transition-delay:.9s}
.steps.is-in .step:nth-child(3) .step__node{background:var(--vis-vermilion);border-color:var(--vis-vermilion);transition-delay:1.55s}
.step__num{font-family:var(--font-display);font-weight:200;font-size:clamp(3.5rem,2rem + 4.4vw,6.5rem);line-height:.9;letter-spacing:-.05em;margin-bottom:var(--space-6)}
.step__title{margin-bottom:var(--space-4)}
.step p{color:var(--fg-muted);max-width:34ch}
.step__meta{margin-top:var(--space-5);color:var(--fg-muted)}

/* ---------- 13. Format cards (wireframe card) ---------- */
.cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:var(--grid-gap)}
.card{position:relative;border:1px solid var(--line);border-radius:var(--radius-1);display:flex;flex-direction:column;background:transparent;transition:border-color var(--dur-3) var(--ease-out),background-color var(--dur-3) var(--ease-out)}
.card__corner{position:absolute;width:9px;height:9px;border:1.5px solid var(--fg-muted);border-radius:50%;background:var(--bg);transition:border-color var(--dur-3),background-color var(--dur-3)}
.card__corner--tl{top:-5px;left:-5px}.card__corner--tr{top:-5px;right:-5px}.card__corner--bl{bottom:-5px;left:-5px}.card__corner--br{bottom:-5px;right:-5px}
.card__media{margin:12px 12px 0;aspect-ratio:4/3;overflow:hidden;border-radius:var(--radius-1);background:var(--bg-raised)}
.card__media img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.card__body{padding:var(--space-5) var(--space-5) var(--space-6);display:flex;flex-direction:column;gap:var(--space-4);flex:1}
.card__kicker{display:flex;justify-content:space-between;color:var(--fg-muted)}
.card__body p{color:var(--fg-muted)}
.card__specs{margin-top:auto;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);padding-top:var(--space-4);gap:var(--space-2) var(--space-4)}
.card__specs dt{color:var(--fg-muted)}
.card__specs dd{margin:0;font-size:var(--fs-small)}
.card:hover{border-color:var(--vis-vermilion)}
.card:hover .card__corner{border-color:var(--vis-vermilion);background:var(--vis-vermilion)}
.card:hover .card__media img{transform:scale(1.035)}

@media (min-width:901px) and (max-width:1200px){.cards{grid-template-columns:repeat(2,minmax(0,1fr))}}

/* 13b. Digital display card media slot (placeholder animation or Designer file; see js/site.js + README) */
.dd-media{position:relative;background:#232220}
.dd-slot,.dd-slot>*{width:100%;height:100%;display:block}
.dd-slot video,.dd-slot img{object-fit:cover}
.card__media video{width:100%;height:100%;object-fit:cover;display:block}  /* 4:3 video in the 4:3 card media: fills it without a crop */
.dd-ph{width:100%;height:100%}
.dd-reel{transform-box:view-box;animation:dd-spin 3.2s linear infinite}
.dd-scan{animation:dd-scan 4.8s linear infinite}
.dd-glow{animation:dd-glow 4.8s ease-in-out infinite}
@keyframes dd-spin{to{transform:rotate(360deg)}}
@keyframes dd-scan{from{transform:translateY(0)}to{transform:translateY(135px)}}
@keyframes dd-glow{50%{opacity:.55}}
.dd-media.is-paused .dd-ph *{animation-play-state:paused}
.dd-toggle{position:absolute;right:12px;bottom:12px;background:rgba(18,18,18,.66);color:var(--vis-paper);border:1px solid rgba(246,245,241,.28);border-radius:var(--radius-1);padding:.375rem .5rem;cursor:pointer;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}
.dd-toggle:hover{border-color:var(--vis-paper)}
.dd-toggle[hidden],.dd-tag[hidden]{display:none}

/* ---------- 14. Corridors ---------- */
.marquee{overflow:hidden;border-block:1px solid var(--line);padding-block:clamp(1rem,.5rem + 1.2vw,1.75rem);margin-bottom:clamp(3rem,2rem + 3vw,5rem);-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.marquee__track{display:flex;width:max-content;animation:marquee 60s linear infinite}
.marquee:hover .marquee__track{animation-play-state:paused}
.marquee__group{display:flex;align-items:center;flex:none}
.marquee__item{display:inline-flex;align-items:center;gap:clamp(1.5rem,1rem + 2vw,3rem);padding-right:clamp(1.5rem,1rem + 2vw,3rem);font-family:var(--font-display);font-weight:200;font-size:clamp(2.5rem,1.4rem + 4.4vw,6rem);letter-spacing:-.04em;line-height:1.05;white-space:nowrap}
.marquee__item .node{width:14px;height:14px;border-width:2px}
@keyframes marquee{to{transform:translateX(-50%)}}
.corridor-list{border-top:1px solid var(--line)}
.corridor{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gap);align-items:center;padding-block:1.35rem;border-bottom:1px solid var(--line);text-decoration:none;color:inherit;position:relative;transition:background-color var(--dur-2)}
.corridor__num{grid-column:1/span 1;color:var(--fg-muted)}
.corridor__name{grid-column:2/span 4;font-family:var(--font-display);font-weight:300;font-size:clamp(1.5rem,1rem + 1.4vw,2.375rem);letter-spacing:-.02em;line-height:1.1;display:flex;align-items:center;gap:1rem;transition:transform var(--dur-3) var(--ease-out)}
.corridor__name .node{opacity:0;transform:scale(.4);transition:opacity var(--dur-2),transform var(--dur-3) var(--ease-out)}
.corridor__streets{grid-column:6/span 3;color:var(--fg-muted);font-size:var(--fs-small)}
.corridor__coords{grid-column:9/span 2;color:var(--fg-muted)}
.corridor__status{grid-column:11/span 2;justify-self:end;display:inline-flex;align-items:center;gap:.5rem}
.corridor:hover{background:var(--bg-raised)}
.corridor:hover .corridor__name{transform:translateX(.5rem)}
.corridor:hover .corridor__name .node{opacity:1;transform:scale(1)}
.corridors__note{margin-top:var(--space-5);color:var(--fg-muted)}

/* ---------- 15. Gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--grid-gap);row-gap:clamp(1.75rem,1rem + 2vw,3rem)}
.shot{display:flex;flex-direction:column;gap:.875rem}
.shot__frame{position:relative;overflow:hidden;border-radius:var(--radius-1);background:var(--bg-raised)}
.shot__frame img{width:100%;height:100%;object-fit:cover;transition:transform 1.2s var(--ease-out)}
.shot:hover .shot__frame img{transform:scale(1.025)}
.shot__tag{position:absolute;left:12px;top:12px;background:rgba(18,18,18,.66);color:var(--vis-paper);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);padding:.375rem .5rem;border-radius:var(--radius-1)}
.shot figcaption{display:flex;justify-content:space-between;gap:1rem;color:var(--fg-muted)}
.shot figcaption b{font-weight:400;color:var(--fg)}
.shot--a{grid-column:1/span 8}.shot--a .shot__frame{aspect-ratio:16/9}
.shot--b{grid-column:9/span 4}.shot--b .shot__frame{aspect-ratio:auto;flex:1;min-height:0}
.shot--b .shot__frame img{object-position:40% 50%}
.shot--c{grid-column:1/span 4}.shot--c .shot__frame{aspect-ratio:4/3}
.shot--d{grid-column:5/span 4}.shot--d .shot__frame{aspect-ratio:4/3}
.shot--e{grid-column:9/span 4}.shot--e .shot__frame{aspect-ratio:4/3}
.shot--f{grid-column:1/span 6}.shot--f .shot__frame{aspect-ratio:16/9}
.shot--g{grid-column:7/span 6}.shot--g .shot__frame{aspect-ratio:16/9}

/* ---------- 16. Contact + footer ---------- */
.contact{padding-bottom:0}
.contact__title{margin-bottom:clamp(3rem,2rem + 3vw,5.5rem);max-width:12ch}
.contact__title em{font-style:normal;color:var(--vis-vermilion)}
.contact__grid{row-gap:var(--space-8);padding-bottom:var(--section-y)}
.contact__info{grid-column:1/span 4;display:flex;flex-direction:column;gap:var(--space-6)}
.contact__email{font-family:var(--font-display);font-weight:300;font-size:clamp(1.375rem,1rem + .9vw,1.875rem);letter-spacing:-.02em;text-decoration:none;border-bottom:1px solid var(--line-control);padding-bottom:.35rem;width:max-content;max-width:100%;transition:color var(--dur-2),border-color var(--dur-2)}
.contact__email:hover{color:var(--vis-vermilion);border-color:var(--vis-vermilion)}
.contact__block{display:flex;flex-direction:column;gap:.5rem}
.contact__block p{color:var(--fg-muted)}
.form{grid-column:6/span 7;display:grid;grid-template-columns:1fr 1fr;gap:var(--space-6) var(--grid-gap)}
.form .full{grid-column:1/-1}
.field{display:flex;flex-direction:column;gap:.625rem}
.field label,.field legend{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted);padding:0}
.field input,.field textarea,.field select{background:transparent;border:0;border-bottom:1px solid var(--line-control);border-radius:0;padding:.625rem 0 .75rem;font-size:1.0625rem;color:var(--fg);transition:border-color var(--dur-2)}
.field textarea{min-height:7.5rem;resize:vertical}
.field input::placeholder,.field textarea::placeholder{color:#8A8882}
.field input:hover,.field textarea:hover{border-color:var(--fg-muted)}
.field input:focus-visible,.field textarea:focus-visible{outline:none;border-color:var(--vis-vermilion);box-shadow:0 1px 0 0 var(--vis-vermilion)}
fieldset.field{border:0;margin:0;padding:0;min-width:0}
.segmented{display:grid;grid-template-columns:1fr 1fr;border:1px solid var(--line-control);border-radius:var(--radius-1);padding:3px;gap:3px}
.segmented input{position:absolute;opacity:0;pointer-events:none}
.segmented label{display:flex;align-items:center;justify-content:center;gap:.625rem;height:44px;border-radius:1px;cursor:pointer;font-family:var(--font-body);font-size:.9375rem;letter-spacing:0;text-transform:none;color:var(--fg-muted);transition:background-color var(--dur-2),color var(--dur-2)}
.segmented label .node{width:8px;height:8px}
.segmented input:checked+label{background:var(--vis-paper);color:var(--vis-ink)}
.segmented input:checked+label .node{background:var(--vis-vermilion);border-color:var(--vis-vermilion)}
.segmented input:focus-visible+label{outline:2px solid var(--focus);outline-offset:2px}
.form__foot{display:flex;align-items:center;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap}
.form__foot p{color:var(--fg-muted);max-width:32ch}
.footer{border-top:1px solid var(--line);padding-block:var(--space-8) var(--space-6)}
.footer__grid{row-gap:var(--space-7)}
.footer__brand{grid-column:1/span 4;display:flex;flex-direction:column;gap:var(--space-5)}
.footer__brand svg{height:52px;width:auto;aspect-ratio:2.3320;align-self:flex-start;color:var(--vis-paper)}
.footer__brand p{color:var(--fg-muted);max-width:28ch}
.footer__col{grid-column:span 2;display:flex;flex-direction:column;gap:.75rem}
.footer__col--first{grid-column:7/span 2}
.footer__col h3{color:var(--fg-muted);margin-bottom:.25rem}
.footer__col a{text-decoration:none;font-size:var(--fs-small);width:max-content;transition:color var(--dur-2)}
.footer__col a:hover{color:var(--vis-vermilion)}
.footer__legal{grid-column:1/-1;display:flex;justify-content:space-between;gap:var(--space-5);flex-wrap:wrap;border-top:1px solid var(--line);padding-top:var(--space-5);color:var(--fg-muted)}

/* ---------- 16b. Spaces map (Leaflet + data/spaces.csv), inside 05 Corridors ---------- */
[hidden]{display:none!important}
.spaces{margin-top:clamp(4rem,2.5rem + 4vw,7rem);scroll-margin-top:calc(var(--nav-h) + 1rem)}
.spaces__head{row-gap:var(--space-5);margin-bottom:var(--space-6);align-items:end}
.spaces__label{grid-column:1/span 3;color:var(--fg-muted);align-self:start;padding-top:.6em}
.spaces__title{grid-column:4/span 5}
.spaces__count{grid-column:9/span 4;justify-self:end;color:var(--fg-muted);margin:0}
.sample-banner{display:flex;align-items:center;gap:.75rem;margin:0 0 var(--space-5);padding:.8rem 1rem;border:1px dashed var(--vis-vermilion-text);border-radius:var(--radius-1);color:var(--accent-text);background:var(--bg-raised)}
/* Filters */
.filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--space-5) var(--space-7);padding:var(--space-5) 0;margin:0 0 var(--space-6);border-block:1px solid var(--line)}
.filters fieldset{border:0;margin:0;padding:0;min-width:0}
.filters legend,.filters .filters__label{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--fg-muted);padding:0;margin-bottom:.75rem;display:block}
.chip-group{display:flex;flex-wrap:wrap;gap:.5rem}
.chip{position:relative;display:inline-flex;align-items:center;gap:.6rem;height:40px;padding:0 .875rem;border:1px solid var(--line-control);border-radius:var(--radius-1);font-size:var(--fs-small);cursor:pointer;user-select:none;color:var(--fg-muted);transition:border-color var(--dur-2),background-color var(--dur-2),color var(--dur-2)}
.chip input{margin:0;width:15px;height:15px;accent-color:var(--vis-ink);cursor:pointer}
.chip:hover{border-color:var(--fg)}
.chip:has(input:checked){color:var(--fg);border-color:var(--fg);background:var(--bg-raised)}
.chip:has(input:focus-visible){outline:2px solid var(--focus);outline-offset:3px}
.chip input:focus-visible{outline:none}
.swatch{display:inline-block;width:10px;height:10px;border-radius:50%;flex:none;border:2px solid var(--pin,currentColor);background:var(--pin,currentColor)}
.filters select{height:40px;min-width:220px;padding:0 2.5rem 0 .875rem;border:1px solid var(--line-control);border-radius:var(--radius-1);background-color:transparent;color:var(--fg);font-size:var(--fs-small);appearance:none;-webkit-appearance:none;cursor:pointer;
  background-image:linear-gradient(45deg,transparent 50%,currentColor 50%),linear-gradient(135deg,currentColor 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.filters select:hover{border-color:var(--fg)}
.filters .link{background:none;border-top:0;border-left:0;border-right:0;cursor:pointer;color:var(--fg);height:40px;padding-block:0}
.filters__reset{margin-left:auto}
/* Map + list layout */
.map-layout{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--grid-gap);row-gap:var(--space-6);--map-h:640px}
.map-wrap{grid-column:1/span 8;position:relative;isolation:isolate;border:1px solid var(--line-control);border-radius:var(--radius-1);padding:8px}
.map-wrap>.card__corner{z-index:2;border-color:var(--fg)}
#map{height:var(--map-h);width:100%;position:relative;z-index:0;background:var(--vis-paper-2);border-radius:1px;scroll-margin-top:calc(var(--nav-h) + 1rem)}
/* Keyless OpenStreetMap tiles, toned to the Paper palette (warm, low-contrast grayscale) so pins read first. */
.tiles-osm .leaflet-tile-pane{filter:grayscale(1) sepia(.16) contrast(.84) brightness(1.07)}
.leaflet-container{font-family:var(--font-body);color:var(--vis-ink)}
.leaflet-container a{color:inherit}
.leaflet-bar{border:1px solid var(--vis-control-on-paper)!important;border-radius:var(--radius-1)!important;box-shadow:none!important;overflow:hidden}
.leaflet-bar a,.leaflet-bar a:hover{background:var(--vis-paper);color:var(--vis-ink);border-bottom-color:var(--vis-line-on-paper);font-family:var(--font-body);font-weight:300;width:34px;height:34px;line-height:34px}
.leaflet-bar a:hover{background:var(--vis-ink);color:var(--vis-paper)}
.leaflet-control-attribution{background:rgba(246,245,241,.85)!important;color:var(--vis-mute-on-paper);font-size:10px}
.leaflet-control-attribution a{color:var(--vis-ink)!important}
.leaflet-interactive:focus{outline:none}
/* Legend (frosted Paper chip on the map) */
.legend{position:absolute;left:20px;bottom:20px;z-index:500;display:grid;gap:.5rem;padding:.75rem .875rem;background:rgba(246,245,241,.9);color:var(--vis-ink);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border:1px solid var(--vis-line-on-paper);border-radius:var(--radius-1);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.12em;text-transform:uppercase}
.legend-row{display:flex;flex-wrap:wrap;gap:.5rem 1rem}
.legend-item{display:inline-flex;align-items:center;gap:.45rem;white-space:nowrap}
.dot{display:inline-block;width:11px;height:11px;border-radius:50%;box-sizing:border-box}
.dot-filled{background:var(--vis-ink);border:2px solid var(--vis-ink)}
.dot-hollow{background:var(--vis-paper);border:2px solid var(--vis-ink)}
.dot-dashed{background:rgba(18,18,18,.15);border:2px dashed var(--vis-ink)}
/* List (wireframe cards) */
.space-list{grid-column:9/span 4;height:calc(var(--map-h) + 18px);overflow-y:auto;display:grid;align-content:start;gap:1.125rem;padding:6px 8px 6px 6px;scrollbar-width:thin;scrollbar-color:var(--line-control) transparent}
.space-card{position:relative;display:flex;flex-direction:column;gap:.5rem;width:100%;text-align:left;padding:1rem 1.125rem 1.05rem;border:1px solid var(--line);border-radius:var(--radius-1);background:transparent;color:inherit;font:inherit;cursor:pointer;transition:border-color var(--dur-3) var(--ease-out),background-color var(--dur-3) var(--ease-out)}
.space-card .card__corner{border-color:var(--fg-muted)}
.space-card:hover{border-color:var(--fg);background:var(--bg-raised)}
.space-card:hover .card__corner{border-color:var(--fg)}
.space-card.is-selected{border-color:var(--vis-vermilion);background:var(--bg-raised)}
.space-card.is-selected .card__corner{border-color:var(--vis-vermilion);background:var(--vis-vermilion)}
.space-card__kicker{display:flex;justify-content:space-between;gap:.75rem;color:var(--fg-muted)}
.space-card__type{display:inline-flex;align-items:center;gap:.45rem;color:var(--fg)}
.space-card__name{font-family:var(--font-display);font-weight:300;font-size:1.25rem;line-height:1.2;letter-spacing:-.015em;margin:0}
.space-card__addr{color:var(--fg-muted);font-size:var(--fs-small);line-height:1.45;margin:0}
.space-card__meta{display:flex;flex-wrap:wrap;gap:.35rem 1rem;padding-top:.6rem;margin-top:.15rem;border-top:1px solid var(--line);color:var(--fg-muted)}
.space-card__meta span{display:inline-flex;align-items:center;gap:.4rem}
.status-dot{display:inline-block;width:9px;height:9px;border-radius:50%;border:1.5px solid currentColor;flex:none}
.status-active .status-dot{background:currentColor}
.status-coming-soon .status-dot{border-style:dashed}
.status-active,.status-available{color:var(--fg)}
.empty{color:var(--fg-muted);padding:1.5rem;text-align:center;border:1px dashed var(--line-control);border-radius:var(--radius-1);margin:0}
/* Popups & tooltips (Ink on the Paper map) */
.leaflet-popup-content-wrapper{background:var(--vis-ink);color:var(--vis-paper);border-radius:var(--radius-1);border:1px solid var(--vis-ink);box-shadow:0 16px 40px rgba(18,18,18,.28)}
.leaflet-popup-tip{background:var(--vis-ink);box-shadow:none}
.leaflet-popup-content{margin:1rem 1.125rem 1.1rem;font-family:var(--font-body);font-size:var(--fs-small);line-height:1.45}
.leaflet-container a.leaflet-popup-close-button{color:var(--vis-mute-on-ink);font-size:20px;width:30px;height:30px;top:4px;right:4px;font-weight:300}
.leaflet-container a.leaflet-popup-close-button:hover{color:var(--vis-vermilion)}
.leaflet-tooltip{background:var(--vis-ink);color:var(--vis-paper);border:0;border-radius:var(--radius-1);padding:.35rem .6rem;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.1em;text-transform:uppercase;box-shadow:none}
.leaflet-tooltip-top::before{border-top-color:var(--vis-ink)}
.popup__kicker{display:flex;align-items:center;gap:.5rem;color:var(--vis-mute-on-ink);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;margin:0 1.5rem .5rem 0}
.popup h3{font-family:var(--font-display);font-weight:300;font-size:1.25rem;line-height:1.2;letter-spacing:-.015em;margin:0 1.25rem .2rem 0}
.popup .addr{color:var(--vis-mute-on-ink);margin:0 0 .6rem}
.popup img{display:block;width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:var(--radius-1);margin:0 0 .75rem;background:var(--vis-ink-2)}
.popup dl{display:grid;grid-template-columns:auto 1fr;gap:.3rem .9rem;margin:.6rem 0 0;padding-top:.6rem;border-top:1px solid var(--vis-line-on-ink)}
.popup dt{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--vis-mute-on-ink);padding-top:.15em}
.popup dd{margin:0}
.popup .notes{margin:.7rem 0 0;color:rgba(246,245,241,.85)}
/* Form: not-wired notice */
.form__notice{display:flex;align-items:center;gap:.75rem;margin:0;padding:.75rem 1rem;border:1px dashed var(--vis-vermilion);border-radius:var(--radius-1);color:var(--vis-vermilion)}
.ph-note{color:var(--fg-muted)}
@media (max-width:1200px){
  .map-wrap{grid-column:1/span 7}.space-list{grid-column:8/span 5}
}
@media (max-width:900px){
  .spaces__label,.spaces__title{grid-column:1/-1;padding-top:0}
  .spaces__count{grid-column:1/-1;justify-self:start}
  .map-layout{--map-h:460px}
  .map-wrap,.space-list{grid-column:1/-1}          /* map above list */
  .space-list{height:auto;overflow:visible;padding:6px}
  .filters__reset{margin-left:0}
}
@media (max-width:600px){
  .map-layout{--map-h:420px}
  .filters{gap:var(--space-5)}
  .filters fieldset{width:100%}
  .filters select{width:100%;min-width:0}
  .legend{position:static;margin-top:8px}
  .popup img{aspect-ratio:2/1}
}

/* ---------- 16c. Small fixes on top of the prototype ---------- */
@media (min-width:1201px){ .hero__ctas{gap:.625rem} .hero__ctas .btn{padding:0 1rem 0 1.25rem} } /* keeps both hero CTAs on one row with bracketed labels */
@media (max-width:600px){ .hero__rail .scroll-cue{display:none} }                                /* loop toggle needs the full rail width on phones */

/* ---------- 17. Reveal motion ---------- */
.js [data-reveal]{opacity:0;transform:translateY(18px);filter:blur(6px);transition:opacity var(--dur-4) var(--ease-out),transform var(--dur-4) var(--ease-out),filter var(--dur-4) var(--ease-out);transition-delay:calc(var(--i,0) * 80ms)}
.js [data-reveal].is-in{opacity:1;transform:none;filter:none}

/* ---------- 18. Responsive ---------- */
@media (max-width:1320px){.hero__rail-corridors span:nth-child(n+6){display:none}}
@media (max-width:1200px){
  .hero__rail-corridors{display:none}
  .nav__links{gap:1.5rem}
  .hero__title{grid-column:1/span 12}
  .hero__aside{grid-column:1/span 8;margin-top:var(--space-6)}
  .corridor__streets{grid-column:6/span 4}.corridor__coords{display:none}.corridor__status{grid-column:10/span 3}
}
@media (max-width:900px){
  :root{--nav-h:64px}
  .nav__inner{grid-template-columns:1fr auto}
  .nav__links{display:none}
  .nav__cta .btn{display:none}
  .nav__menu-btn{display:inline-flex}
  .nav__brand svg{height:30px}
  .hero{min-height:0;display:block}
  .hero__media,.hero__scrim{position:relative;height:auto;aspect-ratio:1/1;max-height:62svh;width:100%}
  .hero__scrim{position:absolute;top:0;left:0;right:0;background:linear-gradient(180deg,rgba(18,18,18,.55) 0%,rgba(18,18,18,0) 22%,rgba(18,18,18,0) 60%,#121212 100%)}
  .hero__media video{object-position:50% 40%}
  .hero__content{position:relative;margin-top:-2.5rem;padding-bottom:2.5rem}
  .hero__eyebrow{margin-bottom:1.25rem}
  .hero__aside{grid-column:1/-1;margin-top:var(--space-5);gap:1.5rem}
  .hero__rail-corridors{display:none}
  .section-head__label,.intro__label{grid-column:1/-1;padding-top:0}
  .section-head__title,.section-head__intro{grid-column:1/-1}
  .intro__statement{grid-column:1/-1}
  .intro__mark{grid-column:1/-1;justify-self:start;width:150px;order:-1}
  .intro__meta{grid-column:1/-1}
  .paths{grid-template-columns:1fr}
  .path{padding-inline:0}
  .path+.path{border-left:0;border-top:1px solid var(--line)}
  .steps__rail{display:none}
  .steps__list{grid-template-columns:1fr;row-gap:var(--space-7)}
  .step{padding:var(--space-6) 0 0 var(--space-6);border-left:1px solid var(--line)}
  .step__node{top:calc(var(--space-6) + .6rem);left:-5px}
  .step__num{margin-bottom:var(--space-4)}
  .cards{grid-template-columns:1fr;gap:var(--space-7)}
  .corridor{grid-template-columns:2.25rem 1fr auto;row-gap:.35rem}
  .corridor__num{grid-column:1;grid-row:1/span 2;align-self:start;padding-top:.55rem}
  .corridor__name{grid-column:2}
  .corridor__streets{grid-column:2;grid-row:2}
  .corridor__status{grid-column:3;grid-row:1/span 2}
  .gallery{grid-template-columns:1fr 1fr}
  .shot--a{grid-column:1/-1}
  .shot--b,.shot--c,.shot--d,.shot--e,.shot--f,.shot--g{grid-column:span 1}
  .shot--b .shot__frame{aspect-ratio:4/3;flex:none}
  .contact__info,.form{grid-column:1/-1}
  .footer__brand{grid-column:1/-1}
  .footer__col,.footer__col--first{grid-column:span 4}
}
@media (max-width:600px){
  .hero__ctas .btn{flex:1 1 100%}
  .hero__rail .container{font-size:var(--fs-micro)}
  .gallery{grid-template-columns:1fr}
  .shot--b,.shot--c,.shot--d,.shot--e,.shot--f,.shot--g{grid-column:1/-1}
  .form{grid-template-columns:1fr}
  .card__specs{grid-template-columns:1fr 1fr}
  .corridor__status .t-micro{display:none}
  .footer__col,.footer__col--first{grid-column:span 6}
  .form__foot .btn{width:100%}
}

/* ---------- 19. Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0s!important}
  .js [data-reveal]{opacity:1;transform:none;filter:none}
  .vis-mark path,.vis-mark circle{stroke-dashoffset:0}
  .marquee__track{animation:none}
  .dd-ph *{animation:none!important}
}

/* v3.6 city line under the 01 statement */
.intro__city{grid-column:1 / -1;margin-top:1.25rem;max-width:40ch;text-wrap:balance;overflow-wrap:break-word;color:var(--ink,#121212)}

/* v3.6 city theme */
.city-band{position:relative;margin:clamp(1.5rem,4vw,3rem) 0 0;width:100%;background:#0d0d0d}
.city-band video,.city-band img{width:100%;aspect-ratio:16/9;max-height:80svh;object-fit:cover;display:block}
.city-band__toggle{position:absolute;right:1rem;bottom:.3rem;top:auto}
.city-band figcaption{color:#cfcfcf;padding:.6rem 1rem}
.shot--lead{grid-column:1/-1;margin-bottom:clamp(1rem,2vw,1.5rem)}.shot--lead .shot__frame{aspect-ratio:16/9}
