:root{
  --ink:#111318;
  --paper:#f3f0e9;
  --paper-2:#e7e2d7;
  --muted:#6c6b68;
  --line:#c9c2b6;
  --accent:#9b7a3c;
  --deep:#0d1a24;
  --deep-2:#162a38;
  --white:#fff;
  --max:1180px;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:Arial,Helvetica,sans-serif;line-height:1.6}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.skip{position:absolute;left:-9999px}.skip:focus{left:16px;top:16px;background:#fff;padding:10px;z-index:1000}
.site-header{position:sticky;top:0;z-index:50;background:rgba(13,26,36,.96);backdrop-filter:blur(8px);color:#fff;border-bottom:1px solid rgba(255,255,255,.12)}
.nav-wrap{max-width:var(--max);margin:auto;padding:14px 22px;display:flex;align-items:center;justify-content:space-between;gap:20px}.brand{font-family:Georgia,'Times New Roman',serif;letter-spacing:.08em;font-weight:700}.nav{display:flex;gap:22px;font-size:.92rem}.nav a{opacity:.86}.nav a:hover,.nav a:focus{opacity:1;color:#e6c989}.menu-btn{display:none;background:transparent;border:1px solid rgba(255,255,255,.4);color:#fff;border-radius:4px;padding:8px 10px}
.hero{min-height:86vh;display:grid;place-items:center;text-align:center;padding:80px 22px;background:linear-gradient(180deg,rgba(13,26,36,.92),rgba(13,26,36,.83)),radial-gradient(circle at 50% 20%,#334a5a 0,#14232e 42%,#0d1a24 75%);color:#fff}.hero-inner{max-width:900px}.eyebrow{letter-spacing:.28em;text-transform:uppercase;font-size:.78rem;color:#d8c49b}.hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3.1rem,9vw,7.7rem);line-height:.92;margin:22px 0 18px;letter-spacing:.02em}.hero .dates{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.2rem,2.4vw,2rem);margin:0 0 12px}.hero .years{font-size:clamp(1.5rem,3vw,2.6rem);letter-spacing:.18em;text-transform:uppercase;color:#e4d2a7}.hero .companies{margin-top:34px;color:#d8d9d9}.scroll-note{margin-top:64px;font-size:.78rem;letter-spacing:.16em;text-transform:uppercase;opacity:.72}
.section{padding:92px 22px}.section.dark{background:var(--deep);color:#fff}.section.alt{background:var(--paper-2)}.wrap{max-width:var(--max);margin:auto}.narrow{max-width:780px;margin:auto}.kicker{letter-spacing:.2em;text-transform:uppercase;font-size:.76rem;color:var(--accent);font-weight:700}.section h2,.page-hero h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.2rem,5vw,4.3rem);line-height:1.05;margin:.4em 0}.section h3{font-family:Georgia,'Times New Roman',serif;font-size:1.7rem}.lead{font-family:Georgia,'Times New Roman',serif;font-size:clamp(1.25rem,2.2vw,1.75rem);line-height:1.45}.copy p{margin:0 0 1.2em}.rule{height:1px;background:var(--line);margin:40px 0}.dark .rule{background:rgba(255,255,255,.18)}
.names-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:44px}.name-card{background:#fff;border:1px solid var(--line);padding:0;min-height:380px;display:flex;flex-direction:column}.name-card .portrait{aspect-ratio:4/5;background:linear-gradient(135deg,#d8d3ca,#b7b0a4);display:grid;place-items:center;color:#5e5a53;text-align:center;padding:20px}.portrait span{display:block;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}.name-card .meta{padding:20px}.name-card h3{font-size:1.35rem;margin:0 0 6px}.name-card p{margin:0;color:var(--muted);font-size:.92rem}.name-card:hover{transform:translateY(-2px);transition:.2s ease;box-shadow:0 12px 28px rgba(0,0,0,.08)}
.split{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:start}.callout{border-left:3px solid var(--accent);padding:4px 0 4px 22px;font-family:Georgia,'Times New Roman',serif;font-size:1.3rem}.stat{font-family:Georgia,'Times New Roman',serif;font-size:3rem;line-height:1;color:#e6c989}.timeline-mini{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px}.route{padding:24px;border:1px solid rgba(255,255,255,.2)}.route strong{display:block;font-size:1.15rem}.route span{color:#d3d7db}
.cta-row{display:flex;gap:14px;flex-wrap:wrap;margin-top:30px}.btn{display:inline-block;border:1px solid var(--ink);padding:12px 18px;font-weight:700;letter-spacing:.04em}.dark .btn{border-color:#fff}.btn.primary{background:var(--accent);border-color:var(--accent);color:#111}.btn:hover{filter:brightness(.96)}
.page-hero{padding:92px 22px 68px;background:var(--deep);color:#fff}.page-hero .wrap{max-width:900px}.breadcrumbs{font-size:.82rem;opacity:.7;letter-spacing:.08em;text-transform:uppercase}.bio-list{display:grid;gap:42px}.bio{display:grid;grid-template-columns:260px 1fr;gap:34px;padding-bottom:42px;border-bottom:1px solid var(--line)}.bio .portrait{aspect-ratio:4/5;background:linear-gradient(135deg,#d8d3ca,#b7b0a4);display:grid;place-items:center;text-align:center;padding:18px;color:#5e5a53}.bio h2{font-size:2rem;margin:0 0 6px}.bio .sub{color:var(--muted);font-weight:700;margin-bottom:18px}.bio blockquote{margin:22px 0 0;padding:14px 20px;border-left:3px solid var(--accent);font-family:Georgia,'Times New Roman',serif;font-size:1.15rem}
.timeline{position:relative;margin:50px 0}.timeline:before{content:"";position:absolute;left:18px;top:0;bottom:0;width:1px;background:var(--line)}.event{position:relative;padding:0 0 42px 64px}.event:before{content:"";position:absolute;left:12px;top:8px;width:13px;height:13px;border-radius:50%;background:var(--accent);border:3px solid var(--paper)}.event time{font-weight:800;letter-spacing:.08em}.event h3{margin:6px 0 8px}.routes{display:grid;grid-template-columns:1fr 1fr;gap:24px}.route-card{border:1px solid var(--line);padding:26px}.route-card h3{margin-top:0}.big-time{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3rem,8vw,6rem);line-height:1;color:var(--deep)}
.walk-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:18px}.stone{background:#fff;border:1px solid var(--line);padding:22px}.stone strong{display:block;font-family:Georgia,'Times New Roman',serif;font-size:1.2rem}.stone span{color:var(--muted)}
.source-list{display:grid;gap:18px}.source{padding:20px;border:1px solid var(--line);background:#fff}.source h3{font-size:1.15rem;margin:0 0 8px}.source p{margin:0;color:var(--muted)}
.site-footer{background:#09131b;color:#dfe4e7;padding:48px 22px}.site-footer .wrap{display:flex;justify-content:space-between;gap:30px;align-items:flex-end}.footer-title{font-family:Georgia,'Times New Roman',serif;font-size:1.4rem}.fine{font-size:.82rem;opacity:.7}
@media(max-width:860px){.nav{display:none;position:absolute;top:58px;left:0;right:0;background:#0d1a24;padding:18px 22px;flex-direction:column}.nav.open{display:flex}.menu-btn{display:block}.names-grid{grid-template-columns:repeat(2,1fr)}.split,.bio{grid-template-columns:1fr}.bio .portrait{max-width:300px}.routes,.timeline-mini{grid-template-columns:1fr}.walk-grid{grid-template-columns:1fr}.site-footer .wrap{display:block}.footer-title{margin-bottom:12px}}
@media(max-width:560px){.names-grid{grid-template-columns:1fr}.section{padding:70px 18px}.hero{padding:70px 18px}.hero h1{font-size:3.6rem}.page-hero{padding:72px 18px 52px}}

/* Temporary research portraits; family-approved files can replace these later. */
.portrait.photo{padding:0!important;overflow:hidden;background:#d8d3ca!important}
.portrait.photo img{width:100%;height:100%;display:block;object-fit:cover;object-position:center top;filter:grayscale(100%);transition:filter .25s ease,transform .25s ease}
.name-card:hover .portrait.photo img{filter:grayscale(35%);transform:scale(1.015)}
.sourced-photo{background:linear-gradient(145deg,#172631,#293844)!important;color:#fff!important;padding:24px!important}
.sourced-photo>div{display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center;height:100%;text-align:center}
.sourced-photo strong{font-family:Georgia,'Times New Roman',serif;font-size:1.15rem}
.sourced-photo span,.sourced-photo small{opacity:.72;font-size:.75rem;letter-spacing:.05em}
.sourced-photo a{color:#e4c78c;text-decoration:none;border-bottom:1px solid rgba(228,199,140,.45);padding-bottom:2px}

.pending-rights{position:relative}
.rights-badge{
  position:absolute;left:10px;right:10px;bottom:10px;
  background:rgba(10,20,28,.84);color:#f3eee4;
  font-size:.64rem;line-height:1.25;letter-spacing:.04em;
  padding:7px 9px;border-radius:2px;text-align:center
}

/* Individual memorial page */
.memorial-hero{background:linear-gradient(135deg,#0a151d 0%,#142734 70%,#0d1a24 100%);color:#fff;padding:74px 22px 80px;border-bottom:1px solid rgba(255,255,255,.12)}
.memorial-hero-grid{display:grid;grid-template-columns:minmax(270px,430px) 1fr;gap:clamp(42px,7vw,90px);align-items:center}
.memorial-portrait{aspect-ratio:4/5;overflow:hidden;background:#26343d;box-shadow:0 26px 70px rgba(0,0,0,.3);position:relative}
.memorial-portrait img{width:100%;height:100%;object-fit:cover;object-position:center top;filter:grayscale(100%)}
.memorial-title h1{font-family:Georgia,'Times New Roman',serif;font-size:clamp(3.7rem,8vw,7.5rem);line-height:.9;margin:.16em 0 .25em;letter-spacing:-.035em}
.memorial-years{font-weight:700;letter-spacing:.07em;text-transform:uppercase;color:#e5d0a0}
.memorial-title .lead{max-width:720px;color:#e5e7e8}
.memorial-facts{display:flex;gap:9px;flex-wrap:wrap;margin-top:26px}.memorial-facts span{border:1px solid rgba(255,255,255,.23);padding:8px 11px;font-size:.72rem;letter-spacing:.075em;text-transform:uppercase;color:#dce0e2}
.memorial-reading{display:grid;grid-template-columns:260px minmax(0,760px);gap:clamp(40px,7vw,90px);align-items:start;justify-content:center}
.memorial-aside{position:sticky;top:92px;padding-top:8px}.memorial-aside p{color:var(--muted)}.dark .memorial-aside p{color:#bdc6cb}
.memorial-quote{font-family:Georgia,'Times New Roman',serif;font-size:1.45rem;line-height:1.4;margin-top:18px!important;color:var(--ink)!important}.dark .memorial-quote{color:#fff!important}
.memorial-copy h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.4rem,4.7vw,4.1rem);line-height:1.03;margin:0 0 .55em}.memorial-copy p{font-size:1.08rem;margin:0 0 1.25em}.memorial-copy .lead{font-size:1.45rem}
.light-time{color:#e6c989;font-size:clamp(2.1rem,4.5vw,3.7rem)}
.names-line{font-family:Georgia,'Times New Roman',serif;font-size:1.25rem;line-height:1.6;border-top:1px solid rgba(255,255,255,.2);border-bottom:1px solid rgba(255,255,255,.2);padding:18px 0;margin:28px 0;color:#f0e1bc}
.compact-sources{margin-top:30px}.memorial-close{text-align:center;background:#09131b;color:#fff;padding:90px 22px}.memorial-close h2{font-family:Georgia,'Times New Roman',serif;font-size:clamp(2.2rem,5vw,4.3rem);line-height:1.08;margin:.45em 0}.memorial-close p{color:#d1d6d9;letter-spacing:.08em}
.name-card>a.card-link{display:flex;flex-direction:column;height:100%}.bio .bio-link{display:inline-block;margin-top:12px;font-weight:700;border-bottom:1px solid var(--accent);padding-bottom:2px}
@media(max-width:860px){.memorial-hero-grid,.memorial-reading{grid-template-columns:1fr}.memorial-portrait{max-width:430px}.memorial-aside{position:static}.memorial-title h1{font-size:clamp(3.7rem,14vw,6.5rem)}}

.name-card h3 a{color:inherit;text-decoration:none}
.name-card h3 a:hover{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:4px}

/* =========================
   HOMEPAGE V2 — MEMORIAL EXHIBIT
   ========================= */
html{scroll-behavior:smooth}
.home-v2{background:#f1eee8}
.home-header{background:rgba(9,18,25,.94);backdrop-filter:blur(12px)}
.cinematic-hero{position:relative;min-height:100svh;display:flex;align-items:flex-end;overflow:hidden;background:#0c171f;color:#fff}
.hero-firehouse{position:absolute;inset:0;background-image:url("https://commons.wikimedia.org/wiki/Special:FilePath/Eng%2022%20Ladder%2013%20Bn%2010%20at%20159%20E85%20St%20jeh.jpg");background-size:cover;background-position:center 45%;filter:grayscale(100%) contrast(1.05);transform:scale(1.015)}
.hero-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(8,15,21,.34) 0%,rgba(8,15,21,.64) 50%,rgba(8,15,21,.97) 100%)}
.hero-content{position:relative;z-index:2;width:min(1180px,calc(100% - 48px));margin:0 auto;padding:150px 0 72px}
.hero-rule{width:58px;height:2px;background:#cbb27e;margin-bottom:22px}
.hero-kicker{font-size:.76rem;letter-spacing:.19em;text-transform:uppercase;color:#ded5c5;margin:0 0 20px}
.cinematic-hero h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(4rem,11vw,9.6rem);line-height:.78;letter-spacing:-.055em;font-weight:500;margin:0;max-width:1000px}
.cinematic-hero h1 span{white-space:nowrap}
.hero-dates{font-size:clamp(.9rem,1.6vw,1.1rem);letter-spacing:.12em;text-transform:uppercase;margin:34px 0 0;color:#e9e4dc}
.hero-25{position:absolute;right:0;bottom:72px;text-align:right;display:flex;align-items:flex-end;gap:12px;color:#d8bf86}
.hero-25 span{font-family:Georgia,"Times New Roman",serif;font-size:clamp(4rem,8vw,7rem);line-height:.7}
.hero-25 small{font-size:.75rem;letter-spacing:.22em;padding-bottom:5px}
.hero-address{margin-top:13px;color:#aaa9a5;font-size:.86rem}
.hero-scroll{display:inline-flex;gap:14px;align-items:center;color:#f2eee6;text-decoration:none;margin-top:48px;font-size:.8rem;letter-spacing:.12em;text-transform:uppercase}
.hero-scroll i{font-style:normal;font-size:1.2rem}
.opening-statement{padding:120px 0;background:#f1eee8}
.opening-statement h2,.faces-section h2,.firehouse-story h2,.timeline-tease h2,.joe-home h2,.legacy-home h2,.names-final h2{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.025em}
.opening-statement h2{font-size:clamp(2.4rem,5vw,4.8rem);line-height:1.02;margin:.35em 0 .45em}
.faces-section{background:#101c24;color:#fff;padding:110px 0 120px}
.faces-heading{display:grid;grid-template-columns:1.5fr .7fr;gap:60px;align-items:end;margin-bottom:48px}
.faces-heading h2{font-size:clamp(2.6rem,5vw,5.2rem);line-height:.98;margin:.2em 0 0}
.faces-heading>p{color:#b8b8b3;max-width:360px}
.faces-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#25323a}
.memorial-face{position:relative;display:block;background:#111d25;color:#fff;text-decoration:none;overflow:hidden}
.face-img{aspect-ratio:4/5;background:#24313a;overflow:hidden}
.face-img img{width:100%;height:100%;object-fit:cover;object-position:center top;display:block;filter:grayscale(100%);transition:transform .4s ease,filter .35s ease}
.memorial-face:hover .face-img img{transform:scale(1.025);filter:grayscale(40%)}
.face-copy{padding:20px 20px 22px;border-top:1px solid rgba(255,255,255,.1)}
.face-copy strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.18rem;font-weight:500}
.face-copy span{display:block;margin-top:6px;color:#b8b3aa;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase}
.source-hold{display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,#19262f,#33434e)}
.source-hold span{font-family:Georgia,"Times New Roman",serif;font-size:4rem;color:#c6ae7a;opacity:.9}
.faces-note{font-size:.72rem;color:#989996;margin-top:18px}
.firehouse-story{position:relative;min-height:760px;background:#dad6cf;display:flex;align-items:stretch;overflow:hidden}
.firehouse-photo{position:absolute;inset:0 45% 0 0;background:url("https://commons.wikimedia.org/wiki/Special:FilePath/Eng%2022%20Ladder%2013%20Bn%2010%20at%20159%20E85%20St%20jeh.jpg") center/cover no-repeat;filter:grayscale(100%)}
.firehouse-grid{position:relative;display:grid;grid-template-columns:1fr 1fr;width:100%;align-items:center}
.firehouse-copy{grid-column:2;padding:110px 0 110px 80px}
.firehouse-copy h2{font-size:clamp(2.6rem,5vw,4.8rem);line-height:1;margin:.25em 0}
.text-link{display:inline-block;margin-top:20px;color:inherit;text-decoration:none;border-bottom:1px solid #9d875e;padding-bottom:4px}
.timeline-tease{padding:120px 0}
.timeline-home-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:start}
.timeline-home-grid h2{font-size:clamp(2.8rem,5vw,5rem);line-height:.96;margin:.25em 0}
.route-board{border-left:1px solid rgba(255,255,255,.18);padding-left:50px}
.route-row{display:grid;grid-template-columns:auto 1fr auto;gap:16px;align-items:center;padding:22px 0;border-bottom:1px solid rgba(255,255,255,.12)}
.route-row span,.route-row strong{font-size:.83rem;letter-spacing:.13em}
.route-row i{height:1px;background:#b99f6b}
.time-marker{padding:28px 0 0}
.time-marker small{font-size:2rem;font-family:Georgia,"Times New Roman",serif;color:#d4bb82}
.time-marker p{margin:.25em 0 0;color:#bbb}
.final-time{margin-bottom:35px}
.joe-home{padding:120px 0;background:#f4f1eb;text-align:center}
.center{text-align:center}
.joe-home h2{font-size:clamp(3rem,6vw,5.8rem);margin:.2em 0}
.joe-line{font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.7rem,3vw,2.7rem);font-style:italic;margin:45px auto;max-width:760px;border:0;padding:0;color:#283947}
.legacy-home{padding:100px 0;background:#d9d4cb}
.legacy-grid{display:grid;grid-template-columns:1fr 1fr;gap:100px;align-items:start}
.legacy-home h2{font-size:clamp(2.5rem,4vw,4.4rem);line-height:1;margin:.3em 0}
.legacy-actions{display:grid;gap:1px;background:#b6afa3}
.legacy-actions a{background:#eeeae3;text-decoration:none;color:#182731;padding:30px;display:flex;flex-direction:column;gap:8px}
.legacy-actions strong{font-family:Georgia,"Times New Roman",serif;font-size:1.4rem;font-weight:500}
.legacy-actions span{font-size:.78rem;color:#635f59}
.names-final{padding:120px 0;background:#0d171f;color:#fff;text-align:center}
.final-name-list{display:flex;flex-direction:column;gap:9px;margin:42px auto;font-family:Georgia,"Times New Roman",serif;font-size:clamp(1.35rem,2.4vw,2.1rem)}
.final-rule{width:60px;height:1px;background:#baa06a;margin:48px auto}
.names-final h2{font-size:clamp(2.2rem,4vw,4rem);margin:.3em 0}
.names-final p{color:#a9aaa7}
@media(max-width:800px){
  .hero-content{width:min(100% - 32px,1180px);padding:130px 0 44px}
  .cinematic-hero h1{font-size:clamp(4rem,19vw,6.8rem);line-height:.83}
  .cinematic-hero h1 span{white-space:normal}
  .hero-25{position:static;justify-content:flex-start;text-align:left;margin-top:35px}
  .hero-address{max-width:260px;line-height:1.5}
  .opening-statement{padding:85px 0}
  .faces-heading{grid-template-columns:1fr;gap:15px}
  .faces-grid{grid-template-columns:1fr 1fr}
  .firehouse-story{display:block;min-height:auto}
  .firehouse-photo{position:relative;inset:auto;height:52vw;min-height:300px}
  .firehouse-grid{display:block}
  .firehouse-copy{padding:70px 0}
  .timeline-home-grid,.legacy-grid{grid-template-columns:1fr;gap:50px}
  .route-board{padding-left:25px}
}
@media(max-width:520px){
  .faces-grid{grid-template-columns:1fr}
  .face-img{aspect-ratio:1/1.18}
  .faces-section{padding:80px 0}
  .hero-kicker{max-width:250px;line-height:1.6}
}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .face-img img{transition:none}
}

/* ==========================
   INTERACTIVE NORTH TOWER TIMELINE
   ========================== */
.timeline-page{background:#ece8e0;color:#16242d}
.timeline-intro{padding:120px 0 90px;background:#ece8e0}
.timeline-intro-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:90px;align-items:end}
.timeline-intro h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(4rem,8vw,7.8rem);line-height:.86;letter-spacing:-.055em;font-weight:500;margin:.18em 0 0}
.timeline-intro-copy{padding-bottom:8px}
.timeline-stage{background:#0d171f;color:#fff;min-height:960px}
.timeline-sticky{padding:58px 0 70px}
.timeline-clock-row{display:grid;grid-template-columns:auto 1fr auto;gap:28px;align-items:end}
.clock-label{display:block;font-size:.68rem;letter-spacing:.16em;text-transform:uppercase;color:#939a9e;margin-bottom:5px}
.timeline-clock{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.1rem,4vw,3.8rem);color:#d3b97f;white-space:nowrap}
.timeline-progress{height:1px;background:rgba(255,255,255,.16);margin-bottom:12px}
.timeline-progress-fill{height:100%;width:0;background:#d3b97f;transition:width .45s ease}
.timeline-reset{background:transparent;border:1px solid rgba(255,255,255,.22);color:#d5d3ce;padding:10px 14px;font:inherit;font-size:.72rem;letter-spacing:.08em;text-transform:uppercase;cursor:pointer}
.timeline-controls{display:grid;grid-template-columns:repeat(6,1fr);margin:38px 0 48px;border-top:1px solid rgba(255,255,255,.12);border-bottom:1px solid rgba(255,255,255,.12)}
.time-tab{background:transparent;border:0;border-right:1px solid rgba(255,255,255,.1);color:#93999c;padding:18px 10px;text-align:left;cursor:pointer;min-height:78px}
.time-tab:last-child{border-right:0}
.time-tab span{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;color:#c5c6c4}
.time-tab small{display:block;margin-top:5px;font-size:.64rem;text-transform:uppercase;letter-spacing:.08em}
.time-tab.active{background:rgba(211,185,127,.09);box-shadow:inset 0 -2px 0 #d3b97f}
.time-tab.active span{color:#e4c98f}
.tower-reconstruction{display:grid;grid-template-columns:54px 1fr 190px 1fr;gap:30px;min-height:430px;position:relative;align-items:stretch}
.tower-scale{position:relative;border-right:1px solid rgba(255,255,255,.13);color:#757e83;font-size:.67rem}
.floor{position:absolute;right:10px;transform:translateY(-50%)}
.floor-44{top:10%}.floor-24{top:44%}.floor-lobby{top:91%}
.company-track{display:grid;grid-template-rows:auto 1fr auto;min-width:0}
.track-header{display:flex;justify-content:space-between;gap:20px;align-items:flex-start;margin-bottom:14px}
.track-header>div{display:flex;flex-direction:column;gap:6px}
.track-header strong{font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;font-weight:500}
.track-header p{font-size:.68rem;color:#8f9699;margin:3px 0 0;text-align:right}
.company-chip{font-size:.65rem;letter-spacing:.15em;color:#d3b97f}
.track-line{position:relative;border-left:1px solid rgba(255,255,255,.18);border-right:1px solid rgba(255,255,255,.08);background:repeating-linear-gradient(to bottom,rgba(255,255,255,.035) 0,rgba(255,255,255,.035) 1px,transparent 1px,transparent 9%);min-height:300px}
.company-marker{position:absolute;left:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;transition:top .55s cubic-bezier(.2,.7,.2,1);z-index:3;box-shadow:0 0 0 7px rgba(255,255,255,.025)}
.company-marker span{font-weight:700;font-size:.72rem;letter-spacing:.04em}
.engine-marker{background:#d3b97f;color:#16242d}
.ladder-marker{background:#d7d9da;color:#16242d}
.company-status{min-height:72px;padding:16px 0 0;color:#b7bbbd;font-size:.78rem;line-height:1.5}
.tower-core{position:relative;border:1px solid rgba(255,255,255,.18);background:linear-gradient(180deg,#26343d 0%,#18242c 100%);min-height:392px}
.tower-grid{position:absolute;inset:16px;display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:repeat(6,1fr);gap:5px}
.tower-grid i{background:rgba(255,255,255,.06)}
.tower-name{position:absolute;left:50%;bottom:13px;transform:translateX(-50%);font-size:.55rem;letter-spacing:.13em;color:#778086;white-space:nowrap}
.moment-card{margin-top:42px;border-top:1px solid rgba(255,255,255,.16);padding-top:34px;display:grid;grid-template-columns:90px 1fr;gap:30px;max-width:980px}
.moment-number{font-family:Georgia,"Times New Roman",serif;font-size:3rem;color:#59636a}
.moment-kicker{font-size:.7rem;letter-spacing:.14em;text-transform:uppercase;color:#d3b97f}
.moment-card h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2rem,4vw,3.8rem);font-weight:500;line-height:1.05;letter-spacing:-.025em;margin:.25em 0}
.moment-card p{color:#b9bdbf;max-width:760px}
.timeline-nav-row{display:grid;grid-template-columns:auto 1fr auto;gap:25px;align-items:center;margin-top:36px}
.timeline-arrow{background:transparent;border:0;color:#d7d7d4;padding:8px 0;font:inherit;font-size:.8rem;cursor:pointer}
.timeline-arrow:disabled{opacity:.25;cursor:default}
.timeline-source-note{text-align:center;font-size:.66rem;color:#747d82}
.timeline-stage.final-step .tower-core{opacity:.35;transition:opacity .7s ease}
.timeline-stage.final-step .timeline-clock{color:#d7d7d4}
.routes-explainer{padding:110px 0;background:#ede9e1}
.routes-heading{max-width:780px;margin-bottom:55px}
.routes-heading h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.8rem,5vw,5rem);font-weight:500;line-height:1;margin:.25em 0}
.route-compare{display:grid;grid-template-columns:1fr 1fr;gap:2px;background:#c8c2b7}
.route-compare article{background:#f5f2ec;padding:44px}
.route-label{font-size:.7rem;letter-spacing:.16em;color:#8b7342}
.route-compare h3{font-family:Georgia,"Times New Roman",serif;font-size:2.6rem;font-weight:500;margin:.25em 0}
.route-names{display:flex;flex-direction:column;gap:7px;border-top:1px solid #d1ccc2;margin-top:28px;padding-top:22px;font-size:.82rem}
.route-names strong{font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;color:#76716b;margin-bottom:2px}
.survived-label{margin-top:12px}
.graziano-moment{padding:120px 0;background:#d9d4cb}
.graziano-moment h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.8rem,5vw,5rem);line-height:1.02;font-weight:500;margin:.3em 0}
.collapse-moment{padding:140px 0;background:#090f13;color:#fff;text-align:center}
.collapse-time{font-family:Georgia,"Times New Roman",serif;font-size:clamp(4rem,9vw,8rem);color:#e2dfd8;letter-spacing:-.04em}
.collapse-rule{width:1px;height:70px;background:#8a7550;margin:35px auto}
.collapse-moment h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.5rem,5vw,4.8rem);font-weight:500;margin:.2em 0}
.collapse-moment p{max-width:680px;margin:18px auto;color:#b2b4b4}
.collapse-moment .quiet-note{margin-top:46px;font-size:.74rem;color:#71777a}
.timeline-record{padding:100px 0;background:#f2eee7}
.timeline-record h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.4rem,4vw,4rem);font-weight:500;line-height:1.05;margin:.3em 0}

@media(max-width:900px){
  .timeline-intro-grid{grid-template-columns:1fr;gap:30px}
  .timeline-controls{overflow-x:auto;grid-template-columns:repeat(6,minmax(120px,1fr))}
  .tower-reconstruction{grid-template-columns:38px 1fr 120px 1fr;gap:16px}
  .track-header{display:block}.track-header p{text-align:left}
}
@media(max-width:650px){
  .timeline-intro{padding:90px 0 65px}
  .timeline-clock-row{grid-template-columns:1fr auto}
  .timeline-progress{grid-column:1/-1;grid-row:2}
  .timeline-reset{grid-column:2;grid-row:1}
  .tower-reconstruction{grid-template-columns:28px 1fr 1fr;gap:12px}
  .tower-core{display:none}
  .track-header strong{font-size:1.05rem}
  .track-header p{font-size:.6rem}
  .company-marker{width:48px;height:48px}
  .moment-card{grid-template-columns:1fr;gap:5px}
  .moment-number{font-size:1.2rem}
  .timeline-nav-row{grid-template-columns:1fr 1fr}
  .timeline-source-note{grid-column:1/-1;grid-row:2}
  .route-compare{grid-template-columns:1fr}
  .route-compare article{padding:32px 24px}
}
@media(prefers-reduced-motion:reduce){
  .company-marker,.timeline-progress-fill,.timeline-stage.final-step .tower-core{transition:none}
}

/* ==========================
   WALK WITH THE YORKVILLE 9
   ========================== */
.walk-page{background:#eeebe4;color:#172630}
.walk-intro{padding:120px 0 90px}
.walk-intro-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:90px;align-items:end}
.walk-intro h1{font-family:Georgia,"Times New Roman",serif;font-size:clamp(4rem,8vw,7.8rem);line-height:.87;letter-spacing:-.05em;font-weight:500;margin:.2em 0 0}
.walk-experience{background:#0d171f;color:#fff;padding:80px 0 95px}
.walk-layout{display:grid;grid-template-columns:330px 1fr;gap:45px;align-items:start}
.walk-sidebar{position:sticky;top:86px}
.walk-sidebar-head h2{font-family:Georgia,"Times New Roman",serif;font-size:2.3rem;font-weight:500;margin:.25em 0 .65em}
.walk-people{border-top:1px solid rgba(255,255,255,.13)}
.walk-person{width:100%;display:grid;grid-template-columns:38px 1fr;gap:12px;text-align:left;border:0;border-bottom:1px solid rgba(255,255,255,.1);background:transparent;color:#d6d6d2;padding:14px 8px;cursor:pointer}
.walk-person:hover,.walk-person.active{background:rgba(205,179,122,.09)}
.walk-person.active{box-shadow:inset 2px 0 0 #cdb37a}
.walk-num{font-family:Georgia,"Times New Roman",serif;color:#797f83}
.walk-person strong{display:block;font-family:Georgia,"Times New Roman",serif;font-size:1rem;font-weight:500}
.walk-person small,.walk-person em{display:block;font-size:.62rem;color:#8f979a;margin-top:3px;font-style:normal}
.walk-person em{color:#b1aaa0}
.walk-map{position:relative;min-height:650px;background:#d8d2c7;overflow:hidden;border:1px solid rgba(255,255,255,.08);color:#22313a}
.map-note{position:absolute;right:14px;top:12px;font-size:.54rem;letter-spacing:.12em;color:#706e69;z-index:7}
.avenue,.street{position:absolute;background:#eeeae2}
.avenue{top:0;bottom:0;width:9%;transform:translateX(-50%);border-left:1px solid #c2bbb0;border-right:1px solid #c2bbb0}
.avenue span{position:absolute;top:22px;left:50%;transform:translateX(-50%) rotate(-90deg);font-size:.52rem;letter-spacing:.1em;white-space:nowrap;color:#858079}
.fifth{left:13%}.madison{left:31%}.park{left:49%}.lex{left:67%}.third{left:85%}
.street{left:0;right:0;height:12%;transform:translateY(-50%);border-top:1px solid #c2bbb0;border-bottom:1px solid #c2bbb0}
.street span{position:absolute;right:14px;top:50%;transform:translateY(-50%);font-size:.55rem;letter-spacing:.1em;color:#858079}
.st83{top:70%}.st84{top:48%}.st85{top:26%}
.park-block{position:absolute;left:0;top:0;width:8.5%;height:100%;background:#bfc2b2;border-right:1px solid #9ea394}
.park-block span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) rotate(-90deg);font-size:.6rem;letter-spacing:.18em;color:#687160;white-space:nowrap}
.walk-pin{position:absolute;transform:translate(-50%,-50%);z-index:9;width:40px;height:40px;border-radius:50%;border:2px solid #f4efe6;background:#263943;color:#fff;display:grid;place-items:center;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.2);transition:transform .2s ease,background .2s ease}
.walk-pin span{font-family:Georgia,"Times New Roman",serif;font-size:.95rem}
.walk-pin:hover,.walk-pin.active{background:#b3965e;transform:translate(-50%,-50%) scale(1.16)}
.firehouse-pin{position:absolute;left:73%;top:26%;transform:translate(-50%,-50%);z-index:8;border:0;background:#7c1f22;color:#fff;padding:8px 10px;display:grid;grid-template-columns:34px 1fr;grid-template-rows:auto auto;text-align:left;gap:0 8px;box-shadow:0 4px 14px rgba(0,0,0,.22)}
.firehouse-icon{grid-row:1/3;display:grid;place-items:center;font-size:.62rem;line-height:1.1;border:1px solid rgba(255,255,255,.5);padding:4px}
.firehouse-pin strong{font-size:.58rem;letter-spacing:.08em}.firehouse-pin small{font-size:.55rem;opacity:.75}
.walk-detail{display:grid;grid-template-columns:90px 1fr;gap:30px;margin-top:30px;background:#17242c;padding:34px;border-top:1px solid rgba(255,255,255,.16)}
.walk-detail-num{font-family:Georgia,"Times New Roman",serif;font-size:3.1rem;color:#667077}
.walk-detail h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.2rem,4vw,3.7rem);font-weight:500;line-height:1;margin:.2em 0}
.walk-rank{font-size:.75rem;letter-spacing:.11em;text-transform:uppercase;color:#c9ae75}
.walk-address{font-family:Georgia,"Times New Roman",serif;font-size:1.25rem;color:#e1ddd6}
.walk-detail-copy>p:not(.walk-rank):not(.walk-address){color:#aeb3b5}
.walk-nav{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;margin-top:18px}
.walk-nav button{border:0;background:transparent;color:#ddd;padding:8px 0;font:inherit;font-size:.75rem;cursor:pointer}
.walk-nav button:last-child{text-align:right}.walk-nav button:disabled{opacity:.25}
.walk-nav span{font-size:.65rem;color:#747d82}
.walk-route-section{padding:110px 0;background:#ede9e1}
.walk-route-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px}
.walk-route-copy{position:sticky;top:100px;align-self:start}
.walk-route-copy h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.8rem,5vw,4.8rem);line-height:1;font-weight:500;margin:.25em 0}
.walk-route-list{margin:0;padding:0;list-style:none;border-top:1px solid #c9c3b8}
.walk-route-list li{border-bottom:1px solid #c9c3b8}
.walk-route-list button{width:100%;display:grid;grid-template-columns:52px 1fr;text-align:left;border:0;background:transparent;color:#172630;padding:20px 8px;cursor:pointer}
.walk-route-list button:hover,.walk-route-list button.active{background:#f7f4ee}
.walk-route-list button>span{grid-row:1/3;font-family:Georgia,"Times New Roman",serif;font-size:1.35rem;color:#9b8350}
.walk-route-list strong{font-family:Georgia,"Times New Roman",serif;font-size:1.15rem;font-weight:500}
.walk-route-list small{font-size:.7rem;color:#77736d;margin-top:4px}
.walk-firehouse{padding:120px 0;background:#d4cec4;text-align:center}
.walk-firehouse h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3rem,6vw,5.7rem);font-weight:500;margin:.25em 0}
.walk-record{padding:100px 0;background:#f3f0e9}
.walk-record h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.4rem,4vw,4rem);font-weight:500;line-height:1.05;margin:.3em 0}

@media(max-width:900px){
  .walk-intro-grid,.walk-route-grid{grid-template-columns:1fr;gap:35px}
  .walk-layout{grid-template-columns:1fr}
  .walk-sidebar,.walk-route-copy{position:static}
  .walk-people{display:grid;grid-template-columns:1fr 1fr}
  .walk-person{min-height:92px}
}
@media(max-width:650px){
  .walk-intro{padding:90px 0 65px}
  .walk-experience{padding:55px 0 70px}
  .walk-people{grid-template-columns:1fr}
  .walk-map{min-height:520px}
  .avenue span,.street span,.map-note{font-size:.45rem}
  .walk-pin{width:34px;height:34px}
  .firehouse-pin{left:72%;padding:5px 6px;grid-template-columns:26px 1fr}
  .walk-detail{grid-template-columns:1fr;gap:5px;padding:26px 20px}
  .walk-detail-num{font-size:1.25rem}
}
@media(prefers-reduced-motion:reduce){
  .walk-pin{transition:none}
}

/* ==========================
   FINAL CHAPTERS / LAUNCH POLISH
   ========================== */
.nav a.active,.nav a[aria-current="page"]{color:#d6bc82}
.joe-hero{padding:120px 0 95px;background:#e9e5de}
.joe-hero-grid{display:grid;grid-template-columns:1.15fr .65fr;gap:90px;align-items:center}
.joe-hero h1,.source-hero h1,.years-hero h1{font-family:Georgia,"Times New Roman",serif;font-weight:500;letter-spacing:-.045em;line-height:.9}
.joe-hero h1{font-size:clamp(4rem,8vw,7.7rem);margin:.2em 0 .3em}
.joe-photo-placeholder{aspect-ratio:4/5;background:linear-gradient(145deg,#25343d,#0f1a21);color:#d5c29a;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:30px;border:1px solid rgba(0,0,0,.12)}
.joe-photo-placeholder span{font-family:Georgia,"Times New Roman",serif;font-size:2rem;line-height:1.05}.joe-photo-placeholder small{margin-top:25px;color:#989b9c;font-size:.65rem;max-width:180px}
.joe-emphasis{font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;line-height:1.5;color:#e4dfd6}
.joe-five{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:#d4cec3;margin:28px 0}.joe-five a{background:#f4f0e9;padding:15px 17px;color:#172630;text-decoration:none;font-family:Georgia,"Times New Roman",serif}.joe-five a:hover{text-decoration:underline}
.joe-quiet{padding:130px 0;background:#0c151b;color:#fff;text-align:center}.joe-quiet blockquote{border:0;padding:0;margin:30px auto;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.4rem,5vw,5rem);line-height:1.05;font-style:italic;color:#d9c08a}.joe-quiet p{color:#aeb2b3;max-width:650px;margin:auto}
.source-hero{padding:120px 0 100px;background:#0d171f;color:#fff}.source-hero h1{font-size:clamp(4.1rem,8vw,7.7rem);margin:.2em 0}.source-hero .lead{max-width:850px;color:#c2c4c4}
.source-principles{padding:70px 0;background:#d7d1c7}.source-principles-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;background:#b8b0a3}.source-principles article{background:#ebe7df;padding:35px}.source-principles span{font-family:Georgia,"Times New Roman",serif;font-size:2rem;color:#a58b54}.source-principles h2{font-family:Georgia,"Times New Roman",serif;font-size:1.6rem;font-weight:500}.source-chapter{display:grid;grid-template-columns:300px 1fr;gap:70px}.source-chapter-head h2{font-family:Georgia,"Times New Roman",serif;font-size:3rem;font-weight:500;line-height:1;margin:.2em 0}.source-records{display:grid;gap:2px;background:#ccc5ba}.source-records.multi{grid-template-columns:repeat(2,1fr)}.source-record{background:#f6f3ed;padding:32px}.source-type{font-size:.62rem;letter-spacing:.13em;text-transform:uppercase;color:#90743b}.source-record h3{font-family:Georgia,"Times New Roman",serif;font-size:1.45rem;font-weight:500;margin:.5em 0}.source-record a{display:inline-block;margin-top:13px;color:#5d4a27;text-underline-offset:4px}.source-caution{font-size:.78rem;color:#77716a;border-left:2px solid #b99c61;padding-left:13px}.primary-record{border-top:3px solid #ad9159}.source-standards{padding:110px 0;background:#111c23;color:#fff}.source-standards h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.8rem,5vw,5rem);font-weight:500}.standards-list{border-top:1px solid rgba(255,255,255,.13)}.standards-list p{padding:19px 0;border-bottom:1px solid rgba(255,255,255,.1);color:#bdc0c1}.standards-list strong{color:#e1c88f}
.years-hero{padding:130px 0 110px;background:#0d171f;color:#fff;min-height:78vh;display:flex;align-items:flex-end}.years-big{font-family:Georgia,"Times New Roman",serif;font-size:clamp(8rem,23vw,20rem);line-height:.62;color:#d0b679;letter-spacing:-.08em}.years-hero h1{font-size:clamp(4rem,8vw,7rem);margin:.35em 0}.years-hero .lead{max-width:760px;color:#bcbfc0}.years-essay{padding:120px 0;background:#efebe4}.years-essay p{font-size:1.08rem;line-height:1.82}.years-rule{width:1px;height:80px;background:#a48851;margin:60px auto}.years-essay blockquote{border:0;padding:0;text-align:center;font-family:Georgia,"Times New Roman",serif;font-size:clamp(2.1rem,4vw,3.8rem);line-height:1.2;color:#23333d}.years-nine{padding:100px 0;background:#d8d2c7}.years-names{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#bbb3a7;margin-top:30px}.years-names a{background:#f1ede6;color:#172630;text-decoration:none;padding:28px;font-family:Georgia,"Times New Roman",serif;font-size:1.3rem}.years-names a:hover{background:#f8f5ef}.years-close{padding:130px 0;background:#0a1217;color:#fff;text-align:center}.years-close h2{font-family:Georgia,"Times New Roman",serif;font-size:clamp(3.2rem,7vw,6.5rem);font-weight:500;line-height:.95;margin:.3em 0}.years-close p{color:#9ea4a7}
:focus-visible{outline:2px solid #d1b776;outline-offset:3px}
img{max-width:100%}
@media(max-width:900px){.joe-hero-grid,.source-chapter{grid-template-columns:1fr;gap:35px}.joe-portrait{max-width:420px}.source-principles-grid{grid-template-columns:1fr}.source-records.multi{grid-template-columns:1fr}.years-names{grid-template-columns:1fr 1fr}}
@media(max-width:580px){.joe-hero{padding:90px 0 65px}.joe-five{grid-template-columns:1fr}.years-names{grid-template-columns:1fr}.source-record{padding:24px}.years-hero{min-height:70vh}.years-big{font-size:42vw}}
