/* Base for the standalone site */
:root{color-scheme:light}
html{-webkit-text-size-adjust:100%; scroll-behavior:smooth}
body{margin:0}
img{max-width:100%}
[hidden]{display:none!important}
.skip-link{position:absolute; left:-9999px; top:8px; z-index:100; background:var(--surface); color:var(--fg); padding:10px 14px; border:2px solid var(--accent)}
.skip-link:focus{left:16px}
@media (prefers-reduced-motion: reduce){ html{scroll-behavior:auto} }

/* Layout: meridian grid. Full-width bands on one centred track; a single dark hero band carries a rotating point-sphere with London marked. */
/* Colour: white and cloud-grey pages, ink-navy to marine banners, blue (#0070AD) for links and buttons, vibrant blue (#12ABDB) for accents. */
:root{
  --bg:#FFFFFF; --surface:#FFFFFF; --surface-2:#EFF0F4; --fg:#121A38; --muted:#596075; --line:#D9DDE3;
  --brand:#0070AD; --brand-strong:#005585; --on-brand:#FFFFFF;
  --accent:#12ABDB; --accent-ink:#0070AD; --accent-soft:#D6F0FA;
  --plate-1:#E3F2FA; --plate-2:#BFE6F4; --plate-ink:#0070AD; --plate-hi:#F3FAFD; --plate-line:rgba(0,112,173,.22);
  --deep:#121A38; --deep-2:#183466; --deep-fg:#FFFFFF; --deep-muted:#A9BDE4; --deep-line:#2E3A63; --deep-accent:#12ABDB; --on-deep-accent:#121A38; --deep-glow:rgba(18,171,219,.18);
  --shadow:rgba(18,26,56,.18); --scrim:rgba(18,26,56,.55);
  --mark-s:var(--accent);

  --font-display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --font-body:"IBM Plex Sans","Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;
  --font-mono:"IBM Plex Mono",ui-monospace,"SFMono-Regular",Menlo,Consolas,monospace;

  --fs-hero:clamp(2.2rem, 3.4vw + .9rem, 3.9rem);
  --fs-h2:clamp(1.55rem, 1.6vw + 1rem, 2.25rem);
  --fs-statement:clamp(1.55rem, 2.4vw + .8rem, 2.75rem);
  --fs-h3:1.18rem; --fs-body:1rem; --fs-small:.9rem; --fs-label:.72rem;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --bg:#0B1026; --surface:#121A38; --surface-2:#18224A; --fg:#E8ECF6; --muted:#A3ADC6; --line:#283462;
    --brand:#5CC4EC; --brand-strong:#9ADCF3; --on-brand:#0B1026;
    --accent:#12ABDB; --accent-ink:#5CC4EC; --accent-soft:#143158;
    --plate-1:#16244E; --plate-2:#1E3468; --plate-ink:#7FD0EE; --plate-hi:#2A4580; --plate-line:rgba(127,208,238,.2);
    --deep:#070B1E; --deep-2:#132B57; --deep-fg:#FFFFFF; --deep-muted:#A9BDE4; --deep-line:#25335E; --deep-accent:#12ABDB; --on-deep-accent:#070B1E; --deep-glow:rgba(18,171,219,.16);
    --shadow:rgba(0,0,0,.55); --scrim:rgba(0,0,0,.62);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --bg:#0B1026; --surface:#121A38; --surface-2:#18224A; --fg:#E8ECF6; --muted:#A3ADC6; --line:#283462;
  --brand:#5CC4EC; --brand-strong:#9ADCF3; --on-brand:#0B1026;
  --accent:#12ABDB; --accent-ink:#5CC4EC; --accent-soft:#143158;
  --plate-1:#16244E; --plate-2:#1E3468; --plate-ink:#7FD0EE; --plate-hi:#2A4580; --plate-line:rgba(127,208,238,.2);
  --deep:#070B1E; --deep-2:#132B57; --deep-fg:#FFFFFF; --deep-muted:#A9BDE4; --deep-line:#25335E; --deep-accent:#12ABDB; --on-deep-accent:#070B1E; --deep-glow:rgba(18,171,219,.16);
  --shadow:rgba(0,0,0,.55); --scrim:rgba(0,0,0,.62);
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
body{background:var(--bg); color:var(--fg); font-family:var(--font-body); font-size:var(--fs-body); line-height:1.55; -webkit-font-smoothing:antialiased; overflow-x:hidden}
body::before{content:""; position:fixed; inset:0 0 auto; height:env(safe-area-inset-top,0px); z-index:70; background:var(--surface)}
a{color:inherit}
h1,h2,h3,p{margin:0}
ul{margin:0; padding:0; list-style:none}
:focus-visible{outline:2px solid var(--brand); outline-offset:3px}
[tabindex="-1"]:focus{outline:none}
.hero :focus-visible,.page-hero :focus-visible,.site-footer :focus-visible,.cta-band :focus-visible,.promo-band :focus-visible,.tile:focus-visible{outline-color:var(--deep-accent)}
.sr-only{position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap}

.wrap{width:100%; max-width:1304px; margin-inline:auto; padding-left:max(16px, env(safe-area-inset-left,0px)); padding-right:max(16px, env(safe-area-inset-right,0px))}
@media (min-width:720px){ .wrap{padding-left:max(32px, env(safe-area-inset-left,0px)); padding-right:max(32px, env(safe-area-inset-right,0px))} }

.label{font-family:var(--font-mono); font-size:var(--fs-label); font-weight:500; letter-spacing:.09em; text-transform:uppercase; color:var(--muted)}
.sample{display:inline-block; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--accent-ink); border:1px dashed var(--accent-ink); padding:2px 7px; line-height:1.4; white-space:nowrap}
.link-arrow{display:inline-flex; align-items:center; gap:.45em; font-weight:600; font-size:var(--fs-small); color:var(--brand); text-decoration:none}
.link-arrow span{transition:transform .2s ease}
.link-arrow:hover span{transform:translateX(3px)}
.link-arrow:hover{text-decoration:underline; text-underline-offset:.2em}

