
@font-face{font-family:"Archivo";src:url(fonts/ccc650ae2ccd.woff) format("woff");font-weight:100 900;font-stretch:62% 125%;font-display:swap}
@font-face{font-family:"Hanken Grotesk";src:url(fonts/b1f7953dff1e.woff) format("woff");font-weight:100 900;font-display:swap}

/* Layout: one dark editorial sheet. The dot map of the world is the single bold moment; everything else hangs off hairlines on a 12-column grid. */
:root{
  --ink:#0C1115; --ink-2:#11181E; --ink-3:#172028;
  --line:#222C34; --line-2:#33404A;
  --ivory:#ECE8E1; --mist:#B9C0C6; --fog:#8E98A1; --dim:#5E6973;
  --gold:#C8B08A; --gold-hi:#E4D0AA; --gold-lo:#8A744F;
  --dot:#25313A; --dot-on:#C8B08A;
  --display:"Archivo","Helvetica Neue",Arial,sans-serif;
  --body:"Hanken Grotesk","Helvetica Neue",Arial,sans-serif;
  --gutter:max(clamp(16px,4.2vw,64px),env(safe-area-inset-left,0px));
  --gutter-r:max(clamp(16px,4.2vw,64px),env(safe-area-inset-right,0px));
  color-scheme:dark;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--ivory);font:400 16px/1.6 var(--body);-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:30;background:var(--ink)}
img{max-width:100%;display:block}
a{color:inherit}
::selection{background:var(--gold);color:var(--ink)}
:focus-visible{outline:1.5px solid var(--gold);outline-offset:3px}
.wrap{max-width:1360px;margin:0 auto;padding-left:var(--gutter);padding-right:var(--gutter-r)}

.eyebrow{font:500 12px/1.4 var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--gold);margin:0}
h1,h2,h3{font-family:var(--display);font-weight:300;font-stretch:116%;margin:0;text-wrap:balance;letter-spacing:-.005em}
h2{font-size:clamp(30px,3.6vw,52px);line-height:1.08}
h3{font-size:22px;line-height:1.2;font-stretch:110%}
p{margin:0}
.lead{font-size:clamp(17px,1.45vw,20px);line-height:1.55;color:var(--mist);max-width:60ch}
.small{font-size:13px;color:var(--fog)}
.num{font-variant-numeric:tabular-nums lining-nums}
section{scroll-margin-top:72px}
.sec{padding-block:clamp(80px,10vw,150px);border-top:1px solid var(--line)}
.sec-head{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-bottom:clamp(40px,5vw,72px)}
.sec-head .eyebrow{grid-column:1/-1}
.sec-head h2{grid-column:1/span 7}
.sec-head .lead{grid-column:8/-1;align-self:end}
@media (max-width:900px){.sec-head h2,.sec-head .lead{grid-column:1/-1}}

