/* Korestar Exploration — shared stylesheet (generated from the former inline styles). */

/* Archivo, self-hosted. Previously two chained third-party round trips before any
   text could paint: fonts.googleapis.com for this CSS, then fonts.gstatic.com for
   the file. Served from our own origin the @font-face rules arrive with the
   stylesheet the page is already fetching.

   One variable file per unicode-range, matching Google's own split — the browser
   downloads only the ranges the page's characters need, which for this site's
   English copy (including its em-dashes and ↓ arrows) is `latin` alone. `latin-ext`
   is here so accented copy added later doesn't silently drop to Helvetica; it costs
   nothing unless a page actually uses a character from its range.

   font-weight/font-stretch are ranges, not values: this is one variable font
   covering every weight the site uses (300–800) and the `wdth` axis that
   font-variation-settings:'wdth' addresses further down. */
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-weight:100 900;
  font-stretch:62% 125%;
  font-display:swap;
  src:url(../fonts/archivo-latin.woff2) format('woff2');
  unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
@font-face{
  font-family:'Archivo';
  font-style:normal;
  font-weight:100 900;
  font-stretch:62% 125%;
  font-display:swap;
  src:url(../fonts/archivo-latin-ext.woff2) format('woff2');
  unicode-range:U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}

/* Palette + metrics */
:root{
  --c-ink:#26272B;
  --c-bg:#F7F5F1;
  --c-panel:#22242A;
  --c-panel2:#2A2C33;
  --c-foot:#1B1C21;
  --c-white:#FFFFFF;
  --c-gold:#C8A030;
  --c-gold2:#9C7A1C;
  --c-goldb:#E3B84A;
  --c-goldh:#D9B34A;
  --c-teal:#106880;
  --c-teal2:#0F6478;
  --c-tealb:#5FB6CE;
  --c-teal3:#1B8AA6;
  --c-rust:#D07010;
  --c-rust2:#B45E0A;
  --c-rustb:#E89A4E;
  --c-ph:#DDD9D0;
  --c-grey1:#8A8B90;
  --c-grey2:#5C5E66;
  --ink:38,39,43;
  --cream:247,245,241;
  --gold-rgb:200,160,48;
  --teal-rgb:16,104,128;
  --rust-rgb:208,112,16;
  --font:'Archivo','Helvetica Neue',Helvetica,sans-serif;
  --maxw:1440px;
  --gut:48px;
  --nav-h:84px;
}

/* Base */
html{scroll-behavior:smooth}
body{margin:0;background:var(--c-bg);color:var(--c-ink);font-family:var(--font)}
a{color:var(--c-gold2)}
a:hover{opacity:.92}
input,textarea{box-sizing:border-box}

/* Animations */
@keyframes kMaskUp{from{transform:translateY(115%)}to{transform:translateY(0)}}
@keyframes kPulse{0%,100%{opacity:1}50%{opacity:.2}}
@keyframes kRise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}

/* Scroll-reveal (driven by site-fx.js + data-rv/data-seq) */
[data-seq]>*{animation:kRise .7s cubic-bezier(.19,.8,.22,1) both}
[data-seq]>*:nth-child(1){animation-delay:.06s}
[data-seq]>*:nth-child(2){animation-delay:.17s}
[data-seq]>*:nth-child(3){animation-delay:.28s}
[data-seq]>*:nth-child(4){animation-delay:.39s}
[data-seq]>*:nth-child(5){animation-delay:.50s}
[data-seq]>*:nth-child(6){animation-delay:.61s}
.rvload [data-rv=""]{opacity:0}
@media (prefers-reduced-motion:reduce){[data-seq]>*{animation:none}.rvload [data-rv=""]{opacity:1}}

/* Components & utilities */
.container{max-width:var(--maxw);margin:0 auto}
.gut{padding:0 var(--gut)}
.tnum{font-variant-numeric:tabular-nums}
.ovh{overflow:hidden}
.nowrap{white-space:nowrap}
.flex-col{display:flex;flex-direction:column}
.fw-600{font-weight:600}
.mb-18{margin-bottom:18px}
.mb-20{margin-bottom:20px}
.mb-24{margin-bottom:24px}
.mb-28{margin-bottom:28px}
.mb-32{margin-bottom:32px}
.mb-36{margin-bottom:36px}
.mb-40{margin-bottom:40px}
.gap-16{gap:16px}
.pt-14{padding-top:14px}
.accent-gold{color:var(--c-gold2)}
.accent-goldb{color:var(--c-goldb)}
.accent-teal{color:var(--c-teal2)}
.accent-rust{color:var(--c-rust2)}
.eyebrow{display:flex;align-items:center;gap:16px}
.eyebrow__label{font-size:11px;font-weight:600;letter-spacing:.3em;color:rgba(var(--ink),.55)}
.rule{width:44px;height:1px;background:var(--c-gold)}
.rule-goldb{width:44px;height:1px;background:var(--c-goldb)}
.rule-teal{width:44px;height:1px;background:var(--c-teal)}
.rule-tealb{width:44px;height:1px;background:var(--c-tealb)}
.rule-rust{width:44px;height:1px;background:var(--c-rust)}
.rule-rustb{width:44px;height:1px;background:var(--c-rustb)}
.rule-sm{width:18px;height:1px;background:var(--c-gold)}
.kicker{font-size:11px;font-weight:600;letter-spacing:.3em;color:rgba(var(--cream),.55)}
.head-row{display:flex;align-items:baseline;justify-content:space-between}
.ubar{background:var(--c-panel);color:var(--c-bg)}
.ubar__inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gut);height:44px}
.ubar__brand{display:flex;align-items:center;gap:12px;text-decoration:none;color:var(--c-bg)}
.ubar__place{font-size:10.5px;font-weight:600;letter-spacing:.2em;color:rgba(var(--cream),.55)}
.ubar__tag{font-size:11px;font-weight:700;letter-spacing:.14em;color:var(--c-goldb)}
.ubar__actions{display:flex;align-items:center;gap:22px}
.ubar__social-wrap{display:flex;align-items:center;gap:18px}
.ubar__social{display:flex;color:rgba(var(--cream),.7);transition:color .25s}
.nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.9);backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid rgba(var(--ink),.1)}
.nav__inner{max-width:var(--maxw);margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:0 var(--gut);height:var(--nav-h);transition:height .28s ease}
/* align-self:stretch rather than the bar's default centring: the brand's own content
   is only 40px tall (the mark) inside an 84px bar, so a centred box leaves a 22px dead
   band above and below where the pointer drops back to an arrow. That is what makes the
   cursor flicker as you approach the logo — and again on scroll, when the bar condenses
   84->64px and slides the band out from under a stationary mouse. Stretching makes the
   hit area the full bar height, which is what .nav__link already does with height:100%. */
.nav__brand{display:flex;align-items:center;align-self:stretch;gap:12px;text-decoration:none;cursor:pointer}
.nav__mark{width:auto;height:40px;display:block;transition:transform .35s cubic-bezier(.19,.8,.22,1)}
.nav__wordmark{display:flex;flex-direction:column;gap:3px}
.nav__word{font-weight:800;font-size:21px;letter-spacing:.14em;line-height:1;color:var(--c-ink);font-variation-settings:'wdth' 112}
.nav__sub{font-weight:600;font-size:10px;letter-spacing:.35em;line-height:1;color:rgba(var(--ink),.55);transition:color .25s ease}
/* The logo was the one item in the bar with no hover state of its own: it inherited the
   global a:hover{opacity:.92}, an untransitioned 8% dip that is invisible on a near-black
   wordmark. Opacity goes back to 1 and is replaced by a two-part cue — the mark nudges up
   in scale, the subline picks up the same gold as the active nav link. */
.nav__brand:hover,.nav__brand:focus-visible{opacity:1}
.nav__brand:hover .nav__mark,.nav__brand:focus-visible .nav__mark{transform:scale(1.05)}
.nav__brand:hover .nav__sub,.nav__brand:focus-visible .nav__sub{color:var(--c-gold2)}
.nav__menu{display:flex;align-items:center;gap:34px;align-self:stretch}
.nav__link-active{display:flex;align-items:center;height:100%;font-size:11.5px;font-weight:700;letter-spacing:.16em;text-decoration:none;color:var(--c-gold2)}
.nav__link{display:flex;align-items:center;height:100%;font-size:11.5px;font-weight:500;letter-spacing:.16em;text-decoration:none;color:rgba(var(--ink),.7);transition:color .14s}
.nav__link-dd{display:flex;align-items:center;gap:7px;height:100%;font-size:11.5px;font-weight:500;letter-spacing:.16em;text-decoration:none;color:rgba(var(--ink),.7);transition:color .14s}
.nav__link-dd-active{display:flex;align-items:center;gap:7px;height:100%;font-size:11.5px;font-weight:700;letter-spacing:.16em;text-decoration:none;color:var(--c-gold2)}
.nav__dd{position:relative;display:flex;align-items:center;align-self:stretch}
.nav__caret{opacity:.55}
.dd__menu{position:absolute;top:100%;left:-24px;min-width:220px;background:var(--c-white);border:1px solid rgba(var(--ink),.1);border-top:2px solid var(--c-gold);box-shadow:0 24px 48px rgba(var(--ink),.16);padding:6px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .13s ease,transform .13s ease,visibility .13s;z-index:50}
.dd__menu-wide{position:absolute;top:100%;left:-24px;min-width:248px;background:var(--c-white);border:1px solid rgba(var(--ink),.1);border-top:2px solid var(--c-gold);box-shadow:0 24px 48px rgba(var(--ink),.16);padding:6px 0;opacity:0;visibility:hidden;transform:translateY(6px);transition:opacity .13s ease,transform .13s ease,visibility .13s;z-index:50}
.dd__item{display:block;padding:11px 22px;font-size:12.5px;font-weight:500;text-decoration:none;color:rgba(var(--ink),.68);transition:background .2s,color .2s}
.dd__item-split{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:11px 22px;font-size:12.5px;font-weight:500;text-decoration:none;color:rgba(var(--ink),.68);transition:background .2s,color .2s}
.dd__item-strong{display:block;padding:11px 22px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--c-gold2)}
.dd__item-strong-split{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:11px 22px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--c-gold2)}
.dd__item-strong-split-teal{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:11px 22px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--c-teal2)}
.dd__item-strong-split-rust{display:flex;align-items:baseline;justify-content:space-between;gap:20px;padding:11px 22px;font-size:12.5px;font-weight:700;text-decoration:none;color:var(--c-rust2)}
.dd__badge{font-size:8.5px;font-weight:700;letter-spacing:.18em;color:rgba(var(--ink),.4)}
.footer{position:relative;overflow:hidden;background:var(--c-foot);border-top:3px solid var(--c-gold);color:var(--c-bg)}
.footer__mark-bg{position:absolute;right:-130px;bottom:-150px;width:auto;height:520px;opacity:.05;pointer-events:none}
.footer__inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:72px var(--gut) 36px}
.footer__grid{display:grid;grid-template-columns:1.3fr 1fr 1fr 1fr;gap:56px;align-items:start;margin-bottom:64px}
.footer__brand{display:flex;align-items:center;gap:14px;text-decoration:none}
.footer__mark{width:auto;height:52px;display:block}
.footer__wordmark{display:flex;flex-direction:column;gap:4px}
.footer__word{font-weight:800;font-size:24px;letter-spacing:.14em;line-height:1;color:var(--c-bg);font-variation-settings:'wdth' 112}
.footer__sub{font-weight:600;font-size:10.5px;letter-spacing:.38em;line-height:1;color:rgba(var(--cream),.55)}
.footer__tagline{margin:22px 0 0;max-width:300px;font-size:13px;line-height:1.7;color:rgba(var(--cream),.55)}
.footer__social-row{display:flex;gap:14px;margin-top:22px}
.footer__social{display:flex;align-items:center;justify-content:center;width:34px;height:34px;border:1px solid rgba(var(--cream),.25);color:rgba(var(--cream),.7);transition:border-color .25s,color .25s}
.footer__colhead{display:flex;align-items:center;gap:10px;margin-bottom:18px}
.footer__coltitle{font-size:10px;font-weight:700;letter-spacing:.26em;color:rgba(var(--cream),.5)}
.footer__links{display:flex;flex-direction:column;gap:12px}
.footer__link{font-size:13px;text-decoration:none;color:rgba(var(--cream),.72);transition:color .25s}
.footer__link-split{display:flex;align-items:baseline;gap:10px;font-size:13px;text-decoration:none;color:rgba(var(--cream),.72);transition:color .25s}
.footer__badge{font-size:8.5px;font-weight:700;letter-spacing:.16em;color:rgba(var(--cream),.35)}
.footer__phone{font-size:13px;text-decoration:none;color:rgba(var(--cream),.72);font-variant-numeric:tabular-nums;transition:color .25s}
.footer__place{font-size:13px;color:rgba(var(--cream),.72)}
.footer__cta{display:inline-flex;align-items:center;gap:10px;margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:11px 16px;align-self:flex-start;transition:background .25s}
.footer__bottom{display:flex;justify-content:space-between;align-items:center;gap:32px;padding-top:22px;border-top:1px solid rgba(var(--cream),.12)}
.footer__copy{font-size:10.5px;color:rgba(var(--cream),.4)}
.footer__origin{display:flex;align-items:center;gap:10px;font-size:10px;font-weight:700;letter-spacing:.24em;color:rgba(var(--cream),.35)}
.footer__origin-mark{width:auto;height:14px;opacity:.5}
.footer__legal{display:flex;justify-content:flex-end;gap:18px;font-size:10.5px;color:rgba(var(--cream),.4)}
.footer__legal-link{color:inherit;text-decoration:none;transition:color .25s}
.page{min-width:1180px}
.page--flex{min-width:1180px;display:flex;flex-direction:column;min-height:100vh}
.page-header{background:var(--c-white);border-bottom:1px solid rgba(var(--ink),.1)}
.page-header__inner{max-width:var(--maxw);margin:0 auto;padding:72px var(--gut) 56px}
.page-body{max-width:var(--maxw);margin:0 auto;padding:72px var(--gut) 96px}
.page-body-flex{flex:1;max-width:var(--maxw);width:100%;margin:0 auto;box-sizing:border-box;padding:72px var(--gut) 96px}
.hero-h1{animation:kMaskUp 1s cubic-bezier(.19,.8,.22,1) .15s both;margin:0;font-size:64px;line-height:1.02;font-weight:800;letter-spacing:-0.015em;font-variation-settings:'wdth' 102}
/* kMaskUp slides an element up from 115% of its own height, so it only reads as a mask
   reveal behind something that clips it — every other element carrying it sits in an .ovh
   wrapper (the h1 just above, both hero lines). The standfirst never did, so on a page like
   Projects its 82px of text began 94px low, hanging 37px into the section below, and was
   watched sliding up across the boundary. The 26px gap moves onto the mask: left on the
   paragraph it would sit inside the clip box (overflow:hidden stops it collapsing out) and
   the text would still be seen travelling through it. */
