/* ==========================================================================
   All State Property Management — styles
   An I Real Estate operating company. Shares the I Real Estate design DNA:
   Satoshi, warm off-white + near-black, thin rules, crop marks, chapter rail,
   uppercase micro labels, light oversized display type with italic emphasis.
   ========================================================================== */

/* ---------- 0. Fonts (same family as irealestateus.com) ---------- */
@font-face{font-family:"Satoshi";src:url("assets/fonts/Satoshi-Variable.woff2") format("woff2");font-weight:300 900;font-style:normal;font-display:swap}
@font-face{font-family:"Satoshi";src:url("assets/fonts/Satoshi-VariableItalic.woff2") format("woff2");font-weight:300 900;font-style:italic;font-display:swap}

/* ---------- 1. Tokens ---------- */
:root{
  /* colour — inherited from the I Real Estate palette */
  --paper:#F8F7F3;          /* warm white */
  --paper-2:#F0EEE8;        /* I Real Estate page ground */
  --stone:#CCC7C1;          /* light stone */
  --mute:#808080;           /* neutral grey */
  --ink-2:#333333;          /* secondary dark */
  --ink:#1B1B1B;            /* charcoal */
  --night:#141414;          /* deepest surface */
  --navy:#10263A;           /* I Real Estate ink — used only to mark the parent brand */

  --line:rgba(27,27,27,.14);
  --line-2:rgba(27,27,27,.32);
  --line-dark:rgba(248,247,243,.16);
  --line-dark-2:rgba(248,247,243,.36);

  /* type */
  --font:"Satoshi","Helvetica Neue",Helvetica,Arial,sans-serif;
  --t-micro:.625rem;                                /* 10px labels */
  --t-small:.8125rem;
  --t-body:clamp(1rem,.96rem + .2vw,1.0625rem);
  --t-lead:clamp(1.2rem,1rem + .75vw,1.6rem);
  --t-h4:clamp(1.25rem,1.05rem + .7vw,1.6rem);
  --t-h3:clamp(1.7rem,1.2rem + 1.6vw,2.6rem);
  --t-h2:clamp(2.5rem,1.4rem + 4.2vw,5.6rem);
  --t-display:clamp(3.1rem,1.2rem + 7.4vw,9.6rem);
  --t-mega:clamp(6rem,2rem + 16vw,20rem);
  --track-micro:.18em;
  --track-tight:-.035em;

  /* spacing + grid */
  --pad:clamp(1rem,3.2vw,3.6rem);                    /* page margin — same as I Real Estate */
  --gap:clamp(.75rem,1.6vw,1.75rem);                 /* grid gutter */
  --cols:12;
  --max:1720px;
  --s-1:.5rem; --s-2:1rem; --s-3:1.5rem; --s-4:2.5rem; --s-5:4rem;
  --s-6:clamp(4.5rem,8vw,8rem);
  --s-7:clamp(6rem,12vw,12rem);
  --header-h:5.25rem;

  /* motion */
  --ease:cubic-bezier(.2,.8,.2,1);                   /* I Real Estate primary curve */
  --ease-io:cubic-bezier(.65,0,.2,1);
  --d-1:.35s; --d-2:.7s; --d-3:1.1s; --d-4:1.6s;
}

/* ---------- 2. Base ---------- */
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font);font-weight:400;font-size:var(--t-body);line-height:1.55;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility;overflow-x:clip}
img,svg,video{display:block;max-width:100%}
img{height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit;color:inherit}
button{background:none;border:0;padding:0;cursor:pointer}
h1,h2,h3,h4,p,ul,ol,figure,dl,dd,blockquote{margin:0}
ul,ol{padding:0;list-style:none}
em,i{font-style:italic}
::selection{background:var(--ink);color:var(--paper)}
[hidden]{display:none!important}
body.is-locked{overflow:hidden}

:focus{outline:none}
:focus-visible{outline:1px solid currentColor;outline-offset:4px}
.skip{position:fixed;left:var(--pad);top:.75rem;z-index:200;padding:.8rem 1.1rem;background:var(--ink);color:var(--paper);font-size:var(--t-micro);letter-spacing:var(--track-micro);text-transform:uppercase;transform:translateY(-200%);transition:transform var(--d-1) var(--ease)}
.skip:focus{transform:none}
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* ---------- 3. Type system ---------- */
.micro{font-size:var(--t-micro);font-weight:500;letter-spacing:var(--track-micro);text-transform:uppercase;line-height:1.5}
.micro--mute{color:var(--mute)}
.lead{font-size:var(--t-lead);font-weight:300;line-height:1.35;letter-spacing:-.012em}
.body{max-width:34rem;color:var(--ink-2)}
.body+.body{margin-top:1.1em}
.display,.h2,.h3{font-weight:300;letter-spacing:var(--track-tight);line-height:.98}
.display{font-size:var(--t-display);letter-spacing:-.05em;line-height:.92}
.h2{font-size:var(--t-h2);line-height:.98}
.h3{font-size:var(--t-h3);line-height:1.04;letter-spacing:-.025em}
.display em,.h2 em,.h3 em,.lead em{font-style:italic;font-weight:300}
.num{font-variant-numeric:tabular-nums lining-nums}
[data-theme="dark"] .body,.is-dark .body{color:rgba(248,247,243,.72)}

/* line mask reveal for headings */
.ln{display:block;overflow:hidden;padding-bottom:.06em;margin-bottom:-.06em}
.ln>span{display:block}

/* ---------- 4. Layout ---------- */
.wrap{width:100%;max-width:var(--max);margin-inline:auto;padding-inline:var(--pad)}
.grid{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));column-gap:var(--gap)}
.section{position:relative;padding-block:var(--s-7)}
.section--tight{padding-block:var(--s-6)}
.section--paper2{background:var(--paper-2)}
.section--dark,[data-theme="dark"]{background:var(--ink);color:var(--paper)}
.section--night{background:var(--night);color:var(--paper)}
.rule{height:1px;background:var(--line);border:0;margin:0}
[data-theme="dark"] .rule{background:var(--line-dark)}

/* chapter label: "01 — Who we are" */
.chapter{display:flex;align-items:center;gap:1rem;font-size:var(--t-micro);font-weight:500;letter-spacing:var(--track-micro);text-transform:uppercase}
.chapter b{font-weight:500}
.chapter i{display:block;width:3.5rem;height:1px;background:currentColor;opacity:.45;transform-origin:left}
.section-head{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));column-gap:var(--gap);row-gap:var(--s-3);align-items:end;margin-bottom:var(--s-6)}
.section-head .chapter{grid-column:1/-1}
.section-head .h2{grid-column:1/span 8}
.section-head .section-head__aside{grid-column:9/-1;justify-self:end;max-width:24rem}

/* crop marks — the viewfinder corners used across I Real Estate */
.crop{position:absolute;inset:var(--crop-inset,calc(var(--header-h) + .5rem) var(--pad) var(--pad));pointer-events:none;z-index:3;color:currentColor;opacity:.7;--c:1.25rem;
  background:
    linear-gradient(currentColor,currentColor) 0 0/var(--c) 1px no-repeat,
    linear-gradient(currentColor,currentColor) 0 0/1px var(--c) no-repeat,
    linear-gradient(currentColor,currentColor) 100% 0/var(--c) 1px no-repeat,
    linear-gradient(currentColor,currentColor) 100% 0/1px var(--c) no-repeat,
    linear-gradient(currentColor,currentColor) 0 100%/var(--c) 1px no-repeat,
    linear-gradient(currentColor,currentColor) 0 100%/1px var(--c) no-repeat,
    linear-gradient(currentColor,currentColor) 100% 100%/var(--c) 1px no-repeat,
    linear-gradient(currentColor,currentColor) 100% 100%/1px var(--c) no-repeat}

/* ---------- 5. Controls ---------- */
.link{white-space:nowrap;display:inline-flex;align-items:center;gap:.9rem;font-size:var(--t-micro);font-weight:500;letter-spacing:var(--track-micro);text-transform:uppercase;position:relative;padding-block:.5rem}
.link::after{content:"";position:absolute;left:0;right:0;bottom:.2rem;height:1px;background:currentColor;transform-origin:right;transform:scaleX(0);transition:transform var(--d-2) var(--ease)}
.link:hover::after,.link:focus-visible::after{transform-origin:left;transform:scaleX(1)}
.link .arw{display:inline-block;transition:transform var(--d-1) var(--ease)}
.link:hover .arw{transform:translateX(.3rem)}
.link--line{gap:1.25rem}
.link--line::before{content:"";width:2.75rem;height:1px;background:currentColor;opacity:.5;transition:width var(--d-2) var(--ease)}
.link--line:hover::before{width:4rem}