/* bar */
.bar{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:rgba(12,17,21,.84);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.bar .wrap{display:flex;align-items:center;gap:32px;height:60px}
.brand{display:block;width:78px;color:var(--ivory)}
.brand svg{display:block;width:100%;height:auto}
.nav{display:flex;gap:28px;margin-left:auto}
.nav a{font-size:13px;letter-spacing:.06em;color:var(--mist);text-decoration:none;transition:color .2s}
.nav a:hover{color:var(--ivory)}
.bar-cta{font-size:13px;letter-spacing:.06em;text-decoration:none;color:var(--ink);background:var(--gold);padding:9px 16px;transition:background .2s}
.bar-cta:hover{background:var(--gold-hi)}
@media (max-width:820px){.nav{display:none}.bar-cta{margin-left:auto}}

/* hero */
.hero{padding-block:clamp(36px,5vw,72px) clamp(56px,7vw,100px)}
.hero-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.hero-txt{grid-column:1/span 5;margin-top:-.12em}
.hero h1{font:400 clamp(36px,4.3vw,64px)/1.06 var(--display);font-stretch:104%;letter-spacing:-.014em;max-width:11em}
.hero h1 em{font-style:normal;color:var(--gold)}
.hero-p{margin-top:26px;font-size:clamp(16px,1.2vw,18px);line-height:1.62;color:var(--mist);max-width:44ch}
.hero-links{margin-top:30px;display:flex;flex-wrap:wrap;gap:12px 28px}
.hero-links a{font-size:15px;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;text-decoration-color:var(--line-2);transition:text-decoration-color .2s}
.hero-links a:hover{text-decoration-color:var(--gold)}
.hero-img{grid-column:6/-1;margin:0}
.hero-img img{width:100%;height:auto;aspect-ratio:1445/825;object-fit:cover;filter:saturate(.82) contrast(1.02)}
.hero-img figcaption{margin-top:12px;font-size:13px;line-height:1.45;color:var(--fog)}
@media (max-width:1000px){.hero-txt,.hero-img{grid-column:1/-1}.hero-txt{padding-bottom:8px}}

/* atlas */
.atlas{padding-top:clamp(48px,6vw,88px);padding-bottom:clamp(80px,10vw,140px)}
.markets{margin-top:clamp(40px,5vw,64px)}
.map-wrap{position:relative;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding-block:8px}
.map{display:block;width:100%;height:auto;overflow:visible}
.dots{fill:none;stroke-linecap:round;stroke-width:2.15}
.land{stroke:var(--dot)}
.cty{stroke:var(--dot-on);opacity:.6;transition:opacity .6s,stroke .6s}
.cty.off{stroke:var(--dot);opacity:1}
.hubland{stroke:var(--gold-hi);opacity:.9}
.arc{fill:none;stroke:var(--gold);stroke-width:.9;opacity:.75;stroke-dasharray:1;stroke-dashoffset:0;transition:stroke-dashoffset 1.3s cubic-bezier(.3,.6,.2,1),opacity .4s}
.arc.off{stroke-dashoffset:1}
.light{fill:var(--gold-hi);transition:opacity .4s}
.light.off{opacity:0}
.mk{cursor:pointer}
.mk .halo{fill:var(--gold);opacity:.14;transition:opacity .4s}
.mk .core{fill:var(--gold);stroke:var(--ink);stroke-width:.8;transition:fill .4s}
.mk text,.hub text{paint-order:stroke;stroke:var(--ink);stroke-width:2.6px;stroke-linejoin:round;font:500 8.6px var(--body);letter-spacing:.12em;text-transform:uppercase;fill:var(--mist);transition:fill .3s}
.mk.off .core{fill:var(--line-2)}
.mk.off .halo{opacity:0}
.mk.off text{fill:var(--dim)}
.mk:hover text,.mk:focus-visible text{fill:var(--ivory)}
.hub .ring{fill:none;stroke:var(--gold-hi);stroke-width:.7;transform-box:fill-box;transform-origin:center;animation:pulse 2.8s ease-out infinite}
.hub .core{fill:var(--gold-hi)}
.hub text{fill:var(--gold-hi)}
@keyframes pulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(3.4);opacity:0}}
.map.has-sel .arc:not(.sel){opacity:.18}
.map.has-sel .cty:not(.sel):not(.off){opacity:.2}
.map.has-sel .mk:not(.sel) .halo{opacity:.05}
.cty.sel{opacity:1;stroke:var(--gold-hi)}
.arc.sel{stroke:var(--gold-hi);stroke-width:1.4;opacity:1}
.mk.sel .core{fill:var(--gold-hi)}
.mk.sel text{fill:var(--ivory)}
@media (max-width:720px){.mk text,.hub text{display:none}.mk.sel text{display:block;font-size:13px}}

.readout{position:absolute;left:0;bottom:22px;pointer-events:none}
.readout .yr{font:200 clamp(44px,7vw,104px)/.9 var(--display);font-stretch:120%;color:var(--ivory);font-variant-numeric:tabular-nums lining-nums;letter-spacing:-.01em}
.readout .cnt{margin-top:10px;font-size:13px;letter-spacing:.08em;color:var(--mist)}
.readout .cnt b{font-weight:500;color:var(--gold)}
@media (max-width:720px){.readout{position:static;margin-top:16px}}

.timeline{display:grid;grid-template-columns:auto minmax(0,1fr);gap:24px;align-items:end;margin-top:22px}
.play{display:inline-flex;align-items:center;gap:10px;height:44px;padding:0 18px;border:1px solid var(--line-2);background:transparent;color:var(--ivory);font:500 13px var(--body);letter-spacing:.06em;cursor:pointer;transition:border-color .2s,background .2s;white-space:nowrap}
.play:hover{border-color:var(--gold);background:rgba(200,176,138,.06)}
.play svg{width:10px;height:10px;fill:var(--gold)}
.years{display:grid;grid-template-columns:repeat(15,minmax(0,1fr));gap:3px;align-items:end}
.yb{appearance:none;background:none;border:0;padding:0;color:var(--fog);cursor:pointer;display:flex;flex-direction:column;align-items:stretch;gap:6px;font:500 11px var(--body);font-variant-numeric:tabular-nums}
.yb .b{height:var(--h);min-height:2px;background:var(--line-2);transition:background .3s}
.yb .v{font-size:10px;color:var(--fog);height:12px;opacity:0;transition:opacity .2s;text-align:center}
.yb .l{text-align:center;border-top:1px solid var(--line);padding-top:6px}
.yb.past .b{background:var(--gold-lo)}
.yb.now .b{background:var(--gold)}
.yb.now .l{color:var(--ivory);border-top-color:var(--gold)}
.yb.now .v,.yb:hover .v{opacity:1}
.yb .y2{display:none}
@media (max-width:640px){.yb .y4{display:none}.yb .y2{display:inline}.timeline{grid-template-columns:minmax(0,1fr)}.play{justify-self:start}}
.years-cap{margin-top:10px;font-size:12px;color:var(--dim)}