.ovh-sub{overflow:hidden;margin-top:26px}
.hero-sub{animation:kMaskUp 1s cubic-bezier(.19,.8,.22,1) .3s both;margin:0;max-width:640px;font-size:16px;line-height:1.7;color:rgba(var(--ink),.66)}
.kin-head{animation:kMaskUp .9s cubic-bezier(.19,.8,.22,1) .05s both;display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:26px}
.kin-eyebrow{animation:kMaskUp .9s cubic-bezier(.19,.8,.22,1) .05s both;display:flex;align-items:center;gap:16px;margin-bottom:26px}
.hero{position:relative;height:600px;overflow:hidden;background:var(--c-panel)}
.hero__media{position:absolute;inset:-110px 0}
.hero__picture{display:block;width:100%;height:100%}
.hero__img{width:100%;height:100%;object-fit:cover;display:block}
.hero__scrim{position:absolute;inset:0;background:linear-gradient(180deg,rgba(24,25,30,.34) 0%,rgba(24,25,30,.12) 38%,rgba(24,25,30,.82) 100%);pointer-events:none}
.hero__copy{position:absolute;left:0;right:0;bottom:104px;pointer-events:none}
.hero__line{animation:kMaskUp 1s cubic-bezier(.19,.8,.22,1) .15s both;font-size:64px;line-height:1.04;font-weight:800;letter-spacing:-0.015em;color:var(--c-white);font-variation-settings:'wdth' 100}
.hero__line2{animation:kMaskUp 1s cubic-bezier(.19,.8,.22,1) .28s both;font-size:64px;line-height:1.04;font-weight:800;letter-spacing:-0.015em;color:var(--c-white);font-variation-settings:'wdth' 100}
.snapshot{position:relative;z-index:5;max-width:var(--maxw);margin:-64px auto 0;padding:0 var(--gut)}
.snapshot__panel{display:grid;grid-template-columns:auto 1fr auto;gap:44px;align-items:center;background:var(--c-white);border:1px solid rgba(var(--ink),.1);box-shadow:0 28px 64px rgba(var(--ink),.14);padding:34px 44px}
.snapshot__eyebrow{display:flex;align-items:center;gap:9px;font-size:10.5px;font-weight:600;letter-spacing:.24em;color:rgba(var(--ink),.55);margin-bottom:10px}
.snapshot__figrow{display:flex;align-items:baseline;gap:14px}
.snapshot__num{font-size:54px;font-weight:800;letter-spacing:-0.01em;font-variant-numeric:tabular-nums;line-height:1}
.snapshot__pill{font-size:13px;font-weight:700;color:var(--c-gold2);background:rgba(var(--gold-rgb),.12);padding:6px 10px}
.snapshot__stats{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-left:1px solid rgba(var(--ink),.1)}
.snap__cell{padding:6px 0 6px 44px;border-left:1px solid rgba(var(--ink),.1)}
.snap__cell-first{padding:6px 0 6px 44px}
.snap__val{font-size:16px;font-weight:700}
.chip-num{font-size:11px;font-weight:700;color:var(--c-white);font-variant-numeric:tabular-nums}
.snapshot__cta{display:flex;flex-direction:column;gap:10px}
.dot-bright{width:6px;height:6px;border-radius:50%;background:var(--c-goldb);animation:kPulse 1.6s ease-in-out infinite}
.sec-96-80{max-width:var(--maxw);margin:0 auto;padding:96px var(--gut) 80px}
.sec-96-96{max-width:var(--maxw);margin:0 auto;padding:96px var(--gut) 96px}
.sec-88-92{max-width:var(--maxw);margin:0 auto;padding:88px var(--gut) 92px}
.sec-88-96{max-width:var(--maxw);margin:0 auto;padding:88px var(--gut) 96px}
.sec-white{background:var(--c-white);border-top:1px solid rgba(var(--ink),.1)}
.grid-auto-44{display:grid;grid-template-columns:auto 1fr;gap:44px;align-items:start}
.lede{margin:0;font-size:30px;line-height:1.5;font-weight:300;text-wrap:pretty}
.lede-24{margin:0;font-size:24px;line-height:1.55;font-weight:300}
.inline-link{font-weight:600;color:var(--c-gold2);text-decoration:none}
.counters{display:grid;grid-template-columns:repeat(4,1fr);gap:44px;margin-top:60px;padding-top:36px;border-top:1px solid rgba(var(--ink),.1)}
.figure-46{font-size:46px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.figure-46-gold{font-size:46px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;color:var(--c-gold2)}
.figure-44{font-size:44px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1}
.figure-44-goldb{font-size:44px;font-weight:800;font-variant-numeric:tabular-nums;line-height:1;color:var(--c-goldb)}
.figure-34{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums}
.figure-34-gold{font-size:34px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--c-gold2)}
.figure-30-gold{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--c-gold2)}
.figure-30-rust{font-size:30px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--c-rust2)}
.figure-26{font-size:26px;font-weight:800;font-variant-numeric:tabular-nums;margin-bottom:14px}
.figure-22{font-size:22px;font-weight:800;font-variant-numeric:tabular-nums}
.figure-22b{font-size:22px;font-weight:800}
.figure-22-gold{font-size:22px;font-weight:800;color:var(--c-gold2)}
.figure-22-teal{font-size:22px;font-weight:800;color:var(--c-teal2)}
.stat__label-sm{margin-top:8px;font-size:10px;letter-spacing:.2em;color:rgba(var(--ink),.5)}
.stat__label{margin-top:12px;font-size:10.5px;letter-spacing:.22em;color:rgba(var(--ink),.5)}
.stat__label-d{margin-top:12px;font-size:10.5px;letter-spacing:.22em;color:rgba(var(--cream),.5)}
.stat__sub{margin-top:6px;font-size:10px;letter-spacing:.2em;color:rgba(var(--ink),.5)}
.footnote{margin-top:12px;font-size:11px;color:rgba(var(--ink),.45)}
.footnote-mt10{margin-top:10px;font-size:11px;color:rgba(var(--ink),.45)}
.footnote-mt18{margin-top:18px;font-size:11px;color:rgba(var(--ink),.45)}
.footnote-line{margin-top:12px;font-size:11px;line-height:1.6;color:rgba(var(--ink),.45)}
.note-11{font-size:11px;color:rgba(var(--ink),.45)}
.panel{position:relative;overflow:hidden;background:var(--c-panel);color:var(--c-bg)}
.panel__inner{position:relative;max-width:var(--maxw);margin:0 auto;padding:70px var(--gut)}
.panel__inner-lg{position:relative;max-width:var(--maxw);margin:0 auto;padding:84px var(--gut) 92px}
.panel__mark-r{position:absolute;right:-60px;top:50%;transform:translateY(-50%);width:auto;height:280px;opacity:.07;pointer-events:none}
.mark-bg-l{position:absolute;left:-140px;top:-160px;width:auto;height:480px;opacity:.05;pointer-events:none}
.panel__row{display:flex;align-items:center;justify-content:space-between;gap:48px}
.panel__title{font-size:32px;font-weight:800;letter-spacing:-0.01em;line-height:1.15;font-variation-settings:'wdth' 102}
.panel__sub{margin-top:12px;font-size:13.5px;color:rgba(var(--cream),.6)}
.panel-note{margin-top:36px;padding-top:20px;border-top:1px solid rgba(var(--cream),.15);font-size:11.5px;color:rgba(var(--cream),.45)}
.cta-panel{margin-top:88px;background:var(--c-panel);color:var(--c-bg);padding:52px 48px}
.quote-dark{background:var(--c-panel);color:var(--c-bg);padding:52px 48px}
.sec-panel{scroll-margin-top:104px;position:relative;overflow:hidden;background:var(--c-panel);color:var(--c-bg)}
.link-bright{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-decoration:none;color:rgba(var(--cream),.6);transition:color .25s}
.card-dark--gold{display:block;background:var(--c-panel2);border:1px solid rgba(var(--cream),.08);border-top:3px solid var(--c-gold);padding:32px 34px;text-decoration:none;color:inherit;transition:transform .3s,box-shadow .3s}
.card-dark--teal{display:block;background:var(--c-panel2);border:1px solid rgba(var(--cream),.08);border-top:3px solid var(--c-teal3);padding:32px 34px;text-decoration:none;color:inherit;transition:transform .3s,box-shadow .3s}
.card-dark--rust{display:block;background:var(--c-panel2);border:1px solid rgba(var(--cream),.08);border-top:3px solid var(--c-rust);padding:32px 34px;text-decoration:none;color:inherit;transition:transform .3s,box-shadow .3s}
.card__name{font-size:26px;font-weight:800;font-variation-settings:'wdth' 108}
.card__desc{margin:0 0 20px;font-size:14px;line-height:1.65;color:rgba(var(--cream),.6)}
.card__stat-gold{font-size:13px;font-weight:700;color:var(--c-goldb);font-variant-numeric:tabular-nums}
.card__stat-tealb{font-size:13px;font-weight:700;color:var(--c-tealb);font-variant-numeric:tabular-nums}
.card__stat-rust{font-size:13px;font-weight:700;color:var(--c-rustb);font-variant-numeric:tabular-nums}
.h2-58{margin:0 0 26px;font-size:58px;line-height:1;font-weight:800;letter-spacing:-0.01em;font-variation-settings:'wdth' 104}
.h2-52{margin:0 0 22px;font-size:52px;line-height:1;font-weight:800;letter-spacing:-0.01em;font-variation-settings:'wdth' 104}
.h2-44{margin:0 0 24px;font-size:44px;line-height:1.05;font-weight:800;letter-spacing:-0.01em;font-variation-settings:'wdth' 104}
.prose-440{margin:0 0 32px;max-width:440px;font-size:15px;line-height:1.7;color:rgba(var(--ink),.66)}
.cta-arrow{display:inline-flex;align-items:center;gap:12px;margin-top:32px;font-size:12px;font-weight:600;letter-spacing:.16em;text-decoration:none;color:var(--c-gold2);transition:gap .25s}
.cta-arrow-28{display:inline-flex;align-items:center;gap:12px;margin-top:28px;font-size:12px;font-weight:600;letter-spacing:.16em;text-decoration:none;color:var(--c-gold2);transition:gap .25s}
.cta-arrow-teal{display:inline-flex;align-items:center;gap:12px;margin-top:28px;font-size:12px;font-weight:600;letter-spacing:.16em;text-decoration:none;color:var(--c-teal2);transition:gap .25s}
.cta-arrow-rust{display:inline-flex;align-items:center;gap:12px;margin-top:28px;font-size:12px;font-weight:600;letter-spacing:.16em;text-decoration:none;color:var(--c-rust2);transition:gap .25s}
.img-frame-420{position:relative;display:block;height:420px;overflow:hidden;background:var(--c-ph)}
.img-frame-440{position:relative;height:440px;overflow:hidden;background:var(--c-ph)}
.img-frame-440w{position:relative;height:440px;overflow:hidden;background:var(--c-white);border:1px solid rgba(var(--ink),.1)}
.img-frame-460{position:relative;height:460px;overflow:hidden;background:var(--c-ph)}
.img-frame-480{position:relative;height:480px;overflow:hidden;background:var(--c-ph)}
.img-frame-520{position:relative;height:520px;overflow:hidden;background:var(--c-ph)}
.img-cover{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.img-cover-30{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 30%}
.img-cover-25{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 25%}
.img-contain{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;padding:24px;box-sizing:border-box}
.img-300{width:100%;max-width:300px;height:auto;display:block}
.map-tag-gold{position:absolute;left:0;bottom:0;background:var(--c-gold);color:var(--c-ink);font-size:10.5px;font-weight:700;letter-spacing:.2em;padding:10px 16px;pointer-events:none}
.map-tag-gold2{position:absolute;left:0;bottom:0;background:var(--c-gold);color:var(--c-ink);font-size:10.5px;font-weight:700;letter-spacing:.2em;padding:10px 16px}
.map-tag-dark{position:absolute;left:0;bottom:0;background:var(--c-panel);color:var(--c-bg);font-size:10.5px;font-weight:700;letter-spacing:.2em;padding:10px 16px;pointer-events:none}
.map-tag-teal{position:absolute;left:0;bottom:0;background:var(--c-teal);color:var(--c-white);font-size:10.5px;font-weight:700;letter-spacing:.2em;padding:10px 16px;pointer-events:none}
.map-tag-teal2{position:absolute;left:0;bottom:0;background:var(--c-teal);color:var(--c-white);font-size:10.5px;font-weight:700;letter-spacing:.2em;padding:10px 16px}
.map-tag-rust{position:absolute;left:0;bottom:0;background:var(--c-rust);color:var(--c-white);font-size:10.5px;font-weight:700;letter-spacing:.2em;padding:10px 16px;pointer-events:none}
.map-tag-rust2{position:absolute;left:0;bottom:0;background:var(--c-rust);color:var(--c-white);font-size:10.5px;font-weight:700;letter-spacing:.2em;padding:10px 16px}
.spec__val{font-size:14px;font-weight:600}
.spec__label{font-size:10px;letter-spacing:.22em;color:rgba(var(--ink),.5);margin-bottom:5px}
.spec__label-mb8{font-size:10px;letter-spacing:.22em;color:rgba(var(--ink),.5);margin-bottom:8px}
.spec__label-lg{font-size:10px;letter-spacing:.24em;color:rgba(var(--ink),.5);margin-bottom:6px}
.spec__label-d{font-size:10px;letter-spacing:.24em;color:rgba(var(--cream),.5);margin-bottom:6px}
.statbar{display:grid;grid-template-columns:repeat(4,1fr);background:var(--c-panel);color:var(--c-bg);padding:10px 34px;margin-bottom:64px}
.statbar-mb72{display:grid;grid-template-columns:repeat(4,1fr);background:var(--c-panel);color:var(--c-bg);padding:10px 34px;margin-bottom:72px}
.statbar-lg{display:grid;grid-template-columns:repeat(4,1fr);gap:44px;background:var(--c-panel);color:var(--c-bg);padding:46px 48px;margin-bottom:72px}
.statbar__cell{border-left:1px solid rgba(var(--cream),.18);padding:0 28px}
.statbar__val{font-size:17px;font-weight:700;line-height:1.4}
.card{background:var(--c-white);border:1px solid rgba(var(--ink),.1)}
.card--pad{background:var(--c-white);border:1px solid rgba(var(--ink),.1);padding:28px 30px}
.card--pad2{background:var(--c-white);border:1px solid rgba(var(--ink),.1);padding:34px 34px 30px}
.card--gold{background:var(--c-white);border:1px solid rgba(var(--ink),.1);border-top:3px solid var(--c-gold);padding:32px 34px}
.card--gold44{background:var(--c-white);border:1px solid rgba(var(--ink),.1);border-top:3px solid var(--c-gold);padding:44px}
.card--teal{background:var(--c-white);border:1px solid rgba(var(--ink),.1);border-top:3px solid var(--c-teal);padding:28px 30px}
.card--rust{background:var(--c-white);border:1px solid rgba(var(--ink),.1);border-top:3px solid var(--c-rust);padding:28px 30px}
.card-centered{background:var(--c-white);border:1px solid rgba(var(--ink),.1);padding:30px;display:flex;flex-direction:column;align-items:center;gap:18px}
.callout{margin-top:36px;background:var(--c-white);border:1px solid rgba(var(--ink),.1);padding:26px 30px;display:flex;align-items:center;justify-content:space-between;gap:32px}
.callout-dashed{background:var(--c-white);border:1px dashed rgba(var(--ink),.25);padding:36px 34px;display:flex;align-items:center;gap:28px}
.card__name-sm{font-size:19px;font-weight:800;font-variation-settings:'wdth' 106}
.card__desc-l{margin:0 0 16px;font-size:13.5px;line-height:1.65;color:rgba(var(--ink),.62)}
.card__stat-teal{font-size:13px;font-weight:700;color:var(--c-teal2);font-variant-numeric:tabular-nums}
.pname-17{font-size:17px;font-weight:800;font-variation-settings:'wdth' 106}
.commodity{font-weight:500;font-size:13px;color:rgba(var(--cream),.55)}
.tab-commodity{font-weight:500;font-size:13px;color:rgba(var(--cream),.55);margin-top:4px}
.legal-wrap{max-width:860px}
.card__stage{font-size:10px;font-weight:700;letter-spacing:.22em;color:rgba(var(--cream),.45);margin-bottom:8px}
.prose{margin:0;font-size:14.5px;line-height:1.75;color:rgba(var(--ink),.66)}
.prose-14{margin:0;font-size:14px;line-height:1.65;color:rgba(var(--ink),.62)}
.prose-135{margin:0;font-size:13.5px;line-height:1.65;color:rgba(var(--ink),.62)}
.prose-mb16{margin:0 0 16px;font-size:14.5px;line-height:1.75;color:rgba(var(--ink),.66)}
.prose-mb18{margin:0 0 18px;font-size:14.5px;line-height:1.75;color:rgba(var(--ink),.66)}
.prose-mb32{margin:0 0 32px;font-size:14.5px;line-height:1.75;color:rgba(var(--ink),.66)}
.prose-mb36{margin:0 0 36px;font-size:14.5px;line-height:1.75;color:rgba(var(--ink),.66)}
.prose-460{margin:0 0 28px;max-width:460px;font-size:14.5px;line-height:1.7;color:rgba(var(--ink),.66)}
.bio{margin:0;font-size:13.5px;line-height:1.7;color:rgba(var(--ink),.66)}
.bio2{margin:14px 0 0;font-size:14px;line-height:1.75;color:rgba(var(--ink),.7)}
.bio-para{margin:18px 0 0;font-size:14px;line-height:1.75;color:rgba(var(--ink),.7)}
.desc-62{font-size:13.5px;line-height:1.6;color:rgba(var(--ink),.62)}
.timeline-txt{font-size:13.5px;line-height:1.6;color:rgba(var(--ink),.75)}
.tl-strong{font-size:13.5px;font-weight:700;line-height:1.6}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.grid-2-24{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.grid-2-80{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:start}
.grid-2r-36{display:grid;grid-template-columns:repeat(2,1fr);gap:36px 0}
.grid-3r-36{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 0}
.grid-2-top{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(var(--ink),.12)}
.grid-2-top-460{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(var(--ink),.12);max-width:460px}
.grid-2-top-480{margin-top:44px;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(var(--ink),.12);max-width:480px}
.grid-2-top-center{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(var(--ink),.12);align-self:center}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:0}
.grid-3-24{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-bottom:36px}
.grid-3-32{display:grid;grid-template-columns:repeat(3,1fr);gap:32px}
.grid-3-36{display:grid;grid-template-columns:repeat(3,1fr);gap:36px}
.grid-3-top{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(var(--ink),.12)}
.grid-3-top-mt40{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid rgba(var(--ink),.12);margin-top:40px}
.grid-12-mb36{display:grid;grid-template-columns:1.2fr 1fr;gap:56px;align-items:start;margin-bottom:36px}
.grid-14{display:grid;grid-template-columns:1.4fr 1fr;gap:56px;align-items:start}
.grid-115{display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:start}
.grid-125{display:grid;grid-template-columns:1.25fr 1fr;gap:64px;align-items:start}
.grid-260{display:grid;grid-template-columns:260px 1fr;gap:72px;align-items:start}
.grid-320{display:grid;grid-template-columns:320px 1fr;gap:72px;align-items:start}
.cell-t{padding:16px 0;border-bottom:1px solid rgba(var(--ink),.12)}
.cell-tl{padding:16px 0 16px 24px;border-bottom:1px solid rgba(var(--ink),.12);border-left:1px solid rgba(var(--ink),.12)}
.cell16{padding:16px 0}
.cell16-l20{padding:16px 0 16px 20px;border-left:1px solid rgba(var(--ink),.12)}
.cell16-l24{padding:16px 0 16px 24px;border-left:1px solid rgba(var(--ink),.12)}
.cell14-t{padding:14px 0;border-bottom:1px solid rgba(var(--ink),.12)}
.cell14-tl{padding:14px 0 14px 22px;border-bottom:1px solid rgba(var(--ink),.12);border-left:1px solid rgba(var(--ink),.12)}
.cell14{padding:14px 0}
.cell14-l{padding:14px 0 14px 22px;border-left:1px solid rgba(var(--ink),.12)}
.cell18-t{padding:18px 0;border-bottom:1px solid rgba(var(--ink),.12)}
.cell18-tl{padding:18px 0 18px 24px;border-bottom:1px solid rgba(var(--ink),.12);border-left:1px solid rgba(var(--ink),.12)}
.cell18-l{padding:18px 0 18px 24px;border-left:1px solid rgba(var(--ink),.12)}
.cell-d-l{padding:18px 0 18px 24px;border-left:1px solid rgba(var(--cream),.14)}
.cell20-r{padding:20px 24px 20px 0}
.cell20-l{padding:20px 24px;border-left:1px solid rgba(var(--ink),.12)}
.cell20-l24{padding:20px 0 20px 24px;border-left:1px solid rgba(var(--ink),.12)}
.cell22-t{padding:22px 0;border-bottom:1px solid rgba(var(--ink),.12)}
.cell22-tl{padding:22px 0 22px 24px;border-bottom:1px solid rgba(var(--ink),.12);border-left:1px solid rgba(var(--ink),.12)}
.cell22{padding:22px 0}
.cell22-l{padding:22px 0 22px 24px;border-left:1px solid rgba(var(--ink),.12)}
.proj-cell{padding:18px 0}
.row-issue{display:grid;grid-template-columns:140px 1fr;padding:16px 28px;border-bottom:1px solid rgba(var(--ink),.08)}
.row-issue-hl{display:grid;grid-template-columns:140px 1fr;padding:16px 28px;background:rgba(var(--gold-rgb),.07)}
.t-val{font-size:13.5px;font-weight:600}
.val-right{font-size:13.5px;text-align:right}
.val-strong{font-size:13.5px;text-align:right;font-weight:700}
.val-strong2{font-size:13.5px;text-align:right;font-weight:800}
.val-strong-gold{font-size:13.5px;text-align:right;font-weight:800;color:var(--c-gold2)}
.val-dash{font-size:13.5px;text-align:right;color:rgba(var(--ink),.5)}
.val-total{font-size:13.5px;font-weight:800}
.th-left{font-size:10px;font-weight:700;letter-spacing:.2em}
.th-right{font-size:10px;font-weight:700;letter-spacing:.2em;text-align:right}
.thead-211{display:grid;grid-template-columns:2fr 1fr 1fr;padding:14px 28px;background:var(--c-panel);color:var(--c-bg)}
.trow-211{display:grid;grid-template-columns:2fr 1fr 1fr;padding:15px 28px;border-bottom:1px solid rgba(var(--ink),.08);font-variant-numeric:tabular-nums}
.trow-211-hl{display:grid;grid-template-columns:2fr 1fr 1fr;padding:15px 28px;border-bottom:1px solid rgba(var(--ink),.08);font-variant-numeric:tabular-nums;background:rgba(var(--gold-rgb),.07)}
.trow-211-last{display:grid;grid-template-columns:2fr 1fr 1fr;padding:15px 28px;font-variant-numeric:tabular-nums}
.thead-161{display:grid;grid-template-columns:1.6fr 1fr 1fr;padding:14px 28px;background:var(--c-panel);color:var(--c-bg)}
.trow-161{display:grid;grid-template-columns:1.6fr 1fr 1fr;padding:15px 28px;border-bottom:1px solid rgba(var(--ink),.08);font-variant-numeric:tabular-nums}
.trow-161-hl{display:grid;grid-template-columns:1.6fr 1fr 1fr;padding:15px 28px;border-bottom:1px solid rgba(var(--ink),.08);font-variant-numeric:tabular-nums;background:rgba(var(--gold-rgb),.07)}
.trow-161-total{display:grid;grid-template-columns:1.6fr 1fr 1fr;padding:15px 28px;font-variant-numeric:tabular-nums;border-top:1px solid rgba(var(--ink),.15)}
.trow-141-total{display:grid;grid-template-columns:1.4fr 1fr 1fr;padding:15px 28px;font-variant-numeric:tabular-nums;border-top:1px solid rgba(var(--ink),.15)}
.thead-141{display:grid;grid-template-columns:1.4fr 1fr 1fr;padding:14px 28px;background:var(--c-panel);color:var(--c-bg)}
.trow-141{display:grid;grid-template-columns:1.4fr 1fr 1fr;padding:15px 28px;border-bottom:1px solid rgba(var(--ink),.08);font-variant-numeric:tabular-nums}
.trow-141-last{display:grid;grid-template-columns:1.4fr 1fr 1fr;padding:15px 28px;font-variant-numeric:tabular-nums}
.tname-gold{font-size:13.5px;font-weight:600;color:var(--c-gold2)}
.tname-teal{font-size:13.5px;font-weight:600;color:var(--c-teal2)}
.tname-rust{font-size:13.5px;font-weight:600;color:var(--c-rust2)}
.lead__thead{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;padding:14px 28px;background:var(--c-panel);color:var(--c-bg)}
.lead__row{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;padding:16px 28px;border-bottom:1px solid rgba(var(--ink),.08);text-decoration:none;color:inherit;transition:background .25s}
.lead__row-nb{display:grid;grid-template-columns:1.2fr 1.4fr 1fr;padding:16px 28px;text-decoration:none;color:inherit;transition:background .25s}
.lead__name{font-size:13.5px;font-weight:700}
.lead__role{font-size:13.5px;color:rgba(var(--ink),.7)}
.lead__cell-r{font-size:13.5px;text-align:right;color:rgba(var(--ink),.55)}
.lead__cell-r6{font-size:13.5px;text-align:right;color:rgba(var(--ink),.6)}
.lead__meta{font-size:11.5px;letter-spacing:.08em;color:rgba(var(--ink),.5)}
.name-strong{display:block;font-size:15.5px;font-weight:700}
.row-link{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:18px 4px;border-top:1px solid rgba(var(--ink),.12);text-decoration:none;color:inherit;transition:background .25s}
.row-link-bb{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:18px 4px;border-top:1px solid rgba(var(--ink),.12);border-bottom:1px solid rgba(var(--ink),.12);text-decoration:none;color:inherit;transition:background .25s}
.dlrow{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:22px 4px;border-bottom:1px solid rgba(var(--ink),.12);text-decoration:none;color:inherit;transition:background .25s}
.dlrow-mt24{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;margin-top:24px;padding:20px 4px;border-top:1px solid rgba(var(--ink),.12);border-bottom:1px solid rgba(var(--ink),.12);text-decoration:none;color:inherit;transition:background .25s}
.dlrow-mt28{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;margin-top:28px;padding:22px 4px;border-top:1px solid rgba(var(--ink),.12);border-bottom:1px solid rgba(var(--ink),.12);text-decoration:none;color:inherit;transition:background .25s}
.crow{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:20px 4px;border-top:1px solid rgba(var(--ink),.12);text-decoration:none;color:inherit;transition:background .25s}
.crow-bb{display:grid;grid-template-columns:1fr auto;gap:20px;align-items:center;padding:20px 4px;border-top:1px solid rgba(var(--ink),.12);border-bottom:1px solid rgba(var(--ink),.12);text-decoration:none;color:inherit;transition:background .25s}
.crow__val{font-size:19px;font-weight:700}
.crow__val-num{font-size:19px;font-weight:700;font-variant-numeric:tabular-nums}
.dl-title{display:block;font-size:15.5px;font-weight:600;margin-bottom:4px}
.dl-title-sm{display:block;font-size:14.5px;font-weight:600;margin-bottom:4px}
.dl-meta{font-size:11px;letter-spacing:.08em;color:rgba(var(--ink),.5)}
.dl-strong{font-size:15.5px;font-weight:700}
.dl-desc{margin-top:6px;font-size:13px;line-height:1.6;color:rgba(var(--ink),.55)}
.arrow{font-size:16px;color:var(--c-gold2);font-weight:700}
.arrow-sm{font-size:15px}
.arrow-dl{color:var(--c-gold2);font-size:15px}
.doc__head{display:grid;grid-template-columns:130px 1fr auto;gap:28px;padding:14px 28px;background:var(--c-panel);color:var(--c-bg)}
.doc__row{display:grid;grid-template-columns:130px 1fr auto;gap:28px;align-items:center;padding:18px 28px;border-bottom:1px solid rgba(var(--ink),.08)}
.doc__row-link{display:grid;grid-template-columns:130px 1fr auto;gap:28px;align-items:center;padding:18px 28px;text-decoration:none;color:inherit;transition:background .25s}
.doc__row-plain{display:grid;grid-template-columns:130px 1fr auto;gap:28px;align-items:center;padding:18px 28px}
.doc-date{font-size:13px;font-weight:800;font-variant-numeric:tabular-nums;color:var(--c-gold2)}
.doc-title{font-size:14px;font-weight:600;color:rgba(var(--ink),.75)}
.doc-status{font-size:10px;font-weight:700;letter-spacing:.16em;color:rgba(var(--ink),.5);border:1px solid rgba(var(--ink),.2);padding:5px 10px}
.doc__type{display:flex;align-items:center;gap:10px;font-size:11px;font-weight:700;letter-spacing:.12em;color:rgba(var(--ink),.55)}
.mark-44{width:auto;height:44px;opacity:.5}
.legend-gold{font-size:13px;font-weight:800;color:var(--c-gold2)}
.legend-teal{font-size:13px;font-weight:800;color:var(--c-teal2)}
.legend-rust{font-size:13px;font-weight:800;color:var(--c-rust2)}
.sidebar{position:sticky;top:116px}
.proj-layout{max-width:var(--maxw);margin:0 auto;padding:72px var(--gut) 96px;display:grid;grid-template-columns:240px 1fr;gap:72px;align-items:start}
.subnav-cur{display:block;padding:12px 0 12px 18px;border-left:2px solid var(--c-gold);font-size:13px;font-weight:700;text-decoration:none;color:var(--c-gold2)}
.subnav-cur-teal{display:block;padding:12px 0 12px 18px;border-left:2px solid var(--c-teal);font-size:13px;font-weight:700;text-decoration:none;color:var(--c-teal2)}
.subnav-cur-rust{display:block;padding:12px 0 12px 18px;border-left:2px solid var(--c-rust);font-size:13px;font-weight:700;text-decoration:none;color:var(--c-rust2)}
.subnav{display:block;padding:12px 0 12px 18px;border-left:2px solid rgba(var(--ink),.12);font-size:13px;font-weight:500;text-decoration:none;color:rgba(var(--ink),.65);transition:color .25s,border-color .25s}
.toc{display:block;padding:8px 0 8px 34px;border-left:2px solid rgba(var(--gold-rgb),.4);font-size:12.5px;text-decoration:none;color:rgba(var(--ink),.6);transition:color .25s}
.toc-teal{display:block;padding:8px 0 8px 34px;border-left:2px solid rgba(var(--teal-rgb),.4);font-size:12.5px;text-decoration:none;color:rgba(var(--ink),.6);transition:color .25s}
.toc-rust{display:block;padding:8px 0 8px 34px;border-left:2px solid rgba(var(--rust-rgb),.4);font-size:12.5px;text-decoration:none;color:rgba(var(--ink),.6);transition:color .25s}
.sec{scroll-margin-top:104px}
.sec-mt72{scroll-margin-top:104px;margin-top:72px}
.sec-mb64{scroll-margin-top:104px;margin-bottom:64px}
.sec-mb72{scroll-margin-top:104px;margin-bottom:72px}
.sec-mb88{scroll-margin-top:104px;margin-bottom:88px}
.sec-split{scroll-margin-top:104px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start;margin-bottom:96px}
.sec-split2{scroll-margin-top:104px;display:grid;grid-template-columns:1fr 1fr;gap:64px;align-items:start}
.form__eyebrow{font-size:10.5px;font-weight:600;letter-spacing:.24em;color:rgba(var(--cream),.55);margin-bottom:18px}
.form__eyebrow-ink{font-size:10.5px;font-weight:600;letter-spacing:.24em;color:rgba(var(--ink),.55);margin-bottom:22px}
.form__eyebrow-dot{display:flex;align-items:center;gap:9px;font-size:10.5px;font-weight:600;letter-spacing:.24em;color:rgba(var(--cream),.55);margin-bottom:16px}
.form__title{font-size:22px;font-weight:800;line-height:1.25;font-variation-settings:'wdth' 102}
.form__title-21{font-size:21px;font-weight:800;line-height:1.25;font-variation-settings:'wdth' 102}
.form__title-19{font-size:19px;font-weight:800;line-height:1.25;font-variation-settings:'wdth' 102}
.field-row{display:flex;gap:12px;flex:none}
.field-300{width:300px;background:rgba(var(--cream),.06);border:1px solid rgba(var(--cream),.25);color:var(--c-bg);font-family:'Archivo',sans-serif;font-size:13.5px;padding:16px 18px;outline:none;transition:border-color .25s}
.field-100{width:100%;margin-top:22px;background:rgba(var(--cream),.06);border:1px solid rgba(var(--cream),.25);color:var(--c-bg);font-family:'Archivo',sans-serif;font-size:13px;padding:14px 16px;outline:none;transition:border-color .25s}
.field-100b{width:100%;box-sizing:border-box;margin-top:22px;background:rgba(var(--cream),.06);border:1px solid rgba(var(--cream),.25);color:var(--c-bg);font-family:'Archivo',sans-serif;font-size:13.5px;padding:15px 16px;outline:none;transition:border-color .25s}
.field-100c{width:100%;margin-top:20px;background:rgba(var(--cream),.06);border:1px solid rgba(var(--cream),.25);color:var(--c-bg);font-family:'Archivo',sans-serif;font-size:13px;padding:13px 15px;outline:none;transition:border-color .25s}
.field__label{display:block;font-size:10px;letter-spacing:.22em;color:rgba(var(--ink),.5);margin-bottom:6px}
.subbox{max-width:480px;box-sizing:border-box;background:var(--c-panel);color:var(--c-bg);padding:34px 32px}
.subbox-mini{margin-top:36px;background:var(--c-panel);color:var(--c-bg);padding:28px 26px}
.news-aside{background:var(--c-panel);color:var(--c-bg);padding:32px 30px}
.note{margin-top:20px;font-size:12px;line-height:1.6;color:rgba(var(--ink),.5)}
.note-125{margin-top:28px;font-size:12.5px;line-height:1.6;color:rgba(var(--ink),.55)}
.note-125-mt24{margin-top:24px;font-size:12.5px;line-height:1.6;color:rgba(var(--ink),.55)}
.btn-gold-block{display:inline-block;margin-top:36px;font-size:11px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:12px 20px;transition:background .25s}
.btn-gold-inline{display:inline-block;margin-top:34px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:14px 24px;transition:background .25s}
.btn-gold-lg{font-size:12px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:17px 28px;transition:background .25s}
.btn-gold-lg-fn{flex:none;font-size:12px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:17px 28px;transition:background .25s}
.btn-gold-fn{flex:none;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:13px 22px;transition:background .25s}
.btn-gold-c{text-align:center;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:13px 24px;transition:background .25s}
.btn-gold-full{display:block;text-align:center;margin-top:12px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:15px 0;transition:background .25s}
.btn-gold-full13{display:block;text-align:center;margin-top:12px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:13px 0;transition:background .25s}
.btn-gold-full14{display:block;text-align:center;margin-top:12px;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:14px 0;transition:background .25s}
.btn-gold-pill{font-size:11px;font-weight:700;letter-spacing:.2em;text-decoration:none;color:var(--c-ink);background:var(--c-gold);padding:8px 14px;flex:none;transition:background .25s}
.btn-teal-fn{flex:none;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-white);background:var(--c-teal);padding:13px 22px;transition:background .25s}
.btn-rust-fn{flex:none;font-size:11.5px;font-weight:700;letter-spacing:.14em;text-decoration:none;color:var(--c-white);background:var(--c-rust);padding:13px 22px;transition:background .25s}
.btn-outline-c{text-align:center;font-size:11.5px;font-weight:600;letter-spacing:.14em;text-decoration:none;color:var(--c-ink);border:1px solid rgba(var(--ink),.25);padding:12px 24px;transition:border-color .25s}
.btn-outline-d{font-size:12px;font-weight:600;letter-spacing:.14em;text-decoration:none;color:var(--c-bg);border:1px solid rgba(var(--cream),.35);padding:16px 28px;transition:border-color .25s}
/* Hover lives in the .hv-* utilities (see Interaction, below), but the transition list
   has to be here, because each class above sets its own `transition` and would otherwise
   animate the colour alone and snap the lift. One rule, so the whole family stays in step. */