.pill{white-space:nowrap;display:inline-flex;align-items:center;justify-content:center;gap:.75rem;min-height:2.9rem;padding:.8rem 1.4rem;border:1px solid currentColor;border-radius:999px;font-size:var(--t-micro);font-weight:500;letter-spacing:var(--track-micro);text-transform:uppercase;position:relative;overflow:hidden;isolation:isolate;transition:color var(--d-2) var(--ease),border-color var(--d-2) var(--ease)}
.pill::before{content:"";position:absolute;inset:0;z-index:-1;background:var(--ink);transform:translateY(101%);transition:transform var(--d-2) var(--ease)}
.pill:hover,.pill:focus-visible{color:var(--paper);border-color:var(--ink)}
.pill:hover::before,.pill:focus-visible::before{transform:none}
[data-theme="dark"] .pill:hover,[data-theme="dark"] .pill:focus-visible{color:var(--ink);border-color:var(--paper)}
[data-theme="dark"] .pill::before{background:var(--paper)}
.pill--solid{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.pill--solid::before{background:var(--ink-2)}
.pill--solid:hover{color:var(--paper)}

.chip{display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .95rem;border:1px solid var(--line-2);border-radius:999px;font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;text-transform:uppercase;white-space:nowrap;transition:background var(--d-1) var(--ease),color var(--d-1) var(--ease),border-color var(--d-1) var(--ease)}
.chip sup{font-size:.85em;opacity:.55;top:0;letter-spacing:0}
.chip:hover{border-color:var(--ink)}
.chip[aria-pressed="true"]{background:var(--ink);color:var(--paper);border-color:var(--ink)}
[data-theme="dark"] .chip{border-color:var(--line-dark-2)}
[data-theme="dark"] .chip:hover{border-color:var(--paper)}
[data-theme="dark"] .chip[aria-pressed="true"]{background:var(--paper);color:var(--ink);border-color:var(--paper)}

.round-btn{width:3.25rem;height:3.25rem;border-radius:50%;border:1px solid currentColor;display:grid;place-items:center;transition:background var(--d-1) var(--ease),color var(--d-1) var(--ease)}
.round-btn:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
[data-theme="dark"] .round-btn:hover{background:var(--paper);color:var(--ink)}
.round-btn:disabled{opacity:.3;pointer-events:none}
.round-btn svg{width:1rem;height:1rem}

/* ---------- 6. Brand mark ---------- */
.brand{display:inline-flex;align-items:center;gap:.8rem;line-height:1}
.brand__mark{width:2.1rem;height:2.1rem;flex:none}
.brand__mark rect,.brand__mark path{vector-effect:non-scaling-stroke}
.brand__word{display:flex;flex-direction:column;gap:.35rem}
.brand__word strong{font-size:.95rem;font-weight:500;letter-spacing:.24em;text-transform:uppercase}
.brand__word small{font-size:.5rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;opacity:.65}

/* ---------- 7. Header / navigation ---------- */
.site-header{position:fixed;inset:0 0 auto;z-index:100;height:var(--header-h);padding-inline:var(--pad);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;color:var(--ink);transition:transform var(--d-2) var(--ease),color var(--d-2) var(--ease)}
.site-header::before{content:"";position:absolute;inset:0;z-index:-1;background:rgba(248,247,243,.86);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line);opacity:0;transition:opacity var(--d-2) var(--ease),background var(--d-2) var(--ease)}
.site-header.is-solid::before{opacity:1}
.site-header.is-on-dark{color:var(--paper)}
.site-header.is-on-dark::before{background:rgba(20,20,20,.72);border-bottom-color:var(--line-dark)}
.site-header.is-hidden{transform:translateY(-100%)}
.site-header .brand{justify-self:start}
.nav{display:flex;align-items:center;gap:clamp(.9rem,1.6vw,1.9rem);padding:.95rem 1.6rem;border:1px solid currentColor;border-color:color-mix(in srgb,currentColor 38%,transparent);border-radius:999px;background:color-mix(in srgb,currentColor 5%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.nav a{position:relative;font-size:var(--t-micro);font-weight:500;letter-spacing:.16em;text-transform:uppercase;padding-block:.2rem;opacity:.82;transition:opacity var(--d-1)}
.nav a::after{content:"";position:absolute;left:0;right:0;bottom:-.3rem;height:1px;background:currentColor;transform:scaleX(0);transform-origin:right;transition:transform var(--d-2) var(--ease)}
.nav a:hover,.nav a[aria-current="page"],.nav a.is-active{opacity:1}
.nav a:hover::after,.nav a[aria-current="page"]::after,.nav a.is-active::after{transform:scaleX(1);transform-origin:left}
.header-end{justify-self:end;display:flex;align-items:center;gap:1.5rem}
.header-end .micro{opacity:.75}
.menu-btn{display:none;align-items:center;gap:.8rem;font-size:var(--t-micro);font-weight:500;letter-spacing:var(--track-micro);text-transform:uppercase;min-height:2.75rem}
.menu-btn__bars{position:relative;width:1.6rem;height:.55rem}
.menu-btn__bars::before,.menu-btn__bars::after{content:"";position:absolute;left:0;right:0;height:1px;background:currentColor;transition:transform var(--d-2) var(--ease),top var(--d-2) var(--ease)}
.menu-btn__bars::before{top:0}.menu-btn__bars::after{top:100%}
.menu-open .menu-btn__bars::before{top:50%;transform:rotate(45deg)}
.menu-open .menu-btn__bars::after{top:50%;transform:rotate(-45deg)}

/* full-screen editorial menu */
.menu{position:fixed;inset:0;z-index:99;background:var(--ink);color:var(--paper);display:flex;flex-direction:column;justify-content:space-between;padding:calc(var(--header-h) + 2rem) var(--pad) var(--pad);clip-path:inset(0 0 100% 0);visibility:hidden;transition:clip-path var(--d-3) var(--ease-io),visibility 0s linear var(--d-3)}
.menu-open .menu{clip-path:inset(0);visibility:visible;transition:clip-path var(--d-3) var(--ease-io),visibility 0s}
.menu ol{counter-reset:m;display:flex;flex-direction:column}
.menu li{border-top:1px solid var(--line-dark);overflow:hidden}
.menu li:last-child{border-bottom:1px solid var(--line-dark)}
.menu a{counter-increment:m;display:flex;align-items:baseline;gap:1rem;padding:.7rem 0;font-size:clamp(2rem,9vw,3.6rem);font-weight:300;letter-spacing:-.04em;line-height:1.05;transform:translateY(105%);transition:transform var(--d-3) var(--ease)}
.menu a::before{content:"0" counter(m);font-size:var(--t-micro);font-weight:500;letter-spacing:.12em;opacity:.5;min-width:1.6rem}
.menu-open .menu a{transform:none}
.menu li:nth-child(2) a{transition-delay:.05s}.menu li:nth-child(3) a{transition-delay:.1s}.menu li:nth-child(4) a{transition-delay:.15s}.menu li:nth-child(5) a{transition-delay:.2s}.menu li:nth-child(6) a{transition-delay:.25s}.menu li:nth-child(7) a{transition-delay:.3s}
.menu__foot{display:grid;gap:.6rem;margin-top:2rem}
.menu__foot a{font-size:var(--t-small);opacity:.8}

/* ---------- 8. Global chrome: chapter rail, index, progress, cursor ---------- */
.rail{position:fixed;left:var(--pad);top:50%;z-index:60;transform:translateY(-50%);display:flex;flex-direction:column;gap:.95rem;color:var(--ink);transition:color var(--d-2) var(--ease),opacity var(--d-2)}
.rail.is-on-dark{color:var(--paper)}
.rail.is-hidden{opacity:0;pointer-events:none}
.rail a{display:flex;align-items:center;gap:1rem;height:.5rem}
.rail a i{width:.4rem;height:.4rem;border-radius:50%;background:currentColor;opacity:.3;transition:opacity var(--d-1),transform var(--d-1) var(--ease)}
.rail a span{font-size:.56rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;white-space:nowrap;opacity:0;transform:translateX(-.4rem);transition:opacity var(--d-1),transform var(--d-2) var(--ease)}
.rail a:hover i,.rail a.is-active i{opacity:1}
.rail a.is-active i{transform:scale(1.35)}
.rail a.is-active span,.rail a:hover span,.rail a:focus-visible span{opacity:1;transform:none}

.index-counter{position:fixed;left:var(--pad);bottom:var(--pad);z-index:60;display:flex;align-items:baseline;gap:.4rem;color:var(--ink);pointer-events:none;transition:color var(--d-2) var(--ease),opacity var(--d-2)}
.index-counter.is-on-dark{color:var(--paper)}
.index-counter.is-hidden{opacity:0}
.index-counter__cur{display:block;height:1em;overflow:hidden;font-size:1.9rem;font-weight:300;letter-spacing:-.04em;line-height:1}
.index-counter__cur span{display:block;transition:transform var(--d-2) var(--ease)}
.index-counter small{font-size:var(--t-micro);letter-spacing:.14em;opacity:.55}

.progress{position:fixed;right:calc(var(--pad) * .45);top:25%;height:50%;width:1px;z-index:60;background:rgba(128,128,128,.35)}
.progress i{position:absolute;inset:0;background:var(--mute);transform-origin:top;transform:scaleY(0)}

.cursor{position:fixed;left:0;top:0;z-index:300;pointer-events:none;display:none;color:#fff;transition:color var(--d-1) var(--ease)}
.has-cursor .cursor{display:block}
.cursor__dot,.cursor__ring{position:absolute;left:0;top:0;border-radius:50%;transform:translate(-50%,-50%)}
.cursor.is-on-light{color:var(--ink)}
.cursor__dot{width:6px;height:6px;background:currentColor}
.cursor__ring{width:2.25rem;height:2.25rem;border:1px solid currentColor;display:grid;place-items:center;transition:width var(--d-2) var(--ease),height var(--d-2) var(--ease),background var(--d-2) var(--ease),opacity var(--d-1),border-color var(--d-1) var(--ease)}
.cursor__ring span{font-size:.55rem;font-weight:500;letter-spacing:.18em;text-transform:uppercase;color:currentColor;opacity:0;transition:opacity var(--d-1),color var(--d-1) var(--ease)}
.cursor.is-hover .cursor__ring{width:3.75rem;height:3.75rem}
.cursor.is-label .cursor__ring{width:5.5rem;height:5.5rem;background:color-mix(in srgb,currentColor 14%,transparent)}
.cursor.is-label .cursor__ring span{opacity:1}
.cursor.is-label .cursor__dot,.cursor.is-hover .cursor__dot{opacity:0}
.cursor.is-down .cursor__ring{transform:translate(-50%,-50%) scale(.85)}
.has-cursor,.has-cursor a,.has-cursor button,.has-cursor [data-cursor]{cursor:none}
.has-cursor input,.has-cursor textarea,.has-cursor select{cursor:text}
.has-cursor select{cursor:pointer}

/* intro curtain */
.intro{position:fixed;inset:0;z-index:250;background:var(--ink);color:var(--paper);display:grid;place-items:center;pointer-events:none;transition:clip-path 1.1s var(--ease-io) .15s;clip-path:inset(0)}
.intro.is-done{clip-path:inset(0 0 100% 0)}
.intro__inner{display:grid;justify-items:center;gap:1.25rem}
.intro__inner svg{width:3rem;height:3rem}
.intro__inner .micro{opacity:.7}
.intro__bar{width:9rem;height:1px;background:var(--line-dark);position:relative;overflow:hidden}
.intro__bar::after{content:"";position:absolute;inset:0;background:var(--paper);transform-origin:left;animation:bar .9s var(--ease) forwards}
@keyframes bar{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* ---------- 9. Reveal motion ---------- */
.js [data-reveal]{opacity:0;transform:translate3d(0,1.5rem,0);transition:opacity var(--d-3) var(--ease),transform var(--d-3) var(--ease);transition-delay:calc(var(--i,0) * 80ms)}
.js [data-reveal].is-in{opacity:1;transform:none}
.js [data-reveal="lines"]{opacity:1;transform:none}
.js [data-reveal="lines"] .ln>span{transform:translate3d(0,108%,0);transition:transform var(--d-4) var(--ease)}
.js [data-reveal="lines"] .ln:nth-child(2)>span{transition-delay:.08s}
.js [data-reveal="lines"] .ln:nth-child(3)>span{transition-delay:.16s}
.js [data-reveal="lines"] .ln:nth-child(4)>span{transition-delay:.24s}
.js [data-reveal="lines"].is-in .ln>span{transform:none}
.js [data-reveal="clip"]{opacity:1;transform:none;clip-path:inset(100% 0 0 0);transition:clip-path var(--d-4) var(--ease-io)}
.js [data-reveal="clip"] img{transform:scale(1.18);transition:transform 2s var(--ease)}
.js [data-reveal="clip"].is-in{clip-path:inset(0)}
.js [data-reveal="clip"].is-in img{transform:scale(1)}
.js [data-reveal="rule"]{opacity:1;transform:scaleX(0);transform-origin:left;transition:transform var(--d-4) var(--ease-io)}
.js [data-reveal="rule"].is-in{transform:none}

/* ---------- 10. Media ---------- */
.media{position:relative;overflow:hidden;background:var(--stone)}
.media img{width:100%;height:100%;object-fit:cover}
.media--tone img{filter:grayscale(.35) contrast(1.02) brightness(.98)}
.media figcaption,.caption{display:flex;justify-content:space-between;gap:1rem;margin-top:.9rem;font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.grain::after{content:"";position:absolute;inset:-50%;pointer-events:none;opacity:.09;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='160' height='160'><filter id='n'><feTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='2' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 .9 0'/></filter><rect width='100%' height='100%' filter='url(%23n)'/></svg>");mix-blend-mode:overlay}

/* ==========================================================================
   HOME
   ========================================================================== */

/* ---------- Hero ---------- */
.hero{position:relative;min-height:100svh;display:flex;flex-direction:column;justify-content:flex-end;color:var(--paper);background:var(--night);overflow:hidden;isolation:isolate}
.hero__media{position:absolute;inset:0;z-index:-2}
.hero__media img{width:100%;height:100%;object-fit:cover;transform:scale(1.14);filter:grayscale(.55) contrast(1.06) brightness(.82);transition:transform 2.6s var(--ease)}
.is-ready .hero__media img{transform:scale(1.02);animation:hero-breathe 14s ease-in-out 2.6s infinite alternate}
.hero__media::after{content:"";position:absolute;inset:0;background:
  linear-gradient(180deg,rgba(20,20,20,.62) 0%,rgba(20,20,20,.15) 34%,rgba(20,20,20,.25) 56%,rgba(20,20,20,.86) 100%),
  radial-gradient(120% 80% at 70% 40%,transparent 30%,rgba(20,20,20,.45) 100%)}
@keyframes hero-breathe{from{transform:scale(1.02)}to{transform:scale(1.065)}}
.hero__meta{position:absolute;top:calc(var(--header-h) + 2rem);left:calc(var(--pad) + 2.2rem);right:calc(var(--pad) + 2.2rem);display:flex;justify-content:space-between;gap:1rem;z-index:2}
.hero__meta .micro{opacity:.8}
.hero__body{position:relative;z-index:2;padding:0 calc(var(--pad) + 2.2rem) clamp(2.5rem,5vw,4.5rem)}
.hero__title{max-width:14ch}
.hero__title .ln{padding-bottom:.14em;margin-bottom:-.08em}
.hero__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end;margin-top:clamp(2rem,4vw,3.5rem)}
.hero__copy{grid-column:1/span 5;max-width:30rem;color:rgba(248,247,243,.8)}
.hero__cta{grid-column:7/-1;justify-self:end;display:flex;align-items:center;gap:2rem}
.hero__foot{position:relative;z-index:2;display:flex;justify-content:space-between;align-items:center;gap:1rem;padding:1.25rem calc(var(--pad) + 2.2rem) calc(var(--pad) + 1rem);border-top:1px solid var(--line-dark)}
.hero__facts{display:flex;gap:clamp(1rem,2.5vw,2.5rem)}
.hero__facts b{font-weight:500}
.scroll-cue{display:flex;align-items:center;gap:1rem}
.scroll-cue i{position:relative;width:3.5rem;height:1px;background:var(--line-dark-2);overflow:hidden}
.scroll-cue i::after{content:"";position:absolute;inset:0;background:var(--paper);animation:cue 2.4s var(--ease-io) infinite}
@keyframes cue{0%{transform:translateX(-100%)}60%,100%{transform:translateX(100%)}}
@media (min-width:1101px){
  .hero__title{font-size:clamp(3.1rem,1.3rem + 6.5vw,8.5rem)}
  body[data-page="company"] .page-hero .display,
  body[data-page="portfolio"] .page-hero .display,
  body[data-page="careers"] .page-hero .display{font-size:clamp(3.1rem,1.4rem + 5.5vw,7.5rem)}
}
.js .hero [data-hero]{opacity:0;transform:translateY(1.25rem);transition:opacity 1.2s var(--ease),transform 1.2s var(--ease)}
.js .is-ready .hero [data-hero]{opacity:1;transform:none}
.js .hero .ln>span{transform:translateY(108%);transition:transform 1.6s var(--ease)}
.js .is-ready .hero .ln>span{transform:none}
.js .is-ready .hero .ln:nth-child(2)>span{transition-delay:.12s}
.js .is-ready .hero [data-hero="2"]{transition-delay:.45s}
.js .is-ready .hero [data-hero="3"]{transition-delay:.6s}
.js .is-ready .hero [data-hero="4"]{transition-delay:.8s}

/* ---------- 01 Who we are ---------- */
.who__grid{row-gap:var(--s-5)}
.who__title{grid-column:1/span 7}
.who__text{grid-column:8/-1;align-self:end;display:grid;gap:1.5rem}
.who__lockup{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:stretch;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.lockup-cell{padding:1.6rem 0;display:flex;flex-direction:column;gap:.9rem}
.lockup-cell--a{grid-column:1/span 4}
.lockup-cell--link{grid-column:5/span 4;justify-content:center;align-items:stretch}
.lockup-cell--b{grid-column:9/-1;align-items:flex-end;text-align:right}
.lockup-cell h3{font-size:var(--t-h4);font-weight:400;letter-spacing:-.01em}
.lockup-line{position:relative;height:1px;background:var(--line-2)}
.lockup-line::after{content:"";position:absolute;right:-1px;top:-3px;width:7px;height:7px;border-top:1px solid var(--ink-2);border-right:1px solid var(--ink-2);transform:rotate(45deg)}
.lockup-line i{position:absolute;left:0;top:-2px;width:5px;height:5px;border-radius:50%;background:var(--ink);animation:travel 4s var(--ease-io) infinite}
@keyframes travel{0%{left:0;opacity:0}10%{opacity:1}90%{opacity:1}100%{left:calc(100% - 5px);opacity:0}}
.lockup-cell--link .micro{text-align:center;color:var(--mute)}
.who__media{grid-column:1/span 7;aspect-ratio:16/10}
.who__media-b{grid-column:9/-1;align-self:end}
.who__media-b .media{aspect-ratio:4/5}

/* value chain */
.chain{grid-column:1/-1;display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line);margin-top:var(--s-5)}
.chain li{position:relative;padding:1.4rem 1.2rem 1.6rem 0;display:flex;flex-direction:column;gap:2.2rem;color:var(--mute);transition:color var(--d-2)}
.chain li+li{padding-left:1.2rem;border-left:1px solid var(--line)}
.chain li strong{font-size:var(--t-h4);font-weight:400;letter-spacing:-.015em;color:var(--ink-2)}
.chain li.is-owned{color:var(--paper);background:var(--ink)}
.chain li.is-owned strong{color:var(--paper)}
.chain li.is-owned{padding-left:1.2rem}
.chain__note{grid-column:1/-1;margin-top:1rem;display:flex;justify-content:space-between;gap:1rem;color:var(--mute)}

/* ---------- 02 Operating model (pinned) ---------- */
.model{position:relative;background:var(--ink);color:var(--paper)}
.model__track{height:calc(var(--steps,5) * 100vh)}
.model__stage{position:sticky;top:0;height:100vh;height:100svh;overflow:hidden;display:grid;grid-template-rows:auto 1fr auto;padding:calc(var(--header-h) + 1.5rem) calc(var(--pad) + 2.2rem) calc(var(--pad) + .5rem)}
.model__head{display:flex;justify-content:space-between;align-items:flex-start;gap:2rem}
.model__head .h3{max-width:18ch}
.model__body{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:center;min-height:0}
.model__num{grid-column:1/span 4;font-size:clamp(7rem,15vw,17rem);font-weight:300;letter-spacing:-.07em;line-height:.8;height:.8em;overflow:hidden;position:relative}
.model__num-strip{display:block;transition:transform var(--d-3) var(--ease-io)}
.model__num-strip span{display:block;height:.8em}
.model__copy{grid-column:5/span 4;position:relative;min-height:18rem}
.model__panel{position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;gap:1.4rem;opacity:0;transform:translateY(1.5rem);transition:opacity var(--d-2) var(--ease),transform var(--d-3) var(--ease);pointer-events:none}
.model__panel.is-active{opacity:1;transform:none;pointer-events:auto}
.model__panel h3{font-size:clamp(2.6rem,5.6vw,6rem);font-weight:300;letter-spacing:-.05em;line-height:.9;text-transform:none}
.model__panel p{max-width:26rem;color:rgba(248,247,243,.72)}
.model__panel ul{display:flex;flex-wrap:wrap;gap:.45rem}
.model__panel li{font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;padding:.35rem .7rem;border:1px solid var(--line-dark-2);border-radius:999px;color:rgba(248,247,243,.8)}
.model__media{grid-column:9/-1;position:relative;aspect-ratio:4/5;max-height:62vh;justify-self:end;width:100%;overflow:hidden;background:#222}
.model__img{position:absolute;inset:0;clip-path:inset(100% 0 0 0);transition:clip-path var(--d-4) var(--ease-io)}
.model__img img{width:100%;height:100%;object-fit:cover;transform:scale(1.2);filter:grayscale(.4) contrast(1.05);transition:transform 2.2s var(--ease)}
.model__img.is-shown{clip-path:inset(0)}
.model__img.is-shown img{transform:scale(1)}
.model__img figcaption{position:absolute;left:1rem;bottom:1rem;font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 12px rgba(0,0,0,.5)}
.model__bar{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));position:relative;border-top:1px solid var(--line-dark)}
.model__bar-fill{position:absolute;left:0;top:-1px;height:1px;width:100%;background:var(--paper);transform-origin:left;transform:scaleX(var(--p,0))}
.model__bar button{display:flex;gap:.8rem;align-items:baseline;padding:1.1rem 0 0;text-align:left;font-size:var(--t-micro);font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:rgba(248,247,243,.4);transition:color var(--d-2)}
.model__bar button b{font-weight:500}
.model__bar button.is-active,.model__bar button.is-past{color:var(--paper)}

/* ---------- 03 Services — editorial index ---------- */
.svc{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap)}
.svc__list{grid-column:1/span 7;border-top:1px solid var(--line)}
.svc__item{border-bottom:1px solid var(--line)}
.svc__btn{width:100%;display:grid;grid-template-columns:4rem 1fr auto;align-items:baseline;gap:1rem;padding:clamp(1.3rem,2.4vw,2.2rem) 0;text-align:left;color:var(--mute);transition:color var(--d-2) var(--ease)}
.svc__btn .micro{color:var(--mute)}
.svc__title{font-size:clamp(2rem,1.2rem + 3.4vw,4.8rem);font-weight:300;letter-spacing:-.045em;line-height:.95;transition:transform var(--d-2) var(--ease)}
.svc__plus{position:relative;width:1rem;height:1rem;align-self:center}
.svc__plus::before,.svc__plus::after{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:currentColor;transition:transform var(--d-2) var(--ease)}
.svc__plus::after{transform:rotate(90deg)}
.svc__item.is-active .svc__btn,.svc__btn:hover{color:var(--ink)}
.svc__item.is-active .svc__plus::after{transform:rotate(0)}
.svc__panel{display:grid;grid-template-rows:0fr;transition:grid-template-rows var(--d-3) var(--ease)}
.svc__item.is-active .svc__panel{grid-template-rows:1fr}
.svc__panel>div{overflow:hidden}
.svc__panel-inner{display:grid;grid-template-columns:4rem 1fr 1fr;gap:1rem;padding:0 0 2.2rem}
.svc__panel-inner p{grid-column:2;max-width:26rem;color:var(--ink-2)}
.svc__panel-inner ul{grid-column:3;display:grid;gap:.1rem;align-content:start}
.svc__panel-inner li{display:flex;gap:.9rem;align-items:baseline;padding:.45rem 0;border-bottom:1px solid var(--line);font-size:var(--t-small)}
.svc__panel-inner li::before{content:"";width:.9rem;height:1px;background:var(--ink);opacity:.5;transform:translateY(-.25rem)}
.svc__panel-media{display:none}
.svc__figure{grid-column:9/-1;position:sticky;top:calc(var(--header-h) + 2rem);align-self:start;aspect-ratio:4/5;overflow:hidden;background:var(--stone)}
.svc__figure figure{position:absolute;inset:0;clip-path:inset(0 0 0 100%);transition:clip-path var(--d-4) var(--ease-io)}
.svc__figure figure.is-shown{clip-path:inset(0);z-index:1}
.svc__figure img{width:100%;height:100%;object-fit:cover;filter:grayscale(.45) contrast(1.04);transform:scale(1.1);transition:transform 2s var(--ease)}
.svc__figure figure.is-shown img{transform:scale(1)}
.svc__figure figcaption{position:absolute;left:1rem;right:1rem;bottom:1rem;display:flex;justify-content:space-between;font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;color:var(--paper);text-shadow:0 1px 14px rgba(0,0,0,.5)}

/* ---------- 04 Portfolio ---------- */
.pf__bar{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.25rem;margin-bottom:var(--s-4)}
.chips{display:flex;flex-wrap:wrap;gap:.45rem}
.pf__controls{display:flex;align-items:center;gap:.6rem}
.pf__count{margin-right:1rem;color:var(--mute)}
.track{display:grid;grid-auto-flow:column;grid-auto-columns:clamp(17rem,34vw,34rem);gap:var(--gap);overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x mandatory;scrollbar-width:none;padding-inline:var(--pad);scroll-padding-inline:var(--pad);cursor:grab}
.track::-webkit-scrollbar{display:none}
.track.is-dragging{cursor:grabbing;scroll-snap-type:none}
.track.is-dragging *{pointer-events:none}
.pcard{scroll-snap-align:start;display:flex;flex-direction:column;gap:1rem;position:relative}
.pcard__media{aspect-ratio:4/3;overflow:hidden;background:var(--stone);position:relative}
.pcard__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.3);transform:scale(1.02);transition:transform 1.4s var(--ease),filter var(--d-3) var(--ease)}
.pcard:hover .pcard__media img,.pcard:focus-visible .pcard__media img{transform:scale(1.07);filter:grayscale(0)}
.pcard__idx{position:absolute;left:.9rem;top:.8rem;font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;color:var(--paper);text-shadow:0 1px 10px rgba(0,0,0,.45)}
.pcard__meta{display:flex;justify-content:space-between;gap:1rem;color:var(--mute)}
.pcard__name{font-size:var(--t-h4);font-weight:400;letter-spacing:-.02em;line-height:1.1}
.pcard__loc{color:var(--ink-2);font-size:var(--t-small)}
.pcard__line{height:1px;background:var(--line);position:relative;overflow:hidden}
.pcard__line::after{content:"";position:absolute;inset:0;background:var(--ink);transform:scaleX(0);transform-origin:left;transition:transform var(--d-3) var(--ease)}
.pcard:hover .pcard__line::after{transform:scaleX(1)}
.pf__scrub{margin-top:var(--s-4);height:1px;background:var(--line);position:relative}
.pf__scrub i{position:absolute;left:0;top:0;height:1px;background:var(--ink);width:var(--w,20%);transform:translateX(var(--x,0))}
.pf__foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1.25rem}