.panel{min-width:0}
.panel-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px;padding:16px 0 12px}
.panel-head .eyebrow{color:var(--fog)}
.back{appearance:none;background:none;border:0;color:var(--gold);font:500 12px var(--body);letter-spacing:.08em;cursor:pointer;padding:6px 0}
.mlist{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));column-gap:36px}
@media (max-width:1000px){.mlist{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.mlist{grid-template-columns:minmax(0,1fr)}}
.mrow{display:grid;grid-template-columns:44px minmax(0,1fr) auto;gap:12px;align-items:center;padding:11px 0;border-top:1px solid var(--line);cursor:pointer;transition:background .2s,opacity .4s;width:100%;background:none;border-left:0;border-right:0;border-bottom:0;color:inherit;font:inherit;text-align:left}
.mrow:hover{background:rgba(236,232,225,.03)}
.mrow .yr{font:400 12px var(--body);color:var(--gold);font-variant-numeric:tabular-nums}
.mrow .nm{font-size:15px;color:var(--ivory);min-width:0}
.mrow .bar2{display:block;height:2px;background:var(--gold-lo);margin-top:7px;width:var(--w)}
.mrow .n{font:300 20px var(--display);font-stretch:110%;color:var(--ivory);font-variant-numeric:tabular-nums}
.mrow.off{opacity:.32}
.detail h3{font-size:clamp(28px,3vw,40px)}
.detail .meta{margin-top:6px;font-size:13px;color:var(--fog)}
.plist{list-style:none;margin:20px 0 0;padding:0;columns:3 280px;column-gap:36px}
.plist li{break-inside:avoid;display:grid;grid-template-columns:minmax(0,1fr) auto;gap:4px 12px;padding:10px 0;border-bottom:1px solid var(--line);transition:opacity .4s}
.plist .pn{font-size:14.5px;color:var(--ivory)}
.plist .py{font-size:12px;color:var(--gold);font-variant-numeric:tabular-nums;text-align:right}
.plist .pm{grid-column:1/-1;font-size:12px;color:var(--fog)}
.plist li.off{opacity:.3}
.panel-note{margin-top:14px;font-size:12px;color:var(--dim)}

/* feature image */
.feature{position:relative;margin:0}
.feature img{width:100%;height:clamp(300px,46vw,640px);object-fit:cover;object-position:center 60%}
.feature figcaption{position:absolute;left:var(--gutter);bottom:24px;font-size:12px;letter-spacing:.14em;text-transform:uppercase;color:var(--ivory);text-shadow:0 1px 12px rgba(0,0,0,.6)}
.feature::after{content:"";position:absolute;inset:auto 0 0;height:40%;background:linear-gradient(to top,rgba(12,17,21,.75),rgba(12,17,21,0));pointer-events:none}
.feature figcaption{z-index:1}

/* portfolio */
.chips{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:36px}
.chip{appearance:none;border:1px solid var(--line-2);background:transparent;color:var(--mist);font:500 13px var(--body);letter-spacing:.03em;padding:9px 16px;border-radius:999px;cursor:pointer;transition:all .2s}
.chip span{color:var(--dim);margin-left:6px;font-variant-numeric:tabular-nums}
.chip:hover{border-color:var(--fog);color:var(--ivory)}
.chip[aria-pressed="true"]{background:var(--ivory);border-color:var(--ivory);color:var(--ink)}
.chip[aria-pressed="true"] span{color:var(--fog)}
.grid{columns:3 300px;column-gap:28px}
.card{break-inside:avoid;margin:0 0 36px}
.card .ph{overflow:hidden;background:var(--ink-2)}
.card img{width:100%;height:auto;filter:saturate(.9);transition:transform 1.1s cubic-bezier(.2,.7,.2,1),filter .6s}
.card:hover img{transform:scale(1.035);filter:saturate(1)}
.card figcaption{display:flex;justify-content:space-between;gap:16px;padding-top:12px;border-bottom:1px solid var(--line);padding-bottom:12px}
.card .cn{font:400 17px/1.25 var(--display);font-stretch:106%;color:var(--ivory)}
.card .cp{font-size:11.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--fog);text-align:right;white-space:nowrap;padding-top:3px}
.note{margin-top:8px;font-size:12px;color:var(--dim)}
@media (max-width:700px){.grid{columns:2;column-gap:14px}.card{margin-bottom:22px}.card figcaption{flex-direction:column;gap:4px;padding-top:8px;padding-bottom:10px}.card .cn{font-size:14px}.card .cp{font-size:10px;letter-spacing:.08em;text-align:left;white-space:normal}}