.btn-gold-block,.btn-gold-inline,.btn-gold-lg,.btn-gold-lg-fn,.btn-gold-fn,.btn-gold-c,
.btn-gold-full,.btn-gold-full13,.btn-gold-full14,.btn-gold-pill,.btn-teal-fn,.btn-rust-fn,
.btn-outline-c,.btn-outline-d,.footer__cta{transition:background .22s ease,border-color .22s ease,color .22s ease,transform .22s cubic-bezier(.19,.8,.22,1),box-shadow .22s ease}
.link-muted{font-size:11.5px;font-weight:600;letter-spacing:.16em;text-decoration:none;color:rgba(var(--ink),.6);transition:color .25s}
.tag-gold{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--c-ink);background:var(--c-gold);padding:8px 14px;flex:none}
.tag-teal{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--c-white);background:var(--c-teal);padding:8px 14px;flex:none}
.tag-rust{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--c-white);background:var(--c-rust);padding:8px 14px;flex:none}
.badge-teal{font-size:9.5px;font-weight:700;letter-spacing:.18em;color:var(--c-white);background:var(--c-teal);padding:5px 9px}
.badge-rust{font-size:9.5px;font-weight:700;letter-spacing:.18em;color:var(--c-white);background:var(--c-rust);padding:5px 9px}
.badge-gold{font-size:9.5px;font-weight:700;letter-spacing:.18em;color:var(--c-goldb);background:rgba(var(--gold-rgb),.16);padding:5px 9px}
.badge-gold-solid{font-size:9.5px;font-weight:700;letter-spacing:.18em;color:var(--c-ink);background:rgba(var(--gold-rgb),.25);padding:5px 9px}
.badge-gold-txt{font-size:8.5px;font-weight:700;letter-spacing:.18em;color:var(--c-gold2)}
.badge-teal-txt{font-size:8.5px;font-weight:700;letter-spacing:.18em;color:var(--c-teal2)}
.badge-rust-txt{font-size:8.5px;font-weight:700;letter-spacing:.18em;color:var(--c-rust2)}
.chip-teal{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--c-teal2);border:1px solid rgba(var(--teal-rgb),.35);padding:5px 9px;flex:none}
.chip-teal-fill{font-size:10px;font-weight:700;letter-spacing:.18em;color:var(--c-white);background:var(--c-teal);padding:5px 9px;flex:none}
.chip-row{display:flex;align-items:center;gap:8px;font-size:11.5px;color:rgba(var(--ink),.65)}
.role-pill{font-size:10px;font-weight:700;letter-spacing:.2em;color:var(--c-ink);background:rgba(var(--gold-rgb),.25);padding:6px 10px;flex:none}
.colhead-title{font-size:10px;font-weight:700;letter-spacing:.26em;color:rgba(var(--ink),.5);margin-bottom:16px}
.step-num{font-size:11px;font-weight:700;letter-spacing:.2em;color:var(--c-gold2);margin-bottom:16px}
.scale-lbl{font-size:13px;font-weight:700;color:var(--c-goldb);letter-spacing:.14em;margin-bottom:12px}
.scale-lbl-teal{font-size:13px;font-weight:700;color:var(--c-tealb);letter-spacing:.14em;margin-bottom:12px}
.scale-lbl-rust{font-size:13px;font-weight:700;color:var(--c-rustb);letter-spacing:.14em;margin-bottom:12px}
.dir__head{display:flex;align-items:center;gap:18px;margin-bottom:22px}
.dir__name{font-size:20px;font-weight:800;font-variation-settings:'wdth' 104}
.dir__role{margin-top:5px;font-size:10px;font-weight:700;letter-spacing:.18em;color:rgba(var(--ink),.5)}
.name-34{font-size:34px;font-weight:800;letter-spacing:-0.01em;font-variation-settings:'wdth' 104}
.role-caps{margin-top:8px;font-size:11px;font-weight:700;letter-spacing:.2em;color:rgba(var(--ink),.5)}
.stack-mt34{margin-top:34px;display:flex;flex-direction:column}
.era{font-size:13.5px;font-weight:800;color:var(--c-gold2);font-variant-numeric:tabular-nums}
.mineral-lbl{font-size:10.5px;font-weight:700;letter-spacing:.2em;color:rgba(var(--ink),.5)}
.bio-feature{scroll-margin-top:104px;background:var(--c-white);border:1px solid rgba(var(--ink),.1);border-top:3px solid var(--c-gold);padding:44px}
.bio__head{display:flex;align-items:baseline;justify-content:space-between;gap:24px;margin-bottom:6px}
.bio__name{margin:0;font-size:38px;font-weight:800;letter-spacing:-0.01em;font-variation-settings:'wdth' 104}
.board-head{scroll-margin-top:104px;display:flex;align-items:center;gap:16px;margin:72px 0 32px}
.news__title{font-size:19px;font-weight:700;line-height:1.35}
.news__body{margin-top:10px;font-size:13.5px;line-height:1.65;color:rgba(var(--ink),.6)}
.news__item{display:grid;grid-template-columns:150px 1fr;gap:32px;align-items:start;padding:30px 4px;border-top:1px solid rgba(var(--ink),.12)}
.news__item-bb{display:grid;grid-template-columns:150px 1fr;gap:32px;align-items:start;padding:30px 4px;border-top:1px solid rgba(var(--ink),.12);border-bottom:1px solid rgba(var(--ink),.12)}
.barchart{display:flex;height:64px;overflow:hidden}
.seg-1{width:41.88%;background:var(--c-grey1);display:flex;align-items:center;justify-content:center}
.seg-2{width:10.47%;background:var(--c-grey2);display:flex;align-items:center;justify-content:center}
.seg-3{width:42.74%;background:var(--c-gold);display:flex;align-items:center;justify-content:center}
.seg-4{width:10.68%;background:var(--c-teal);display:flex;align-items:center;justify-content:center}
.seg-5{width:4.27%;background:var(--c-rust);display:flex;align-items:center;justify-content:center}
.seg-6{width:0.43%;background:var(--c-ink)}
.seg-lbl{font-size:11px;font-weight:700;color:var(--c-ink);font-variant-numeric:tabular-nums}
.legend{display:flex;gap:26px;margin-top:16px;flex-wrap:wrap}
.dot-10-1{width:10px;height:10px;background:var(--c-grey1)}
.dot-10-2{width:10px;height:10px;background:var(--c-grey2)}
.dot-10-3{width:10px;height:10px;background:var(--c-gold)}
.dot-10-4{width:10px;height:10px;background:var(--c-teal)}
.dot-10-5{width:10px;height:10px;background:var(--c-rust)}
.dot-10-6{width:10px;height:10px;background:var(--c-ink)}
.tabs{display:grid;grid-template-columns:repeat(3,1fr);gap:0;margin-bottom:88px;background:var(--c-panel);color:var(--c-bg)}
.tabs a+a{border-left:1px solid rgba(var(--cream),.14)}
.tab-gold{display:block;padding:22px 28px;border-top:3px solid var(--c-gold);text-decoration:none;color:inherit;transition:background .25s}
.tab-teal{display:block;padding:22px 28px;border-top:3px solid var(--c-teal);text-decoration:none;color:inherit;transition:background .25s}
.tab-rust{display:block;padding:22px 28px;border-top:3px solid var(--c-rust);text-decoration:none;color:inherit;transition:background .25s}

