@import url('https://fonts.googleapis.com/css2?family=Bebas+Neue&family=Manrope:wght@400;500;600;700&display=swap');

:root{
  --ink:#11120f;
  --paper:#f4f1e8;
  --paper-2:#ebe7db;
  --green:#5f9b43;
  --green-dark:#3d6c31;
  --blue:#35577f;
  --muted:#6f7168;
  --line:rgba(17,18,15,.18);
  --display:'Bebas Neue', sans-serif;
  --body:'Manrope', sans-serif;
  --ease:cubic-bezier(.2,.75,.15,1);
  --radius:2px;
  --text-scale:1;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;background:var(--paper)}
body{
  margin:0;background:var(--paper);color:var(--ink);font-family:var(--body);
  font-size:calc(16px * var(--text-scale));line-height:1.55;overflow-x:hidden;
}
body.dark{--paper:#10120f;--paper-2:#171a15;--ink:#f3f0e7;--muted:#b8b9b0;--line:rgba(244,241,232,.18)}
body.high-contrast{--ink:#000;--paper:#fff;--paper-2:#f4f4f4;--green:#1d6e00;--blue:#004f8e;--line:rgba(0,0,0,.35)}
body.links-underlined a:not(.button):not(.menu-row){text-decoration:underline;text-underline-offset:.2em}
body.reduce-motion *, body.reduce-motion *::before, body.reduce-motion *::after{animation:none!important;transition-duration:.001ms!important;scroll-behavior:auto!important}
body.menu-open, body.panel-open{overflow:hidden}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;cursor:pointer}
img{display:block;max-width:100%}
::selection{background:var(--green);color:#fff}

.skip-link{position:fixed;left:16px;top:16px;z-index:10000;background:var(--ink);color:var(--paper);padding:12px 16px;transform:translateY(-200%);transition:transform .2s}.skip-link:focus{transform:translateY(0)}

.shell{width:min(1520px,100%);margin:0 auto;padding-left:clamp(18px,4vw,64px);padding-right:clamp(18px,4vw,64px)}
.section{position:relative;padding:clamp(76px,10vw,150px) 0;border-top:1px solid var(--line)}
.section-tight{padding:clamp(56px,7vw,100px) 0}
.section-dark{background:var(--ink);color:var(--paper)}
.section-green{background:var(--green);color:#081006}
.eyebrow{display:flex;align-items:center;gap:10px;text-transform:uppercase;letter-spacing:.14em;font-size:.72rem;font-weight:700}
.eyebrow::before{content:'';width:8px;height:8px;background:var(--green);display:inline-block;transform:rotate(45deg)}
.section-dark .eyebrow::before{background:#9bd16b}
.display{font-family:var(--display);font-weight:400;text-transform:uppercase;line-height:.88;letter-spacing:-.012em;margin:0}
.display-xl{font-size:clamp(4.6rem,11.4vw,11rem)}
.display-lg{font-size:clamp(3.5rem,7vw,7.6rem)}
.display-md{font-size:clamp(2.6rem,5vw,5.3rem)}
.lead{font-size:clamp(1.1rem,1.55vw,1.5rem);line-height:1.45;max-width:62ch}
.body-copy{max-width:70ch;color:var(--muted)}
.kicker{font-family:var(--display);font-size:clamp(1.35rem,2vw,2rem);text-transform:uppercase;letter-spacing:.02em}
.rule{height:1px;background:var(--line);width:100%}

/* HEADER */
.site-header{position:fixed;z-index:900;left:0;right:0;top:0;padding:18px 0;transition:background .35s,transform .35s,padding .35s;color:#fff;mix-blend-mode:difference}
.site-header.scrolled{padding:12px 0;background:rgba(17,18,15,.72);backdrop-filter:blur(16px);mix-blend-mode:normal}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:20px}
.brand{display:flex;align-items:center;gap:12px;min-width:0}
.brand img{width:76px;height:auto;object-fit:contain;filter:drop-shadow(0 6px 18px rgba(0,0,0,.18))}
.brand-text{font-weight:700;font-size:.78rem;line-height:1.2;letter-spacing:.02em;max-width:160px}
.header-actions{display:flex;gap:8px;align-items:center}
.icon-button,.menu-button{height:46px;border:1px solid rgba(255,255,255,.48);color:#fff;display:inline-flex;align-items:center;justify-content:center;transition:background .25s,color .25s,border-color .25s}
.icon-button{width:46px}
.menu-button{padding:0 18px;gap:12px;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem;font-weight:700}
.menu-button:hover,.icon-button:hover{background:#fff;color:#111;border-color:#fff}
.icon{width:18px;height:18px;display:block}

/* FIRST LOAD */
.loader{position:fixed;inset:0;background:#0b0e0c;z-index:3000;color:#fff;display:grid;place-items:center;overflow:hidden;isolation:isolate}
.loader[hidden]{display:none}
.loader::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 50% 48%,rgba(255,255,255,.06),transparent 34%),linear-gradient(115deg,transparent 0 44%,rgba(255,255,255,.025) 44% 45%,transparent 45% 100%)}
.loader-skyline{position:absolute;left:8vw;right:8vw;bottom:12vh;height:34vh;opacity:.26;background:linear-gradient(to top,rgba(255,255,255,.08),transparent 70%);clip-path:polygon(0 100%,0 63%,5% 63%,5% 50%,12% 50%,12% 68%,18% 68%,18% 42%,27% 42%,27% 60%,35% 60%,35% 30%,42% 30%,42% 55%,50% 55%,50% 38%,58% 38%,58% 66%,66% 66%,66% 46%,75% 46%,75% 58%,83% 58%,83% 35%,91% 35%,91% 65%,100% 65%,100% 100%);transform:translateY(105%);animation:skylineRise .7s .15s var(--ease) forwards}
.loader-stage{position:relative;z-index:4;display:grid;place-items:center;gap:24px;transform:scale(.88);opacity:0;animation:loaderStageIn .55s .12s var(--ease) forwards}
.loader-logo{width:min(330px,62vw);height:auto;filter:drop-shadow(0 20px 50px rgba(0,0,0,.42));clip-path:inset(0 100% 0 0);animation:brandReveal .72s .28s var(--ease) forwards}
.loader-caption{display:flex;gap:22px;align-items:center;text-transform:uppercase;letter-spacing:.17em;font-size:.64rem;color:rgba(255,255,255,.7);opacity:0;transform:translateY(8px);animation:captionIn .35s .76s var(--ease) forwards}.loader-caption span+span::before{content:'';display:inline-block;width:24px;height:1px;background:rgba(255,255,255,.35);vertical-align:middle;margin-right:22px}
.loader-streak{position:absolute;left:-12vw;width:124vw;height:11vh;transform:translateX(-110%) skewX(-12deg);z-index:2}.loader-streak-green{top:39%;background:var(--green);animation:loaderStreak .8s .82s var(--ease) forwards}.loader-streak-blue{top:50%;background:var(--blue);animation:loaderStreak .8s .91s var(--ease) forwards;opacity:.94}
.loader.out{animation:loaderSceneOut .72s 1.42s var(--ease) forwards}
@keyframes skylineRise{to{transform:none}}
@keyframes loaderStageIn{to{transform:none;opacity:1}}
@keyframes brandReveal{to{clip-path:inset(0 0 0 0)}}
@keyframes captionIn{to{opacity:1;transform:none}}
@keyframes loaderStreak{0%{transform:translateX(-110%) skewX(-12deg)}48%{transform:translateX(0) skewX(-12deg)}100%{transform:translateX(112%) skewX(-12deg)}}
@keyframes loaderSceneOut{to{clip-path:polygon(0 0,100% 0,100% 0,0 0);visibility:hidden}}

/* PAGE TRANSITION */
.page-transition{position:fixed;inset:0;z-index:2600;pointer-events:none;visibility:hidden;overflow:hidden;background:transparent}
.transition-slab{position:absolute;inset:-4% -10%;transform:translateX(-115%) skewX(-8deg);will-change:transform}
.transition-green{background:var(--green);z-index:1}.transition-blue{background:var(--blue);z-index:2}.transition-ink{background:#0d100e;z-index:3}
.transition-brand{position:absolute;inset:0;z-index:4;display:grid;place-items:center;align-content:center;gap:15px;color:#fff;opacity:0}.transition-brand img{width:min(220px,44vw);height:auto}.transition-brand span{text-transform:uppercase;letter-spacing:.17em;font-size:.62rem}
.page-transition.leaving,.page-transition.arriving{visibility:visible}
.page-transition.leaving .transition-green{animation:slabIn .54s var(--ease) forwards}.page-transition.leaving .transition-blue{animation:slabIn .54s .08s var(--ease) forwards}.page-transition.leaving .transition-ink{animation:slabIn .54s .16s var(--ease) forwards}.page-transition.leaving .transition-brand{animation:brandTransitionIn .28s .44s forwards}
.page-transition.arriving .transition-slab{transform:translateX(0) skewX(-8deg)}.page-transition.arriving .transition-brand{opacity:1;animation:brandTransitionOut .25s .1s forwards}.page-transition.arriving .transition-ink{animation:slabOut .58s .1s var(--ease) forwards}.page-transition.arriving .transition-blue{animation:slabOut .58s .17s var(--ease) forwards}.page-transition.arriving .transition-green{animation:slabOut .58s .24s var(--ease) forwards}
@keyframes slabIn{to{transform:translateX(0) skewX(-8deg)}}
@keyframes slabOut{to{transform:translateX(115%) skewX(-8deg)}}
@keyframes brandTransitionIn{to{opacity:1}}
@keyframes brandTransitionOut{to{opacity:0}}

/* MENU */
.menu-overlay{position:fixed;inset:0;background:#10110f;color:#fff;z-index:2000;visibility:hidden;opacity:0;transition:opacity .35s,visibility .35s;overflow:auto}
.menu-overlay.open{visibility:visible;opacity:1}
.menu-top{display:flex;align-items:center;justify-content:space-between;padding:22px clamp(18px,4vw,64px);border-bottom:1px solid rgba(255,255,255,.14);position:sticky;top:0;background:#10110f;z-index:4}
.menu-logo{display:flex;align-items:center;gap:14px;font-size:.72rem;text-transform:uppercase;letter-spacing:.1em}.menu-logo img{width:82px;height:auto;object-fit:contain}
.menu-close{width:46px;height:46px;border:1px solid rgba(255,255,255,.35);display:grid;place-items:center;color:#fff}
.menu-body{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(300px,.7fr);min-height:calc(100vh - 92px)}
.menu-links{padding:clamp(28px,5vw,72px) clamp(18px,4vw,64px)}
.menu-row{display:grid;grid-template-columns:54px 1fr 40px;align-items:center;border-bottom:1px solid rgba(255,255,255,.14);padding:11px 0;transition:padding .3s var(--ease),color .25s}
.menu-row:first-child{border-top:1px solid rgba(255,255,255,.14)}
.menu-row .num{font-size:.7rem;opacity:.55}.menu-row .label{font-family:var(--display);font-size:clamp(2.4rem,5.2vw,5.6rem);line-height:.95;text-transform:uppercase}.menu-row .arr{justify-self:end;transition:transform .25s}
.menu-row:hover{padding-left:12px;color:#b8df90}.menu-row:hover .arr{transform:translate(4px,-4px)}
.menu-preview{position:relative;overflow:hidden;min-height:520px;background:#1a1c19}
.menu-preview img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.78;transform:scale(1.04);transition:opacity .25s,transform .65s var(--ease)}
.menu-preview::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,transparent,rgba(0,0,0,.58))}
.menu-preview-copy{position:absolute;z-index:2;left:36px;right:36px;bottom:36px}.menu-preview-copy p{max-width:36ch;font-size:.9rem;color:rgba(255,255,255,.76)}
.menu-contact{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:32px;font-size:.8rem;color:rgba(255,255,255,.66)}

/* ACCESSIBILITY */
.access-panel{position:fixed;right:22px;top:auto;bottom:92px;z-index:2100;width:min(360px,calc(100vw - 36px));background:var(--paper);color:var(--ink);border:1px solid var(--line);box-shadow:0 24px 70px rgba(0,0,0,.22);padding:22px;transform:translateY(-10px);opacity:0;visibility:hidden;transition:.25s var(--ease)}
.access-panel.open{transform:none;opacity:1;visibility:visible}
.access-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:18px}.access-head strong{text-transform:uppercase;letter-spacing:.08em;font-size:.78rem}.access-close{width:34px;height:34px;border:1px solid var(--line);display:grid;place-items:center}
.access-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.access-option{border:1px solid var(--line);padding:12px;text-align:left;font-size:.78rem;min-height:48px;background:var(--paper-2)}.access-option[aria-pressed='true']{background:var(--ink);color:var(--paper)}

/* HERO */
.hero{position:relative;min-height:100svh;background:#141714;color:#fff;overflow:hidden;display:flex;align-items:flex-end}
.hero-media{position:absolute;inset:0}
.hero-media img{width:100%;height:100%;object-fit:cover;object-position:center;filter:saturate(.88) contrast(1.04);transform:scale(1.04);animation:heroSettle 1.6s .3s var(--ease) both}
.hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12) 18%,rgba(0,0,0,.2) 48%,rgba(0,0,0,.74) 100%)}
.hero-grid-lines{position:absolute;inset:0;opacity:.25;background-image:linear-gradient(rgba(255,255,255,.2) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.15) 1px,transparent 1px);background-size:11vw 11vw;mix-blend-mode:overlay;mask-image:linear-gradient(to bottom,transparent 0,#000 45%,#000 100%)}
.hero-content{position:relative;z-index:2;width:100%;padding:150px 0 42px}
.hero-meta{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;margin-bottom:18px;font-size:.72rem;text-transform:uppercase;letter-spacing:.14em}.hero-meta-right{text-align:right;max-width:28ch;color:rgba(255,255,255,.7)}
.hero-title{display:grid;grid-template-columns:auto 1fr auto;align-items:end;gap:2vw;border-top:1px solid rgba(255,255,255,.35);padding-top:18px}
.hero-title .word{font-family:var(--display);font-size:clamp(5.6rem,15.2vw,14.5rem);line-height:.73;text-transform:uppercase;white-space:nowrap;letter-spacing:-.02em}
.hero-title .center-mark{height:8px;background:var(--green);align-self:center;min-width:30px}
.hero-bottom{display:flex;justify-content:space-between;gap:24px;align-items:flex-end;margin-top:28px}.hero-bottom p{max-width:52ch;margin:0;color:rgba(255,255,255,.8)}
.hero-cta{display:inline-flex;gap:12px;align-items:center;border:1px solid rgba(255,255,255,.55);padding:14px 18px;text-transform:uppercase;letter-spacing:.11em;font-size:.7rem;font-weight:700}.hero-cta:hover{background:#fff;color:#111}
@keyframes heroSettle{from{transform:scale(1.12)}to{transform:scale(1.04)}}

.inner-hero{min-height:72svh;background:#10120f;color:#fff;position:relative;display:flex;align-items:flex-end;overflow:hidden;padding-top:130px}
.inner-hero-media{position:absolute;inset:0}.inner-hero-media img{width:100%;height:100%;object-fit:cover;opacity:.52}.inner-hero-media::after{content:'';position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,12,8,.15),rgba(9,12,8,.85))}
.inner-hero-content{position:relative;z-index:2;width:100%;padding:60px 0 42px}.inner-hero .display{max-width:14ch}.inner-hero p{max-width:58ch;color:rgba(255,255,255,.77)}

/* INTRO */
.intro-grid{display:grid;grid-template-columns:.42fr 1.3fr .72fr;gap:clamp(24px,5vw,78px);align-items:start}.intro-grid .display{max-width:12ch}.intro-aside{padding-top:8px;color:var(--muted);font-size:.9rem}.intro-aside strong{display:block;color:var(--ink);margin-bottom:8px}
.stat-strip{display:grid;grid-template-columns:repeat(3,1fr);margin-top:70px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.stat{padding:22px 16px;border-right:1px solid var(--line)}.stat:first-child{padding-left:0}.stat:last-child{border-right:0}.stat .big{font-family:var(--display);font-size:clamp(2.8rem,5vw,5.5rem);line-height:1}.stat small{font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}

/* FEATURE MEDIA */
.editorial-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(34px,6vw,110px);align-items:center}.editorial-copy{max-width:650px}.editorial-copy .display{margin:14px 0 24px}.editorial-media{position:relative;aspect-ratio:4/5;overflow:hidden;background:#d7d5ca}.editorial-media.landscape{aspect-ratio:16/10}.editorial-media img{width:100%;height:110%;object-fit:cover;transform:translateY(-5%)}.image-label{position:absolute;left:14px;bottom:14px;background:var(--paper);color:var(--ink);font-size:.64rem;text-transform:uppercase;letter-spacing:.12em;padding:8px 10px}

/* SERVICE ROWS */
.service-index{margin-top:48px;border-top:1px solid var(--line)}.service-row{position:relative;display:grid;grid-template-columns:62px 1.1fr 1fr 44px;gap:20px;align-items:center;padding:20px 0;border-bottom:1px solid var(--line);min-height:96px;transition:padding .3s var(--ease)}.service-row:hover{padding-left:12px}.service-row .num{font-size:.72rem;color:var(--muted)}.service-row h3{font-family:var(--display);font-size:clamp(2.2rem,4vw,4.4rem);line-height:.9;margin:0;text-transform:uppercase}.service-row p{margin:0;color:var(--muted);font-size:.9rem;max-width:52ch}.service-row .arr{justify-self:end}.service-preview{position:fixed;z-index:200;width:280px;aspect-ratio:4/3;pointer-events:none;opacity:0;transform:scale(.94);transition:opacity .2s,transform .3s var(--ease);overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.24)}.service-preview.visible{opacity:1;transform:scale(1)}.service-preview img{width:100%;height:100%;object-fit:cover}

/* EVENTS */
.events-head{display:flex;justify-content:space-between;gap:30px;align-items:flex-end;margin-bottom:34px}.events-head .display{max-width:9ch}.event-list{border-top:1px solid var(--line)}.event-row{display:grid;grid-template-columns:140px 1.2fr .7fr 48px;gap:22px;align-items:center;padding:24px 0;border-bottom:1px solid var(--line);transition:padding .3s var(--ease),background .3s}.event-row:hover{padding-left:10px}.event-date{font-family:var(--display);font-size:2rem;text-transform:uppercase}.event-date span{display:block;font-family:var(--body);font-size:.65rem;letter-spacing:.1em;color:var(--muted)}.event-title{font-family:var(--display);font-size:clamp(2rem,3.6vw,4rem);line-height:.92;text-transform:uppercase}.event-meta{font-size:.76rem;color:var(--muted)}.event-tag{display:inline-block;border:1px solid var(--line);padding:6px 8px;margin-top:6px;text-transform:uppercase;letter-spacing:.1em;font-size:.6rem}.event-empty{border:1px solid var(--line);padding:clamp(30px,5vw,70px);margin-bottom:40px;background:var(--paper-2)}.event-empty .display{margin:8px 0 14px}.filters{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:28px}.filter-btn{border:1px solid var(--line);padding:10px 14px;text-transform:uppercase;letter-spacing:.1em;font-size:.66rem}.filter-btn.active{background:var(--ink);color:var(--paper)}

/* RESOURCE INDEX */
.resource-row{display:grid;grid-template-columns:52px 1fr 1.4fr 42px;gap:24px;align-items:start;border-bottom:1px solid var(--line);padding:24px 0}.resource-row:first-child{border-top:1px solid var(--line)}.resource-row h3{margin:0;font-family:var(--display);font-size:clamp(1.8rem,3vw,3.2rem);line-height:.95;text-transform:uppercase}.resource-row p{margin:0;color:var(--muted);max-width:60ch;font-size:.9rem}.resource-status{display:inline-block;margin-top:9px;padding:5px 8px;border:1px solid var(--line);font-size:.58rem;letter-spacing:.1em;text-transform:uppercase}.resource-status.alert{background:#fff0c9;color:#3f2d00;border-color:#d9b866}
.search-bar{display:flex;border-bottom:1px solid var(--ink);margin:20px 0 28px;align-items:center}.search-bar input{flex:1;background:transparent;border:0;outline:0;padding:16px 4px;font-size:clamp(1rem,2vw,1.35rem)}

/* PHOTO FEED */
.photo-feed{background:#0e100e;color:#fff;overflow:hidden}.photo-track{display:flex;gap:16px;width:max-content;animation:feedMove 36s linear infinite;padding:26px 0}.photo-card{width:clamp(260px,30vw,520px);aspect-ratio:4/3;overflow:hidden;position:relative}.photo-card:nth-child(2n){aspect-ratio:3/4;width:clamp(220px,23vw,390px)}.photo-card img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}.photo-card:hover img{transform:scale(1.04)}.photo-card span{position:absolute;bottom:12px;left:12px;background:#10110f;color:#fff;padding:6px 8px;text-transform:uppercase;letter-spacing:.1em;font-size:.58rem}
@keyframes feedMove{to{transform:translateX(-35%)}}

/* MAP */
.map-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(30px,6vw,100px);align-items:start}.map-art{min-height:620px;background:#153a31;position:relative;overflow:hidden;color:#fff}.map-art::before,.map-art::after{content:'';position:absolute;background:rgba(255,255,255,.12)}.map-art::before{width:160%;height:6px;top:36%;left:-20%;transform:rotate(-18deg)}.map-art::after{width:6px;height:160%;top:-30%;left:58%;transform:rotate(7deg)}.map-road{position:absolute;height:2px;background:rgba(255,255,255,.28);transform-origin:left}.map-road.r1{width:78%;left:10%;top:18%;transform:rotate(32deg)}.map-road.r2{width:70%;left:18%;top:68%;transform:rotate(-28deg)}.map-road.r3{width:60%;left:14%;top:52%;transform:rotate(12deg)}.map-route{position:absolute;width:9px;height:66%;background:var(--green);left:54%;top:18%;transform:rotate(7deg);box-shadow:0 0 0 4px rgba(106,166,65,.14)}.map-route.horizontal{height:9px;width:68%;left:16%;top:51%;transform:rotate(10deg)}.map-label{position:absolute;font-size:.66rem;letter-spacing:.12em;text-transform:uppercase;background:#10110f;padding:7px 9px}.map-label.a{left:58%;top:16%}.map-label.b{left:60%;top:51%}.map-label.c{left:14%;bottom:16%}.map-note{position:absolute;left:22px;right:22px;bottom:22px;border-top:1px solid rgba(255,255,255,.25);padding-top:12px;font-size:.72rem;color:rgba(255,255,255,.65)}

/* TEAM */
.team-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.person{background:var(--paper);display:grid;grid-template-columns:200px 1fr;min-height:250px}.person img{width:100%;height:100%;object-fit:cover}.person-copy{padding:24px}.person h3{font-family:var(--display);font-size:2.6rem;line-height:.9;margin:0 0 8px;text-transform:uppercase}.person small{color:var(--green-dark);font-weight:700;text-transform:uppercase;letter-spacing:.08em}.person p{font-size:.85rem;color:var(--muted)}

/* BOARD */
.board-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}.board-card{background:var(--paper);padding:22px;min-height:130px}.board-card small{display:block;color:var(--muted);font-size:.62rem;text-transform:uppercase;letter-spacing:.1em}.board-card strong{display:block;margin-top:8px;font-family:var(--display);font-size:1.8rem;line-height:.95;text-transform:uppercase}

/* CTA */
.big-cta{position:relative;overflow:hidden;background:var(--green);color:#0d150a}.big-cta-inner{display:grid;grid-template-columns:1fr .4fr;gap:40px;align-items:end}.big-cta .display{font-size:clamp(4.5rem,10vw,10rem);max-width:8ch}.big-cta p{max-width:34ch}.cta-button{display:inline-flex;align-items:center;justify-content:space-between;gap:32px;background:#10110f;color:#fff;padding:18px 20px;min-width:220px;text-transform:uppercase;font-size:.68rem;letter-spacing:.12em;font-weight:700;margin-top:20px}

/* CONTACT */
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(36px,8vw,120px);align-items:start}.contact-meta{display:grid;gap:22px;margin-top:36px}.contact-item{border-top:1px solid var(--line);padding-top:14px}.contact-item small{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;color:var(--muted);margin-bottom:6px}.contact-item strong{font-size:1.08rem}.form{display:grid;gap:16px}.field label{display:block;text-transform:uppercase;letter-spacing:.1em;font-size:.62rem;margin-bottom:6px}.field input,.field textarea,.field select{width:100%;background:transparent;border:1px solid var(--line);padding:15px 14px;outline:none}.field textarea{min-height:150px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--green);box-shadow:0 0 0 2px rgba(106,166,65,.16)}.submit{background:var(--ink);color:var(--paper);padding:16px 18px;text-transform:uppercase;letter-spacing:.12em;font-size:.68rem;font-weight:700;display:inline-flex;justify-content:space-between;align-items:center}.form-note{font-size:.7rem;color:var(--muted)}

/* FOOTER */
.footer{background:#0d0f0d;color:#fff;padding:80px 0 26px;position:relative;overflow:hidden}.footer::before{content:'';position:absolute;inset:0;background-image:linear-gradient(rgba(255,255,255,.05) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.05) 1px,transparent 1px);background-size:80px 80px;transform:rotate(-7deg) scale(1.2)}.footer-inner{position:relative}.footer-top{display:grid;grid-template-columns:1fr .45fr;gap:50px;align-items:end}.footer-title{font-family:var(--display);font-size:clamp(5.2rem,14vw,13rem);line-height:.72;text-transform:uppercase;margin:0}.footer-links{display:grid;gap:10px;font-size:.85rem}.footer-links a:hover{color:#a8d67b}.footer-bottom{border-top:1px solid rgba(255,255,255,.18);margin-top:44px;padding-top:18px;display:flex;justify-content:space-between;gap:20px;font-size:.68rem;color:rgba(255,255,255,.56);text-transform:uppercase;letter-spacing:.08em}

/* REVEALS */
.reveal{opacity:0;transform:translateY(22px);transition:opacity .75s var(--ease),transform .75s var(--ease)}.reveal.in-view{opacity:1;transform:none}.clip-reveal{overflow:hidden}.clip-reveal>*{transform:translateY(108%);transition:transform .8s var(--ease)}.clip-reveal.in-view>*{transform:none}

/* CURSOR */
.custom-cursor{position:fixed;z-index:5000;width:10px;height:10px;border-radius:50%;background:var(--green);pointer-events:none;left:0;top:0;transform:translate(-50%,-50%);opacity:0;transition:width .18s,height .18s,opacity .18s,background .18s;mix-blend-mode:difference}.custom-cursor.visible{opacity:1}.custom-cursor.big{width:46px;height:46px;background:#fff}

/* UTIL */
.button{display:inline-flex;align-items:center;gap:16px;border:1px solid var(--ink);padding:13px 16px;text-transform:uppercase;letter-spacing:.1em;font-size:.65rem;font-weight:700;transition:.25s}.button:hover{background:var(--ink);color:var(--paper)}.button.inverse{border-color:rgba(255,255,255,.45);color:#fff}.button.inverse:hover{background:#fff;color:#111}.button + .button{margin-left:8px}.arrow-svg{width:18px;height:18px}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:clamp(30px,7vw,100px)}.three-col{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.note{font-size:.76rem;color:var(--muted);border-left:2px solid var(--green);padding-left:14px}.stack{display:grid;gap:24px}.spacer-24{height:24px}.spacer-40{height:40px}

/* MOBILE */
@media(max-width:1024px){
  .intro-grid{grid-template-columns:1fr 1.6fr}.intro-aside{grid-column:2}
  .service-row{grid-template-columns:50px 1fr 44px}.service-row p{grid-column:2/4;padding-top:4px}
  .menu-body{grid-template-columns:1fr}.menu-preview{display:none}
  .person{grid-template-columns:150px 1fr}.team-grid{grid-template-columns:1fr}
  .board-grid{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:768px){
  .site-header{padding:12px 0}.brand-text{display:none}.brand img{width:42px;height:42px}.menu-button{height:42px;padding:0 14px}.icon-button{width:42px;height:42px}
  .hero{min-height:88svh}.hero-content{padding:125px 0 28px}.hero-meta{align-items:flex-start}.hero-title{grid-template-columns:1fr;gap:6px}.hero-title .center-mark{height:4px;width:80px;align-self:auto}.hero-title .word{font-size:clamp(5.5rem,25vw,8rem);line-height:.76}.hero-title .word:last-child{text-align:right}.hero-bottom{align-items:flex-start;flex-direction:column}.hero-grid-lines{background-size:25vw 25vw}
  .inner-hero{min-height:62svh}.inner-hero-content{padding-bottom:30px}
  .section{padding:72px 0}.section-tight{padding:52px 0}
  .intro-grid,.editorial-split,.map-layout,.contact-grid,.big-cta-inner,.two-col{grid-template-columns:1fr}.intro-aside{grid-column:auto}.editorial-media{aspect-ratio:4/3;order:-1}.editorial-split.reverse .editorial-media{order:-1}
  .stat-strip{grid-template-columns:1fr}.stat{border-right:0;border-bottom:1px solid var(--line);padding:18px 0}.stat:last-child{border-bottom:0}
  .events-head{align-items:flex-start;flex-direction:column}.event-row{grid-template-columns:86px 1fr 34px;gap:14px}.event-meta{grid-column:2/4}.event-date{font-size:1.65rem}.event-title{font-size:2.2rem}.resource-row{grid-template-columns:38px 1fr 32px}.resource-row p{grid-column:2/4}.resource-row h3{font-size:2.1rem}
  .photo-track{animation-duration:26s}.photo-card{width:72vw}.photo-card:nth-child(2n){width:58vw}
  .map-art{min-height:480px}
  .board-grid{grid-template-columns:1fr 1fr}.menu-contact{grid-template-columns:1fr}.menu-row{grid-template-columns:42px 1fr 28px}.menu-row .label{font-size:clamp(2.6rem,11vw,4.2rem)}
  .footer-top{grid-template-columns:1fr}.footer-title{font-size:clamp(5rem,25vw,8rem)}.footer-bottom{flex-direction:column}
  .person{grid-template-columns:1fr}.person img{height:300px}.person-copy{padding:20px}
  .service-preview,.custom-cursor{display:none!important}
}
@media(max-width:430px){
  .shell{padding-left:18px;padding-right:18px}.hero-meta-right{display:none}.hero-title .word{font-size:clamp(4.7rem,23vw,6.4rem)}.display-xl{font-size:clamp(4rem,21vw,6.8rem)}.display-lg{font-size:clamp(3.2rem,16vw,5rem)}
  .board-grid{grid-template-columns:1fr}.menu-row{grid-template-columns:34px 1fr 24px}.access-grid{grid-template-columns:1fr 1fr}.event-row{grid-template-columns:76px 1fr 28px}.event-title{font-size:1.85rem}.event-meta{font-size:.7rem}.resource-row{padding:20px 0}.big-cta .display{font-size:clamp(4rem,21vw,6rem)}
}

/* REVISION: floating accessibility */
.access-fab{position:fixed;z-index:1200;right:22px;top:50%;transform:translateY(-50%);width:52px;height:52px;border:1px solid rgba(255,255,255,.24);background:#10120f;color:#fff;display:grid;place-items:center;box-shadow:0 14px 44px rgba(0,0,0,.2);transition:transform .25s var(--ease),background .25s,color .25s}.access-fab:hover,.access-fab:focus-visible{background:var(--green);color:#081006;transform:translateY(-50%) scale(1.06)}.access-fab .icon{width:20px;height:20px}.theme-option{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px}.theme-option .theme-icons{display:flex;gap:8px;align-items:center}.theme-option svg{width:16px;height:16px}

/* REVISION: broader editorial headlines */
.intro-grid{grid-template-columns:minmax(0,2.15fr) minmax(250px,.7fr);gap:clamp(24px,5vw,78px)}.intro-grid>.eyebrow{grid-column:1/-1}.intro-grid>.clip-reveal{grid-column:1}.intro-grid>.intro-aside{grid-column:2;align-self:end}.intro-grid .display{max-width:none;width:min(100%,14ch)}
.events-head{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(270px,.5fr);gap:clamp(28px,5vw,80px);align-items:end}.events-head .display{max-width:none;width:min(100%,14ch)}.events-head>.button{justify-self:end}.events-head>.lead{justify-self:end;margin:0}
.map-layout{grid-template-columns:minmax(340px,.9fr) minmax(0,1.1fr)}.map-layout .display{max-width:12ch}
.big-cta-inner{grid-template-columns:minmax(0,1fr) minmax(270px,.32fr);align-items:end;gap:34px 60px}.big-cta-inner>div:first-child{grid-column:1/-1}.big-cta-inner>div:last-child{grid-column:2}.big-cta .display{font-size:clamp(4.7rem,9.2vw,10.2rem);max-width:none;width:min(92vw,11.5ch);line-height:.88}
.inner-hero .display{max-width:min(92vw,16ch)}
.footer-title{line-height:.88}

/* REAL INTERACTIVE DISTRICT MAP */
.map-shell{position:relative;min-height:620px;background:#d8ded4;overflow:hidden;border:1px solid rgba(255,255,255,.16)}.map-shell-large{min-height:680px}.district-map{position:absolute;inset:0;z-index:1}.map-overlay-note{position:absolute;z-index:450;left:18px;right:18px;bottom:18px;display:flex;justify-content:space-between;gap:18px;align-items:center;background:rgba(12,15,13,.88);backdrop-filter:blur(12px);color:#fff;padding:13px 15px;font-size:.69rem;letter-spacing:.04em}.map-overlay-note strong{text-transform:uppercase;letter-spacing:.11em}.map-overlay-note span{color:rgba(255,255,255,.72);text-align:right}.leaflet-container{font-family:var(--body);background:#d9ddd7}.leaflet-control-zoom a{color:#111!important}.leaflet-popup-content-wrapper,.leaflet-popup-tip{background:#10120f;color:#fff}.leaflet-popup-content{font-family:var(--body);line-height:1.5}.jgh-map-marker{width:24px;height:24px;border-radius:50%;background:var(--green);border:4px solid #fff;box-shadow:0 4px 18px rgba(0,0,0,.35)}

.menu-preview img{will-change:opacity,transform}.service-preview img{will-change:opacity}.footer-title br{display:block;content:'';margin-top:.14em}

@media(max-width:1024px){.events-head{grid-template-columns:1fr .5fr}.intro-grid{grid-template-columns:minmax(0,1.5fr) minmax(220px,.6fr)}.map-layout{grid-template-columns:1fr 1fr}}
@media(max-width:768px){.access-fab{right:14px;width:48px;height:48px}.access-panel{right:14px;bottom:78px;width:min(360px,calc(100vw - 28px))}.intro-grid,.events-head,.map-layout,.big-cta-inner{grid-template-columns:1fr}.intro-grid>.eyebrow,.intro-grid>.clip-reveal,.intro-grid>.intro-aside,.big-cta-inner>div:first-child,.big-cta-inner>div:last-child{grid-column:auto}.events-head>.button,.events-head>.lead{justify-self:start}.big-cta .display{width:100%;font-size:clamp(4rem,18vw,7rem)}.map-shell,.map-shell-large{min-height:520px}.map-overlay-note{align-items:flex-start;flex-direction:column}.map-overlay-note span{text-align:left}.brand img{width:62px}.hero-bottom{align-items:flex-end}.hero-bottom p{display:none}.footer-title{line-height:.9}}
@media(max-width:430px){.map-shell,.map-shell-large{min-height:440px}.access-fab{top:auto;bottom:20px;transform:none}.access-fab:hover,.access-fab:focus-visible{transform:scale(1.06)}.loader-caption{flex-direction:column;gap:6px}.loader-caption span+span::before{display:none}.brand img{width:56px}.big-cta .display{font-size:clamp(3.7rem,17vw,5.7rem)}}