/* ---------- 05 U.S. Operations ---------- */
.ops{background:var(--ink);color:var(--paper);overflow:hidden}
.ops__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--s-4);align-items:start}
.ops__map{grid-column:1/span 7;position:relative}
.ops__map svg{width:100%;height:auto;overflow:visible}
.st{fill:rgba(248,247,243,.045);stroke:rgba(248,247,243,.18);stroke-width:.6;transition:fill var(--d-2) var(--ease),stroke var(--d-2)}
.st.is-live{fill:rgba(204,199,193,.24);stroke:rgba(248,247,243,.5);cursor:pointer}
.st.is-live:hover{fill:rgba(204,199,193,.4)}
.st.is-sel{fill:rgba(248,247,243,.78);stroke:var(--paper)}
.st:focus-visible{outline:none;stroke:var(--paper);stroke-width:1.6}
.nation{fill:none;stroke:rgba(248,247,243,.45);stroke-width:.8}
.mk circle.core{fill:var(--paper)}
.mk circle.halo{fill:none;stroke:var(--paper);stroke-opacity:.5;transform-box:fill-box;transform-origin:center;animation:halo 3s var(--ease) infinite}
.mk.is-dim circle.core{fill:rgba(248,247,243,.35)}
.mk.is-dim circle.halo{display:none}
.mk.is-sel circle.core{fill:var(--ink)}
.mk text{fill:var(--paper);font-size:9px;font-weight:500;letter-spacing:.14em;text-transform:uppercase;opacity:0;transition:opacity var(--d-2)}
.mk.is-sel text{opacity:1;fill:var(--ink)}
@keyframes halo{0%{transform:scale(.6);opacity:.9}100%{transform:scale(2.4);opacity:0}}
.ops__coords{display:flex;justify-content:space-between;margin-top:1rem;color:rgba(248,247,243,.45)}
.ops__panel{grid-column:9/-1;display:flex;flex-direction:column;gap:1.75rem}
.ops__select{display:flex;flex-direction:column;gap:.9rem}
.ops__select .chips{gap:.4rem}
.ops__state{font-size:clamp(2.6rem,1.8rem + 2.6vw,4.6rem);font-weight:300;letter-spacing:-.05em;line-height:.9}
.ops__region{color:rgba(248,247,243,.55)}
.ops__stats{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--line-dark);border-bottom:1px solid var(--line-dark)}
.ops__stats div{padding:1rem 0;display:grid;gap:.4rem}
.ops__stats div+div{padding-left:1rem;border-left:1px solid var(--line-dark)}
.ops__stats strong{font-size:clamp(1.6rem,1.1rem + 1.3vw,2.4rem);font-weight:300;letter-spacing:-.04em;line-height:1}
.ops__stats span{color:rgba(248,247,243,.55)}
.ops__list{display:grid;max-height:18rem;overflow:auto;scrollbar-width:thin;scrollbar-color:rgba(248,247,243,.3) transparent}
.ops__list a{display:grid;grid-template-columns:3.5rem 1fr auto;gap:1rem;align-items:center;padding:.6rem 0;border-bottom:1px solid var(--line-dark);transition:padding var(--d-2) var(--ease)}
.ops__list a:hover{padding-left:.5rem}
.ops__list img{width:3.5rem;aspect-ratio:4/3;object-fit:cover;filter:grayscale(.4)}
.ops__list b{display:block;font-weight:400;font-size:var(--t-small)}
.ops__list small{display:block;font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:rgba(248,247,243,.5)}
.ops__list .num{font-size:var(--t-small);color:rgba(248,247,243,.7)}
.ops__swap{transition:opacity var(--d-1) var(--ease),transform var(--d-2) var(--ease)}
.ops__swap.is-swapping{opacity:0;transform:translateY(.5rem)}