/* Photo gallery + lightbox (Ajax field photos).
   Each photo is an <a> pointing at the full-size file wrapped around its own thumbnail,
   so the click works before — and without — JavaScript: it just opens the image. The
   overlay in site-fx.js intercepts that click only once it can draw one, which is why
   the anchor carries the real href rather than a "#".

   Every file is a 768px square and the largest cell renders at about 500px, so the
   thumbnail and the full-size view are the same file: opening the lightbox costs no
   second download. Keep new photos at 768 for that reason — a bigger one would make the
   lightbox fetch pixels the grid already has, and a smaller one would soften it.

   Layout: the grid is six units wide and each figure claims a span, which lets the
   arrangement follow the number of photos. Two-up is the default (span 3 of 6), and
   that tiles exactly for any even count — Aspen's four become 2 x 2. Five photos would
   otherwise leave a hole, so at exactly five the third onward drop to a third-width
   span, giving 2 over 3 with both rows full (Ajax).

   The count test is `:has(> :nth-child(5):last-child)` — a fifth child that is also the
   last. It is a rule of its own rather than part of a selector list on purpose: a
   browser without :has() drops just that rule and every gallery falls back to plain
   two-up, which is correct, where an invalid selector inside a list would take the
   valid selectors down with it. */
.gallery{display:grid;grid-template-columns:repeat(6,1fr);gap:28px;margin-top:40px}
.gallery__fig{margin:0;grid-column:span 3}
.gallery:has(>.gallery__fig:nth-child(5):last-child) .gallery__fig:nth-child(n+3){grid-column:span 2}
.gallery__link{position:relative;display:block;aspect-ratio:1/1;overflow:hidden;background:var(--c-ph);cursor:zoom-in}
/* the global a:hover fade would wash the photo out; the zoom is the hover state here */
.gallery__link:hover{opacity:1}
/* the <picture> has to carry the box, or the img's percentage height resolves against an
   inline wrapper instead of the square link. Same shape as .hero__picture on the home page. */