/* partners */
.two{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.mkts{grid-column:1/span 7;margin:0}
.mkts div{display:grid;grid-template-columns:150px minmax(0,1fr);gap:24px;padding:18px 0;border-top:1px solid var(--line)}
.mkts dt{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold);padding-top:4px}
.mkts dd{margin:0;font:300 clamp(19px,1.7vw,24px)/1.35 var(--display);font-stretch:108%;color:var(--ivory)}
.mkts dd i{font-style:normal;color:var(--dim);padding:0 .08em}
.mkts dd span{white-space:nowrap}
.mand{grid-column:9/-1}
.mand h3{font:500 12px var(--body);letter-spacing:.22em;text-transform:uppercase;color:var(--fog);padding-bottom:14px}
.mand ul{list-style:none;margin:0;padding:0}
.mand li{padding:16px 0;border-top:1px solid var(--line)}
.mand b{display:block;font:400 18px var(--display);font-stretch:108%;color:var(--gold)}
.mand p{margin-top:4px;font-size:15px;color:var(--mist)}
.mand .src{margin-top:6px;font-size:12px;color:var(--dim)}
@media (max-width:1000px){.mkts,.mand{grid-column:1/-1}.mkts div{grid-template-columns:minmax(0,1fr);gap:6px}}
.quote{margin:clamp(64px,8vw,120px) 0 0;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px}
.quote blockquote{grid-column:2/span 9;margin:0;font:200 clamp(28px,3.4vw,50px)/1.18 var(--display);font-stretch:112%;color:var(--ivory);text-wrap:balance;position:relative}
.quote blockquote::before{content:"\201C";position:absolute;left:-.5em;top:-.12em;font-size:2em;line-height:1;color:var(--gold)}
.quote figcaption{grid-column:2/span 9;font-size:14px;color:var(--fog)}
.quote figcaption b{color:var(--ivory);font-weight:500}
@media (max-width:700px){.quote blockquote,.quote figcaption{grid-column:1/-1}.quote blockquote::before{position:static;display:block;font-size:1.6em;margin-bottom:-.2em}}

/* platform */
.steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px;list-style:none;margin:0;padding:0;counter-reset:s}
.steps li{border-top:1px solid var(--line);padding:22px 0 34px}
.steps .k{font:400 12px var(--body);color:var(--gold);letter-spacing:.1em;font-variant-numeric:tabular-nums}
.steps h3{margin-top:14px}
.steps p{margin-top:10px;color:var(--mist);font-size:15px;max-width:34ch}
@media (max-width:900px){.steps{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.steps{grid-template-columns:minmax(0,1fr)}}
.after{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;margin-top:clamp(64px,8vw,110px);align-items:start}
.after-img{grid-column:1/span 7;margin:0}
.after-img img{width:100%;aspect-ratio:16/9;object-fit:cover;object-position:center 72%;filter:grayscale(.25)}
.after-img figcaption{margin-top:10px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fog)}
.after-txt{grid-column:9/-1}
.after-txt h3{font-size:clamp(24px,2.3vw,32px);line-height:1.15}
.hand{list-style:none;margin:24px 0 0;padding:0}
.hand li{display:grid;grid-template-columns:64px minmax(0,1fr);gap:16px;padding:16px 0;border-top:1px solid var(--line)}
.hand .y{font:300 22px var(--display);color:var(--gold);font-variant-numeric:tabular-nums}
.hand b{display:block;font-weight:500;color:var(--ivory);font-size:15px}
.hand span{font-size:14px;color:var(--mist)}
.hand-q{margin-top:22px;font:300 19px/1.4 var(--display);font-stretch:106%;color:var(--ivory)}
.hand-q small{display:block;margin-top:8px;font:400 12px var(--body);color:var(--fog)}
@media (max-width:1000px){.after-img,.after-txt{grid-column:1/-1}}

/* heritage */
.her{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.her-img{grid-column:1/span 5;position:sticky;top:96px;margin:0}
.her-img img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.45) contrast(1.04)}
.her-img figcaption{margin-top:10px;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--fog)}
.tl{grid-column:7/-1;list-style:none;margin:0;padding:0}
.tl li{display:grid;grid-template-columns:96px minmax(0,1fr);gap:20px;padding:20px 0;border-top:1px solid var(--line)}
.tl .y{font:200 34px/1 var(--display);font-stretch:112%;color:var(--gold);font-variant-numeric:tabular-nums lining-nums}
.tl p{font-size:16px;color:var(--ivory);line-height:1.5}
.tl .s{display:block;margin-top:6px;font-size:12px;color:var(--dim)}
.tl li.now .y{color:var(--ivory)}
@media (max-width:1000px){.her-img{position:static;grid-column:1/-1}.tl{grid-column:1/-1}}
@media (max-width:520px){.tl li{grid-template-columns:minmax(0,1fr);gap:8px}}

