@import url('https://fonts.googleapis.com/css2?family=Bodoni+Moda:opsz,wght@6..96,400;6..96,500&family=Manrope:wght@300;400;500;600&display=swap');

:root{
  --black:#090b0d; --ink:#111418; --graphite:#1b1f24; --steel:#737d86;
  --silver:#c8ced3; --line:#d9dee2; --mist:#eef1f3; --cloud:#f7f8f9; --white:#fff;
  --accent:#8f9aa5; --focus:#58636e;
  --bg:var(--cloud); --fg:var(--graphite); --heading:var(--black); --muted:#636b73; --faint:#8d969e;
  --serif:'Bodoni Moda', Didot, 'Times New Roman', serif; --sans:'Manrope', Arial, sans-serif;
  --wrap:min(1320px,calc(100vw - 64px)); --rail:64px;
  --s1:4px;--s2:8px;--s3:12px;--s4:20px;--s5:32px;--s6:52px;--s7:84px;--s8:136px;
  --ease:cubic-bezier(.22,.61,.36,1); --ease-out:cubic-bezier(.16,1,.3,1);
}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cloud);color:var(--fg);font-family:var(--sans);font-size:16px;font-weight:300;line-height:1.65;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}img{max-width:100%;display:block}button,input,textarea{font:inherit}button{cursor:pointer}.wrap{width:var(--wrap);margin-inline:auto}.skip{position:fixed;left:-9999px;top:10px;z-index:999;background:#fff;color:#111;padding:.8rem 1rem}.skip:focus{left:10px}:focus-visible{outline:2px solid var(--focus);outline-offset:4px}

[data-tone=light]{--bg:var(--cloud);--fg:var(--graphite);--heading:var(--black);--muted:#636b73;--faint:#8d969e;--line:#d9dee2;--accent:#68737e}
[data-tone=white]{--bg:#fff;--fg:var(--graphite);--heading:var(--black);--muted:#636b73;--faint:#8d969e;--line:#e0e4e7;--accent:#68737e}
[data-tone=mist]{--bg:var(--mist);--fg:var(--graphite);--heading:var(--black);--muted:#5f6870;--faint:#858e96;--line:#ccd3d8;--accent:#606c77}
[data-tone=dark]{--bg:var(--black);--fg:#e6e9eb;--heading:#fff;--muted:#aab2b9;--faint:#7e8790;--line:#2b3036;--accent:#c8ced3}
[data-tone=graphite]{--bg:var(--graphite);--fg:#ebedef;--heading:#fff;--muted:#b4bbc1;--faint:#8c949b;--line:#3b4249;--accent:#d7dce0}
.section{position:relative;background:var(--bg);color:var(--fg);padding-block:clamp(5rem,9vw,9.5rem);overflow:hidden}.section--compact{padding-block:clamp(3rem,6vw,5.5rem)}.section h1,.section h2,.section h3{color:var(--heading)}

/* HEADER — thinner, gallery-like, with a right-side drawer on mobile */
.hdr{position:fixed;inset:0 0 auto;z-index:100;color:#fff;border-bottom:1px solid transparent;transition:background .3s var(--ease),border-color .3s var(--ease),color .3s var(--ease)}.hdr[data-stuck=true]{background:rgba(9,11,13,.94);backdrop-filter:blur(14px);border-bottom-color:#ffffff1d}.hdr__in{height:68px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px}.mark{display:inline-flex;align-items:baseline;gap:10px;justify-self:start}.mark__name{font-family:var(--serif);font-size:1.25rem;letter-spacing:-.02em}.mark__sub{font-size:.56rem;letter-spacing:.18em;text-transform:uppercase;color:#aeb5bb}.mark__rule{display:none}.nav{display:flex;align-items:center;justify-content:center;gap:1.45rem}.nav a{font-size:.69rem;text-transform:uppercase;letter-spacing:.12em;color:#e2e5e8;position:relative;padding:6px 0}.nav a:after{content:'';position:absolute;left:50%;right:50%;bottom:0;height:1px;background:#fff;transition:left .25s var(--ease),right .25s var(--ease)}.nav a:hover:after,.nav a[aria-current=page]:after{left:0;right:0}.nav__portal{justify-self:end!important;border:1px solid #ffffff32;padding:.58rem .76rem!important}.burger{display:none;justify-self:end;background:none;border:0;padding:10px;color:#fff}.burger span{display:block;width:22px;height:1px;background:currentColor;margin:5px 0}
@media(max-width:1080px){.hdr__in{grid-template-columns:1fr auto}.nav{position:fixed;top:0;right:0;bottom:0;width:min(460px,88vw);background:#111418;display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:96px 48px 48px;gap:0;transform:translateX(105%);transition:transform .45s var(--ease-out);box-shadow:-40px 0 80px #0007}.nav[data-open=true]{transform:none}.nav a{font-family:var(--serif);font-size:clamp(2rem,6vw,3.6rem);text-transform:none;letter-spacing:-.025em;padding:.2em 0;border-bottom:1px solid #ffffff18}.nav__portal{font-family:var(--sans)!important;font-size:.72rem!important;text-transform:uppercase!important;letter-spacing:.13em!important;margin-top:28px!important;border:1px solid #ffffff38!important;width:max-content}.burger{display:block;z-index:2}.mark__sub{display:none}}

/* TYPOGRAPHY */
.label{font-size:.62rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;color:var(--accent)}.display{font-family:var(--serif);font-weight:400;font-size:clamp(4.3rem,9vw,9.8rem);line-height:.82;letter-spacing:-.055em;margin:0;color:var(--heading)}.t-lg{font-family:var(--serif);font-weight:400;font-size:clamp(3.4rem,6.8vw,7.2rem);line-height:.88;letter-spacing:-.045em}.t-md{font-family:var(--serif);font-weight:400;font-size:clamp(2.5rem,4.7vw,5.1rem);line-height:.94;letter-spacing:-.04em}.t-sm{font-family:var(--serif);font-weight:400;font-size:clamp(1.55rem,2.3vw,2.5rem);line-height:1.03;letter-spacing:-.02em}.lede{font-size:clamp(1.03rem,1.35vw,1.25rem);line-height:1.65;color:var(--muted);max-width:48rem}.statement{font-family:var(--serif);font-size:clamp(2.25rem,4vw,4.5rem);line-height:.98;letter-spacing:-.035em;color:var(--heading)}.muted{color:var(--muted)}.mt-1{margin-top:12px}.mt-2{margin-top:20px}.mt-3{margin-top:32px}.mt-4{margin-top:52px}

/* HERO — split editorial masthead rather than a bottom-weighted cinematic hero */
.hero{min-height:100svh;background:linear-gradient(135deg,#090b0d 0%,#111419 68%,#252b31 160%);color:#fff;display:grid;align-items:stretch;padding-top:68px;position:relative;overflow:hidden}.hero:after{content:'';position:absolute;inset:68px 0 0;background:linear-gradient(90deg,transparent calc(50% - .5px),#ffffff14 50%,transparent calc(50% + .5px));pointer-events:none}.hero__grid{position:absolute;inset:68px 0 0;opacity:.18;background-image:linear-gradient(#ffffff10 1px,transparent 1px),linear-gradient(90deg,#ffffff10 1px,transparent 1px);background-size:96px 96px;mask-image:linear-gradient(to bottom,#000,transparent 90%)}.hero__in{width:var(--wrap);margin:auto;display:grid;grid-template-columns:minmax(210px,3fr) minmax(0,9fr);gap:clamp(2rem,6vw,7rem);align-items:end;padding:clamp(5rem,9vw,9rem) 0 52px;position:relative;z-index:2}.hero__side{border-top:1px solid #ffffff38;padding-top:18px;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}.hero__side .label{color:#d2d6da}.hero__side p{color:#aeb5bb;font-size:.9rem;max-width:20rem}.hero__main{align-self:end}.hero .display{color:#fff;max-width:10.5ch}.hero__lede{margin-top:30px;color:#bec5ca;max-width:43rem}.hero__actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.principles{display:flex;gap:10px 22px;flex-wrap:wrap;border-top:1px solid #ffffff26;margin-top:50px;padding-top:16px;font-size:.58rem;text-transform:uppercase;letter-spacing:.17em;color:#858e96}
@media(max-width:800px){.hero:after{display:none}.hero__in{grid-template-columns:1fr;padding-top:68px}.hero__side{min-height:auto;display:block}.hero__side p{display:none}.hero .display{font-size:clamp(4rem,19vw,7rem)}}

/* BUTTONS */
.btn{display:inline-flex;align-items:center;gap:14px;border:1px solid var(--line);padding:.9rem 1.05rem;font-size:.66rem;text-transform:uppercase;letter-spacing:.14em;transition:background .25s var(--ease),color .25s var(--ease),border-color .25s var(--ease)}.btn svg{transition:transform .25s var(--ease)}.btn:hover svg{transform:translateX(4px)}.btn--solid{background:var(--heading);color:var(--bg);border-color:var(--heading)}.btn--solid:hover{background:transparent;color:var(--heading)}.hero .btn{border-color:#ffffff38;color:#fff}.hero .btn--solid{background:#fff;color:#0b0d0f;border-color:#fff}.hero .btn--solid:hover{background:transparent;color:#fff}.tlink{display:inline-flex;align-items:center;gap:12px;font-size:.65rem;text-transform:uppercase;letter-spacing:.14em;border-bottom:1px solid var(--line);padding-bottom:5px}.tlink svg{transition:transform .25s var(--ease)}.tlink:hover svg{transform:translateX(5px)}

/* EDITORIAL SECTION HEADER */
.kicker{display:grid;grid-template-columns:120px 1fr;gap:28px;align-items:start;margin-bottom:clamp(2.5rem,6vw,5rem)}.kicker__n{font-family:var(--serif);font-size:clamp(3.5rem,6vw,7rem);line-height:.8;color:var(--faint);opacity:.35}.kicker__body{border-top:1px solid var(--line);padding-top:18px}.kicker__body h2{margin:.16em 0 .25em}.kicker__body .lede{max-width:55rem}@media(max-width:680px){.kicker{grid-template-columns:58px 1fr;gap:16px}.kicker__n{font-size:3rem}}

/* PROOF — horizontal index strip */
.proofstrip{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}.proofstrip__item{padding:32px 0 30px;border-right:1px solid var(--line);padding-left:clamp(18px,3vw,38px)}.proofstrip__item:first-child{padding-left:0}.proofstrip__item:last-child{border-right:0}.proofstrip__fig{font-family:var(--serif);font-size:clamp(3.5rem,6vw,6.7rem);line-height:.8;color:var(--heading)}.proofstrip__lab{font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);margin-top:16px}.proofstrip__note{font-size:.82rem;color:var(--muted);max-width:17rem;margin:.7rem 0 0}@media(max-width:760px){.proofstrip{grid-template-columns:1fr}.proofstrip__item,.proofstrip__item:first-child{padding:24px 0;border-right:0;border-bottom:1px solid var(--line)}.proofstrip__item:last-child{border-bottom:0}}

/* PANELS — used instead of numbered rows */
.panels{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line);background:var(--line);gap:1px}.panel{background:var(--bg);padding:clamp(26px,4vw,48px);min-height:390px;display:flex;flex-direction:column;position:relative;overflow:hidden}.panel__n{font-family:var(--serif);font-size:clamp(3rem,5vw,5.5rem);line-height:.8;color:var(--faint);opacity:.28}.panel h3{margin:auto 0 16px}.panel p{color:var(--muted);margin:0 0 25px}.panel ul{list-style:none;margin:0;padding:17px 0 0;border-top:1px solid var(--line);display:grid;gap:8px;color:var(--muted);font-size:.8rem}.panel ul li:before{content:'↳';margin-right:8px;color:var(--accent)}.panel--link{transition:background .28s var(--ease),color .28s var(--ease)}.panel--link:hover{background:var(--heading);color:var(--bg)}.panel--link:hover h3,.panel--link:hover .panel__n,.panel--link:hover p,.panel--link:hover ul{color:inherit}.panel--link:hover ul{border-color:currentColor}@media(max-width:900px){.panels{grid-template-columns:1fr}.panel{min-height:300px}}

/* STAIRCASE PROCESS */
.stairs{display:grid;gap:0;border-top:1px solid var(--line)}.step{display:grid;grid-template-columns:100px minmax(0,5fr) minmax(0,5fr);gap:28px;border-bottom:1px solid var(--line);padding:34px 0;align-items:start;position:relative}.step:nth-child(even){padding-left:clamp(0px,7vw,100px)}.step__n{font-family:var(--serif);font-size:2.6rem;line-height:.8;color:var(--faint);opacity:.4}.step h3{margin:0}.step p{color:var(--muted);margin:0}.step:before{content:'';position:absolute;left:0;bottom:-1px;height:1px;width:0;background:var(--accent);transition:width .8s var(--ease-out)}.step.in:before{width:33%}@media(max-width:760px){.step,.step:nth-child(even){grid-template-columns:54px 1fr;padding-left:0}.step p{grid-column:2}}

/* MARKET / TAG WALL */
.tagwall{border-top:1px solid var(--line);display:flex;flex-wrap:wrap}.tagwall span{font-family:var(--serif);font-size:clamp(1.7rem,3.2vw,3.5rem);line-height:1;padding:.46em .62em .52em 0;margin-right:.62em;border-bottom:1px solid var(--line);color:var(--heading)}.tagwall span:after{content:' /';color:var(--faint)}

/* STRATEGY BANDS */
.bands{border-top:1px solid var(--line)}.band{display:grid;grid-template-columns:80px minmax(0,4fr) minmax(0,6fr);gap:30px;align-items:center;min-height:145px;border-bottom:1px solid var(--line);transition:padding .28s var(--ease),background .28s var(--ease);padding:25px 0}.band:hover{padding-left:18px;background:#ffffff05}.band__n{font-family:var(--serif);font-size:2.3rem;color:var(--accent)}.band h3{margin:0}.band p{color:var(--muted);margin:0}@media(max-width:760px){.band{grid-template-columns:48px 1fr}.band p{grid-column:2}}

/* COMPANY SPREADS */
.spreads{display:grid}.spread{display:grid;grid-template-columns:120px minmax(0,6fr) minmax(0,4fr);gap:clamp(24px,5vw,70px);padding:clamp(3.5rem,7vw,7rem) 0;border-top:1px solid var(--line);align-items:start}.spread__n{font-family:var(--serif);font-size:clamp(4rem,8vw,8rem);line-height:.75;color:var(--faint);opacity:.25}.spread__statement{font-family:var(--serif);font-size:clamp(2.1rem,4vw,4.3rem);line-height:.96;letter-spacing:-.035em;color:var(--heading);margin-top:.3rem}.spread p{color:var(--muted)}@media(max-width:800px){.spread{grid-template-columns:58px 1fr}.spread p{grid-column:2}.spread__n{font-size:3.2rem}}

/* LEADERSHIP — gallery cards, not alternating bands */
.peoplegrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.personcard{border:1px solid var(--line);background:var(--bg);min-width:0}.personcard__media{aspect-ratio:4/5;border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:center;background:linear-gradient(145deg,rgba(115,125,134,.04),rgba(200,206,211,.13));overflow:hidden;position:relative}.personcard__media:after{content:'';position:absolute;inset:18px;border:1px solid var(--line)}.personcard__media img{width:100%;height:100%;object-fit:cover}.personcard__mono{font-family:var(--serif);font-size:clamp(5rem,9vw,9rem);letter-spacing:-.08em;color:var(--heading);opacity:.12}.personcard__body{padding:26px}.personcard__role{font-size:.6rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent)}.personcard h2{margin:.25em 0 .55em}.personcard p{font-size:.9rem;color:var(--muted)}.personcard ul{list-style:none;padding:0;margin:22px 0 0;border-top:1px solid var(--line)}.personcard li{padding:9px 0;border-bottom:1px solid var(--line);color:var(--muted);font-size:.78rem}@media(max-width:960px){.peoplegrid{grid-template-columns:1fr 1fr}}@media(max-width:640px){.peoplegrid{grid-template-columns:1fr}}

/* PAGE HEAD — offset composition */
.phead{background:linear-gradient(135deg,#090b0d,#171b20 75%,#2b3238 160%);color:#fff;padding:148px 0 86px;position:relative;overflow:hidden}.phead:before{content:'';position:absolute;left:calc(50% - .5px);top:68px;bottom:0;width:1px;background:#ffffff12}.phead__grid{position:absolute;inset:68px 0 0;background:repeating-linear-gradient(90deg,transparent 0,transparent calc(12.5% - 1px),#ffffff0c calc(12.5% - 1px),#ffffff0c 12.5%)}.phead__in{position:relative;z-index:1;display:grid;grid-template-columns:minmax(180px,3fr) minmax(0,9fr);gap:clamp(2rem,6vw,7rem);align-items:end}.phead .label{color:#cbd0d4}.phead h1{color:#fff;margin:.18em 0}.phead .lede{color:#b7bec4}.phead__side{border-top:1px solid #ffffff2c;padding-top:16px;color:#8f989f;font-size:.75rem;text-transform:uppercase;letter-spacing:.14em}@media(max-width:760px){.phead:before{display:none}.phead__in{grid-template-columns:1fr}.phead__side{display:none}}

/* CONTACT */
.contactgrid{display:grid;grid-template-columns:minmax(0,4fr) minmax(0,8fr);gap:clamp(3rem,7vw,8rem)}.direct{border-top:1px solid var(--line)}.direct div{padding:17px 0;border-bottom:1px solid var(--line)}.direct small{display:block;text-transform:uppercase;letter-spacing:.14em;color:var(--faint);font-size:.58rem;margin-bottom:5px}.form{display:grid;grid-template-columns:1fr 1fr;gap:22px 28px}.field{display:grid;gap:7px}.field--full{grid-column:1/-1}.field label{font-size:.6rem;text-transform:uppercase;letter-spacing:.14em;color:var(--muted)}.field input,.field textarea{width:100%;border:0;border-bottom:1px solid var(--line);background:transparent;color:var(--fg);padding:11px 0;outline:none}.field textarea{min-height:130px;resize:vertical}.field input:focus,.field textarea:focus{border-color:var(--accent)}.formstatus{grid-column:1/-1;font-size:.82rem;color:var(--muted)}@media(max-width:760px){.contactgrid{grid-template-columns:1fr}.form{grid-template-columns:1fr}.field--full{grid-column:auto}}

/* CTA */
.ctaframe{border:1px solid var(--line);display:grid;grid-template-columns:minmax(0,8fr) minmax(220px,4fr);align-items:stretch}.ctaframe__copy{padding:clamp(32px,6vw,74px)}.ctaframe__action{border-left:1px solid var(--line);display:flex;align-items:flex-end;justify-content:flex-end;padding:clamp(26px,4vw,48px)}@media(max-width:760px){.ctaframe{grid-template-columns:1fr}.ctaframe__action{border-left:0;border-top:1px solid var(--line);justify-content:flex-start}}

/* FOOTER — outlined wordmark */
.ftr{background:#090b0d;color:#aeb5bb;overflow:hidden}.ftr__top{padding:70px 0 36px}.ftr__cols{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,3fr) minmax(0,4fr);gap:44px}.ftr h4{font-size:.58rem;text-transform:uppercase;letter-spacing:.17em;color:#79828a;font-weight:500}.ftr nav{display:grid;gap:7px}.ftr a{font-size:.86rem;color:#c4c9cd}.ftr a:hover{color:#fff}.ftr__word{font-family:var(--serif);font-size:clamp(5rem,14vw,14rem);line-height:.76;letter-spacing:-.055em;color:transparent;-webkit-text-stroke:1px #ffffff25;white-space:nowrap;padding:.1em 0 .18em}.ftr__bar{border-top:1px solid #292e33;padding:19px 0;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap;font-size:.7rem;color:#78818a}@media(max-width:760px){.ftr__cols{grid-template-columns:1fr 1fr}.ftr__cols>div:first-child{grid-column:1/-1}}

/* REVEALS */
.rv{opacity:0;transform:translateY(22px);transition:opacity .72s var(--ease),transform .72s var(--ease-out)}.rv.in{opacity:1;transform:none}.rv-left{opacity:0;transform:translateX(-24px);transition:opacity .72s var(--ease),transform .72s var(--ease-out)}.rv-left.in{opacity:1;transform:none}.rv-line{overflow:hidden}.rv-line>*{display:block;transform:translateY(110%);transition:transform .88s var(--ease-out)}.rv-line.in>*{transform:none}@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition-duration:.001ms!important;animation-duration:.001ms!important;scroll-behavior:auto!important}.rv,.rv-left{opacity:1;transform:none}.rv-line>*{transform:none}}
.mark__logo{display:block;max-height:32px;max-width:180px;width:auto}

/* ---- Galileo additions: figures, points, meta, gallery, press, bios ---- */
.figure{margin:0;border:1px solid var(--line)}.figure img{width:100%;height:auto}
.points{list-style:none;margin:clamp(2rem,4vw,3.2rem) 0 0;padding:0;border-top:1px solid var(--line)}
.points li{padding:22px 0 22px 34px;border-bottom:1px solid var(--line);color:var(--muted);position:relative;max-width:62rem}
.points li:before{content:'↳';position:absolute;left:0;top:22px;color:var(--accent)}
.spread__place{font-size:.78rem;text-transform:uppercase;letter-spacing:.13em;color:var(--accent);margin:.5rem 0 0}
.spread ul.meta{list-style:none;margin:18px 0 0;padding:14px 0 0;border-top:1px solid var(--line);display:grid;gap:7px}
.spread ul.meta li{font-size:.78rem;color:var(--muted)}
.spread ul.meta li:before{content:'↳';margin-right:8px;color:var(--accent)}
/* Source images are pre-composed 1280x720 contact sheets, several photos to a frame.
   They must not be cropped or zoomed, or the inner panels get cut. height:100% also
   fights aspect-ratio here and produced ragged rows, so it is deliberately absent. */
/* Gridlines are drawn as borders on the items, not as a background showing through
   1px gaps. With 17 images in a 3-column grid the final row has an empty cell, and a
   background-painted grid renders that cell as a solid grey block indistinguishable
   from a broken image. Borders simply are not drawn where there is no item.
   height:auto is required: the width/height HTML attributes map to a presentational
   CSS height, which outranks aspect-ratio when no height is declared, and was forcing
   every cell to the image's full 562px instead of its 16:9 height. */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);gap:0;
  border-top:1px solid var(--line);border-left:1px solid var(--line)}
.gallery--strip{grid-template-columns:repeat(2,1fr)}
.gallery__item{background:var(--bg);overflow:hidden;display:block;
  border-right:1px solid var(--line);border-bottom:1px solid var(--line)}
.gallery__item img{width:100%;height:auto;aspect-ratio:16/9;object-fit:cover;display:block}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr)}.gallery--strip{grid-template-columns:1fr}}
@media(max-width:560px){.gallery,.gallery--strip{grid-template-columns:1fr}}
.presslist{border-top:1px solid var(--line)}
.pressrow{display:grid;grid-template-columns:minmax(150px,3fr) minmax(0,8fr) minmax(120px,3fr);gap:26px;align-items:baseline;padding:24px 0;border-bottom:1px solid var(--line);transition:padding .28s var(--ease)}
.pressrow:hover{padding-left:16px}
.pressrow__src{font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent)}
.pressrow__title{font-family:var(--serif);font-size:clamp(1.1rem,1.7vw,1.6rem);line-height:1.15;color:var(--heading)}
.pressrow__date{font-size:.78rem;color:var(--muted);display:inline-flex;align-items:center;gap:10px;justify-content:flex-end}
.pressrow svg{transition:transform .25s var(--ease)}.pressrow:hover svg{transform:translateX(4px)}
@media(max-width:760px){.pressrow{grid-template-columns:1fr;gap:8px;padding:20px 0}.pressrow__date{justify-content:flex-start}}
.more{margin-top:16px;border-top:1px solid var(--line)}
.more summary{cursor:pointer;list-style:none;padding:13px 0;font-size:.62rem;text-transform:uppercase;letter-spacing:.15em;color:var(--accent);display:flex;justify-content:space-between;align-items:center}
.more summary::-webkit-details-marker{display:none}
.more summary:after{content:'+';font-size:1rem}
.more[open] summary:after{content:'–'}
.more__body p{margin:0 0 14px}
.map{border:1px solid var(--line);aspect-ratio:4/3}
.map iframe{width:100%;height:100%;border:0;display:block;filter:grayscale(1) contrast(.92)}
.hp{position:absolute!important;left:-9999px!important;opacity:0;width:0;height:0}
.formstatus[data-state=err]{color:#b4443a}.formstatus[data-state=ok]{color:#3f7d4e}
.stairs--titles .step{grid-template-columns:100px minmax(0,1fr);padding:26px 0}
/* Header lockup. The wrap caps at 1320px, and wordmark + submark side by side plus a
   seven-item nav needs ~1340px, so the lockup stacks instead of sitting inline. */
.mark{min-width:0;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.1}
.mark__name{white-space:nowrap;line-height:1}
.mark__sub{white-space:nowrap}
@media(max-width:1160px){.mark__sub{display:none}}
/* Centered nav gives each side column (1320 - navWidth - gaps)/2 = ~148px, but the
   stacked lockup needs ~243px. Right-align the nav on desktop so the lockup keeps its
   full width and the parent-company line survives. */
@media(min-width:1081px){
  .hdr__in{grid-template-columns:auto minmax(0,1fr)}
  .nav{justify-content:flex-end;flex-wrap:nowrap}
  .nav a{white-space:nowrap}
}

/* ---- Company page ---------------------------------------------------------
   The theme's .spread puts a large serif statement in the middle column, so that
   column is the widest. These chapters intentionally carry no invented statement,
   so without a modifier the title got 637px and the body text got 425px. Flip the
   weighting when there is no statement. */
.spread--plain{grid-template-columns:120px minmax(0,3.4fr) minmax(0,7fr)}
.spread--plain .spread__head{position:sticky;top:96px}
@media(max-width:800px){
  .spread--plain{grid-template-columns:58px 1fr}
  .spread--plain .spread__head{position:static}
}
/* Full-bleed plate: the drawing carries the page, so let it break the wrap. */
.figure--bleed{border-left:0;border-right:0;width:100vw;margin-left:calc(50% - 50vw)}
.figure--bleed img{width:100%}

/* ---- Legibility of the display type ---------------------------------------
   Bodoni Moda is a Didone, and its variable opsz axis runs 6..96. With
   font-optical-sizing:auto the browser picks the *display* cut at large sizes,
   and display cuts of Didones are drawn with deliberately finer hairlines. At
   94px reversed out of near-black that hairline all but disappears, which is
   what made the page headings hard to read. Pinning opsz to a text-weight value
   keeps the Bodoni character but restores stroke substance.

   Three compounding causes, all addressed here:
     1. optical sizing selecting the finest cut          -> pin opsz
     2. weight 400, the lightest loaded                  -> 500 on dark grounds
     3. -webkit-font-smoothing:antialiased thins glyphs  -> auto, worst case is
        light-on-dark, which is exactly where our h1s live                    */
.display,.t-lg,.t-md,.t-sm,.statement,.spread__statement,.proofstrip__fig,
.tagwall span,.pressrow__title,.ftr__word,.mark__name,.kicker__n,.spread__n,
.step__n,.band__n,.panel__n,.personcard__mono{
  font-optical-sizing:none;
  font-variation-settings:'opsz' 18;
}
/* Reversed type needs optical compensation; dark-on-light does not. */
.hero .display,.phead h1,.phead .t-lg,
[data-tone=dark] .t-md,[data-tone=dark] .t-sm,[data-tone=dark] .statement,
[data-tone=graphite] .t-md,[data-tone=graphite] .t-sm,[data-tone=graphite] .statement{
  font-weight:500;
}
body{-webkit-font-smoothing:auto;-moz-osx-font-smoothing:auto}
/* Very tight tracking compounds the problem at the largest sizes. */
.display{letter-spacing:-.04em}
.t-lg{letter-spacing:-.03em}
.t-md{letter-spacing:-.028em}
/* Body copy was Manrope 300, which reads thin at 16px. 400 is the reading weight. */
body{font-weight:400}
/* Captions reuse the site's existing small-note role (.proofstrip__note, .82rem)
   rather than introducing another near-identical size, and stay within the .lede
   measure they sit beneath. */
.figure figcaption{border-top:1px solid var(--line);padding:16px 20px;font-size:.82rem;color:var(--muted);max-width:48rem}
.figure--bleed figcaption{padding-inline:max(20px,calc(50vw - var(--wrap)/2))}

/* ---- Accessibility fixes found in a site-wide audit ------------------------ */
/* 1. The small "Phone" / "Location" labels on Contact used --faint, which is
      3.00:1 on white. AA needs 4.5:1 at that size. --muted clears it. */
.direct small{color:var(--muted)}
/* 2. Inline .tlink links measured 23px tall, just under the 24px minimum target
      size, and the tel: link on Contact was 18px. Both are primary actions on a
      phone, so they get a comfortable target without changing how they look. */
@media(max-width:760px){
  .tlink{padding-block:10px 8px;min-height:44px;box-sizing:border-box;align-items:center}
  .direct a{display:inline-block;padding-block:8px;min-height:44px}
  /* 3. Uppercase eyebrow labels sit at 9.92px, which is tight on a small screen.
        Nudged up for reading comfort; the desktop composition is untouched. */
  .label{font-size:.7rem}
}

/* ---- Breadcrumbs ---------------------------------------------------------- */
.crumbs{margin:0 0 18px}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;align-items:center;gap:0;margin:0;padding:0;
  font-size:.62rem;letter-spacing:.15em;text-transform:uppercase}
.crumbs li{display:flex;align-items:center;color:#8f989f}
.crumbs li+li:before{content:'/';margin:0 .7em;color:#5c656d}
.crumbs a{color:#cbd0d4;border-bottom:1px solid transparent;padding-block:6px;transition:border-color .25s var(--ease)}
.crumbs a:hover{border-bottom-color:currentColor}
.crumbs [aria-current=page]{color:#8f989f}

/* ---- Back to top ---------------------------------------------------------- */
/* Hidden until the reader is well down the page, so it never competes with the
   hero. It is a real <button> with the hidden attribute, so it is out of the tab
   order and invisible to assistive tech until it becomes usable. */
.totop{position:fixed;right:clamp(16px,3vw,32px);bottom:clamp(16px,3vw,32px);z-index:90;
  width:48px;height:48px;display:flex;align-items:center;justify-content:center;
  background:var(--black);color:#fff;border:1px solid #ffffff30;
  opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity .3s var(--ease),transform .3s var(--ease),background .25s var(--ease)}
.totop[hidden]{display:none}
.totop[data-show=true]{opacity:1;transform:none;pointer-events:auto}
.totop:hover{background:var(--graphite)}
@media(prefers-reduced-motion:reduce){.totop{transition:none}}
/* Header symbol. Decorative only: the wordmark beside it carries the actual name. */
.mark{flex-direction:row;align-items:center;gap:11px}
.mark__sym{height:30px;width:auto;flex:0 0 auto}
.mark__text{display:flex;flex-direction:column;align-items:flex-start;gap:1px;line-height:1.1}
@media(max-width:1160px){.mark__sym{height:26px}}
/* Footer logo. Sized to the column rather than pinned, so it never crowds the
   description beneath it on narrow screens. */
.ftr__logo{width:100%;max-width:330px;height:auto;margin-bottom:20px}
@media(max-width:760px){.ftr__logo{max-width:270px}}
/* Corporate family block: the parent mark beside the explanation, not stacked, so the
   relationship reads at a glance without pushing the copy down the page. */
.familyblock{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:clamp(2.5rem,6vw,6rem);align-items:center}
.familyblock__mark{margin:0;border:1px solid var(--line);padding:clamp(24px,4vw,44px);background:#0f1216}
.familyblock__mark img{width:100%;height:auto;display:block}
@media(max-width:820px){.familyblock{grid-template-columns:1fr;gap:2rem}}

/* Galileo Development Company — lighter forest green; no black presentation */
:root{--black:#476650;--ink:#31483A;--graphite:#587A62;--steel:#77907E;--silver:#CAD6CC;--line:#D3DDD5;--mist:#E8EEE9;--cloud:#F8F7F2;--white:#fff;--accent:#6C9077;--focus:#476650;--bg:var(--cloud);--fg:var(--ink);--heading:#31483A;--muted:#607064;--faint:#89988D}
[data-tone=light]{--bg:#F8F7F2;--fg:#31483A;--heading:#31483A;--muted:#607064;--faint:#89988D;--line:#DCE3DD;--accent:#6C9077}
[data-tone=white]{--bg:#fff;--fg:#31483A;--heading:#31483A;--muted:#607064;--faint:#89988D;--line:#DFE6E0;--accent:#6C9077}
[data-tone=mist]{--bg:#E8EEE9;--fg:#31483A;--heading:#31483A;--muted:#5E6D62;--faint:#829186;--line:#CBD7CD;--accent:#587A62}
[data-tone=dark],[data-tone=graphite],[data-tone=forest]{--bg:#6C9077;--fg:#F8FAF7;--heading:#fff;--muted:#E5ECE6;--faint:#CBDBCE;--line:#93AB99;--accent:#fff}
.hdr[data-stuck=true]{background:rgba(71,102,80,.96);border-bottom-color:#ffffff2b}.nav a{color:#F7F9F6}.nav__portal{border-color:#ffffff55!important}
@media(max-width:1080px){.nav{background:#476650;box-shadow:-40px 0 80px rgba(49,72,58,.34)}}
.hero{background:linear-gradient(135deg,#6C9077 0%,#769A81 55%,#5E8068 120%)}
.phead{background:linear-gradient(135deg,#6C9077 0%,#769A81 68%,#5E8068 145%)}
.hero__side p,.hero__lede,.phead .lede{color:#F0F5F0}.hero .label,.phead .label{color:#fff}.phead__side{color:#E2ECE3;border-top-color:#ffffff55}
.ftr{background:#476650;color:#E3EAE4}.ftr h4{color:#C4D4C7}.ftr a{color:#F5F8F5}.ftr__bar{border-top-color:#6F8E76;color:#D2DDD4}.ftr__word{-webkit-text-stroke:1px #ffffff38}.totop{background:#587A62}.totop:hover{background:#6C9077}
.mark__sub{color:#D8E4DA}.display--principles{font-size:clamp(3.4rem,7.2vw,8rem);line-height:.92;max-width:12ch}
.brand-footer{font-family:var(--serif);font-size:clamp(2.4rem,4vw,4.4rem);line-height:.9;color:#fff}.brand-footer span{display:block;font-family:var(--sans);font-size:.62rem;letter-spacing:.2em;text-transform:uppercase;margin-top:14px;color:#D5E0D7}
.exact-panels{grid-template-columns:repeat(3,1fr)}.panel--forest{background:#6C9077;color:#fff}.panel--forest h3,.panel--forest .panel__n{color:#fff}.panel--forest .panel__n{opacity:.38}
.panel-list,.service-list,.strategy-list,.feature-list{list-style:none;margin:auto 0 0;padding:22px 0 0;border-top:1px solid var(--line);display:grid;gap:9px}.panel-list li,.service-list li,.strategy-list li,.feature-list li{font-size:.82rem;color:var(--muted)}.panel--forest .panel-list li,.service-card--forest .service-list li,.strategy-card--forest .strategy-list li,.feature-card--forest .feature-list li{color:#F1F6F2}
.tagwall{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line)}.tagwall span{font-family:var(--serif);font-size:clamp(1.6rem,2.9vw,3.2rem);line-height:1.02;padding:26px 0;border-bottom:1px solid var(--line)}.tagwall span:nth-child(odd){padding-right:30px}.tagwall span:nth-child(even){padding-left:30px;border-left:1px solid var(--line)}.tagwall--light span{color:#fff}
.service-columns{display:grid;grid-template-columns:repeat(3,1fr);border:1px solid var(--line)}.service-card{padding:clamp(28px,4vw,52px);min-height:500px;border-right:1px solid var(--line);display:flex;flex-direction:column}.service-card:last-child{border-right:0}.service-card__n,.process-card__n,.strategy-card__n,.feature-card__n,.leader-profile__index{font-family:var(--serif);font-size:clamp(3rem,5vw,5.4rem);line-height:.8;color:var(--faint);opacity:.42}.service-card--forest,.strategy-card--forest,.feature-card--forest{background:#6C9077;color:#fff}.service-card--forest h2,.strategy-card--forest h2,.feature-card--forest h2{color:#fff}
.editorial-intro{display:grid;grid-template-columns:minmax(140px,2fr) minmax(0,8fr);gap:clamp(2rem,6vw,7rem);align-items:start}.editorial-intro .statement{margin:0}.editorial-intro .lede{grid-column:2}
.company-intro{max-width:980px}.company-intro .statement{margin:0 0 38px}.company-intro .lede{max-width:54rem}
.process-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.process-card{padding:clamp(30px,4vw,48px);border-right:1px solid var(--line);border-bottom:1px solid var(--line);min-height:360px}.process-card h3{margin:.25em 0 1em}.process-card p{font-size:.92rem;color:var(--muted);max-width:36rem}.process-card:nth-child(3n){background:#E8EEE9}
.strategy-grid,.feature-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));border-top:1px solid var(--line);border-left:1px solid var(--line)}.strategy-card,.feature-card{padding:clamp(32px,5vw,58px);min-height:330px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;flex-direction:column}.strategy-card--forest .strategy-card__n,.feature-card--forest .feature-card__n{color:#fff}
.leadership-stack{border-top:1px solid var(--line)}.leader-profile{display:grid;grid-template-columns:90px minmax(240px,3fr) minmax(0,7fr);gap:clamp(24px,4vw,56px);padding:clamp(40px,6vw,78px) 0;border-bottom:1px solid var(--line)}.leader-profile__name h2{margin:0}.leader-role{font-size:.78rem;text-transform:uppercase;letter-spacing:.09em;color:var(--accent);margin:14px 0 0}.leader-points{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}.leader-points li{padding:15px 0;border-bottom:1px solid var(--line);color:var(--muted)}
.contact-art{border:1px solid var(--line);overflow:hidden}.contact-art img{width:100%;height:100%;object-fit:cover;filter:grayscale(.25) sepia(.08)}
@media(max-width:900px){.exact-panels,.service-columns{grid-template-columns:1fr}.service-card{border-right:0;border-bottom:1px solid var(--line);min-height:auto}.process-grid,.strategy-grid,.feature-grid,.tagwall{grid-template-columns:1fr}.tagwall span:nth-child(even){padding-left:0;border-left:0}.tagwall span:nth-child(odd){padding-right:0}.leader-profile{grid-template-columns:60px 1fr}.leader-profile__copy{grid-column:2}.editorial-intro{grid-template-columns:1fr}.editorial-intro .lede{grid-column:auto}}