.gallery__pic{display:block;width:100%;height:100%}
.gallery__img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.19,.8,.22,1)}
.gallery__link:hover .gallery__img,.gallery__link:focus-visible .gallery__img{transform:scale(1.045)}
.gallery__link:focus-visible{outline:2px solid var(--c-gold);outline-offset:3px}
/* Expand mark: the only cue that the photo opens. Visible at rest (a hover-only
   affordance doesn't exist on a touch screen), solid on hover. Top-right, not the
   bottom corner the site's .map-tag-* labels use: both field photos carry a burned-in
   camera timestamp along their bottom edge and the mark landed on top of it. */
.gallery__zoom{position:absolute;right:0;top:0;display:flex;align-items:center;justify-content:center;width:38px;height:38px;background:rgba(34,36,42,.72);color:var(--c-bg);transition:background .25s}
.gallery__link:hover .gallery__zoom{background:var(--c-gold);color:var(--c-ink)}
/* Teal pages (Aspen) take the same treatment in the page's own accent. White rather
   than ink on the hover fill: teal is a dark ground where gold is a light one. */
.gallery--teal .gallery__link:focus-visible{outline-color:var(--c-teal)}
.gallery--teal .gallery__link:hover .gallery__zoom{background:var(--c-teal);color:var(--c-white)}
.gallery__cap{margin-top:12px;font-size:12.5px;line-height:1.55;font-weight:600;color:rgba(var(--ink),.6)}