/* press */
.press{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;align-items:start}
.chart{grid-column:1/span 7;min-width:0}
.chart svg{display:block;width:100%;height:auto;overflow:visible}
.chart .bar-r{fill:var(--gold-lo)}
.chart .bar-r.hi{fill:var(--gold)}
.chart text{font:500 10px var(--body);fill:var(--fog);font-variant-numeric:tabular-nums}
.chart text.v{fill:var(--ivory)}
.chart .base{stroke:var(--line-2);stroke-width:1}
.chart-cap{margin-top:14px;font-size:12px;color:var(--dim)}
.outlets{grid-column:9/-1;margin:0}
.outlets div{padding:14px 0;border-top:1px solid var(--line)}
.outlets dt{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.outlets dd{margin:6px 0 0;color:var(--mist);font-size:15px}
.heads{grid-column:1/-1;list-style:none;margin:clamp(48px,6vw,80px) 0 0;padding:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 32px}
.heads li{border-top:1px solid var(--line);padding:18px 0 28px}
.heads b{display:block;font:300 20px/1.3 var(--display);font-stretch:106%;color:var(--ivory)}
.heads span{display:block;margin-top:10px;font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--fog)}
@media (max-width:1000px){.chart,.outlets{grid-column:1/-1}.heads{grid-template-columns:minmax(0,1fr)}}

/* leadership */
.people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(24px,4vw,64px)}
.person{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:28px;align-items:end}
.person img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:center top;background:var(--ink-3)}
.person h3{font-size:clamp(24px,2.2vw,30px)}
.person .role{margin-top:6px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}
.person p{margin-top:16px;color:var(--mist);font-size:15px}
@media (max-width:1000px){.people{grid-template-columns:minmax(0,1fr)}}
@media (max-width:520px){.person{grid-template-columns:minmax(0,1fr)}.person img{max-width:280px}}
.commit{display:flex;flex-wrap:wrap;gap:12px 40px;margin-top:clamp(56px,7vw,96px);padding-top:28px;border-top:1px solid var(--line)}
.commit .eyebrow{flex-basis:100%;color:var(--fog)}
.commit p:not(.eyebrow){font:200 clamp(26px,2.8vw,40px)/1.1 var(--display);font-stretch:116%;color:var(--ivory)}
.commit p span{color:var(--gold)}

/* contact */
.contact{background:var(--ink-2);border-top:1px solid var(--line)}
.contact .wrap{padding-block:clamp(88px,11vw,160px)}
.lockup{width:min(300px,62vw);color:var(--ivory)}
.lockup svg{width:100%;height:auto;display:block}
.contact h2{font-size:clamp(40px,6vw,92px);line-height:1;font-stretch:118%;margin-top:clamp(48px,6vw,80px);max-width:11em}
.cgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;margin-top:clamp(48px,6vw,80px)}
.cgrid > div{border-top:1px solid var(--line-2);padding-top:16px;min-width:0}
.cgrid .eyebrow{color:var(--gold)}
.cgrid .who{margin-top:14px;font:400 20px var(--display);font-stretch:108%}
.cgrid .who small{display:block;margin-top:4px;font:400 13px var(--body);color:var(--fog)}
.line{display:flex;align-items:center;gap:10px;margin-top:12px;flex-wrap:wrap}
.line a,.line span.t{font-size:17px;color:var(--ivory);text-decoration:none;overflow-wrap:anywhere}
.line a:hover{color:var(--gold-hi)}
.copy{appearance:none;border:1px solid var(--line-2);background:transparent;color:var(--fog);font:500 11px var(--body);letter-spacing:.08em;padding:5px 9px;cursor:pointer;transition:all .2s}
.copy:hover{color:var(--ivory);border-color:var(--fog)}
.copy.ok{color:var(--ink);background:var(--gold);border-color:var(--gold)}
.addr{margin-top:14px;font-size:17px;line-height:1.55;color:var(--ivory)}
@media (max-width:900px){.cgrid{grid-template-columns:minmax(0,1fr)}}
footer{border-top:1px solid var(--line);padding-block:32px calc(32px + env(safe-area-inset-bottom,0px))}
footer .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:16px 40px;align-items:end}
footer p{font-size:12px;line-height:1.6;color:var(--dim);max-width:90ch}
footer .tag{font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--gold);white-space:nowrap}
@media (max-width:700px){footer .wrap{grid-template-columns:minmax(0,1fr)}}

/* entrance */
.rise{animation:rise 1s cubic-bezier(.2,.7,.2,1) both}
.rise.d1{animation-delay:.08s}.rise.d2{animation-delay:.18s}.rise.d3{animation-delay:.3s}
@keyframes rise{from{transform:translateY(18px);opacity:.001}to{transform:none;opacity:1}}
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .rise{animation:none}
  .hub .ring{animation:none;opacity:0}
  .light{display:none}
  .arc,.cty,.card img{transition:none}
}

/* ---- site chrome: shared by every page ---- */
.nav a[aria-current="page"]{color:var(--ivory)}
.mnav{display:none;position:relative}
.mnav summary{list-style:none;cursor:pointer;font-size:13px;letter-spacing:.06em;color:var(--ivory);border:1px solid var(--line-2);padding:8px 14px}
.mnav summary::-webkit-details-marker{display:none}
.mnav[open] summary{border-color:var(--gold)}
.mnav nav{position:absolute;right:0;top:calc(100% + 13px);min-width:220px;background:var(--ink-2);border:1px solid var(--line-2);display:flex;flex-direction:column;padding:8px 0;box-shadow:0 18px 40px rgba(0,0,0,.45)}
.mnav nav a{padding:12px 20px;font-size:16px;text-decoration:none;color:var(--mist)}
.mnav nav a[aria-current="page"]{color:var(--ivory)}
@media (max-width:820px){.mnav{display:block}.bar-cta{margin-left:auto}}
@media (max-width:420px){.bar .wrap{gap:12px}.bar-cta{padding:8px 12px}}