/* ---------- 06 Numbers ---------- */
.stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.stat{padding:clamp(1.6rem,3vw,2.6rem) clamp(1rem,2vw,2rem) clamp(2rem,4vw,3.6rem) 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:1rem;position:relative}
.stat:not(:nth-child(3n+1)){padding-left:clamp(1rem,2vw,2rem);border-left:1px solid var(--line)}
.stat__top{display:flex;justify-content:space-between;color:var(--mute)}
.stat__val{font-size:clamp(3.8rem,2rem + 6vw,8.5rem);font-weight:300;letter-spacing:-.06em;line-height:.9;font-variant-numeric:tabular-nums lining-nums}
.stat__val sup{font-size:.4em;vertical-align:top;position:relative;top:.25em;letter-spacing:0;margin-left:.08em}
.stat__label{font-size:var(--t-h4);font-weight:400;letter-spacing:-.015em}
.stat__src{color:var(--mute);font-size:var(--t-small)}
.stats__note{margin-top:1.25rem;display:flex;justify-content:space-between;gap:1rem;color:var(--mute)}

/* ---------- 07 Owners / Residents ---------- */
.aud{background:linear-gradient(90deg,var(--paper-2) calc(50% + var(--rail-offset,0px) / 2),var(--ink) 0)}
.aud__wrap{display:grid;grid-template-columns:1fr 1fr}
.aud__col{position:relative;display:flex;flex-direction:column;padding-block:var(--s-6)}
.aud__col--owners{padding-right:clamp(1.5rem,4vw,4.5rem)}
.aud__col--res{color:var(--paper);padding-left:clamp(1.5rem,4vw,4.5rem)}
.aud__media{aspect-ratio:16/10;margin-bottom:var(--s-4);overflow:hidden}
.aud__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.35)}
.aud__col .micro{margin-bottom:1.5rem}
.aud__col .h3{max-width:17ch;margin-bottom:1.5rem}
.aud__col .body{margin-bottom:2rem}
.aud__pts{display:grid;margin-bottom:2.5rem}
.aud__pts li{display:grid;grid-template-columns:2.5rem 1fr;padding:.8rem 0;border-top:1px solid var(--line);font-size:var(--t-small)}
.aud__col--res .aud__pts li{border-top-color:var(--line-dark)}
.aud__pts li span{color:var(--mute);font-size:var(--t-micro);letter-spacing:.12em;padding-top:.2rem}
.finder{margin-top:auto;display:grid;gap:.9rem;padding-top:1.5rem;border-top:1px solid var(--line-dark-2)}
.finder label{color:rgba(248,247,243,.6)}
.select{position:relative}
.select select{appearance:none;-webkit-appearance:none;width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-dark-2);padding:.8rem 2rem .8rem 0;font-size:var(--t-h4);font-weight:300;letter-spacing:-.015em;color:inherit;border-radius:0}
.select select option{color:var(--ink)}
.select::after{content:"";position:absolute;right:.3rem;top:50%;width:.55rem;height:.55rem;border-right:1px solid currentColor;border-bottom:1px solid currentColor;transform:translateY(-75%) rotate(45deg);pointer-events:none}
.select select:focus-visible{outline:none;border-bottom-color:var(--paper)}
.finder__out{display:grid;grid-template-columns:1fr auto;gap:.3rem 1rem;align-items:end;min-height:3.5rem;font-size:var(--t-small);color:rgba(248,247,243,.78)}
.finder__out a{font-size:var(--t-h4);font-weight:300;color:var(--paper);letter-spacing:-.01em}
.aud__col--owners .pill{align-self:flex-start;margin-top:auto}