.btn{display:inline-flex; align-items:center; gap:.5em; font:600 .95rem/1 var(--font-body); padding:.95em 1.35em; border-radius:2px; text-decoration:none; border:1px solid transparent; cursor:pointer; white-space:nowrap}
.btn-brand{background:var(--brand); color:var(--on-brand)}
.btn-brand:hover{background:var(--brand-strong)}
.btn-accent{background:var(--deep-accent); color:var(--on-deep-accent)}
.btn-accent:hover{filter:brightness(1.07)}
.btn-ghost{border-color:var(--deep-muted); color:var(--deep-fg)}
.btn-ghost:hover{border-color:var(--deep-fg)}

/* Draft bar */
.draft-bar{background:var(--surface-2); color:var(--muted); font-family:var(--font-mono); font-size:.72rem; letter-spacing:.02em}
.draft-bar .wrap{padding-block:8px; display:flex; gap:8px; align-items:center; flex-wrap:wrap}

/* Header */
.site-header{position:sticky; top:env(safe-area-inset-top,0px); z-index:50; background:var(--surface); border-bottom:1px solid var(--line)}
.head-row{display:flex; align-items:center; gap:20px; min-height:68px}
.brand{display:inline-flex; align-items:center; gap:10px; text-decoration:none; color:var(--fg); font-family:var(--font-display); font-weight:700; font-stretch:118%; font-size:1.22rem; letter-spacing:-.005em; flex:none}
.mark{width:30px; height:30px; flex:none}
.mark circle{fill:none; stroke:currentColor; stroke-width:2.2}
.mark .s{fill:none; stroke:var(--mark-s); stroke-width:2.4; stroke-linecap:round}
.primary-nav{flex:1; min-width:0}
.nav-list{display:flex; gap:2px}
.nav-trigger{display:inline-flex; align-items:center; gap:6px; background:none; border:0; color:var(--fg); font:500 .95rem var(--font-body); padding:24px 12px; cursor:pointer; position:relative}
.nav-trigger:hover{color:var(--brand)}
.nav-trigger[aria-expanded="true"]{color:var(--brand)}
.nav-trigger[aria-expanded="true"]::after{content:""; position:absolute; left:12px; right:12px; bottom:-1px; height:3px; background:var(--accent)}
.chev{width:14px; height:14px; display:none; transition:transform .2s ease}
.mega{position:absolute; left:0; right:0; top:100%; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:0 30px 40px -28px var(--shadow)}
.mega-inner{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,2.4fr); gap:56px; padding-block:36px 44px}
.mega-intro{display:grid; gap:12px; align-content:start; max-width:34ch}
.mega-title{font-family:var(--font-display); font-stretch:112%; font-weight:650; font-size:1.6rem; line-height:1.15}
.mega-intro p:not(.mega-title){color:var(--muted)}
.mega-links{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 32px; align-content:start}
.mega-group{min-width:0}
.mega-group:only-child{grid-column:1 / -1}
.mega-group:only-child ul{columns:3 180px; column-gap:32px}
.group-title{display:block; font-weight:600; text-decoration:none; padding-block:4px 6px; color:var(--fg)}
.mega-group li{break-inside:avoid}
.mega-group li a{display:block; padding-block:5px; text-decoration:none; color:var(--muted); font-size:var(--fs-small)}
.mega-group a:hover{color:var(--brand); text-decoration:underline; text-underline-offset:.2em}
.nav-mobile-only{display:none}
.utils{display:flex; align-items:center; gap:6px; margin-left:auto; flex:none}
.icon-btn{width:40px; height:40px; display:inline-grid; place-items:center; border:0; background:transparent; color:var(--fg); border-radius:50%; cursor:pointer}
.icon-btn:hover{background:var(--surface-2)}
.icon-btn svg{width:20px; height:20px}
.icon-btn .moon{display:none}
.icon-btn[data-mode="dark"] .sun{display:none}
.icon-btn[data-mode="dark"] .moon{display:block}
.loc{display:inline-flex; align-items:center; gap:6px; font-family:var(--font-mono); font-size:.74rem; color:var(--muted); padding-inline:8px}
.loc svg{width:15px; height:15px}
.head-contact{padding:.72em 1.1em; font-size:.88rem}
.burger{display:none}

@media (max-width:1179px){ .loc{display:none} }
@media (max-width:999px){
  .burger{display:inline-grid}
  .head-contact{display:none}
  .primary-nav{display:none; position:absolute; top:100%; left:0; right:0; background:var(--surface); border-bottom:1px solid var(--line); box-shadow:0 30px 40px -28px var(--shadow); max-height:calc(100dvh - 68px - env(safe-area-inset-top,0px)); overflow-y:auto}
  .primary-nav.open{display:block}
  .nav-list{flex-direction:column; gap:0; padding-left:max(16px, env(safe-area-inset-left,0px)); padding-right:max(16px, env(safe-area-inset-right,0px)); padding-block:8px 24px}
  .nav-trigger{width:100%; justify-content:space-between; padding:16px 0; border-bottom:1px solid var(--line); font-size:1.05rem}
  .nav-trigger[aria-expanded="true"]::after{display:none}
  .nav-trigger[aria-expanded="true"] .chev{transform:rotate(180deg)}
  .chev{display:block}
  .mega{position:static; box-shadow:none; border:0; background:transparent}
  .mega-inner{grid-template-columns:1fr; gap:18px; padding-block:16px 24px; padding-left:0; padding-right:0}
  .mega-title{font-size:1.25rem}
  .mega-links{grid-template-columns:repeat(auto-fill,minmax(180px,1fr))}
  .mega-group:only-child ul{columns:2 160px}
  .nav-mobile-only{display:block; padding-top:20px}
}