/* Lightbox — built once by site-fx.js and reused. Two-step visibility: .lb--open flips
   display so the element can be painted, .lb--on then fades it in on the next frame
   (a transition can't run from display:none). z-index clears the sticky nav's 40. */
.lb{position:fixed;inset:0;z-index:80;display:none;align-items:center;justify-content:center;padding:64px 72px;box-sizing:border-box;background:rgba(16,17,20,.95);opacity:0;transition:opacity .28s ease}
.lb--open{display:flex}
.lb--on{opacity:1}
.lb__fig{margin:0;display:flex;flex-direction:column;align-items:center;gap:18px;max-width:100%}
/* max-* only ever shrinks an image below its natural size, so a 768px photo is never
   upscaled into softness on a wide screen — it simply stops at 768px. */
.lb__img{display:block;max-width:100%;max-height:78vh;background:var(--c-panel)}
.lb__cap{font-size:12.5px;line-height:1.5;letter-spacing:.02em;text-align:center;color:rgba(var(--cream),.75)}
.lb__btn{position:absolute;display:flex;align-items:center;justify-content:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid rgba(var(--cream),.25);color:rgba(var(--cream),.8);cursor:pointer;transition:border-color .2s,color .2s,background .2s}
.lb__btn:hover{border-color:var(--c-goldb);color:var(--c-goldb);background:rgba(var(--cream),.06)}
.lb__btn:focus-visible{outline:2px solid var(--c-goldb);outline-offset:2px}
.lb__close{top:22px;right:22px}
.lb__prev{left:22px;top:50%;margin-top:-22px}
.lb__next{right:22px;top:50%;margin-top:-22px}
/* the page keeps its scroll position underneath rather than scrolling behind the overlay */
body.lb-open{overflow:hidden}
@media (prefers-reduced-motion:reduce){
  .gallery__img{transition:none}
  .gallery__link:hover .gallery__img,.gallery__link:focus-visible .gallery__img{transform:none}
  .lb{transition:none}
  /* the colour half of each hover still runs — it's the travel that comes out */
  .nav__mark{transition:none}
  .nav__brand:hover .nav__mark,.nav__brand:focus-visible .nav__mark{transform:none}
  .hv-btn:hover,.hv-btn:focus-visible,.hv-btn-teal:hover,.hv-btn-teal:focus-visible,
  .hv-btn-rust:hover,.hv-btn-rust:focus-visible,.hv-border-cream:hover,
  .hv-border-cream:focus-visible,.hv-border-ink:hover,.hv-border-ink:focus-visible{transform:none}
}