/* ---------- 08 Team teaser ---------- */
.lead-team{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:start}
.lead-team__portrait{grid-column:1/span 5;position:sticky;top:calc(var(--header-h) + 1.5rem);aspect-ratio:4/5;background:var(--stone);overflow:hidden}
.lead-team__portrait figure{position:absolute;inset:0;opacity:0;transition:opacity var(--d-2) var(--ease)}
.lead-team__portrait figure.is-shown{opacity:1}
.lead-team__portrait img{position:absolute;left:50%;bottom:0;height:94%;width:auto;max-width:none;transform:translateX(-50%) scale(1.04);filter:grayscale(1) contrast(1.05);transition:transform 1.4s var(--ease)}
.lead-team__portrait figure.is-shown img{transform:translateX(-50%) scale(1)}
.lead-team__portrait figcaption{position:absolute;left:1rem;top:1rem;right:1rem;display:flex;justify-content:space-between;color:var(--ink-2)}
.lead-team__side{grid-column:7/-1}
.lead-team__list{border-top:1px solid var(--line)}
.lt-row{width:100%;text-align:left;display:grid;grid-template-columns:3rem 1fr minmax(8rem,auto);gap:1rem;align-items:baseline;padding:1.2rem 0;border-bottom:1px solid var(--line);color:var(--mute);transition:color var(--d-2) var(--ease),padding var(--d-2) var(--ease)}
.lt-row h3{font-size:clamp(1.5rem,1rem + 1.6vw,2.6rem);font-weight:300;letter-spacing:-.035em;line-height:1}
.lt-row p{font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;text-align:right}
.lt-row.is-active,.lt-row:hover,.lt-row:focus-visible{color:var(--ink);padding-left:.6rem}
.lead-team__more{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:2rem}

/* ---------- 09 Ecosystem ---------- */
.eco{background:var(--paper-2)}
.eco__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--s-4)}
.eco__intro{grid-column:1/span 5;position:sticky;top:calc(var(--header-h) + 2rem);align-self:start;display:grid;gap:1.5rem}
.eco__intro .h2{font-size:clamp(2.4rem,1.3rem + 3vw,4.6rem)}
.eco__tree{grid-column:7/-1;position:relative;display:grid;gap:0}
.eco__spine{display:none}
.tier{position:relative;display:grid;grid-template-columns:3rem 1fr;gap:1.25rem;padding:0 0 3.2rem}
.tier:not(:last-child)::before{content:"";position:absolute;left:1.5rem;top:3rem;bottom:0;width:1px;background:var(--ink-2);transform-origin:top;transform:scaleY(0);transition:transform 1.4s var(--ease-io) .35s}
.tier.is-in::before,.no-io .tier::before{transform:none}
.tier:last-child{padding-bottom:0}
.tier__node{position:relative;z-index:1;width:3rem;height:3rem;border:1px solid var(--line-2);border-radius:50%;display:grid;place-items:center;background:var(--paper-2);font-size:var(--t-micro);font-weight:500;letter-spacing:.08em}
.tier__card{border:1px solid var(--line);padding:clamp(1.3rem,2.4vw,2.2rem);display:grid;grid-template-columns:1fr auto;gap:1.2rem 2rem;background:var(--paper)}
.tier__card header{display:grid;gap:.7rem}
.tier__name{font-size:clamp(1.8rem,1.1rem + 1.9vw,3rem);font-weight:300;letter-spacing:-.045em;line-height:.95}
.tier__name b{font-weight:500}
.tier__card p{grid-column:1/-1;max-width:34rem;color:var(--ink-2)}
.tier__caps{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:.45rem}
.tier__caps li{font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;text-transform:uppercase;padding:.4rem .75rem;border:1px solid var(--line-2);border-radius:999px}
.tier__tag{align-self:start;color:var(--mute);white-space:nowrap}
.tier--parent .tier__node{background:var(--navy);border-color:var(--navy);color:var(--paper)}
.tier--parent .tier__name{color:var(--navy)}
.tier--self .tier__node{background:var(--ink);border-color:var(--ink);color:var(--paper)}
.tier--self .tier__card{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.tier--self .tier__card p{color:rgba(248,247,243,.72)}
.tier--self .tier__caps li{border-color:var(--line-dark-2)}
.tier--self .tier__tag{color:var(--stone)}
.tier__arrow{position:absolute;left:1.5rem;bottom:1.1rem;transform:translateX(-50%);color:var(--mute);font-size:var(--t-micro);letter-spacing:.14em}

/* ---------- 10 Contact ---------- */
.contact{background:var(--ink);color:var(--paper)}
.contact__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--s-5)}
.contact__head{grid-column:1/-1}
.contact__info{grid-column:1/span 4;display:grid;gap:0;align-content:start;border-top:1px solid var(--line-dark)}
.contact__info a,.contact__info div{display:grid;gap:.5rem;padding:1.3rem 0;border-bottom:1px solid var(--line-dark)}
.contact__info .micro{color:rgba(248,247,243,.5)}
.contact__info strong{font-weight:300;font-size:clamp(1.1rem,.95rem + .55vw,1.45rem);letter-spacing:-.015em;word-break:break-word}
.contact__info a:hover strong{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.3em}
.form{grid-column:6/-1;display:grid;grid-template-columns:1fr 1fr;gap:2.2rem var(--gap)}
.field{position:relative;display:grid;gap:.5rem}
.field--full{grid-column:1/-1}
.field label{color:rgba(248,247,243,.6)}
.field input,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid var(--line-dark-2);border-radius:0;padding:.6rem 0 .9rem;font-size:var(--t-h4);font-weight:300;letter-spacing:-.01em;color:var(--paper);transition:border-color var(--d-1)}
.field textarea{min-height:8rem;resize:vertical;line-height:1.4}
.field input::placeholder,.field textarea::placeholder{color:rgba(248,247,243,.3)}
.field input:focus,.field textarea:focus{outline:none;border-bottom-color:var(--paper)}
.field .err{font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:#E6B8A2;min-height:1em}
.field.is-invalid input,.field.is-invalid textarea{border-bottom-color:#E6B8A2}
.form__foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}
.form__status{font-size:var(--t-small);color:rgba(248,247,243,.7);max-width:26rem}
.send{display:inline-flex;align-items:center;gap:1.2rem;font-size:clamp(1.6rem,1.1rem + 1.6vw,2.6rem);font-weight:300;letter-spacing:-.035em;padding:.3rem 0;border-bottom:1px solid var(--line-dark-2);transition:border-color var(--d-2)}
.send .arw{transition:transform var(--d-2) var(--ease)}
.send:hover{border-bottom-color:var(--paper)}
.send:hover .arw{transform:translateX(.5rem)}

/* ---------- Footer ---------- */
.footer{background:var(--night);color:var(--paper);padding:var(--s-6) 0 var(--pad);overflow:hidden}
.footer__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--s-4)}
.footer__intro{grid-column:1/span 4;display:grid;gap:1.5rem;align-content:start}
.footer__intro p{color:rgba(248,247,243,.6);max-width:26rem;font-size:var(--t-small)}
.footer__col{grid-column:span 2;display:grid;gap:.75rem;align-content:start}
.footer__col:first-of-type{grid-column:7/span 2}
.footer__col h2{margin-bottom:.5rem;color:rgba(248,247,243,.5)}
.footer__col a,.footer__col span{font-size:var(--t-small);color:rgba(248,247,243,.85);width:fit-content}
.footer__col a:hover{color:var(--paper);text-decoration:underline;text-underline-offset:.3em;text-decoration-thickness:1px}
.footer__word{grid-column:1/-1;font-size:clamp(3.5rem,1rem + 13vw,14rem);font-weight:300;letter-spacing:-.07em;line-height:.8;white-space:nowrap;margin-top:var(--s-5);color:var(--paper);opacity:.95}
.footer__word em{font-weight:300}
.footer__bottom{grid-column:1/-1;display:flex;justify-content:space-between;flex-wrap:wrap;gap:1rem;padding-top:1.25rem;border-top:1px solid var(--line-dark);color:rgba(248,247,243,.5)}

/* ==========================================================================
   INNER PAGES
   ========================================================================== */
.page-hero{position:relative;min-height:88svh;display:flex;flex-direction:column;justify-content:flex-end;padding:calc(var(--header-h) + 3rem) 0 0;overflow:hidden;isolation:isolate}
.page-hero--dark{background:var(--night);color:var(--paper)}
.page-hero__media{position:absolute;inset:0;z-index:-1}
.page-hero__media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.85) brightness(.66) contrast(1.08);transform:scale(1.1);transition:transform 2.4s var(--ease)}
.is-ready .page-hero__media img{transform:scale(1.02)}
.page-hero__media::after{content:"";position:absolute;inset:0;z-index:1;opacity:1;mix-blend-mode:normal;pointer-events:none;background:linear-gradient(180deg,rgba(20,20,20,.55),rgba(20,20,20,.2) 40%,rgba(20,20,20,.85))}
body[data-page="company"] .page-hero__media img{filter:brightness(.82) contrast(1.06)}
body[data-page="company"].is-ready .page-hero__media img{animation:hero-breathe 14s ease-in-out 2.4s infinite alternate}
body[data-page="company"] .page-hero__media::after{z-index:1;opacity:1;mix-blend-mode:normal;pointer-events:none;background:linear-gradient(180deg,rgba(12,12,12,.6) 0%,rgba(12,12,12,.64) 55%,rgba(12,12,12,.84) 100%)}
.page-hero__inner{padding:0 calc(var(--pad) + 2.2rem) clamp(2.5rem,5vw,4rem)}
.page-hero__top{position:absolute;top:calc(var(--header-h) + 2rem);left:calc(var(--pad) + 2.2rem);right:calc(var(--pad) + 2.2rem);display:flex;justify-content:space-between;gap:1rem}
.page-hero__top .micro{opacity:.8}
.page-hero__row{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:end;margin-top:clamp(1.5rem,3vw,2.5rem)}
.page-hero__row .lead{grid-column:1/span 6;max-width:32rem;opacity:.85}
.page-hero__facts{grid-column:8/-1;display:flex;justify-content:flex-end;gap:clamp(1.25rem,3vw,3rem)}
.page-hero__facts div{display:grid;gap:.35rem;text-align:right}
.page-hero__facts strong{font-size:var(--t-h3);font-weight:300;letter-spacing:-.04em;line-height:1}
.page-hero__facts span{opacity:.6}
.page-hero__foot{display:flex;justify-content:space-between;gap:1rem;padding:1.2rem calc(var(--pad) + 2.2rem) calc(var(--pad) + 1rem);border-top:1px solid var(--line-dark)}
.js .page-hero [data-hero]{opacity:0;transform:translateY(1.25rem);transition:opacity 1.2s var(--ease) .5s,transform 1.2s var(--ease) .5s}
.js .is-ready .page-hero [data-hero]{opacity:1;transform:none}
.js .page-hero .ln>span{transform:translateY(108%);transition:transform 1.6s var(--ease)}
.js .is-ready .page-hero .ln>span{transform:none}
.js .is-ready .page-hero .ln:nth-child(2)>span{transition-delay:.12s}