/* Hero */
.hero{position:relative; background:linear-gradient(135deg, var(--deep) 35%, var(--deep-2)); color:var(--deep-fg); overflow:hidden; isolation:isolate}
.hero::before{content:""; position:absolute; inset:0; z-index:-1; background-image:linear-gradient(90deg, var(--deep-line) 1px, transparent 1px); background-size:calc(100% / 8) 100%; opacity:.55; -webkit-mask-image:linear-gradient(90deg, transparent 0 38%, #000 80%); mask-image:linear-gradient(90deg, transparent 0 38%, #000 80%)}
.hero-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:32px; align-items:center; padding-block:64px 24px}
.hero-copy{display:grid; gap:22px; min-width:0}
.coords{font-family:var(--font-mono); font-size:.76rem; letter-spacing:.06em; color:var(--deep-muted); font-variant-numeric:tabular-nums}
.coords b{color:var(--deep-accent); font-weight:500}
.hero h1{font-family:var(--font-display); font-weight:700; font-stretch:114%; font-size:var(--fs-hero); line-height:1.02; letter-spacing:-.015em; text-wrap:balance; max-width:13ch}
.lede{color:var(--deep-muted); font-size:1.1rem; line-height:1.6; max-width:52ch}
.hero-cta{display:flex; flex-wrap:wrap; gap:12px; padding-top:6px}
.hero-visual{width:100%; max-width:560px; aspect-ratio:1; justify-self:end; position:relative}
.hero-visual canvas{display:block; width:100%; height:100%}
.featured{display:flex; flex-wrap:wrap; align-items:center; gap:10px 20px; border-top:1px solid var(--deep-line); padding-block:22px 30px; text-decoration:none; color:var(--deep-fg)}
.featured .label{color:var(--deep-accent)}
.featured .sample{color:var(--deep-accent); border-color:var(--deep-accent)}
.featured-title{font-weight:600; font-size:1.05rem; flex:1 1 280px; min-width:0}
.featured .link-arrow{color:var(--deep-fg)}
.featured:hover .featured-title{text-decoration:underline; text-underline-offset:.2em; text-decoration-color:var(--deep-accent)}
@media (max-width:899px){
  .hero-grid{grid-template-columns:1fr; padding-block:44px 8px; gap:8px}
  .hero-visual{max-width:340px; justify-self:center}
  .hero::before{-webkit-mask-image:linear-gradient(180deg, transparent 0 45%, #000 90%); mask-image:linear-gradient(180deg, transparent 0 45%, #000 90%)}
}

/* Highlights */
.highlights{background:var(--surface); border-bottom:1px solid var(--line)}
.highlights .wrap{padding-block:28px 32px}
.highlights h2{margin-bottom:6px}
.hl-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr))}
.hl{display:grid; gap:6px; align-content:start; padding:20px 28px 8px 0; text-decoration:none; color:var(--fg); border-right:1px solid var(--line); min-width:0}
.hl + .hl{padding-left:28px}
.hl:last-child{border-right:0}
.hl-title{font-family:var(--font-display); font-stretch:106%; font-weight:600; font-size:1.18rem; line-height:1.25; text-wrap:balance}
.hl-sub{color:var(--muted); font-size:var(--fs-small)}
.hl-head{display:flex; align-items:center; gap:8px; flex-wrap:wrap}
.hl:hover .hl-title{color:var(--brand); text-decoration:underline; text-underline-offset:.18em}
.hl .arrow{color:var(--brand); font-weight:600; padding-top:4px; transition:transform .2s ease}
.hl:hover .arrow{transform:translateX(4px)}
@media (max-width:759px){
  .hl-grid{grid-template-columns:1fr}
  .hl,.hl + .hl{padding:18px 0; border-right:0; border-bottom:1px solid var(--line)}
  .hl:last-child{border-bottom:0}
}

/* Statement */
.statement{background:var(--surface-2)}
.statement-inner{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,3fr); gap:20px 48px; padding-block:clamp(52px,6vw,88px); align-items:start}
.statement-text{font-family:var(--font-display); font-weight:600; font-stretch:108%; font-size:var(--fs-statement); line-height:1.16; letter-spacing:-.01em; text-wrap:balance; max-width:30ch}
.statement-text em{font-style:normal; color:var(--brand); text-decoration:underline; text-decoration-color:var(--accent); text-decoration-thickness:.07em; text-underline-offset:.14em}
.statement-note{grid-column:2; color:var(--muted); max-width:56ch}
@media (max-width:759px){ .statement-inner{grid-template-columns:1fr} .statement-note{grid-column:1} }

/* Sections */
.section{padding-block:clamp(56px,7vw,96px)}
.section + .section{border-top:1px solid var(--line)}
.sec-head{display:flex; align-items:baseline; flex-wrap:wrap; gap:10px 16px; margin-bottom:32px}
.sec-head h2{font-family:var(--font-display); font-weight:650; font-stretch:112%; font-size:var(--fs-h2); line-height:1.1; letter-spacing:-.01em}
.sec-head .more{margin-left:auto}
.grid-3{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:44px 28px}
@media (max-width:759px){ .grid-3{grid-template-columns:1fr; gap:40px} .sec-head .more{margin-left:0; width:100%} }

.card{display:grid; gap:12px; align-content:start; min-width:0}
.card h3{font-family:var(--font-display); font-weight:600; font-stretch:104%; font-size:var(--fs-h3); line-height:1.28; text-wrap:balance}
.card h3 a{text-decoration:none}
.card h3 a:hover{color:var(--brand); text-decoration:underline; text-underline-offset:.18em}
.card p{color:var(--muted); font-size:var(--fs-small); max-width:48ch}
.card-meta{display:flex; align-items:center; gap:10px; flex-wrap:wrap}