.site-foot{border-top:1px solid var(--line);padding-block:56px calc(32px + env(safe-area-inset-bottom,0px))}
.site-foot .fgrid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.8fr) minmax(0,1fr) minmax(0,1.4fr);gap:32px 40px;align-items:start}
.site-foot .fbrand svg{display:block;width:92px;height:auto;color:var(--ivory)}
.site-foot .fbrand p{margin-top:16px;font-size:13px;color:var(--fog)}
.site-foot h2{font:500 13px/1.4 var(--body);letter-spacing:0;color:var(--fog);margin-bottom:12px}
.site-foot ul{list-style:none;margin:0;padding:0}
.site-foot li{margin:0 0 8px}
.site-foot a{text-decoration:none;color:var(--mist);font-size:15px}
.site-foot a:hover{color:var(--ivory)}
.site-foot .legal{font-size:14px;line-height:1.6;color:var(--mist)}
.site-foot .fbase{margin-top:48px;padding-top:20px;position:relative;display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:space-between}
.site-foot .fbase::before{content:"";position:absolute;top:0;left:var(--gutter);right:var(--gutter-r);border-top:1px solid var(--line)}
.site-foot .fbase p{font-size:12px;line-height:1.6;color:var(--dim);max-width:90ch}
@media (max-width:980px){.site-foot .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:560px){.site-foot .fgrid{grid-template-columns:minmax(0,1fr)}}

.more{margin-top:44px}
.more a,.tlink{font-size:15px;color:var(--ivory);text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px;text-decoration-color:var(--line-2);transition:text-decoration-color .2s}
.more a:hover,.tlink:hover{text-decoration-color:var(--gold)}

/* ---- inner page header ---- */
.phead{padding-block:clamp(44px,6vw,96px) clamp(28px,4vw,56px)}
.phead h1{font:400 clamp(36px,4.6vw,68px)/1.06 var(--display);font-stretch:104%;letter-spacing:-.014em;max-width:17em}
.phead .lead{margin-top:22px}
.crumbs{font-size:13px;color:var(--fog);margin-bottom:22px}
.crumbs a{color:var(--mist);text-decoration:none}
.crumbs a:hover{color:var(--ivory)}

/* ---- filters ---- */
.ctrl{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center;justify-content:space-between;border-top:1px solid var(--line);padding-block:22px}
.ctrl .chips{margin:0}
.search{position:relative;flex:0 1 340px}
.search input,.fld input,.fld select,.fld textarea{width:100%;background:var(--ink-2);border:1px solid var(--line-2);border-radius:0;color:var(--ivory);font:400 16px/1.4 var(--body);padding:11px 14px;transition:border-color .2s}
.search input::placeholder,.fld ::placeholder{color:var(--dim)}
.search input:focus,.fld input:focus,.fld select:focus,.fld textarea:focus{outline:none;border-color:var(--gold)}
.count{font-size:13px;color:var(--fog);margin:0 0 8px}
.sortsel{display:flex;align-items:center;gap:10px;font-size:13px;color:var(--fog)}
.sortsel select{background:var(--ink-2);border:1px solid var(--line-2);color:var(--ivory);font:400 14px var(--body);padding:8px 10px}
.empty{padding:40px 0;color:var(--fog)}

/* ---- projects ledger ---- */
.ygroup{border-top:1px solid var(--line)}
.ygroup>h2{position:sticky;top:calc(61px + env(safe-area-inset-top,0px));z-index:5;background:var(--ink);font:300 26px/1 var(--display);font-stretch:108%;color:var(--gold);padding:22px 0 14px;margin:0;font-variant-numeric:tabular-nums}
.pj{border-top:1px solid var(--line)}
.pj:first-of-type{border-top:0}
.pj summary{list-style:none;cursor:pointer;display:grid;grid-template-columns:minmax(0,2.2fr) minmax(0,1fr) minmax(0,1.3fr) 104px 18px;gap:20px;align-items:baseline;padding:16px 0}
.pj summary::-webkit-details-marker{display:none}
.pj summary:hover .pn{color:var(--gold-hi)}
.pj .pn{font:400 19px/1.3 var(--display);font-stretch:104%;color:var(--ivory);transition:color .2s}
.pj .pc{display:block;font-size:14px;color:var(--fog);margin-top:3px}
.pj .pk,.pj .pd{font-size:14px;color:var(--mist)}