/* ---------- Careers ---------- */
.lang-switch{display:inline-flex;align-items:center;border:1px solid color-mix(in srgb,currentColor 38%,transparent);border-radius:999px;padding:.2rem;background:color-mix(in srgb,currentColor 5%,transparent);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px)}
.lang-switch button{min-width:2.25rem;padding:.42rem .55rem;border-radius:999px;font-size:.58rem;font-weight:500;letter-spacing:.14em;transition:background var(--d-1),color var(--d-1)}
.lang-switch button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.site-header.is-on-dark .lang-switch button[aria-pressed="true"]{background:var(--paper);color:var(--ink)}
.career-hero .page-hero__media img{filter:brightness(.62) contrast(1.05)}
.career-hero .page-hero__media::after{background:linear-gradient(180deg,rgba(16,16,16,.55),rgba(16,16,16,.4) 44%,rgba(16,16,16,.9))}
.career-apply{background:var(--paper-2)}
.career-grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:var(--s-5) var(--gap)}
.career-intro{grid-column:1/span 5;display:grid;align-content:start;gap:1.6rem;position:sticky;top:calc(var(--header-h) + 2rem);align-self:start}
.career-intro .chapter{margin-bottom:var(--s-3)}
.career-intro .body{max-width:29rem}
.career-source{color:var(--mute);padding-top:1.2rem;border-top:1px solid var(--line)}
.career-form{grid-column:7/-1;display:grid;grid-template-columns:1fr 1fr;gap:2.2rem var(--gap);padding:clamp(1.5rem,3vw,3rem);background:var(--paper);border:1px solid var(--line)}
.career-field{position:relative;display:grid;gap:.55rem;align-content:start}
.career-field--full{grid-column:1/-1}
.career-field label{color:var(--mute)}
.career-field input{width:100%;min-width:0;background:transparent;border:0;border-bottom:1px solid var(--line-2);border-radius:0;padding:.65rem 0 .9rem;font-size:var(--t-h4);font-weight:300;letter-spacing:-.01em;color:var(--ink);transition:border-color var(--d-1)}
.career-field input::placeholder{color:color-mix(in srgb,var(--ink) 32%,transparent)}
.career-field input:focus{outline:none;border-bottom-color:var(--ink)}
.career-field .err{font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:#9D493E;min-height:1em}
.career-field.is-invalid input{border-bottom-color:#9D493E}
.career-file{padding:1.2rem 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.career-file input{font-size:var(--t-small);border:0;padding:.5rem 0;color:var(--ink-2)}
.career-file input::file-selector-button{font:inherit;font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--ink);background:var(--paper-2);border:1px solid var(--line-2);border-radius:999px;padding:.65rem 1rem;margin-right:1rem;cursor:pointer}
.career-file-note{font-size:var(--t-micro);letter-spacing:.12em;text-transform:uppercase;color:var(--mute)}
.career-form__foot{grid-column:1/-1;display:flex;justify-content:space-between;align-items:center;gap:1.5rem;flex-wrap:wrap}
.career-status{font-size:var(--t-small);color:var(--mute);max-width:28rem}
.career-submit{border-bottom-color:var(--line-2)}
.career-submit:hover{border-bottom-color:var(--ink)}

/* Company */
.story{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--s-4)}
.story__title{grid-column:1/span 7}
.story__text{grid-column:8/-1;display:grid;gap:1.25rem;align-self:end}
.story__media{grid-column:1/-1;display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);margin-top:var(--s-5)}
.story__media .media:first-child{grid-column:1/span 8;aspect-ratio:16/9}
.story__media .media:last-child{grid-column:10/-1;aspect-ratio:3/4;align-self:end}
.principles{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line)}
.principle{padding:2rem 2rem 3rem 0;display:grid;gap:1.25rem;align-content:start;border-bottom:1px solid var(--line)}
.principle+.principle{padding-left:2rem;border-left:1px solid var(--line)}
.principle h3{font-size:clamp(2.4rem,1.4rem + 3vw,4.4rem);font-weight:300;letter-spacing:-.05em;line-height:.95}
.principle p{color:var(--ink-2);max-width:22rem}
.quote{padding:var(--s-7) var(--pad);background:var(--ink);color:var(--paper);position:relative}
.quote blockquote{max-width:var(--max);margin:0 auto;font-size:clamp(2rem,1rem + 3.6vw,4.8rem);font-weight:300;letter-spacing:-.04em;line-height:1.02}
.quote blockquote em{font-weight:300}
.quote cite{display:block;margin-top:2.5rem;font-style:normal}
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));border-top:1px solid var(--line)}
.step{padding:1.5rem 1.25rem 2.5rem 0;display:grid;gap:1.25rem;align-content:start}
.step+.step{padding-left:1.25rem;border-left:1px solid var(--line)}
.step b{font-size:clamp(3rem,2rem + 3vw,5rem);font-weight:300;letter-spacing:-.06em;line-height:.85}
.step h3{font-size:var(--t-h4);font-weight:400;letter-spacing:-.015em}
.step p{font-size:var(--t-small);color:var(--ink-2)}
.next{display:grid;grid-template-columns:1fr auto;align-items:end;gap:2rem;padding:var(--s-6) var(--pad);border-top:1px solid var(--line);max-width:var(--max);margin:0 auto}
.next a{font-size:clamp(2.6rem,1.4rem + 5vw,7rem);font-weight:300;letter-spacing:-.055em;line-height:.9;display:inline-flex;align-items:baseline;gap:1.5rem}
.next a .arw{font-size:.5em;transition:transform var(--d-2) var(--ease)}
.next a:hover .arw{transform:translate(.4rem,-.4rem)}

/* Portfolio page */
.pp__toolbar{position:sticky;top:0;z-index:20;background:rgba(248,247,243,.92);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-bottom:1px solid var(--line);transition:top var(--d-2) var(--ease)}
.header-shown .pp__toolbar{top:var(--header-h)}
.pp__toolbar .wrap{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:.9rem;padding-block:1rem}
.pp__tools{display:flex;align-items:center;gap:1.25rem;flex-wrap:wrap}
.seg{display:inline-flex;border:1px solid var(--line-2);border-radius:999px;padding:.2rem}
.seg button{padding:.45rem .85rem;border-radius:999px;font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:var(--mute)}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--paper)}
.pp__summary{display:flex;gap:1.5rem;color:var(--mute)}
.pp__summary b{color:var(--ink);font-weight:500}
.pgrid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--s-4) var(--gap);padding-block:var(--s-5) var(--s-6)}
.pgrid .pcard:nth-child(6n+1){grid-column:span 2}
.pgrid .pcard:nth-child(6n+1) .pcard__media{aspect-ratio:16/9}
.plist{padding-block:var(--s-4) var(--s-6)}
.plist__head,.plist__row{display:grid;grid-template-columns:3rem minmax(0,2.4fr) minmax(0,1.3fr) minmax(0,1fr) 6rem 2rem;gap:1rem;align-items:center}
.plist__head{padding:.8rem 0;border-bottom:1px solid var(--line-2);color:var(--mute)}
.plist__row{padding:1rem 0;border-bottom:1px solid var(--line);position:relative;text-align:left;width:100%}
.plist__row .num,.plist__head .num{text-align:right}
.plist__row h3{font-size:var(--t-h4);font-weight:400;letter-spacing:-.02em;line-height:1.1}
.plist__row span{font-size:var(--t-small);color:var(--ink-2)}
.plist__row .micro{color:var(--mute)}
.plist__row .arw{justify-self:end;transition:transform var(--d-2) var(--ease)}
.plist__row:hover .arw{transform:translateX(.3rem)}
.plist__row::before{content:"";position:absolute;inset:0 calc(var(--pad) * -1);background:var(--paper-2);z-index:-1;opacity:0;transition:opacity var(--d-1)}
.plist__row:hover::before{opacity:1}
.plist__peek{position:fixed;z-index:70;width:18rem;aspect-ratio:4/3;pointer-events:none;overflow:hidden;opacity:0;transform:translate(-50%,-50%) scale(.9);transition:opacity var(--d-1),transform var(--d-2) var(--ease)}
.plist__peek.is-on{opacity:1;transform:translate(-50%,-50%) scale(1)}
.plist__peek img{width:100%;height:100%;object-fit:cover}
.markets{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line-dark)}
.market{padding:1.5rem 1.5rem 2rem 0;border-bottom:1px solid var(--line-dark);display:grid;gap:.7rem;text-align:left;color:inherit}
.market:not(:nth-child(3n+1)){padding-left:1.5rem;border-left:1px solid var(--line-dark)}
.market h3{font-size:var(--t-h3);font-weight:300;letter-spacing:-.04em;line-height:1}
.market p{color:rgba(248,247,243,.55)}
.market:hover h3{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}

/* property dialog */
.pdlg{width:min(72rem,calc(100vw - 2 * var(--pad)));max-height:calc(100svh - 2 * var(--pad));padding:0;border:0;background:var(--paper);color:var(--ink);overflow:auto}
.pdlg::backdrop{background:rgba(20,20,20,.72);backdrop-filter:blur(6px)}
.pdlg[open]{animation:dlg .7s var(--ease)}
@keyframes dlg{from{opacity:0;transform:translateY(2rem)}}
.pdlg__grid{display:grid;grid-template-columns:1.3fr 1fr}
.pdlg__media{position:relative;min-height:26rem;background:var(--stone)}
.pdlg__media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pdlg__body{padding:clamp(1.5rem,3vw,2.75rem);display:flex;flex-direction:column;gap:1.5rem}
.pdlg__body h2{font-size:clamp(2rem,1.4rem + 2vw,3.2rem);font-weight:300;letter-spacing:-.045em;line-height:.95}
.pdlg dl{display:grid;border-top:1px solid var(--line)}
.pdlg dl div{display:grid;grid-template-columns:7rem 1fr;gap:1rem;padding:.8rem 0;border-bottom:1px solid var(--line);font-size:var(--t-small)}
.pdlg dt{color:var(--mute);font-size:var(--t-micro);letter-spacing:.14em;text-transform:uppercase;font-weight:500;padding-top:.2rem}
.pdlg__actions{display:flex;flex-wrap:wrap;gap:.6rem;margin-top:auto}
.pdlg__close{position:absolute;right:1rem;top:1rem;z-index:2;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--paper);display:grid;place-items:center}
.pdlg__close svg{width:.9rem;height:.9rem}
.pdlg__nav{display:flex;justify-content:space-between;align-items:center;gap:1rem;padding-top:1rem;border-top:1px solid var(--line)}