/* Interaction (hover/focus) */
.hv-white:hover{color:var(--c-white)}
.hv-ink:hover{color:var(--c-ink)}
.hv-menu:hover{background:rgba(var(--gold-rgb),.08);color:var(--c-ink)}
.hv-sidelink:hover{color:var(--c-ink);border-color:rgba(var(--ink),.4)}
.hv-gold:hover{color:var(--c-gold2)}
.hv-btn:hover,.hv-btn:focus-visible{background:var(--c-goldh);opacity:1;transform:translateY(-2px);box-shadow:0 8px 20px rgba(var(--ink),.26)}
.hv-btn-teal:hover,.hv-btn-teal:focus-visible{background:#0F7A96;opacity:1;transform:translateY(-2px);box-shadow:0 8px 20px rgba(var(--ink),.26)}
.hv-social:hover{border-color:var(--c-goldb);color:var(--c-goldb)}
.hv-bright:hover{color:var(--c-goldb)}
.hv-teal:hover{color:var(--c-teal2)}
.hv-btn-rust:hover,.hv-btn-rust:focus-visible{background:#E5831F;opacity:1;transform:translateY(-2px);box-shadow:0 8px 20px rgba(var(--ink),.26)}
.fc-bright:focus{border-color:var(--c-goldb)}
.hv-row:hover{background:rgba(var(--gold-rgb),.06)}
.hv-border-cream:hover,.hv-border-cream:focus-visible{border-color:var(--c-bg);background:rgba(var(--cream),.08);opacity:1;transform:translateY(-2px)}
.hv-border-ink:hover,.hv-border-ink:focus-visible{border-color:var(--c-ink);background:rgba(var(--ink),.04);opacity:1;transform:translateY(-2px)}
.hv-lift:hover{transform:translateY(-4px);box-shadow:0 24px 48px rgba(0,0,0,.4)}
.hv-gap:hover{gap:18px}
.hv-rust:hover{color:var(--c-rust2)}
.hv-tab-gold:hover{background:rgba(var(--gold-rgb),.14)}
.hv-tab-teal:hover{background:rgba(var(--teal-rgb),.3)}
.hv-tab-rust:hover{background:rgba(var(--rust-rgb),.22)}

/* ===========================================================================
   Responsive breakpoints — laptop (<=1024), tablet/mobile (<=768), phone (<=480).
   The horizontal gutter is the --gut variable, so shrinking it reflows every
   section at once. The mobile nav toggle (.nav__toggle / .nav--open) is injected
   by site-fx.js.
   =========================================================================== */


.responsive-video {
  width: 100%;             /* Fills the width of its container */
  height: auto;            /* Lets the height change dynamically */
  aspect-ratio: 16 / 9;    /* Forces standard widescreen format */
  border: none;
}

/* Wrapper for a video + its caption. The <figure> is what makes <figcaption> valid
   markup, but nothing here resets figure, so the UA default margin:1em 40px would
   inset the player from the gallery below it. .gallery__cap already carries its own
   12px top margin, so the caption needs no separator of its own. */
.responsive-video-fig {
  margin: 0;
}


.nav__toggle{display:none}
/* Sticky-nav condense: full height at rest, shorter once scrolled and pinned to the
   top (site-fx.js toggles .nav--stuck). Heights are driven by --nav-h. */
.nav--stuck{--nav-h:64px}

/* The bar pins to top:0, which for a logged-in user is *behind* the admin bar — it is
   position:fixed over the first 32px of the viewport at z-index 99999, so a third of the
   condensed nav sat under it. The logo and the menu links were still there and still
   clickable below the overlap, so the symptom was the pointer flicking between arrow and
   hand over a few pixels of travel rather than anything visibly broken. WordPress puts
   .admin-bar on <body> only while the bar is showing, so the offset comes and goes with
   it. The three widths are core's own: 32px, 46px below 782px, and nothing below 600px,
   where the bar stops being fixed and scrolls away with the page. */
.admin-bar .nav{top:32px}
@media screen and (max-width:782px){.admin-bar .nav{top:46px}}
@media screen and (max-width:600px){.admin-bar .nav{top:0}}

/* Release the fixed desktop min-width so the page can go fluid. */
@media (max-width:1180px){
  .page,.page--flex{min-width:0}

  /* Gallery: the 240px sidebar and its 72px gap come out of the content column, so by
     1180px the 2-over-3 arrangement has its second row down to 234px and falling. Two
     equal columns from here. The handover is deliberately at this width rather than the
     1024 below: the large cells go 365px -> 374px across it, near enough to invisible,
     where waiting until 1024 would have snapped the small ones from 197px to 305px.
     Five photos leaves the last alone on its row, which is a fair trade against three
     rows of thumbnails. */
  .gallery{grid-template-columns:1fr 1fr;gap:24px}
  .gallery__fig{grid-column:auto}
  .gallery:has(>.gallery__fig:nth-child(5):last-child) .gallery__fig:nth-child(n+3){grid-column:auto}
}

/* ---- Laptop / small tablet ---- */
@media (max-width:1024px){
  :root{--gut:32px}
  .nav__menu{gap:22px}
  /* four-up rows become two-up */
  .counters,.statbar,.statbar-mb72,.statbar-lg,.footer__grid{grid-template-columns:1fr 1fr}
  .footer__grid{gap:40px 40px}
  /* snapshot: number / stats / CTAs stack */
  .snapshot__panel{grid-template-columns:1fr;gap:26px}
  .snapshot__stats{border-left:none}
  /* ease the largest display type */
  .hero__line,.hero__line2,.hero-h1{font-size:52px}
  .h2-58{font-size:50px}.h2-52{font-size:46px}
  .snapshot__num{font-size:46px}
  /* dark inner blocks that use a literal 48px gutter */
  .cta-panel,.quote-dark,.statbar-lg{padding-left:32px;padding-right:32px}

}

/* ---- Mobile nav: collapse the top bar to a hamburger a little earlier than the
   single-column layout kicks in, and shorten the sticky bar (--nav-h). ---- */
@media (max-width:900px){
  :root{--nav-h:64px}
  .nav--stuck{--nav-h:56px}
  .nav__inner{position:relative}
  .nav__toggle{
    display:inline-flex;flex-direction:column;justify-content:center;gap:5px;
    width:44px;height:44px;padding:0 10px;margin-right:-10px;
    background:none;border:0;cursor:pointer;
  }
  .nav__toggle span{display:block;height:2px;background:var(--c-ink);transition:transform .25s ease,opacity .2s ease}
  .nav--open .nav__toggle span:nth-child(1){transform:translateY(7px) rotate(45deg)}
  .nav--open .nav__toggle span:nth-child(2){opacity:0}
  .nav--open .nav__toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
  .nav--js .nav__menu{
    position:absolute;top:100%;left:0;right:0;
    flex-direction:column;align-items:stretch;gap:0;
    background:var(--c-white);border-bottom:1px solid rgba(var(--ink),.1);
    box-shadow:0 24px 48px rgba(var(--ink),.14);
    padding:6px 0 14px;max-height:calc(100vh - var(--nav-h));overflow-y:auto;display:none;
  }
  .nav--js.nav--open .nav__menu{display:flex}
  .nav__link,.nav__link-active,.nav__link-dd,.nav__link-dd-active{
    height:auto;padding:12px var(--gut);font-size:13px;letter-spacing:.12em;
  }
  .nav__dd{position:static;display:block;align-self:stretch}
  .nav__caret{display:none}
  /* dropdown children shown inline (override the hover styles site-fx sets) */
  .nav--js .dd__menu,.nav--js .dd__menu-wide{
    position:static!important;opacity:1!important;visibility:visible!important;
    transform:none!important;box-shadow:none;border:0;min-width:0;padding:0 0 6px;
  }
  .nav--js .dd__item,.nav--js .dd__item-split,.nav--js .dd__item-strong,
  .nav--js .dd__item-strong-split,.nav--js .dd__item-strong-split-teal,
  .nav--js .dd__item-strong-split-rust{padding:10px var(--gut) 10px calc(var(--gut) + 14px)}
}

/* ---- Tablet portrait / phone: single column ---- */
@media (max-width:768px){
  /* hide the decorative utility strip */
  .ubar{display:none}

  /* Section rhythm. The vertical scale (60–96px) is tuned for a 1440px desktop and was
     never scaled down, so a phone got the identical spacing — 96px between sections is
     proportionate across a wide viewport and close to a quarter of a phone screen of
     nothing. Everything here comes down by roughly 40%, keeping the relative hierarchy
     intact so the looser sections stay looser.

     padding-top/padding-bottom longhand, never the `padding` shorthand: the horizontal
     value on these is var(--gut), which already scales on its own and must survive. */
  .sec-96-96{padding-top:56px;padding-bottom:56px}
  .sec-96-80{padding-top:56px;padding-bottom:48px}
  .sec-88-96{padding-top:52px;padding-bottom:56px}
  .sec-88-92{padding-top:52px;padding-bottom:54px}
  .panel__inner-lg{padding-top:50px;padding-bottom:54px}
  .panel__inner{padding-top:42px;padding-bottom:42px}
  .page-header__inner{padding-top:44px;padding-bottom:34px}
  .page-body,.page-body-flex,.proj-layout{padding-top:44px;padding-bottom:56px}
  .footer__inner{padding-top:44px;padding-bottom:28px}
  .cta-panel{margin-top:52px}
  .sec-mt72{margin-top:44px}
  .counters{margin-top:36px}

  /* A section's "go deeper" link — FULL BIOS →, ALL PROJECTS →, MANAGEMENT & DIRECTORS →
     — sits beside its heading on desktop. Stacked, it drops directly beneath the heading
     and above the very list it points past, so it reads as part of the header instead of
     a follow-on. display:contents dissolves the header row, promoting its two children to
     items of the section's own flex column, which lets the link be ordered after the
     content. The row's own mb-* margin goes with the box, so the eyebrow carries it.

     Scoped to .head-row--linked deliberately: .head-row is also the card header pattern
     (name + badge), and those must not reorder. */
  .linkhead{display:flex;flex-direction:column}
  .linkhead>.head-row--linked{display:contents}
  .linkhead>.head-row--linked>.eyebrow{margin-bottom:24px}
  .linkhead>.head-row--linked>a{order:99;align-self:flex-start;margin-top:24px}

  /* News rows are a fixed 150px date column plus content. At phone width that spends
     150px of ~350px on one short date and squeezes the headline into the remaining
     ~168px, wrapping it to three lines with the body as a narrow ribbon. Stack instead —
     date above its own title, content full width. The 32px column gutter would carry
     over as a 32px row gap and read as a detached date, so it tightens to 10px. */
  .news__item,.news__item-bb{grid-template-columns:1fr;gap:10px}

  /* content grids collapse to one column */
  .grid-2,.grid-2-24,.grid-2-80,.grid-2-top,.grid-2-top-460,.grid-2-top-480,
  .grid-2-top-center,.grid-2r-36,.grid-3r-36,.grid-12-mb36,.grid-14,.grid-115,.grid-125,
  .grid-auto-44,.grid-260,.grid-320,.sec-split,.sec-split2,
  .grid-3,.grid-3-24,.grid-3-32,.grid-3-36,.grid-3-top,.grid-3-top-mt40,
  .tabs,.snapshot__stats{grid-template-columns:1fr}

  /* The gallery is deliberately absent from the collapse above. Everything else on the
     page is reading matter that wants full width; this is a contact sheet, and five
     full-width squares would run about 3,500px on a phone. It also gains width here
     rather than losing it, since .sidebar goes away at this breakpoint: two columns are
     ~340px at 768px, wider than the ~310px they had on a laptop. */
  .gallery{gap:20px}

  /* A column gutter is not a row gap. These grids set 56–80px between their two
     columns, which reads as generous side by side but as a hole once stacked —
     .grid-2-80 on Contact left 80px of dead space between the spec list and the
     contact card. Bring the stacked gap down to the 40px the footer already uses at
     this width. Grids at 44px and under already stack fine and are left alone. */
  .grid-2,.grid-2-80,.grid-12-mb36,.grid-14,.grid-115,.grid-125,
  .grid-260,.grid-320,.sec-split,.sec-split2{gap:40px}

  .footer__grid{grid-template-columns:1fr 1fr}

  /* Slim the footer down on phones. The hamburger already carries every link in the
     PROJECTS and COMPANY columns, so on a narrow screen they are ten rows of pure
     duplication between the reader and the contact details. What's left is the part
     the nav doesn't cover: identity, email/phone, and the presentation download —
     which the footer is the only place to reach on mobile, since the sidebars are
     hidden. The bottom legal strip stays. */
  .footer__col-nav{display:none}

  /* The presentation download also comes out at this width. NOTE: on ajax, aspen,
     oleen, news, management-directors and corporate this was the only copy a phone
     could reach — the others live in .sidebar, which is display:none here. If it
     needs to stay reachable there, the hamburger is the place for it. */
  .footer__cta{display:none}

  /* The social icons stay in their own block under the tagline, as on desktop.
     Putting them on the brand row alongside the wordmark did save ~58px of height,
     but the row only clears 350px by a few pixels, so the icons ended up jammed
     against KORESTAR and hard against the right edge — worse than the height it
     bought. If this needs revisiting, the footer bottom strip next to the copyright
     is the conventional home, but the icons live inside the brand column in the
     markup, so moving them there is a markup change rather than a CSS one. */

  /* Neutralise vertical divider cells once stacked. The side padding has to go with
     the border it belonged to — it was the gutter beside the rule, so leaving it
     behind indents the stacked rows off the edge instead of aligning them.
     .cell-d-l is deliberately absent: it lives in .statbar, which stays multi-column
     down to 560px and is neutralised there instead. */
  .cell-tl,.cell14-tl,.cell18-tl,.cell22-tl,.cell16-l20,.cell16-l24,
  .cell18-l,.cell14-l,.cell20-l,.cell20-l24,.cell22-l,
  .snap__cell,.snap__cell-first{border-left:none;padding-left:0}
  .cell20-l,.cell20-r{padding-right:0}

  /* Even out the horizontal rules once stacked. On desktop only the first row's cells
     (the -t/-tl suffixes) carry a bottom rule, because its job is to separate row 1
     from row 2. Stacked into a list that reads as dividers that stop halfway down —
     the vertical spacing is already even, this is what looks wrong. So: give every
     cell the rule and strip it from whichever ends up last, leaving the container's
     border-top to open the list and no rule dangling under it.

     Only the three grids that are always used with dividers get the rule added.
     .grid-2-top is deliberately not among them — index.html uses it with dividers but
     ajax/oleen use it without, so it only gets the trailing rule removed (a no-op
     there, since those cells never had one). */
  .grid-2-top-460>*,.grid-2-top-480>*,.grid-2-top-center>*{
    border-bottom:1px solid rgba(var(--ink),.12)}
  .grid-2-top-460>*:last-child,.grid-2-top-480>*:last-child,
  .grid-2-top-center>*:last-child,.grid-2-top>*:last-child{border-bottom:none}

  /* Sidebars are hidden entirely on mobile (sub-nav, signup boxes and PDF links alike).
     The hamburger menu covers the navigation, the footer carries the presentation
     download on every page, and Home / Investors / Contact have signup forms in their
     main content. */
  .proj-layout{grid-template-columns:1fr;gap:36px}
  .sidebar{display:none}

  /* forms / split rows stack */
  .panel__row{flex-direction:column;align-items:stretch;gap:22px}
  .field-row{flex-direction:column}
  .field-300{width:100%}
  .callout,.callout-dashed{flex-direction:column;align-items:flex-start;gap:20px}
  .head-row{flex-wrap:wrap;gap:10px 14px}
  /* headers with a pill on the right: let it wrap instead of overflowing */
  .kin-head,.bio__head{flex-wrap:wrap;gap:14px}
  .kin-head > *,.bio__head > *{max-width:100%}

  /* hero + display type */
  .hero{height:440px}
  .hero__copy{bottom:64px}
  .hero__line,.hero__line2,.hero-h1{font-size:40px}
  .h2-58{font-size:40px}.h2-52{font-size:38px}.h2-44{font-size:34px}
  .bio__name{font-size:30px}.name-34{font-size:28px}
  .panel__title{font-size:26px}.lede{font-size:24px}
  .snapshot__num{font-size:42px}
  .figure-46,.figure-46-gold,.figure-44,.figure-44-goldb{font-size:40px}

  /* trim tall image frames */
  .img-frame-420,.img-frame-440,.img-frame-440w,.img-frame-460,
  .img-frame-480,.img-frame-520{height:340px}

  /* tables: tighten horizontal padding */
  .thead-211,.trow-211,.trow-211-hl,.trow-211-last,
  .thead-161,.trow-161,.trow-161-hl,.trow-161-total,
  .thead-141,.trow-141,.trow-141-last,.trow-141-total,
  .lead__thead,.lead__row,.lead__row-nb,.row-issue,.row-issue-hl,
  .doc__head,.doc__row,.doc__row-link,.doc__row-plain{padding-left:20px;padding-right:20px}
}

/* ---- Small phones: single-column dark stat bars + stacked footer meta ---- */
@media (max-width:560px){
  /* Spec rows are label-over-value, which costs two lines each and leaves a lot of air
     in a single-column list. At this width every container holding them is already one
     column, so the pair fits on one line: label left, value right, reading as a spec
     sheet. The label is flex:0 0 auto so it keeps its width and the value takes the
     rest — the tightest pair on the site (Aspen's TARGET TYPES, a 104px label against a
     229px value) still clears one line at 350px, and anything longer wraps within the
     value column rather than overflowing.

     These 12 classes are every cell that pairs a spec label with a value — Contact's
     detail list, the dark statbars on Ajax/Aspen/Oleen, and Home's snapshot.

     Matched on CONTENT, not class alone: the cell classes are reused. .proj-cell holds a
     spec pair on Aspen but a display figure + caption on Oleen, and a 30px figure on one
     line with 10px caps looks wrong. The :has() keeps the row to cells that genuinely
     contain a spec label. */
  :is(.cell-d-l,.cell-t,.cell-tl,.cell14,.cell14-l,.cell14-t,.cell14-tl,.cell16,
      .cell16-l24,.proj-cell,.snap__cell,.snap__cell-first):has(>[class*=spec__label]){
    display:flex;align-items:baseline;justify-content:space-between;gap:16px}
  :is(.cell-d-l,.cell-t,.cell-tl,.cell14,.cell14-l,.cell14-t,.cell14-tl,.cell16,
      .cell16-l24,.proj-cell,.snap__cell,.snap__cell-first)>[class*=spec__label]{
    margin-bottom:0;flex:0 0 auto}
  /* three different value classes across the site: .spec__val, Home's .snap__val and
     the tables' .t-val — all three need the right alignment when the value wraps. */
  :is(.cell-d-l,.cell-t,.cell-tl,.cell14,.cell14-l,.cell14-t,.cell14-tl,.cell16,
      .cell16-l24,.proj-cell,.snap__cell,.snap__cell-first)
    >:is(.spec__val,.snap__val,.t-val){text-align:right}

  .statbar,.statbar-mb72,.statbar-lg{grid-template-columns:1fr;gap:0;padding-left:20px;padding-right:20px}
  .statbar>*,.statbar-mb72>*,.statbar-lg>*{padding:15px 0;border-left:none;border-top:1px solid rgba(var(--cream),.14)}
  .statbar>*:first-child,.statbar-mb72>*:first-child,.statbar-lg>*:first-child{border-top:none}
  .footer__bottom{flex-direction:column;align-items:flex-start;gap:14px}
  .footer__copy{text-align:left}
  .footer__legal{justify-content:flex-start}
}

/* ---- Phone tuning ---- */
@media (max-width:480px){
  :root{--gut:20px}

  /* Cards and panels keep their desktop side padding (26–48px) all the way down to
     phone width, and it compounds with the page gutter. On a 390px screen the gold
     contact card was spending 20px gutter + 44px padding a side, leaving 260px for a
     line that needs 262px — so "CORPORATE PRESENTATION ↓" wrapped. Cap the horizontal
     padding here; the vertical padding is left as designed, since height isn't what's
     constrained. Longhand rather than the `padding` shorthand precisely so each card
     keeps its own top/bottom values. */
  .cta-panel,.card--gold44,.card--pad,.card--pad2,.card--gold,.card--teal,.card--rust,
  .card-centered,.card-dark--gold,.card-dark--teal,.card-dark--rust,
  .subbox,.subbox-mini,
  .snapshot__panel,.quote-dark,.bio-feature,.callout,.callout-dashed,
  .news-aside{padding-left:24px;padding-right:24px}

  /* The statbar family is deliberately absent — ≤560px already gives it 20px, and
     listing it here would raise that back to 24px. */

  /* Table and list rows carry a 28px internal gutter, which stacks on top of the page
     gutter the same way. Tabular content is the most width-hungry thing on a phone, so
     these go a little tighter than the boxes above. */
  .trow-211,.trow-211-hl,.trow-211-last,.trow-161,.trow-161-hl,.trow-161-total,
  .trow-141,.trow-141-last,.trow-141-total,.thead-211,.thead-161,.thead-141,
  .doc__row,.doc__row-link,.doc__row-plain,.doc__head,
  .lead__row,.lead__row-nb,.lead__thead,
  .row-issue,.row-issue-hl{padding-left:20px;padding-right:20px}

  /* Two columns are held down to the smallest screens rather than stacking: at 390px
     that is a 168px thumbnail, small but legible, and a tap opens the full photo. The
     gap comes down to 14px so the squares keep what width there is. */
  .gallery{gap:14px}
  .gallery__cap{margin-top:9px;font-size:11.5px}

  .footer__grid{grid-template-columns:1fr;gap:32px}
  .snapshot{margin-top:-40px}
  .hero{height:400px}
  .hero__line,.hero__line2,.hero-h1{font-size:32px}
  .h2-58,.h2-52{font-size:32px}.h2-44{font-size:28px}
  .snapshot__num{font-size:38px}
  .figure-46,.figure-46-gold,.figure-44,.figure-44-goldb{font-size:36px}
  .counters{gap:28px}
  .img-frame-420,.img-frame-440,.img-frame-440w,.img-frame-460,
  .img-frame-480,.img-frame-520{height:250px}

  /* Lightbox: at this width a 44px arrow parked at each edge sits on top of the photo.
     Shrink the frame's own padding and move both arrows to the bottom corners, where
     the caption's column of space is already free. */
  .lb{padding:56px 16px}
  .lb__prev{left:16px;top:auto;bottom:16px;margin-top:0}
  .lb__next{right:16px;top:auto;bottom:16px;margin-top:0}
  .lb__img{max-height:66vh}
  /* stacked leadership / document tables read as blocks */
  .lead__thead,.doc__head{display:none}
  .lead__row,.lead__row-nb{grid-template-columns:1fr;gap:3px 0;padding-top:16px;padding-bottom:16px}
  /* Three cells — project, report title, status — in a two-column grid put the status
     chip underneath the project name, leaving a wide empty left column and wrapping
     "IN PREPARATION" onto two lines. Stack fully, as .lead__row above already does:
     project, then title, then chip. justify-items:start keeps the chip sized to its
     text instead of stretching the full width. */
  .doc__row,.doc__row-link,.doc__row-plain{grid-template-columns:1fr;gap:8px;justify-items:start}
}

/* ---------------------------------------------------------------------------
   News release body
   The rest of the site styles by class, because every element on it was placed
   deliberately. A release is written in the editor, so its markup is plain
   <p>, <h2>, <ul> and <blockquote> with no classes to hook — these rules give
   those elements the same type scale by descent instead.
   --------------------------------------------------------------------------- */
.release{max-width:760px}
.release p{font-size:15px;line-height:1.75;color:rgba(var(--ink),.82);margin:0 0 18px}
.release p:last-child{margin-bottom:0}
.release h2{font-size:21px;font-weight:700;letter-spacing:-.01em;color:var(--c-ink);margin:38px 0 14px}
.release h3{font-size:16px;font-weight:700;letter-spacing:.02em;text-transform:uppercase;color:var(--c-ink);margin:32px 0 12px}
.release h2:first-child,.release h3:first-child{margin-top:0}
.release ul,.release ol{margin:0 0 18px;padding-left:20px}
.release li{font-size:15px;line-height:1.75;color:rgba(var(--ink),.82);margin-bottom:8px}
.release a{color:var(--c-gold2);text-decoration:underline;text-underline-offset:2px}
.release a:hover{color:var(--c-ink)}
.release strong{font-weight:700;color:var(--c-ink)}
.release blockquote{margin:26px 0;padding:0 0 0 22px;border-left:2px solid var(--c-gold);font-size:16px;line-height:1.65;color:rgba(var(--ink),.75)}
.release img{max-width:100%;height:auto;margin:26px 0}
.release hr{border:0;border-top:1px solid rgba(var(--ink),.12);margin:34px 0}
.release table{width:100%;border-collapse:collapse;margin:0 0 22px;font-size:14px}
.release th,.release td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid rgba(var(--ink),.12)}
.release th{font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:rgba(var(--ink),.55);font-weight:700}

/* Pagination for the news list */
.pager{display:flex;gap:10px;align-items:center;margin-top:44px;flex-wrap:wrap}
.pager__link{display:inline-flex;align-items:center;justify-content:center;min-width:38px;height:38px;padding:0 12px;border:1px solid rgba(var(--ink),.16);font-size:12px;font-weight:700;letter-spacing:.06em;color:rgba(var(--ink),.7);text-decoration:none;transition:border-color .2s,color .2s}
.pager__link:hover{border-color:var(--c-gold);color:var(--c-ink)}
.pager .pager__link.current{background:var(--c-ink);border-color:var(--c-ink);color:var(--c-bg)}
.pager .pager__link.dots{border:0}

@media (max-width:768px){
  .release{max-width:none}
}