.pj .pm{font-size:12px;color:var(--fog);text-align:right;white-space:nowrap}
.pj .chev{width:10px;height:10px;border-right:1.5px solid var(--fog);border-bottom:1.5px solid var(--fog);transform:rotate(45deg) translateY(-4px);transition:transform .25s}
.pj[open] .chev{transform:rotate(225deg) translate(-2px,-2px)}
.pj-det{padding:4px 0 28px}
.strip{display:flex;gap:14px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x proximity}
.strip figure{margin:0;flex:0 0 auto;scroll-snap-align:start;max-width:80vw}
.strip a{display:block;background:#1A2229}
.strip img{height:200px;width:auto;max-width:80vw;object-fit:contain}
.strip figcaption{margin-top:8px;font-size:12px;line-height:1.4;color:var(--fog);max-width:300px}
.strip figcaption b{display:block;font-weight:500;color:var(--mist)}
.pj-yr{font-size:13px;color:var(--fog);margin-top:12px}
@media (max-width:860px){
  .pj summary{grid-template-columns:minmax(0,1fr) 18px;gap:6px 14px}
  .pj .pk,.pj .pd,.pj .pm{grid-column:1;text-align:left}
  .pj .pk,.pj .pd{font-size:13px}
  .pj .pd:empty{display:none}
  .pj .pm{display:none}
  .pj .chev{grid-column:2;grid-row:1}
  .strip img{height:160px}
}

/* ---- press archive ---- */
.yjump{display:flex;flex-wrap:wrap;gap:6px 16px;font-size:14px;margin:0 0 8px}
.yjump a{color:var(--mist);text-decoration:none;font-variant-numeric:tabular-nums}
.yjump a:hover{color:var(--gold-hi)}
.prgrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:36px 28px;padding:8px 0 48px}
.prc{margin:0;min-width:0}
.prc>a{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:#1A2229;overflow:hidden;padding:12px}
.prc img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.prc>a:hover img{transform:scale(1.03)}
.prc .meta{margin-top:14px;font-size:12px;line-height:1.5;color:var(--fog)}
.prc .meta b{font-weight:500;color:var(--gold)}
.prc h3{margin-top:6px;font:400 17px/1.35 var(--body);font-stretch:100%;color:var(--ivory);text-wrap:pretty}
.extable{border-top:1px solid var(--line)}
.exrow{display:grid;grid-template-columns:110px minmax(0,2.4fr) minmax(0,1fr) minmax(0,1.2fr);gap:20px;padding:15px 0;border-bottom:1px solid var(--line);font-size:15px;align-items:baseline}
.exrow .w{color:var(--gold);font-size:13px;font-variant-numeric:tabular-nums}
.exrow .e{color:var(--ivory)}
.exrow .p,.exrow .r{color:var(--mist);font-size:14px}
@media (max-width:760px){.exrow{grid-template-columns:minmax(0,1fr);gap:4px}}

/* ---- services ---- */
.svc{border-top:1px solid var(--line)}
.svc a{display:grid;grid-template-columns:56px minmax(0,1.1fr) minmax(0,1.4fr) 24px;gap:24px;align-items:baseline;padding:30px 0;border-bottom:1px solid var(--line);text-decoration:none;transition:background .3s}
.svc a:hover h2{color:var(--gold-hi)}
.svc .k{font-size:13px;color:var(--gold);font-variant-numeric:tabular-nums}
.svc h2{font-size:clamp(24px,2.4vw,34px);transition:color .2s}
.svc p{color:var(--mist);font-size:16px;line-height:1.6}
.svc .ar{color:var(--fog);font-size:18px}
@media (max-width:820px){.svc a{grid-template-columns:40px minmax(0,1fr);gap:10px 16px}.svc p{grid-column:2}.svc .ar{display:none}}
.princ{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.princ div{border-top:1px solid var(--line-2);padding-top:18px}
.princ h3{font-size:20px}
.princ p{margin-top:12px;color:var(--mist);font-size:16px;line-height:1.6}
@media (max-width:820px){.princ{grid-template-columns:minmax(0,1fr)}}
.sv-intro{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-bottom:clamp(48px,6vw,88px)}
.sv-intro .tg{grid-column:1/span 6;font:300 clamp(24px,2.6vw,36px)/1.2 var(--display);font-stretch:108%;color:var(--gold-hi)}
.sv-intro .tx{grid-column:7/-1;display:grid;gap:16px}
.sv-intro .tx p{font-size:17px;line-height:1.65;color:var(--mist)}
@media (max-width:900px){.sv-intro .tg,.sv-intro .tx{grid-column:1/-1}}
.caps{border-top:1px solid var(--line);padding-block:clamp(40px,5vw,72px)}
.caps>h2{font-size:clamp(24px,2.4vw,32px);margin-bottom:32px}
.capgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px 28px;list-style:none;margin:0;padding:0}
.capgrid li{border-top:1px solid var(--line-2);padding-top:18px}
.capgrid h3{font-size:19px;line-height:1.3}
.capgrid p{margin-top:10px;font-size:15px;line-height:1.6;color:var(--mist)}
@media (max-width:980px){.capgrid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (max-width:620px){.capgrid{grid-template-columns:minmax(0,1fr)}}
.between{max-width:62ch;font-size:17px;line-height:1.65;color:var(--mist);padding-bottom:clamp(40px,5vw,64px)}
.evlist{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px}
.evlist li{border-top:1px solid var(--line);padding:12px 0;font-size:16px;color:var(--ivory)}
@media (max-width:620px){.evlist{grid-template-columns:minmax(0,1fr)}}
.svnext{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.svnext a{padding:28px 0;text-decoration:none}
.svnext a+a{text-align:right;border-left:1px solid var(--line);padding-left:24px}
.svnext small{display:block;font-size:13px;color:var(--fog);margin-bottom:6px}
.svnext span{font:400 20px/1.3 var(--display);font-stretch:104%;color:var(--ivory)}
.svnext a:hover span{color:var(--gold-hi)}
.cta{padding-block:clamp(56px,7vw,104px);border-top:1px solid var(--line)}
.cta h2{max-width:20em}
.cta p{margin-top:18px;color:var(--mist);max-width:56ch}
.cta .btn{margin-top:28px}
.btn{display:inline-block;font:500 14px var(--body);letter-spacing:.04em;text-decoration:none;color:var(--ink);background:var(--gold);padding:13px 22px;border:0;cursor:pointer;transition:background .2s}
.btn:hover{background:var(--gold-hi)}
.btn[disabled]{opacity:.6;cursor:wait}

/* ---- contact ---- */
.cpage{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:24px;padding-bottom:clamp(72px,9vw,128px)}
.cside{grid-column:1/span 4;display:grid;gap:36px;align-content:start}
.cside h2{font:500 13px/1.4 var(--body);color:var(--fog);margin-bottom:10px}
.cside .big{font:400 21px/1.35 var(--display);font-stretch:104%;color:var(--ivory)}
.cside .big small{display:block;font:400 14px var(--body);color:var(--fog);margin-top:4px}
.cside a{color:var(--ivory)}
.cside p{font-size:16px;line-height:1.6;color:var(--mist)}
.cform{grid-column:6/-1;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;background:var(--ink-2);border:1px solid var(--line);padding:clamp(22px,3vw,40px);align-content:start}
.fld{display:grid;gap:8px;min-width:0}
.fld.full{grid-column:1/-1}
.fld label{font-size:13px;color:var(--fog)}
.fld textarea{min-height:150px;resize:vertical}
.fld select{appearance:none;background-image:linear-gradient(45deg,transparent 50%,var(--fog) 50%),linear-gradient(135deg,var(--fog) 50%,transparent 50%);background-position:calc(100% - 18px) 52%,calc(100% - 13px) 52%;background-size:5px 5px;background-repeat:no-repeat}
.cform .foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:14px 24px}
.cform .note2{font-size:13px;color:var(--fog);flex:1 1 220px}
.status{grid-column:1/-1;font-size:15px;color:var(--gold-hi);min-height:1.2em}
.status.err{color:#E39A8B}
.hp{position:absolute;left:-9999px}
@media (max-width:980px){.cside,.cform{grid-column:1/-1}}
@media (max-width:560px){.cform{grid-template-columns:minmax(0,1fr)}}

/* ---- lightbox ---- */
.lb{border:0;padding:0;margin:0;max-width:none;max-height:none;width:100vw;height:100dvh;background:rgba(7,10,13,.96);color:var(--ivory)}
.lb::backdrop{background:rgba(7,10,13,.9)}
.lb .in{position:absolute;inset:0;display:grid;grid-template-rows:minmax(0,1fr) auto;padding:56px 72px 20px}
.lb .fr{display:flex;align-items:center;justify-content:center;min-height:0}
.lb img{max-width:100%;max-height:100%;width:auto;height:auto;object-fit:contain;background:#1A2229}
.lb .cap{padding-top:14px;text-align:center;font-size:14px;color:var(--mist);min-height:2.4em}
.lb .cap small{display:block;color:var(--fog);font-size:12px;margin-top:2px}
.lb button{position:absolute;background:none;border:1px solid var(--line-2);color:var(--ivory);width:44px;height:44px;cursor:pointer;font:400 20px/1 var(--body);display:grid;place-items:center}
.lb button:hover{border-color:var(--gold)}
.lb .x{top:12px;right:12px}
.lb .pv{left:14px;top:50%;transform:translateY(-50%)}
.lb .nx{right:14px;top:50%;transform:translateY(-50%)}
.lb .pv[hidden],.lb .nx[hidden]{display:none}
@media (max-width:700px){.lb .in{padding:60px 12px 76px}.lb .pv,.lb .nx{top:auto;bottom:14px;transform:none}}

/* ---- 404 ---- */
.nf{padding-block:clamp(72px,10vw,160px)}
.nf ul{list-style:none;margin:32px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:12px 28px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.prc .noimg{display:flex;align-items:center;justify-content:center;aspect-ratio:4/3;background:#1A2229;color:var(--fog);font:300 22px/1.2 var(--display);font-stretch:108%}