/* Team page */
.tdir{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);align-items:start}
.tdir__stage{grid-column:1/span 5;position:sticky;top:calc(var(--header-h) + 5.5rem);aspect-ratio:4/5;background:var(--stone);overflow:hidden}
.tdir__stage figure{position:absolute;inset:0;opacity:0;transition:opacity var(--d-2) var(--ease)}
.tdir__stage figure.is-shown{opacity:1}
.tdir__stage img{position:absolute;left:50%;bottom:0;height:92%;width:auto;max-width:none;transform:translateX(-50%);filter:grayscale(1) contrast(1.05)}
.tdir__stage-meta{position:absolute;z-index:2;left:0;right:0;bottom:0;padding:1rem 1.1rem 1.1rem;background:var(--paper);border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;color:var(--ink)}
.tdir__stage-meta strong{display:block;font-size:var(--t-h3);font-weight:300;letter-spacing:-.04em;line-height:1}
.tdir__stage-meta .micro{color:var(--ink-2)}
.tdir__stage-idx{position:absolute;z-index:2;left:1.1rem;top:1rem;right:1.1rem;display:flex;justify-content:space-between;color:var(--ink-2)}
.tdir__list{grid-column:7/-1}
.tgroup{margin-bottom:var(--s-4)}
.tgroup__head{display:flex;justify-content:space-between;align-items:center;padding-bottom:.9rem;border-bottom:1px solid var(--line-2);color:var(--mute)}
.tperson{display:grid;grid-template-columns:3.5rem 1fr auto;gap:1rem;align-items:center;padding:1rem 0;border-bottom:1px solid var(--line);color:var(--mute);width:100%;text-align:left;transition:color var(--d-2) var(--ease),padding var(--d-2) var(--ease)}
.tperson__thumb{width:3.5rem;aspect-ratio:1;overflow:hidden;background:var(--stone);position:relative;display:none}
.tperson__thumb img{position:absolute;left:50%;top:6%;width:120%;max-width:none;transform:translateX(-50%);filter:grayscale(1)}
.tperson h3{font-size:clamp(1.4rem,1rem + 1.4vw,2.3rem);font-weight:300;letter-spacing:-.035em;line-height:1.05;grid-column:1/span 2}
.tperson p{font-size:var(--t-micro);font-weight:500;letter-spacing:.14em;text-transform:uppercase;text-align:right}
.tperson:hover,.tperson.is-active,.tperson:focus-visible{color:var(--ink);padding-left:.6rem}
.depts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));border-top:1px solid var(--line)}
.dept{padding:1.4rem 1.25rem 1.8rem 0;border-bottom:1px solid var(--line);display:grid;gap:.6rem;text-align:left}
.dept:not(:nth-child(4n+1)){padding-left:1.25rem;border-left:1px solid var(--line)}
.dept b{font-size:clamp(2.4rem,1.6rem + 2.4vw,4rem);font-weight:300;letter-spacing:-.05em;line-height:.9}
.dept span{font-size:var(--t-h4);font-weight:400;letter-spacing:-.015em}
.dept:hover span{text-decoration:underline;text-underline-offset:.25em;text-decoration-thickness:1px}


/* home: clear the chapter rail with an asymmetric left inset (I Real Estate uses the same offset) */
@media (min-width:1281px){
  body[data-page="home"]{--rail-offset:9.5rem}
  body[data-page="home"] main>section:not(.hero) .wrap{padding-left:calc(var(--pad) + var(--rail-offset))}
  body[data-page="home"] .model__stage{padding-left:calc(var(--pad) + var(--rail-offset))}
  body[data-page="home"] .track{padding-left:calc(var(--pad) + var(--rail-offset));scroll-padding-left:calc(var(--pad) + var(--rail-offset))}
}

/* ==========================================================================
   RESPONSIVE
   ========================================================================== */
@media (max-width:1280px){
  .nav{gap:1rem;padding:.85rem 1.2rem}
  .header-end .micro{display:none}
}
@media (max-width:1100px){
  :root{--header-h:4.5rem}
  .site-header{position:sticky;grid-template-columns:1fr auto}
  .nav{display:none}
  .menu-btn{display:inline-flex}
  .rail,.index-counter{display:none}
  .hero__meta,.page-hero__top{top:2rem}
  .page-hero{padding-top:3rem}
  .hero .crop,.page-hero .crop{--crop-inset:.5rem var(--pad) var(--pad)}
  .hero__body,.hero__foot,.page-hero__inner,.page-hero__foot{padding-inline:var(--pad)}
  .hero__meta,.page-hero__top{left:var(--pad);right:var(--pad)}
  .progress{display:none}
  .model__stage{padding-inline:var(--pad)}
  .svc__list{grid-column:1/span 7}
  .svc__figure{grid-column:8/-1}
  .who__title{grid-column:1/-1}
  .who__text{grid-column:1/span 9}
  .ops__map{grid-column:1/-1}
  .ops__panel{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:2rem}
  .ops__select,.ops__state,.ops__region{grid-column:1/-1}
  .eco__intro{grid-column:1/-1;position:static}
  .eco__tree{grid-column:1/-1}
  .footer__intro{grid-column:1/span 6}
  .footer__col:first-of-type{grid-column:auto}
  .footer__col{grid-column:span 3}
  .tdir__stage{grid-column:1/span 5}
}
@media (max-width:900px){
  .section-head .h2{grid-column:1/-1}
  .section-head .section-head__aside{grid-column:1/-1;justify-self:start}
  .hero__copy{grid-column:1/-1}
  .hero__cta{grid-column:1/-1;justify-self:start;margin-top:1.75rem}
  .who__text{grid-column:1/-1}
  .lockup-cell--a{grid-column:1/span 5}.lockup-cell--link{grid-column:6/span 2}.lockup-cell--b{grid-column:8/-1}
  .lockup-cell--link .micro{display:none}
  .who__media{grid-column:1/span 8}
  .who__media-b{grid-column:9/-1}
  .chain{grid-template-columns:1fr}
  .chain li{flex-direction:row;justify-content:space-between;align-items:baseline;padding:1rem 0!important;border-left:0!important;border-bottom:1px solid var(--line);gap:1rem}
  .chain li.is-owned{padding-inline:1rem!important;margin-inline:-1rem}
  /* operating model becomes a vertical sequence */
  .model__track{height:auto}
  .model__stage{position:relative;height:auto;display:block;padding:var(--s-6) var(--pad)}
  .model__head{flex-direction:column;gap:1.5rem;margin-bottom:var(--s-4)}
  .model__body{display:block}
  .model__num,.model__bar,.model__media{display:none}
  .model__copy{min-height:0;display:grid;gap:0;border-top:1px solid var(--line-dark)}
  .model__panel{position:relative;opacity:1;transform:none;pointer-events:auto;padding:2rem 0;border-bottom:1px solid var(--line-dark);gap:1rem}
  .model__panel::before{content:attr(data-n);font-size:var(--t-micro);font-weight:500;letter-spacing:.16em;color:rgba(248,247,243,.5)}
  .model__panel .m-img{display:block;aspect-ratio:16/10;overflow:hidden;margin:.5rem 0}
  .model__panel .m-img img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4)}
  .svc{display:block}
  .svc__figure{display:none}
  .svc__panel-inner{grid-template-columns:1fr;gap:1.25rem}
  .svc__panel-inner p,.svc__panel-inner ul{grid-column:1}
  .svc__panel-media{display:block;aspect-ratio:16/10;overflow:hidden}
  .svc__panel-media img{width:100%;height:100%;object-fit:cover;filter:grayscale(.4)}
  .svc__btn{grid-template-columns:2.5rem 1fr auto}
  .stats{grid-template-columns:repeat(2,minmax(0,1fr))}
  .stat:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  .stat:nth-child(2n){padding-left:clamp(1rem,2vw,2rem)!important;border-left:1px solid var(--line)!important}
  .aud{background:none}
  .aud__wrap{grid-template-columns:1fr;padding-inline:0}
  .aud__col{padding-inline:var(--pad)!important}
  .aud__col--owners{background:var(--paper-2)}
  .aud__col--res{background:var(--ink)}
  .lead-team__portrait{grid-column:1/-1;position:relative;top:0;aspect-ratio:4/3;margin-bottom:var(--s-4);max-height:60vh}
  .lead-team__side{grid-column:1/-1}
  .contact__info{grid-column:1/-1}
  .form{grid-column:1/-1}
  .story__title,.story__text{grid-column:1/-1}
  .principles{grid-template-columns:1fr}
  .principle{padding:1.75rem 0 2.25rem!important;border-left:0!important}
  .steps{grid-template-columns:1fr 1fr}
  .step{padding:1.25rem 1rem 2rem 0!important;border-left:0!important;border-bottom:1px solid var(--line)}
  .step:nth-child(2n){padding-left:1rem!important;border-left:1px solid var(--line)!important}
  .pgrid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .pgrid .pcard:nth-child(6n+1){grid-column:1/-1}
  .plist__head,.plist__row{grid-template-columns:2rem minmax(0,1fr) auto 1.5rem}
  .plist__head>:nth-child(3),.plist__head>:nth-child(4),.plist__row>:nth-child(3),.plist__row>:nth-child(4){display:none}
  .plist__peek{display:none}
  .markets{grid-template-columns:1fr 1fr}
  .market:not(:nth-child(3n+1)){padding-left:0;border-left:0}
  .market:nth-child(2n){padding-left:1.25rem;border-left:1px solid var(--line-dark)}
  .pdlg__grid{grid-template-columns:1fr}
  .pdlg__media{min-height:0;aspect-ratio:16/10}
  .tdir{display:block}
  .tdir__stage{display:none}
  .tperson{grid-template-columns:3.5rem 1fr}
  .tperson__thumb{display:block}
  .tperson h3{grid-column:2;font-size:1.5rem}
  .tperson p{grid-column:2;text-align:left;margin-top:-.6rem}
  .depts{grid-template-columns:1fr 1fr}
  .dept:not(:nth-child(4n+1)){padding-left:0;border-left:0}
  .dept:nth-child(2n){padding-left:1.25rem;border-left:1px solid var(--line)}
  .page-hero__row .lead,.page-hero__facts{grid-column:1/-1}
  .page-hero__facts{justify-content:flex-start;margin-top:2rem}
  .page-hero__facts div{text-align:left}
  .footer__intro{grid-column:1/-1}
  .footer__col{grid-column:span 6}
  .career-intro,.career-form{grid-column:1/-1}
  .career-intro{position:static}
}
@media (max-width:600px){
  :root{--gap:.75rem}
  .section{padding-block:var(--s-6)}
  .hero,.page-hero{justify-content:flex-start}
  .page-hero{padding-top:0}
  .hero__meta,.page-hero__top{position:relative;top:auto;left:auto;right:auto;padding:1.5rem var(--pad) 0}
  .hero__body,.page-hero__inner{padding-top:clamp(2.25rem,9vw,3rem)}
  .hero__media::after{background:linear-gradient(180deg,rgba(20,20,20,.72),rgba(20,20,20,.38) 42%,rgba(20,20,20,.82) 100%)}
  .page-hero__media::after{background:linear-gradient(180deg,rgba(20,20,20,.68),rgba(20,20,20,.34) 42%,rgba(20,20,20,.84) 100%)}
  body[data-page="company"] .page-hero__media::after{background:linear-gradient(180deg,rgba(12,12,12,.7),rgba(12,12,12,.72) 55%,rgba(12,12,12,.87) 100%)}
  .hero__meta .micro:last-child,.page-hero__top .micro:last-child{display:none}
  .hero__foot,.page-hero__foot{flex-direction:column;align-items:flex-start;gap:.8rem;padding-bottom:calc(var(--pad) + 2rem)}
  .story__media .media:first-child{grid-column:1/-1}
  .story__media .media:last-child{display:none}
  .hero__facts{gap:1rem;flex-wrap:wrap}
  .hero__cta{flex-direction:column;align-items:flex-start;gap:1.25rem}
  .who__lockup{grid-template-columns:1fr}
  .lockup-cell--a,.lockup-cell--b,.lockup-cell--link{grid-column:1/-1;align-items:flex-start;text-align:left;padding:1.2rem 0}
  .lockup-cell--link{padding:0}
  .lockup-cell--link .lockup-line{width:1px;height:2.5rem;margin-left:.25rem}
  .lockup-cell--link .lockup-line::after{right:auto;top:auto;bottom:-1px;left:-3px;transform:rotate(135deg)}
  .lockup-cell--link .lockup-line i{display:none}
  .who__media{grid-column:1/-1}
  .who__media-b{display:none}
  .chain__note{flex-direction:column}
  .track{grid-auto-columns:82vw}
  .pf__bar .chips,.pp__toolbar .chips{flex-wrap:nowrap;overflow-x:auto;scrollbar-width:none;margin-inline:calc(var(--pad) * -1);padding-inline:var(--pad);max-width:none;width:calc(100% + 2 * var(--pad))}
  .pf__bar .chips::-webkit-scrollbar,.pp__toolbar .chips::-webkit-scrollbar{display:none}
  .pf__foot>.micro{display:none}
  .pf__foot{justify-content:flex-end}
  .pf__controls .round-btn{display:none}
  .ops__panel{display:flex}
  .ops__stats strong{font-size:1.9rem}
  .stats{grid-template-columns:1fr}
  .stat{padding-left:0!important;border-left:0!important}
  .stats__note{flex-direction:column}
  .lt-row{grid-template-columns:2rem 1fr}
  .lt-row p{grid-column:2;text-align:left}
  .tier{grid-template-columns:2.25rem 1fr;gap:.9rem}
  .tier__node{width:2.25rem;height:2.25rem}
  .tier:not(:last-child)::before{left:1.125rem;top:2.25rem}
  .tier__card{grid-template-columns:1fr}
  .tier__tag{grid-row:1}
  .form{grid-template-columns:1fr}
  .form__foot{flex-direction:column;align-items:flex-start}
  .footer__col{grid-column:1/-1}
  .footer__bottom{flex-direction:column}
  .pgrid{grid-template-columns:1fr}
  .markets{grid-template-columns:1fr}
  .market{padding-left:0!important;border-left:0!important}
  .steps{grid-template-columns:1fr}
  .step{padding-left:0!important;border-left:0!important}
  .depts{grid-template-columns:1fr 1fr}
  .next{grid-template-columns:1fr}
  .pp__summary{display:none}
  .pdlg dl div{grid-template-columns:5.5rem 1fr}
  .careers-header-end{gap:.55rem}
  .lang-switch button{min-width:2rem;padding:.38rem .45rem}
  .career-form{grid-template-columns:1fr;padding:1.25rem}
  .career-field{grid-column:1/-1}
  .career-form__foot{align-items:flex-start;flex-direction:column}
}
@media (max-width:380px){
  .brand__word small{display:none}
  .display{font-size:2.85rem}
}