/* Plates: generated card imagery */
.plate{position:relative; aspect-ratio:16/10; max-width:100%; overflow:hidden; border-radius:2px; background:linear-gradient(145deg, var(--plate-1), var(--plate-2))}
.plate::before,.plate::after{content:""; position:absolute; pointer-events:none}
.plate-tag{position:absolute; left:12px; bottom:12px; z-index:1; font-family:var(--font-mono); font-size:.66rem; letter-spacing:.09em; text-transform:uppercase; color:var(--plate-ink); background:var(--surface); padding:3px 8px}
.m-orbit::before{width:150%; aspect-ratio:1; left:30%; top:20%; border-radius:50%; background:repeating-radial-gradient(circle, transparent 0 17px, var(--plate-ink) 17px 18px); opacity:.42}
.m-orbit::after{width:10px; height:10px; left:44%; top:36%; border-radius:50%; background:var(--accent); box-shadow:0 0 0 6px var(--accent-soft)}
.m-sphere::before{width:58%; aspect-ratio:1; right:-6%; top:10%; border-radius:50%; background:radial-gradient(circle at 34% 30%, var(--plate-hi), var(--plate-ink) 78%)}
.m-sphere::after{width:58%; aspect-ratio:1; right:-6%; top:10%; border-radius:50%; background:repeating-linear-gradient(90deg, transparent 0 13px, var(--plate-line) 13px 14px)}
.m-grid::before{inset:0; background-image:linear-gradient(var(--plate-line) 1px, transparent 1px), linear-gradient(90deg, var(--plate-line) 1px, transparent 1px); background-size:22px 22px}
.m-grid::after{left:18%; right:18%; top:30%; height:34%; border:2px solid var(--plate-ink); border-left-color:var(--accent)}
.m-arc::before{width:150%; aspect-ratio:1; left:-25%; top:46%; border-radius:50%; border:2px solid var(--accent)}
.m-arc::after{width:150%; aspect-ratio:1; left:-25%; top:62%; border-radius:50%; border:1px solid var(--plate-ink); opacity:.6}
.m-dots::before{inset:0; background-image:radial-gradient(var(--plate-ink) 1.3px, transparent 1.8px); background-size:14px 14px; -webkit-mask-image:radial-gradient(circle at 70% 42%, #000 0 30%, transparent 58%); mask-image:radial-gradient(circle at 70% 42%, #000 0 30%, transparent 58%)}
.m-dots::after{width:12px; height:12px; left:68%; top:38%; border-radius:50%; background:var(--accent)}
.m-meridian::before{width:64%; aspect-ratio:1; left:18%; top:-14%; border-radius:50%; border:1.5px solid var(--plate-ink); background:repeating-linear-gradient(90deg, transparent 0 12px, var(--plate-line) 12px 13px)}
.m-meridian::after{left:18%; width:64%; top:18%; height:1.5px; background:var(--accent)}

/* News */
.news-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:36px 28px}
.news-item{display:grid; gap:10px; align-content:start; border-top:2px solid var(--fg); padding-top:16px; min-width:0}
.news-item .label{color:var(--accent-ink)}
.news-item h3{font-family:var(--font-display); font-weight:600; font-stretch:102%; font-size:1.08rem; line-height:1.32; text-wrap:balance}
.news-item h3 a{text-decoration:none}
.news-item h3 a:hover{color:var(--brand); text-decoration:underline; text-underline-offset:.18em}
.news-date{font-family:var(--font-mono); font-size:.76rem; color:var(--muted); font-variant-numeric:tabular-nums}
@media (max-width:999px){ .news-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:599px){ .news-grid{grid-template-columns:1fr} }

/* Inside stories */
.inside .plate{aspect-ratio:4/3}
.chip{display:inline-block; font-size:.78rem; font-weight:500; color:var(--brand); background:var(--surface); border:1px solid var(--line); padding:3px 10px; border-radius:999px}

/* Promo rail */
.rail-head{display:flex; align-items:baseline; gap:12px 16px; flex-wrap:wrap; margin-bottom:28px}
.rail-head h2{font-family:var(--font-display); font-weight:650; font-stretch:112%; font-size:var(--fs-h2); line-height:1.1}
.rail-ctrl{margin-left:auto; display:flex; gap:8px}
.rail-ctrl button{width:44px; height:44px; border:1px solid var(--line); background:var(--surface); color:var(--fg); border-radius:50%; cursor:pointer; font-size:1.05rem}
.rail-ctrl button:hover{border-color:var(--brand); color:var(--brand)}
.rail{display:grid; grid-auto-flow:column; grid-auto-columns:minmax(260px, 340px); gap:16px; overflow-x:auto; scroll-snap-type:x mandatory; padding-bottom:12px; scrollbar-width:thin}
.rail > li{scroll-snap-align:start; min-width:0}
.tile{position:relative; overflow:hidden; isolation:isolate; display:flex; flex-direction:column; justify-content:flex-end; gap:12px; min-height:340px; height:100%; padding:26px; background:var(--deep-2); color:var(--deep-fg); text-decoration:none; border-radius:2px}
.tile::before{content:""; position:absolute; z-index:-1; pointer-events:none}
.tile h3{font-family:var(--font-display); font-weight:650; font-stretch:110%; font-size:1.35rem; line-height:1.15; text-wrap:balance}
.tile p{color:var(--deep-muted); font-size:var(--fs-small)}
.tile .cta{display:inline-flex; gap:.45em; font-weight:600; font-size:var(--fs-small); color:var(--deep-accent)}
.tile .cta span{transition:transform .2s ease}
.tile:hover .cta span{transform:translateX(3px)}
.tile:hover h3{text-decoration:underline; text-underline-offset:.16em; text-decoration-color:var(--deep-accent)}
.t1::before{width:240px; height:240px; right:-60px; top:-50px; border-radius:50%; background:repeating-radial-gradient(circle, transparent 0 15px, var(--deep-line) 15px 16px)}
.t2::before{width:200px; height:200px; right:-30px; top:-30px; border-radius:50%; border:2px solid var(--deep-accent); box-shadow:0 0 0 22px var(--deep-2), 0 0 0 23px var(--deep-line)}
.t3::before{inset:0 0 50% 0; background-image:radial-gradient(var(--deep-line) 1.4px, transparent 1.9px); background-size:16px 16px}
.t4::before{width:220px; height:220px; right:-50px; top:-40px; border-radius:50%; background:repeating-linear-gradient(90deg, transparent 0 13px, var(--deep-line) 13px 14px); border:1.5px solid var(--deep-muted); opacity:.8}
.t5::before{left:0; right:0; top:0; height:55%; background-image:linear-gradient(var(--deep-line) 1px, transparent 1px), linear-gradient(90deg, var(--deep-line) 1px, transparent 1px); background-size:26px 26px}

/* Footer */
.site-footer{--mark-s:var(--deep-accent); background:var(--deep); color:var(--deep-fg)}
.foot-top{display:grid; grid-template-columns:minmax(0,1.3fr) repeat(2,minmax(0,1fr)) minmax(0,1.3fr); gap:40px 32px; padding-block:64px 48px}
.site-footer .brand{color:var(--deep-fg)}
.foot-brand{display:grid; gap:16px; align-content:start}
.foot-brand p{color:var(--deep-muted); font-size:var(--fs-small); max-width:34ch}
.foot-col h2,.foot-office h2{font-family:var(--font-mono); font-size:var(--fs-label); font-weight:500; letter-spacing:.09em; text-transform:uppercase; color:var(--deep-muted); margin-bottom:14px}
.foot-col li a{display:block; padding-block:5px; color:var(--deep-fg); text-decoration:none; font-size:var(--fs-small)}
.foot-col li a:hover{color:var(--deep-accent); text-decoration:underline; text-underline-offset:.2em}
.foot-office{display:grid; gap:12px; align-content:start}
.foot-office address{font-style:normal; font-size:var(--fs-small); line-height:1.7}
.phone-row{display:flex; align-items:center; gap:10px; flex-wrap:wrap}
.phone{font-family:var(--font-mono); font-size:.9rem; font-variant-numeric:tabular-nums; user-select:all}
.copy-btn{font:500 .76rem var(--font-body); color:var(--deep-fg); background:transparent; border:1px solid var(--deep-line); padding:5px 10px; border-radius:2px; cursor:pointer}
.copy-btn:hover{border-color:var(--deep-muted)}
.foot-office .coords{font-size:.72rem}
.foot-bottom{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px 24px; border-top:1px solid var(--deep-line); padding-block:22px 30px; font-size:.82rem; color:var(--deep-muted)}
.social{display:flex; flex-wrap:wrap; gap:6px 18px}
.social a{color:var(--deep-fg); text-decoration:none}
.social a:hover{color:var(--deep-accent)}
@media (max-width:999px){ .foot-top{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:559px){ .foot-top{grid-template-columns:1fr} }

/* Search overlay */
.search-overlay{position:fixed; inset:0; z-index:80; background:var(--scrim); display:flex; justify-content:center; align-items:flex-start; padding-top:calc(env(safe-area-inset-top,0px) + 8vh); padding-left:max(16px, env(safe-area-inset-left,0px)); padding-right:max(16px, env(safe-area-inset-right,0px))}
.search-panel{width:min(680px,100%); background:var(--surface); color:var(--fg); padding:24px; box-shadow:0 30px 60px -20px var(--shadow); display:grid; gap:18px; max-height:80vh; overflow-y:auto}
.search-top{display:flex; align-items:center; gap:10px}
.search-top input{flex:1; min-width:0; font:500 1.25rem var(--font-body); color:var(--fg); background:transparent; border:0; border-bottom:2px solid var(--fg); padding:8px 2px; border-radius:0}
.search-top input:focus{outline:none; border-bottom-color:var(--brand)}
.popular{display:flex; flex-wrap:wrap; gap:8px; align-items:center}
.popular button{font:500 .85rem var(--font-body); color:var(--brand); background:var(--surface-2); border:0; padding:6px 12px; border-radius:999px; cursor:pointer}
.popular button:hover{background:var(--line)}
.results a{display:flex; justify-content:space-between; gap:16px; padding:11px 2px; border-bottom:1px solid var(--line); text-decoration:none}
.results a:hover{color:var(--brand)}
.results .where{font-family:var(--font-mono); font-size:.72rem; color:var(--muted); text-transform:uppercase; letter-spacing:.06em; white-space:nowrap}
.no-results{color:var(--muted); font-size:var(--fs-small)}

/* Inner pages */
:root{--error:#C8102E}
@media (prefers-color-scheme: dark){ :root:not([data-theme="light"]){--error:#FF7A8A} }
:root[data-theme="dark"]{--error:#FF7A8A}
[id]{scroll-margin-top:calc(84px + env(safe-area-inset-top,0px))}
.nav-trigger.is-current{color:var(--brand); font-weight:600}

.page-hero{position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(135deg, var(--deep) 35%, var(--deep-2)); color:var(--deep-fg)}
.page-hero::after{content:""; position:absolute; z-index:-1; width:440px; aspect-ratio:1; right:-80px; top:50%; transform:translateY(-50%); border-radius:50%; border:1.5px solid var(--deep-line); background:repeating-linear-gradient(90deg, transparent 0 17px, var(--deep-line) 17px 18px)}
.page-hero::before{content:""; position:absolute; z-index:-1; width:640px; height:150px; right:-180px; top:50%; transform:translateY(-50%) rotate(-12deg); border-radius:50%; border:1px solid var(--deep-muted); opacity:.45}
.page-hero-inner{display:grid; gap:16px; padding-block:40px 56px}
.crumbs{display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-family:var(--font-mono); font-size:.74rem; letter-spacing:.04em; color:var(--deep-muted)}
.crumbs a{color:var(--deep-fg); text-decoration:none}
.crumbs a:hover{text-decoration:underline; text-underline-offset:.2em}
.page-hero h1{font-family:var(--font-display); font-weight:700; font-stretch:114%; font-size:clamp(2.1rem, 2.8vw + 1.1rem, 3.6rem); line-height:1.04; letter-spacing:-.015em; max-width:18ch; text-wrap:balance}
.page-hero .lede{max-width:50ch}
@media (max-width:759px){ .page-hero::after{width:260px; right:-140px; opacity:.6} .page-hero::before{width:380px; right:-220px} }

.intro-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:24px 56px; align-items:start}
.intro-h{font-family:var(--font-display); font-weight:650; font-stretch:112%; font-size:var(--fs-h2); line-height:1.12; text-wrap:balance}
.intro-p{color:var(--muted); font-size:1.08rem; max-width:60ch}
.lead-p{font-size:1.18rem; line-height:1.6; max-width:58ch}
.callout{font-family:var(--font-display); font-weight:600; font-stretch:104%; font-size:1.32rem; line-height:1.35; border-top:3px solid var(--accent); padding-top:18px; text-wrap:balance}
@media (max-width:759px){ .intro-grid{grid-template-columns:1fr} }

.svc-grid{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:40px 24px}
.ind-grid{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:40px 20px}
@media (max-width:1179px){ .ind-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:999px){ .svc-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:599px){ .svc-grid,.ind-grid{grid-template-columns:1fr} }

.overview{color:var(--muted); font-size:1.08rem; max-width:62ch; margin-bottom:32px}
.offer-grid{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:28px 40px}
.offer{display:grid; gap:8px; align-content:start; border-top:1px solid var(--line); padding-top:18px; min-width:0}
.offer h3,.sol h3{font-family:var(--font-display); font-weight:600; font-stretch:104%; font-size:1.15rem; line-height:1.3; text-wrap:balance}
.offer p,.sol p{color:var(--muted); font-size:var(--fs-small)}
.sol-grid{display:grid; gap:16px}
.sol-grid.c2{grid-template-columns:repeat(2,minmax(0,1fr))}
.sol-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
.sol{display:grid; gap:10px; align-content:start; background:var(--surface); border:1px solid var(--line); padding:24px; border-radius:2px; min-width:0}
@media (max-width:899px){ .sol-grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:599px){ .offer-grid,.sol-grid.c2,.sol-grid.c3{grid-template-columns:1fr} }

.chips{display:flex; flex-wrap:wrap; gap:10px}
.chips a{display:inline-block; padding:8px 16px; border:1px solid var(--line); border-radius:999px; background:var(--surface); color:var(--fg); text-decoration:none; font-size:var(--fs-small); font-weight:500}
.chips a:hover{border-color:var(--brand); color:var(--brand)}

.cta-band{background:var(--deep); color:var(--deep-fg)}
.cta-inner{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:20px 32px; padding-block:44px}
.cta-text{font-family:var(--font-display); font-weight:600; font-stretch:108%; font-size:clamp(1.3rem, 1.2vw + 1rem, 1.75rem); line-height:1.25; max-width:36ch; text-wrap:balance}

.contact{background:var(--surface-2)}
.contact .field input,.contact .field select,.contact .field textarea{background:var(--surface)}
.contact-grid{display:grid; grid-template-columns:minmax(0,1fr) minmax(0,1.5fr); gap:40px 64px; align-items:start}
.contact-copy{display:grid; gap:16px; align-content:start}
.contact-copy h2{font-family:var(--font-display); font-weight:650; font-stretch:112%; font-size:var(--fs-h2); line-height:1.12; text-wrap:balance}
.contact-copy > p{color:var(--muted); max-width:44ch}
.contact-office{display:grid; gap:6px; border-top:1px solid var(--line); padding-top:16px; margin-top:8px}
.contact-office address{font-style:normal; font-size:var(--fs-small); line-height:1.7}
.contact-office .phone{font-size:.9rem}
.contact-form{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px 20px}
.field{display:grid; gap:6px; min-width:0}
.field.full,.form-note{grid-column:1 / -1}
.field label{font-size:.85rem; font-weight:500}
.field input,.field select,.field textarea{width:100%; font:400 1rem var(--font-body); color:var(--fg); background:var(--bg); border:1px solid var(--line); border-radius:2px; padding:11px 12px}
.field textarea{resize:vertical; min-height:120px}
.field input:focus,.field select:focus,.field textarea:focus{outline:none; border-color:var(--brand); box-shadow:0 0 0 3px var(--accent-soft)}
.field [aria-invalid="true"]{border-color:var(--error)}
.field.check{display:flex; align-items:flex-start; gap:10px}
.field.check input{width:18px; height:18px; margin-top:2px; padding:0; flex:none; accent-color:var(--brand)}
.field.check label{font-weight:400; color:var(--muted)}
.form-note{font-size:var(--fs-small); background:var(--surface-2); padding:12px 14px; border-radius:2px}
.form-note:empty{display:none}
.form-note.is-error{color:var(--error)}
@media (max-width:899px){ .contact-grid{grid-template-columns:1fr} }
@media (max-width:599px){ .contact-form{grid-template-columns:1fr} }

/* Insights, careers, news, about, contact */
.sol h3 a{color:var(--fg); text-decoration:none}
.sol h3 a:hover{color:var(--brand); text-decoration:underline; text-underline-offset:.18em}
.chips span{display:inline-block; padding:8px 16px; border:1px solid var(--line); border-radius:999px; background:var(--surface); font-size:var(--fs-small); font-weight:500}
.filters{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:28px}
.filters button{font:500 .88rem var(--font-body); color:var(--fg); background:var(--surface); border:1px solid var(--line); padding:7px 14px; border-radius:999px; cursor:pointer}
.filters button:hover{border-color:var(--brand); color:var(--brand)}
.filters button[aria-pressed="true"]{background:var(--brand); border-color:var(--brand); color:var(--on-brand)}

.feature{display:grid; grid-template-columns:minmax(0,1.2fr) minmax(0,1fr); gap:24px 44px; align-items:center; margin-bottom:44px}
.feature .plate{aspect-ratio:16/9}
.feature-copy{display:grid; gap:12px; align-content:start; justify-items:start; min-width:0}
.feature-copy h3{font-family:var(--font-display); font-weight:650; font-stretch:110%; font-size:clamp(1.4rem, 1.2vw + 1rem, 1.9rem); line-height:1.15; text-wrap:balance}
.feature-copy p{color:var(--muted); max-width:46ch}
@media (max-width:759px){ .feature{grid-template-columns:1fr} }

.promo-band{position:relative; overflow:hidden; isolation:isolate; background:linear-gradient(135deg, var(--deep) 35%, var(--deep-2)); color:var(--deep-fg)}
.promo-band::after{content:""; position:absolute; z-index:-1; width:360px; aspect-ratio:1; right:-60px; top:50%; transform:translateY(-50%); border-radius:50%; background:repeating-radial-gradient(circle, transparent 0 17px, var(--deep-line) 17px 18px)}
.promo-inner{display:grid; gap:14px; justify-items:start; padding-block:clamp(44px,5vw,72px)}
.promo-inner h2{font-family:var(--font-display); font-weight:650; font-stretch:112%; font-size:var(--fs-h2); line-height:1.12; max-width:22ch; text-wrap:balance}
.promo-inner p{color:var(--deep-muted); max-width:52ch}
@media (max-width:599px){ .promo-band::after{width:220px; right:-110px; opacity:.6} }

.row-list{border-top:1px solid var(--line)}
.row{display:grid; grid-template-columns:120px 190px minmax(0,1fr) auto; gap:6px 24px; align-items:baseline; padding-block:18px; border-bottom:1px solid var(--line)}
.row.role{grid-template-columns:minmax(0,2fr) minmax(0,1fr) 110px 110px auto}
.row h3{font-family:var(--font-display); font-weight:600; font-stretch:102%; font-size:1.08rem; line-height:1.32; text-wrap:balance; min-width:0}
.row h3 a{text-decoration:none}
.row h3 a:hover{color:var(--brand); text-decoration:underline; text-underline-offset:.18em}
.when{font-family:var(--font-mono); font-size:.78rem; color:var(--muted); font-variant-numeric:tabular-nums}
.cat{font-family:var(--font-mono); font-size:var(--fs-label); letter-spacing:.08em; text-transform:uppercase; color:var(--accent-ink)}
@media (max-width:759px){ .row,.row.role{grid-template-columns:1fr; gap:6px} }
.role-tools{display:grid; grid-template-columns:minmax(0,2fr) minmax(0,1fr); gap:16px; max-width:720px; margin-bottom:24px}
@media (max-width:599px){ .role-tools{grid-template-columns:1fr} }
#role-empty{margin-top:16px}

.events{display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:16px}
.event{display:grid; grid-template-columns:76px minmax(0,1fr); gap:18px; padding:20px; background:var(--surface); border:1px solid var(--line); border-radius:2px}
.event-date{display:grid; justify-items:center; align-content:center; gap:2px; background:var(--deep); color:var(--deep-fg); padding:10px 6px; border-radius:2px; font-variant-numeric:tabular-nums}
.event-date b{font-family:var(--font-display); font-weight:700; font-stretch:110%; font-size:1.7rem; line-height:1}
.event-date .mo{font-family:var(--font-mono); font-size:.7rem; letter-spacing:.1em; text-transform:uppercase; color:var(--deep-accent)}
.event-date .yr{font-family:var(--font-mono); font-size:.68rem; color:var(--deep-muted)}
.event-body{display:grid; gap:6px; align-content:start; min-width:0}
.event-body h3{font-family:var(--font-display); font-weight:600; font-stretch:102%; font-size:1.08rem; line-height:1.3; text-wrap:balance}
.event-body h3 a{text-decoration:none}
.event-body h3 a:hover{color:var(--brand); text-decoration:underline; text-underline-offset:.18em}
.event-meta{font-size:var(--fs-small); color:var(--muted)}
@media (max-width:759px){ .events{grid-template-columns:1fr} }

.steps{display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:24px 20px; margin:0; padding:0; list-style:none; counter-reset:step}
.step{display:grid; gap:8px; align-content:start; border-top:2px solid var(--fg); padding-top:14px; counter-increment:step; min-width:0}
.step::before{content:counter(step, decimal-leading-zero); font-family:var(--font-mono); font-size:.78rem; color:var(--accent-ink)}
.step h3{font-family:var(--font-display); font-weight:600; font-stretch:104%; font-size:1.1rem}
.step p{color:var(--muted); font-size:var(--fs-small)}
@media (max-width:999px){ .steps{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:599px){ .steps{grid-template-columns:1fr} }
.tips{max-width:780px; border-top:1px solid var(--line)}
.tips li{display:grid; grid-template-columns:28px minmax(0,1fr); gap:12px; padding-block:14px; border-bottom:1px solid var(--line)}
.tips li::before{content:"→"; color:var(--accent-ink); font-weight:600}

.alert{display:grid; grid-template-columns:auto minmax(0,1fr); gap:16px; align-items:start; background:var(--accent-soft); border:1px solid var(--accent); padding:20px 24px; border-radius:2px}
.alert svg{width:24px; height:24px; color:var(--accent-ink)}
.alert h2{font-family:var(--font-display); font-weight:650; font-stretch:106%; font-size:1.15rem; margin-bottom:6px}
.alert p{font-size:var(--fs-small); max-width:80ch}
.alert a{color:var(--accent-ink); font-weight:600}

.stats{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 24px; border-top:1px solid var(--line); border-bottom:1px solid var(--line); margin-top:44px}
.stat{display:grid; gap:4px; padding-block:24px; min-width:0}
.stat b{font-family:var(--font-display); font-weight:700; font-stretch:112%; font-size:clamp(1.8rem, 2vw + 1.1rem, 2.7rem); line-height:1.05; color:var(--brand); font-variant-numeric:tabular-nums; overflow-wrap:anywhere}
.stat span{color:var(--muted); font-size:var(--fs-small)}
@media (max-width:599px){ .stats{grid-template-columns:1fr} .stat + .stat{border-top:1px solid var(--line)} }

.link-grid{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 28px; border-top:1px solid var(--line)}
.link-grid a{display:flex; justify-content:space-between; align-items:center; gap:12px; padding-block:16px; border-bottom:1px solid var(--line); color:var(--fg); text-decoration:none; font-weight:600}
.link-grid a span{color:var(--brand); transition:transform .2s ease}
.link-grid a:hover{color:var(--brand)}
.link-grid a:hover span{transform:translateX(3px)}
@media (max-width:899px){ .link-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:599px){ .link-grid{grid-template-columns:1fr} }

.offer-grid.c3{grid-template-columns:repeat(3,minmax(0,1fr))}
@media (max-width:899px){ .offer-grid.c3{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:599px){ .offer-grid.c3{grid-template-columns:1fr} }
.speak{margin-top:28px; margin-bottom:0}
.speak a{color:var(--brand); font-weight:600}

.people{display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:28px 24px}
.person{display:grid; gap:8px; align-content:start; min-width:0}
.avatar{aspect-ratio:1; max-width:100%; display:grid; place-items:center; background:linear-gradient(145deg, var(--plate-1), var(--plate-2)); color:var(--plate-ink); font-family:var(--font-mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; border-radius:2px}
.person h3{font-family:var(--font-display); font-weight:600; font-stretch:104%; font-size:1.08rem}
.person p{color:var(--muted); font-size:var(--fs-small)}
@media (max-width:899px){ .people{grid-template-columns:repeat(2,minmax(0,1fr))} }

.office-card{display:grid; grid-template-columns:minmax(0,1.4fr) minmax(0,1fr); gap:24px 48px; max-width:920px; background:var(--surface); border:1px solid var(--line); padding:28px; border-radius:2px}
.office-main,.office-side{display:grid; gap:8px; align-content:start; justify-items:start; min-width:0}
.office-main h3{font-family:var(--font-display); font-weight:650; font-stretch:112%; font-size:1.6rem; line-height:1.1}
.office-card address{font-style:normal; line-height:1.7}
.office-side .label{margin-top:6px}
@media (max-width:699px){ .office-card{grid-template-columns:1fr; padding:22px} }
.cta-links{display:flex; flex-wrap:wrap; gap:10px}

/* Detail pages */
.page-hero .eyebrow{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px}
.page-hero .eyebrow .label{color:var(--deep-accent)}
.page-hero .sample{color:var(--deep-accent); border-color:var(--deep-accent)}
.page-hero .meta{font-family:var(--font-mono); font-size:.78rem; color:var(--deep-muted); font-variant-numeric:tabular-nums}
.article{display:grid; grid-template-columns:minmax(0,1fr) 300px; gap:40px 64px; align-items:start}
.prose{min-width:0; display:grid; gap:1em; align-content:start}
.prose h2{font-family:var(--font-display); font-weight:650; font-stretch:108%; font-size:1.45rem; line-height:1.2; margin-top:.8em; text-wrap:balance}
.prose h2:first-child{margin-top:0}
.prose p,.prose li{font-size:1.06rem; line-height:1.7; max-width:68ch}
.prose .lead{font-size:1.2rem; line-height:1.6}
.prose ul,.sol ul{list-style:disc; padding-left:1.25em; display:grid; gap:.45em}
.prose li::marker,.sol li::marker{color:var(--accent)}
.prose a:not(.btn):not(.link-arrow){color:var(--brand); text-underline-offset:.18em}
.sol ul{color:var(--muted); font-size:var(--fs-small)}
.aside-box{display:grid; gap:18px; background:var(--surface); border:1px solid var(--line); border-top:3px solid var(--accent); padding:22px; border-radius:2px; position:sticky; top:calc(92px + env(safe-area-inset-top,0px))}
.aside-box dl{margin:0; display:grid; gap:14px}
.aside-box dt{font-family:var(--font-mono); font-size:var(--fs-label); letter-spacing:.09em; text-transform:uppercase; color:var(--muted); margin-bottom:3px}
.aside-box dd{margin:0; font-weight:500; line-height:1.5}
.aside-box dd a,.aside-links a{color:var(--brand); text-decoration:none}
.aside-box dd a:hover,.aside-links a:hover{text-decoration:underline; text-underline-offset:.18em}
.aside-links{display:grid; gap:6px; border-top:1px solid var(--line); padding-top:14px; font-size:var(--fs-small)}
.glance{display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; margin-bottom:48px}
.field input[type="file"]{padding:9px 10px; background:var(--surface)}
@media (max-width:899px){ .article{grid-template-columns:1fr} .aside-box{position:static} }
@media (max-width:759px){ .glance{grid-template-columns:1fr} }

/* Illustrations */
.plate.has-img{background:var(--deep)}
.plate.has-img::before,.plate.has-img::after{display:none}
.plate img,.page-hero-media img,.tile-media img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block}
.page-hero.has-img::before,.page-hero.has-img::after{display:none}
.page-hero-grid{display:grid; grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:0 48px; align-items:center}
.page-hero-media{position:relative; aspect-ratio:16/10; max-width:100%; overflow:hidden; border-radius:2px; margin-block:32px; border:1px solid var(--deep-line)}
@media (max-width:899px){ .page-hero-grid{grid-template-columns:1fr} .page-hero-grid .page-hero-inner{padding-bottom:24px} .page-hero-media{margin-block:0 36px} }
.tile.has-img{justify-content:flex-start}
.tile.has-img::before{display:none}
.tile-media{position:relative; aspect-ratio:16/10; margin:-26px -26px 10px; overflow:hidden}

/* Photo-led banners, highlight images and promo tiles */
.hero.hero-photo{min-height:clamp(460px, 50vw, 640px); display:flex; align-items:flex-end}
.hero.hero-photo::before{background:linear-gradient(90deg, var(--deep) 0%, color-mix(in srgb, var(--deep) 86%, transparent) 36%, color-mix(in srgb, var(--deep) 25%, transparent) 72%, transparent 100%); background-size:auto; opacity:1; -webkit-mask-image:none; mask-image:none}
.hero-media{position:absolute; inset:0; z-index:-2}
.hero-media img,.hl-img img{position:absolute; inset:0; width:100%; height:100%; object-fit:cover; display:block}
.hero-inner{width:100%; padding-block:120px 64px}
.hero-photo .hero-copy{max-width:760px}
.hero-photo h1{max-width:20ch}
.hero-photo h1 a{color:inherit; text-decoration:none}
.hero-photo h1 a:hover{text-decoration:underline; text-decoration-color:var(--deep-accent); text-decoration-thickness:.06em; text-underline-offset:.12em}
.hero-photo .lede,.page-hero.has-img .lede{color:var(--deep-fg); opacity:.9}
.eyebrow-row{display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; margin:0}
.eyebrow-row .label{color:var(--deep-accent)}
.hero-photo .sample{color:var(--deep-accent); border-color:var(--deep-accent)}

.page-hero.has-img{min-height:clamp(380px, 38vw, 520px); display:flex; align-items:flex-end}
.page-hero.has-img::before{display:block; content:""; position:absolute; inset:0; width:auto; height:auto; transform:none; border:0; border-radius:0; opacity:1; z-index:-1;
  background:linear-gradient(90deg, var(--deep) 0%, color-mix(in srgb, var(--deep) 84%, transparent) 38%, color-mix(in srgb, var(--deep) 22%, transparent) 74%, transparent 100%)}
.page-hero.has-img .page-hero-grid{display:block; width:100%}
.page-hero.has-img .page-hero-inner{max-width:720px; padding-block:96px 56px}
.page-hero.has-img .page-hero-media{position:absolute; inset:0; z-index:-2; margin:0; aspect-ratio:auto; max-width:none; border:0; border-radius:0}
@media (max-width:899px){
  .hero.hero-photo::before,.page-hero.has-img::before{background:color-mix(in srgb, var(--deep) 80%, transparent)}
  .hero-inner{padding-block:96px 44px}
  .page-hero.has-img .page-hero-inner{padding-block:72px 40px}
}

.hl-img{display:block; position:relative; aspect-ratio:16/9; max-width:100%; overflow:hidden; border-radius:2px; background:var(--deep); margin-bottom:8px}
.hl-img img,.tile-media img,.card .plate img{transition:transform .4s ease}
.hl:hover .hl-img img,.tile:hover .tile-media img,.card:hover .plate img{transform:scale(1.03)}

.tile.has-img{justify-content:flex-end; min-height:420px}
.tile.has-img .tile-media{position:absolute; inset:0; margin:0; aspect-ratio:auto; z-index:-2}
.tile.has-img::after{content:""; position:absolute; inset:0; z-index:-1; background:linear-gradient(180deg, transparent 18%, color-mix(in srgb, var(--deep) 94%, transparent) 70%)}
.tile.has-img p{color:var(--deep-fg); opacity:.86}

@media (prefers-reduced-motion: reduce){ *,*::before,*::after{transition:none!important; animation:none!important; scroll-behavior:auto!important} }