/* ==========================================================================
   Refinements — Framer-reference layer (Estal, Haven, Optik, Constructiv, Aurvix):
   soft 6px image radius, frosted stat chips, market ticker, FAQ, image CTA panel
   ========================================================================== */
:root{--radius:6px}
.media,.pcard__media,.model__media,.svc__figure,.aud__media,.lead-team__portrait,.tdir__stage,.tier__card,.story__media .media,.svc__panel-media,.model__panel .m-img,.cta-panel,.pdlg__media,.plist__peek{border-radius:var(--radius);overflow:hidden}
.pdlg{border-radius:var(--radius)}
.ops__list img,.tperson__thumb{border-radius:3px}

.pill--sm{min-height:2.35rem;padding:.55rem 1.05rem}
.pill--light{border-color:rgba(248,247,243,.6);color:var(--paper)}
.pill--light::before{background:var(--paper)}
.pill--light:hover,.pill--light:focus-visible{color:var(--ink);border-color:var(--paper)}
.header-cta{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.header-cta::before{background:var(--ink-2)}
.header-cta:hover,.header-cta:focus-visible{color:var(--paper);border-color:var(--ink-2)}
.site-header.is-on-dark .header-cta{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.site-header.is-on-dark .header-cta::before{background:var(--stone)}
.site-header.is-on-dark .header-cta:hover{color:var(--ink)}
@media (max-width:1439px){.header-end .micro{display:none}}
@media (max-width:1100px){.header-cta{display:none}}

/* hero — frosted stat chips */
.hero__row{grid-template-rows:auto auto}
.hero__copy{grid-row:1}
.hero__cta{grid-column:1/span 6;grid-row:2;justify-self:start;margin-top:2rem}
.hero__stats{grid-column:8/-1;grid-row:1/span 2;align-self:end;justify-self:end;display:flex;gap:.6rem}
.glass{min-width:7.5rem;padding:1rem 1.1rem .9rem;border-radius:var(--radius);background:rgba(248,247,243,.1);border:1px solid rgba(248,247,243,.22);backdrop-filter:blur(14px) saturate(1.1);-webkit-backdrop-filter:blur(14px) saturate(1.1);display:grid;gap:.55rem}
.glass strong{font-size:clamp(1.8rem,1.2rem + 1.4vw,2.6rem);font-weight:300;letter-spacing:-.045em;line-height:1}
.glass .micro{opacity:.75}
.hero__caption{opacity:.7}

/* market ticker */
.ticker{background:var(--ink);color:var(--paper);border-top:1px solid var(--line-dark);overflow:hidden;padding:1.05rem 0;position:relative}
.ticker::before,.ticker::after{content:"";position:absolute;top:0;bottom:0;width:8rem;z-index:1;pointer-events:none}
.ticker::before{left:0;background:linear-gradient(90deg,var(--ink),transparent)}
.ticker::after{right:0;background:linear-gradient(-90deg,var(--ink),transparent)}
.ticker__track{display:flex;width:max-content;animation:ticker 60s linear infinite}
.ticker:hover .ticker__track{animation-play-state:paused}
.ticker__track span{display:inline-flex;align-items:center;gap:2.5rem;padding-right:2.5rem;white-space:nowrap;opacity:.8}
.ticker__track span::after{content:"";width:5px;height:5px;background:var(--paper);opacity:.5;transform:rotate(45deg)}
.ticker__track b{font-weight:500;opacity:.55;margin-left:.6rem}
@keyframes ticker{to{transform:translateX(-50%)}}

/* portfolio card — arrow chip on hover */
.pcard__go{position:absolute;right:.9rem;bottom:.9rem;width:2.75rem;height:2.75rem;border-radius:50%;background:var(--paper);color:var(--ink);display:grid;place-items:center;opacity:0;transform:translateY(.5rem) scale(.9);transition:opacity var(--d-1),transform var(--d-2) var(--ease)}
.pcard__go svg{width:.9rem;height:.9rem;transform:rotate(-45deg)}
.pcard:hover .pcard__go,.pcard:focus-visible .pcard__go{opacity:1;transform:none}

/* FAQ */
.faq__grid{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));column-gap:var(--gap);row-gap:var(--s-4)}
.faq__intro{grid-column:1/span 5;display:grid;gap:1.5rem;align-content:start;position:sticky;top:calc(var(--header-h) + 2rem);align-self:start}
.faq__list{grid-column:7/-1;border-top:1px solid var(--line)}
.faq__item{border-bottom:1px solid var(--line)}
.faq__item summary{list-style:none;display:grid;grid-template-columns:3rem 1fr 1rem;gap:1rem;align-items:baseline;padding:1.4rem 0;cursor:pointer;color:var(--ink-2);transition:color var(--d-1)}
.faq__item summary::-webkit-details-marker{display:none}
.faq__item summary .micro{color:var(--mute)}
.faq__item summary:hover,.faq__item[open] summary{color:var(--ink)}
.faq__q{font-size:var(--t-h4);font-weight:400;letter-spacing:-.015em;line-height:1.2}
.faq__item .svc__plus{align-self:center}
.faq__item[open] .svc__plus::after{transform:rotate(0)}
.faq__a{padding:0 0 1.6rem 4rem;max-width:40rem;color:var(--ink-2)}
.faq__item[open] .faq__a{animation:faq .6s var(--ease)}
@keyframes faq{from{opacity:0;transform:translateY(-.4rem)}}
a.inline{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:.2em}
a.inline:hover{text-decoration-thickness:2px}

/* contact — image CTA panel */
.contact__head{display:grid;gap:2rem}
.cta-panel{position:relative;min-height:clamp(22rem,42vw,34rem);display:flex;align-items:flex-end;isolation:isolate;margin-bottom:var(--s-2)}
.cta-panel>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2;filter:grayscale(.6) brightness(.62) contrast(1.05)}
.cta-panel::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(20,20,20,.1),rgba(20,20,20,.75))}
.cta-panel__body{padding:clamp(1.5rem,3.5vw,3rem);width:100%}
.cta-panel .display{font-size:clamp(2.8rem,1.4rem + 5.6vw,7.2rem)}
.cta-panel__row{display:flex;justify-content:space-between;align-items:flex-end;gap:2rem;margin-top:2rem;flex-wrap:wrap}
.cta-panel__row .lead{max-width:28rem;color:rgba(248,247,243,.82)}
.js .cta-panel .ln>span{transform:translateY(108%);transition:transform var(--d-4) var(--ease) .3s}
.js .cta-panel.is-in .ln>span{transform:none}
.js .cta-panel.is-in .ln:nth-child(2)>span{transition-delay:.42s}

@media (max-width:900px){
  .hero__stats{grid-column:1/-1;grid-row:auto;justify-self:start;margin-top:1.75rem}
  .hero__cta{grid-row:auto}
  .faq__intro{grid-column:1/-1;position:static}
  .faq__list{grid-column:1/-1}
}
@media (max-width:600px){
  .glass{min-width:0;flex:1;padding:.8rem .8rem .7rem}
  .hero__stats{width:100%}
  .hero__caption{display:none}
  .faq__item summary{grid-template-columns:2rem 1fr 1rem}
  .faq__a{padding-left:3rem}
  .cta-panel__row{flex-direction:column;align-items:flex-start}
}
@media (prefers-reduced-motion:reduce){.ticker__track{animation:none}.js .cta-panel .ln>span{transform:none!important}}

/* ---------- Reduced motion ---------- */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;transition-delay:0ms!important;scroll-behavior:auto!important}
  .js [data-reveal],.js [data-reveal] img,.js .hero [data-hero],.js .page-hero [data-hero],.js .ln>span{opacity:1!important;transform:none!important;clip-path:none!important}
  .hero__media img,.page-hero__media img{transform:none!important;animation:none!important}
  .intro{display:none}
}
