/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* vietnamese */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Geist';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/geist-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* cyrillic-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'JetBrains Mono';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/jetbrains-mono-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../fonts/outfit-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 300;
  font-display: swap;
  src: url("../fonts/outfit-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/outfit-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/outfit-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/outfit-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/outfit-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/outfit-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/outfit-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}
/* latin-ext */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/outfit-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Outfit';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/outfit-latin.woff2") format('woff2');
  unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
}

  /* ==========================================================
     HYPERSPACE — dials: VARIANCE 8 / MOTION 6 / DENSITY 4
     One accent (deep rose), warm charcoal ramp, no pure black.
     Views: /  /about  /contact  (hash-routed)
     ========================================================== */
  :root{
    --ink:#131017; --ink-2:#1a161f; --ink-3:#221d28; --ink-4:#2b2532;
    --hair:rgba(237,233,236,.10); --hair-2:rgba(237,233,236,.055);
    --bone:#ede9ec; --dim:#a49ba6; --dim-2:#756d78;
    --rose:#ee1665; --rose-2:#ff5c8d;
    /* motion tokens — every user-initiated transition lands under 300ms */
    --t-micro:120ms;                       /* colour / opacity on small elements */
    --t:180ms;                             /* standard interactive response      */
    --t-lg:280ms;                          /* larger surfaces, panels, media     */
    --ease-out:cubic-bezier(.19,.9,.28,1); /* entrances: arrive fast, settle     */
    --ease-in:cubic-bezier(.7,0,.84,.28);  /* exits: build momentum, leave       */
    --spring:linear(0,.353 5.4%,.784 12%,1.038 18%,1.107 23%,1.099 27%,1.049 34%,.993 43%,.982 51%,.996 66%,1.003 82%,1);
    --e:cubic-bezier(.19,.9,.28,1);        /* alias, kept for existing rules     */
    --pad:clamp(20px,4.4vw,68px);
    --nav:76px;
    --sec:clamp(96px,13vh,176px);
  }
  *{box-sizing:border-box}
  html,body{margin:0}
  html{background:var(--ink)}
  html{scroll-behavior:smooth;scroll-padding-top:var(--nav)}
  body{background:transparent;color:var(--bone);font-family:"Geist","Hanken Grotesk",system-ui,sans-serif;font-size:16px;-webkit-font-smoothing:antialiased;overflow-x:hidden}
  /* first paint: the page resolves rather than snapping in */
  body:not(.ready){opacity:0}
  body.ready{animation:pageIn 280ms var(--ease-out) backwards} /* not "both": a held opacity animation on <body> can break the header's backdrop blur */
  @keyframes pageIn{from{opacity:0}to{opacity:1}}
  body:not(.ready) .head-shift{transform:translateY(-100%)}
  body.ready .head-shift{transition:transform 280ms var(--ease-out) 60ms}
  a{color:inherit;text-decoration:none}
  button{font:inherit;color:inherit;background:none;border:0;cursor:pointer}
  :focus-visible{outline:2px solid var(--rose-2);outline-offset:3px}
  img{display:block}
  .mono{font-family:"JetBrains Mono",ui-monospace,monospace;font-variant-numeric:tabular-nums}
  ::-webkit-scrollbar{width:9px;height:9px}
  ::-webkit-scrollbar-thumb{background:var(--ink-4)}
  ::-webkit-scrollbar-track{background:transparent}

  .grain{position:fixed;inset:0;z-index:95;pointer-events:none;opacity:.06;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.85' numOctaves='3'/%3E%3C/filter%3E%3Crect width='140' height='140' filter='url(%23n)'/%3E%3C/svg%3E");}
  .shell{max-width:1400px;margin:0 auto}
  /* ---- icons: only where they help you scan ---- */
  a[href^="mailto:"]::before{content:"";display:inline-block;flex:none;width:14px;height:14px;margin-right:9px;vertical-align:-.16em;background:currentColor;opacity:.72;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'2'%20y%3D'3.5'%20width%3D'12'%20height%3D'9'%2F%3E%3Cpath%20d%3D'm2.5%204.5%205.5%204.2%205.5-4.2'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Crect%20x%3D'2'%20y%3D'3.5'%20width%3D'12'%20height%3D'9'%2F%3E%3Cpath%20d%3D'm2.5%204.5%205.5%204.2%205.5-4.2'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
  .office h4::before{content:"";display:inline-block;flex:none;width:15px;height:15px;margin-right:8px;vertical-align:-.16em;background:currentColor;opacity:.72;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M8%2014.2s4.6-4.1%204.6-7.6A4.6%204.6%200%200%200%203.4%206.6c0%203.5%204.6%207.6%204.6%207.6z'%2F%3E%3Ccircle%20cx%3D'8'%20cy%3D'6.6'%20r%3D'1.7'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M8%2014.2s4.6-4.1%204.6-7.6A4.6%204.6%200%200%200%203.4%206.6c0%203.5%204.6%207.6%204.6%207.6z'%2F%3E%3Ccircle%20cx%3D'8'%20cy%3D'6.6'%20r%3D'1.7'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
  .office h4{display:flex;align-items:center}
  .office h4::before{color:var(--rose-2);opacity:.9}
  .desk-cta::before,[data-callback].btn::before{content:"";display:inline-block;flex:none;width:14px;height:14px;margin-right:9px;vertical-align:-.16em;background:currentColor;opacity:.72;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M5.6%202.5H3.4a.9.9%200%200%200-.9%201c.5%205.3%204.7%209.5%2010%2010a.9.9%200%200%200%201-.9v-2.2l-2.6-1.1-1.3%201.3A8%208%200%200%201%205.2%206.2l1.3-1.3z'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M5.6%202.5H3.4a.9.9%200%200%200-.9%201c.5%205.3%204.7%209.5%2010%2010a.9.9%200%200%200%201-.9v-2.2l-2.6-1.1-1.3%201.3A8%208%200%200%201%205.2%206.2l1.3-1.3z'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
  .bk-sum div:nth-child(1) dt::before{content:"";display:inline-block;flex:none;width:13px;height:13px;margin-right:8px;vertical-align:-.16em;background:currentColor;opacity:.72;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M8%202.5%2014%205.6%208%208.7%202%205.6z'%2F%3E%3Cpath%20d%3D'm2%208.4%206%203.1%206-3.1'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M8%202.5%2014%205.6%208%208.7%202%205.6z'%2F%3E%3Cpath%20d%3D'm2%208.4%206%203.1%206-3.1'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
  .bk-sum div:nth-child(2) dt::before{content:"";display:inline-block;flex:none;width:13px;height:13px;margin-right:8px;vertical-align:-.16em;background:currentColor;opacity:.72;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M8%2014.2s4.6-4.1%204.6-7.6A4.6%204.6%200%200%200%203.4%206.6c0%203.5%204.6%207.6%204.6%207.6z'%2F%3E%3Ccircle%20cx%3D'8'%20cy%3D'6.6'%20r%3D'1.7'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Cpath%20d%3D'M8%2014.2s4.6-4.1%204.6-7.6A4.6%204.6%200%200%200%203.4%206.6c0%203.5%204.6%207.6%204.6%207.6z'%2F%3E%3Ccircle%20cx%3D'8'%20cy%3D'6.6'%20r%3D'1.7'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
  .bk-sum div:nth-child(3) dt::before{content:"";display:inline-block;flex:none;width:13px;height:13px;margin-right:8px;vertical-align:-.16em;background:currentColor;opacity:.72;-webkit-mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'8'%20cy%3D'8'%20r%3D'5.8'%2F%3E%3Cpath%20d%3D'M8%204.9V8l2.1%201.4'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat;mask:url("data:image/svg+xml,%3Csvg%20xmlns%3D'http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg'%20viewBox%3D'0%200%2016%2016'%20fill%3D'none'%20stroke%3D'%23000'%20stroke-width%3D'1.4'%20stroke-linecap%3D'round'%20stroke-linejoin%3D'round'%3E%3Ccircle%20cx%3D'8'%20cy%3D'8'%20r%3D'5.8'%2F%3E%3Cpath%20d%3D'M8%204.9V8l2.1%201.4'%2F%3E%3C%2Fsvg%3E") center/contain no-repeat}
  .bk-sum dt{display:flex;align-items:center}

  /* ---- viewport foot: content softens as it leaves the screen ---- */
  .vblur{position:fixed;left:0;right:0;bottom:0;height:clamp(64px,11vh,120px);z-index:90;pointer-events:none;
    background:linear-gradient(180deg,rgba(19,16,23,0),rgba(19,16,23,.22));transition:opacity 420ms var(--e)}
  .vblur i{position:absolute;inset:0}
  .vblur i:nth-child(1){-webkit-backdrop-filter:blur(1px);backdrop-filter:blur(1px);-webkit-mask-image:linear-gradient(180deg,transparent 0%,#000 25%,#000 50%,transparent 75%);mask-image:linear-gradient(180deg,transparent 0%,#000 25%,#000 50%,transparent 75%)}
  .vblur i:nth-child(2){-webkit-backdrop-filter:blur(2px);backdrop-filter:blur(2px);-webkit-mask-image:linear-gradient(180deg,transparent 12%,#000 37%,#000 62%,transparent 87%);mask-image:linear-gradient(180deg,transparent 12%,#000 37%,#000 62%,transparent 87%)}
  .vblur i:nth-child(3){-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);-webkit-mask-image:linear-gradient(180deg,transparent 25%,#000 50%,#000 75%,transparent 100%);mask-image:linear-gradient(180deg,transparent 25%,#000 50%,#000 75%,transparent 100%)}
  .vblur i:nth-child(4){-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);-webkit-mask-image:linear-gradient(180deg,transparent 50%,#000 75%,#000 100%,#000 100%);mask-image:linear-gradient(180deg,transparent 50%,#000 75%,#000 100%,#000 100%)}
  body.dlg .vblur,body.nav-open .vblur,body.at-end .vblur{opacity:0}
  .bk-on .vblur{opacity:0;visibility:hidden;transition:none}
  body.in-hero .vblur{opacity:0;visibility:hidden}
  /* booking open: the page behind is frozen */
  html.bk-on,html.bk-on body{overflow:hidden;overscroll-behavior:none}
  html.bk-on{scrollbar-gutter:stable}
  .bk-body,.bk-pane{overscroll-behavior:contain}
  /* ---- page atmosphere: the hero's light carries on, faintly, behind every section ---- */
  .atmo{position:fixed;inset:0;z-index:-1;pointer-events:none;overflow:hidden;background:var(--ink)}
  .atmo i{position:absolute;border-radius:50%;filter:blur(90px);will-change:transform;transform:translate3d(0,calc(var(--sp,0) * var(--d,0) * -1px),0)}
  .atmo i:nth-child(1){--d:.06;width:62vw;height:62vw;right:-18vw;top:6vh;background:radial-gradient(closest-side,rgba(238,22,101,.11),rgba(238,22,101,0))}
  .atmo i:nth-child(2){--d:.035;width:54vw;height:54vw;left:-20vw;top:48vh;background:radial-gradient(closest-side,rgba(120,40,170,.10),rgba(120,40,170,0))}
  .atmo i:nth-child(3){--d:.09;width:36vw;height:36vw;left:38vw;top:96vh;background:radial-gradient(closest-side,rgba(64,190,230,.045),rgba(64,190,230,0))}
  .atmo b{position:absolute;inset:-10vh 0;opacity:.5;
    background-image:radial-gradient(rgba(237,233,236,.09) .8px,transparent 1.3px);background-size:26px 26px;
    -webkit-mask-image:radial-gradient(70% 55% at 80% 30%,#000,transparent 75%),radial-gradient(55% 45% at 12% 80%,rgba(0,0,0,.7),transparent 75%);
            mask-image:radial-gradient(70% 55% at 80% 30%,#000,transparent 75%),radial-gradient(55% 45% at 12% 80%,rgba(0,0,0,.7),transparent 75%);
    transform:translate3d(0,calc(var(--sp,0) * -.02px),0)}
  .atmo::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(19,16,23,0) 60%,rgba(10,6,14,.5) 100%)}
  @media (prefers-reduced-motion:reduce){ .atmo i,.atmo b{transform:none} }
  /* no glow blobs: the page is lit by structure — a faint dot field and a single low horizon line of warmth */
  .atmo i{display:none}
  .atmo{background:linear-gradient(180deg,#131017 0%,#141018 55%,#120f16 100%)}
  .atmo b{opacity:.42}
  :root{--logo:url("../img/logo.webp")}
  :root{--neb:url("../img/hero-artwork.webp")}

  /* ---------------- header ---------------- */
  .head{
    position:sticky;top:0;z-index:40;
    /* the box is a fixed var(--nav) tall, ALWAYS. the scrolled state is painted
       entirely by the two pseudo-elements below, which are out of flow, so
       nothing downstream can be pushed around. no layout shift, by construction. */
    height:var(--nav);padding:0;
    /* NO transform here: a transformed ancestor becomes the containing block for
       position:fixed children, which reparents and clips the mega menu. The
       hide/show travel lives on .head-shift instead. */
    transition:none;
  }
  .head-shift{
    position:relative;height:100%;
    /* NO transform and NO will-change at rest: either would make this element a
       backdrop root, leaving every panel inside it (mega menu, language, search)
       with nothing to blur. The hide state below is the only time it transforms,
       and a panel can never be open then. */
    transition:transform var(--t-lg) var(--ease-out);
  }
  /* scrolling down gets out of the way; scrolling up brings it straight back */
  body.nav-away .head-shift{transform:translate3d(0,-100%,0);transition:transform var(--t) var(--ease-in)}
  /* a panel is open: the bar must not travel underneath it */
  body:has([data-drop].open) .head-shift,
  body.drop-open .head-shift{transform:none}
  /* THE GLASS LIVES HERE, not inside .head-shift.
     backdrop-filter samples what is painted behind the element up to its
     "backdrop root" — and a transformed ancestor establishes a new one. Because
     .head-shift is translated (for the hide-on-scroll), anything blurring inside
     it had an empty backdrop and rendered as flat tint. This panel is a direct
     child of <body>, so its backdrop is the real page. It carries the same
     translate, so it still travels with the bar. */
  .head-glass{
    position:fixed;top:0;left:0;right:0;height:var(--nav);z-index:38;pointer-events:none;
    background:rgba(22,17,28,.38);
    backdrop-filter:blur(18px) saturate(160%);
    -webkit-backdrop-filter:blur(18px) saturate(160%);
    border-bottom:1px solid rgba(237,233,236,.07);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10),inset 0 -1px 0 rgba(255,255,255,.03);
    transform:translate3d(0,0,0);
    transition:background var(--t-lg) var(--ease-out),backdrop-filter var(--t-lg) var(--ease-out),
               border-color var(--t-lg) var(--ease-out),box-shadow var(--t-lg) var(--ease-out),
               transform var(--t-lg) var(--ease-out);
    will-change:transform;
  }
  .head-glass::after{ /* specular sheen — the edge highlight real glass has */
    content:"";position:absolute;inset:0;pointer-events:none;
    background:linear-gradient(100deg,rgba(255,255,255,.07) 0%,rgba(255,255,255,0) 22%,
               rgba(255,255,255,0) 72%,rgba(238,22,101,.09) 100%);
    opacity:0;transition:opacity var(--t-lg) var(--ease-out);
  }
  /* scrolled: same full-width bar, the glass just gains body. no detaching. */
  body.stuck .head-glass{
    background:linear-gradient(180deg,rgba(20,15,26,.80),rgba(20,15,26,.70));
    backdrop-filter:blur(32px) saturate(190%) brightness(.82);
    -webkit-backdrop-filter:blur(32px) saturate(190%) brightness(.82);
    border-bottom:1px solid rgba(237,233,236,.12);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),inset 0 -1px 0 rgba(255,255,255,.03),
               0 10px 30px -20px rgba(5,1,8,.8);
  }
  body.stuck .head-glass::after{opacity:1}
  /* it hides, returns and pins in step with the bar */
  body.nav-away .head-glass{transform:translate3d(0,-100%,0);transition:transform var(--t) var(--ease-in)}
  body:has([data-drop].open) .head-glass,
  body.drop-open .head-glass{transform:none}
  body:not(.ready) .head-glass{transform:translate3d(0,-100%,0)}
  @supports not (min-height:100dvh){ .hero{min-height:100vh} }
  @supports not (backdrop-filter:blur(1px)){
    .head-glass{background:rgba(20,15,26,.94)}
    .mega,.lang-menu,.search-panel,.dialog{background:rgba(20,15,26,.985)}
  }
  #top-sentinel{position:absolute;top:0;left:0;width:1px;height:1px;pointer-events:none}

  .head-in{position:relative;z-index:1;max-width:1400px;margin:0 auto;height:100%;display:flex;align-items:center;gap:40px;padding:0 var(--pad)}

  .nav-fold{display:flex;align-items:center;gap:30px}

  .wordmark{
    display:block;width:172px;height:29px;flex:none;
    background-image:var(--logo);background-size:contain;background-repeat:no-repeat;background-position:left center;
    opacity:.92;transition:opacity 280ms var(--e),transform 280ms var(--spring);
    text-indent:-9999px;overflow:hidden;white-space:nowrap;      /* label kept for screen readers */
  }
  .wordmark:hover{opacity:1}
  .wordmark:active{transform:scale(.98)}
  .f-brand .wordmark{width:158px;height:27px;opacity:.8}
  .f-brand .wordmark:hover{opacity:1}
  @media (max-width:1140px){ .wordmark{width:150px;height:25px} }
  nav{margin-left:auto;display:flex;align-items:center;gap:40px}
  .top{position:relative}
  .top-link{display:inline-flex;align-items:center;gap:7px;padding:12px 0;font-size:14.5px;font-weight:500;color:var(--dim);transition:color 280ms var(--e)}
  .top:hover .top-link,.top-link[aria-expanded="true"],.top-link[aria-current="page"]{color:var(--bone)}
  .tick{position:absolute;left:0;right:0;bottom:8px;height:1px;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform 280ms var(--e)}
  .top:hover .tick,.top-link[aria-expanded="true"] + .tick,.top-link[aria-current="page"] + .tick{transform:scaleX(1)}
  .chev{width:9px;height:9px;transition:transform 280ms var(--e)}
  .top-link[aria-expanded="true"] .chev{transform:rotate(180deg)}

  /* ---------------- mega menu ---------------- */
  .mega{position:fixed;left:0;right:0;top:var(--nav);z-index:39;border-bottom:1px solid var(--hair);background:rgba(20,16,25,.975);backdrop-filter:blur(34px) saturate(190%);-webkit-backdrop-filter:blur(34px) saturate(190%);box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 50px 90px -50px rgba(5,1,8,.96);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--t) var(--ease-in),transform var(--t) var(--ease-in),visibility var(--t)}
  .top.open .mega{opacity:1;visibility:visible;transform:none;transition:opacity var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out),visibility var(--t-lg)}
  /* the header's own glass stops the menu's blur from reaching the page, so the menu is near-opaque
     and the page underneath is dimmed by a scrim hung off the menu's bottom edge */
  .mega::after{content:"";position:absolute;left:0;right:0;top:100%;height:100vh;background:rgba(10,7,13,.62);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);pointer-events:none}
  .mega-in{max-width:1400px;margin:0 auto;padding:34px var(--pad) 30px;display:grid;grid-template-columns:1fr 1fr .78fr 1fr 1.12fr;gap:36px;align-items:start}
  .m-col{opacity:0;transform:translateY(10px);min-width:0}
  .top.open .m-col{animation:rise 280ms var(--e) forwards;animation-delay:calc(var(--i) * 40ms)}
  @keyframes rise{to{opacity:1;transform:none}}
  .m-col h3{margin:0 0 4px;display:flex;justify-content:space-between;align-items:baseline;gap:10px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-2);padding-bottom:10px;border-bottom:1px solid var(--hair)}
  .m-col h3 span{color:var(--rose)}
  .m-list{list-style:none;margin:0;padding:0;max-height:min(52vh,430px);overflow:auto}
  .m-list a{display:block;padding:8px 0;font-size:13.5px;color:var(--dim);border-bottom:1px solid var(--hair-2);transition:color 280ms var(--e),padding-left 280ms var(--e)}
  .m-list a:hover,.m-list a[data-live="1"]{color:var(--bone);padding-left:9px}
  .m-list a[data-live="1"]{box-shadow:inset 2px 0 0 var(--rose)}
  .m-prev{border-left:1px solid var(--hair);padding-left:28px}
  .m-prev p{margin:0 0 14px;font-size:13.5px;line-height:1.55;color:var(--dim);min-height:3em}
  .m-prev .frame{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ink-3)}
  .m-prev img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;filter:grayscale(.65) contrast(1.05) brightness(.82);opacity:0;transform:scale(1.03);transition:opacity 280ms var(--e),transform 280ms var(--e)}
  .m-prev img.on{opacity:.95;transform:scale(1)}
  .m-prev .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg,rgba(238,22,101,.22),rgba(19,16,23,.28) 60%,rgba(19,16,23,.6))}
  .m-prev .who{margin-top:14px;display:flex;justify-content:space-between;align-items:baseline;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2)}
  .m-prev .who b{color:var(--rose-2);font-weight:500}

  /* ---------------- utilities ---------------- */
  .utils{display:flex;align-items:center;gap:6px;margin-left:12px}
  .ico{width:36px;height:36px;display:grid;place-items:center;color:var(--dim);transition:color 280ms var(--e),transform 280ms var(--e)}
  .ico:hover{color:var(--bone)}
  .ico:active{transform:translateY(1px)}
  .search{position:relative}
  .search-panel{position:absolute;right:0;top:calc(100% + 14px);width:360px;background:rgba(22,17,27,.84);backdrop-filter:blur(30px) saturate(190%);-webkit-backdrop-filter:blur(30px) saturate(190%);border:1px solid rgba(237,233,236,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 30px 60px -30px rgba(5,1,8,.95);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--t) var(--ease-in),transform var(--t) var(--ease-in),visibility var(--t)}
  .search.open .search-panel{opacity:1;visibility:visible;transform:none;transition:opacity var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out),visibility var(--t-lg)}
  .search-panel input{width:100%;padding:16px 18px;border:0;border-bottom:1px solid var(--hair);background:none;color:var(--bone);font:inherit;font-size:14.5px}
  .search-panel input::placeholder{color:var(--dim-2)}
  .search-panel input:focus{outline:none;border-bottom-color:var(--rose)}
  .results{max-height:300px;overflow:auto;padding:6px}
  .results a{display:block;padding:10px 12px;font-size:13.5px;color:var(--dim);transition:background 280ms var(--e),color 280ms var(--e)}
  .results a small{display:block;font-size:11px;color:var(--dim-2);margin-top:3px;letter-spacing:.08em;text-transform:uppercase}
  .results a:hover{background:var(--ink-3);color:var(--bone)}
  .sk{padding:14px}
  .sk i{display:block;height:11px;margin:9px 0;background:linear-gradient(90deg,var(--ink-3) 0%,#2f2836 50%,var(--ink-3) 100%);background-size:220% 100%;animation:shimmer 1.25s linear infinite}
  .sk i:nth-child(2){width:70%}.sk i:nth-child(3){width:52%}
  @keyframes shimmer{to{background-position:-120% 0}}
  .void{padding:24px 20px}
  .void svg{color:var(--dim-2);margin-bottom:12px}
  .void p{margin:0 0 4px;font-size:14px}
  .void small{display:block;color:var(--dim-2);font-size:12.5px;margin-bottom:14px}
  .void button{font-size:12.5px;color:var(--rose-2);border-bottom:1px solid currentColor;padding-bottom:1px}
  .lang{position:relative}
  .lang-btn{display:flex;align-items:center;gap:8px;padding:10px 12px;font-size:14px;color:var(--dim);transition:color 280ms var(--e)}
  .lang-btn:hover,.lang-btn[aria-expanded="true"]{color:var(--bone)}
  .lang-menu{position:absolute;right:0;top:calc(100% + 14px);min-width:168px;padding:6px;background:rgba(22,17,27,.84);backdrop-filter:blur(30px) saturate(190%);-webkit-backdrop-filter:blur(30px) saturate(190%);border:1px solid rgba(237,233,236,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 30px 60px -30px rgba(5,1,8,.95);opacity:0;visibility:hidden;transform:translateY(-8px);transition:opacity var(--t) var(--ease-in),transform var(--t) var(--ease-in),visibility var(--t)}
  .lang.open .lang-menu{opacity:1;visibility:visible;transform:none;transition:opacity var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out),visibility var(--t-lg)}
  .lang-menu button,.lang-menu a{display:flex;width:100%;justify-content:space-between;gap:18px;padding:10px 12px;font-size:13.5px;color:var(--dim);transition:background 280ms var(--e),color 280ms var(--e)}
  .lang-menu button:hover,.lang-menu a:hover{background:var(--ink-3);color:var(--bone)}
  .lang-menu button[aria-current="true"],.lang-menu a[aria-current="true"]{color:var(--bone)}
  .lang-menu button[aria-current="true"] i,.lang-menu a[aria-current="true"] i{color:var(--rose-2)}
  .lang-menu i{font-style:normal;font-size:11px;color:var(--dim-2)}

  /* ---------------- buttons ---------------- */
  .btn{position:relative;overflow:hidden;display:inline-flex;align-items:center;gap:10px;padding:14px 24px;font-size:14px;font-weight:500;border:1px solid var(--rose);transition:color 280ms var(--e),transform 280ms var(--e),border-color 280ms var(--e);will-change:transform}
  .btn > *{position:relative;z-index:1}
  .btn::before{content:"";position:absolute;inset:0;background:var(--rose);transform:scale(0);transform-origin:var(--org,left);transition:transform 280ms var(--e)}
  .btn:hover::before{transform:scale(1)}
  .btn:active{transform:translateY(1px) scale(.985)}
  .btn.solid{background:var(--rose)}
  #callbackBtn{margin-left:14px;padding:14px 26px}
  .btn.solid::before{background:#c2004b}
  .btn.solid:hover{border-color:#a82a4c}
  .btn.ghost{border-color:var(--hair)}
  .btn.ghost::before{background:var(--ink-3)}
  /* ambient shine: a light sweep crosses the CTA, then waits. Perpetual and
     non-interactive, so it sits outside the user-initiated timing rules. */
  .btn.solid::after{
    content:"";position:absolute;top:0;bottom:0;left:0;width:40%;z-index:0;pointer-events:none;
    background:linear-gradient(100deg,rgba(255,255,255,0),rgba(255,255,255,.30) 50%,rgba(255,255,255,0));
    transform:translateX(-160%) skewX(-14deg);
    animation:shine 4.5s var(--ease-out) infinite;
  }
  .btn.solid:hover::after{opacity:0;animation-play-state:paused}
  @keyframes shine{
    0%{transform:translateX(-160%) skewX(-14deg)}
    26%{transform:translateX(330%) skewX(-14deg)}
    100%{transform:translateX(330%) skewX(-14deg)}
  }
  .btn svg{transition:transform 280ms var(--e)}
  .btn:hover svg{transform:translateX(5px)}
  .plain{font-size:14px;color:var(--dim);border-bottom:1px solid var(--hair);padding-bottom:3px;transition:color 280ms var(--e),border-color 280ms var(--e)}
  .plain:hover{color:var(--bone);border-color:var(--rose)}

  /* ---------------- views ---------------- */
  .view{display:none}
  .view.on{display:block;animation:viewIn 280ms var(--e) both}
  @keyframes viewIn{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:none}}

  /* ---------------- hero: brand artwork, copy hung left ---------------- */
  .hero{
    position:relative;overflow:hidden;
    /* break out of the 1400px shell: edge to edge, whatever the viewport */
    width:100vw;margin-left:calc(50% - 50vw);
    /* rise under the sticky header so the artwork owns the full screen */
    margin-top:calc(-1 * var(--nav));
    min-height:100dvh;
    display:grid;align-content:center;
    background:#0a0210;
  }
  /* the artwork itself fades out, so the page's own light shows through — no seam */
  .hero{background:transparent}
  .neb,.hero::before{
    -webkit-mask-image:linear-gradient(180deg,#000 0%,#000 calc(100% - clamp(220px,34vh,380px)),rgba(0,0,0,.72) calc(100% - clamp(150px,22vh,250px)),rgba(0,0,0,.28) calc(100% - clamp(70px,10vh,120px)),transparent 100%);
            mask-image:linear-gradient(180deg,#000 0%,#000 calc(100% - clamp(220px,34vh,380px)),rgba(0,0,0,.72) calc(100% - clamp(150px,22vh,250px)),rgba(0,0,0,.28) calc(100% - clamp(70px,10vh,120px)),transparent 100%);
  }
  .neb{background-color:#0a0210}
  .neb{
    position:absolute;inset:0;z-index:0;pointer-events:none;
    background-image:var(--neb);
    background-size:cover;background-position:right center;background-repeat:no-repeat;
    min-height:100%;
    transform:translate3d(0,0,0) scale(1.04);
    will-change:transform;
    animation:nebIn 280ms var(--e) both;
  }
  @keyframes nebIn{from{opacity:0;transform:scale(1.09)}to{opacity:1;transform:scale(1.04)}}
  .hero::before{ /* keeps the copy legible without flattening the artwork */
    content:"";position:absolute;inset:0;z-index:1;pointer-events:none;
    background:
      linear-gradient(180deg,rgba(10,2,16,.62) 0%,rgba(10,2,16,0) calc(var(--nav) + 40px)),
      linear-gradient(90deg,#0a0210 0%,rgba(10,2,16,.94) 24%,rgba(10,2,16,.58) 44%,rgba(10,2,16,0) 66%);
  }
  .copy{
    position:relative;z-index:2;
    width:100%;max-width:1400px;margin:0 auto;               /* realign to the site grid */
    padding:calc(var(--nav) + clamp(24px,5vh,64px)) var(--pad) clamp(96px,13vh,150px);
  }
  .copy > *{max-width:min(760px,62vw)}
  .eyebrow{display:flex;align-items:center;gap:14px;margin:0 0 26px;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim-2)}
  .eyebrow s{width:30px;height:1px;background:var(--rose);text-decoration:none}
  .eyebrow em{font-style:normal;color:var(--rose-2)}
  h1{
    font-family:"Outfit",sans-serif;font-weight:500;
    font-size:clamp(33px,4.5vw,60px);line-height:1.1;letter-spacing:-.026em;
    margin:0 0 26px;max-width:15ch;color:#fff;
  }
  h1 u{text-decoration:none;color:rgba(255,255,255,.52)}
  .lede{margin:0 0 40px;font-size:clamp(15px,1.28vw,18px);line-height:1.62;color:#cfc3d2;max-width:52ch}
  .lede strong{color:#fff;font-weight:500}
  .actions{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
  .rise{opacity:0;transform:translateY(14px);animation:rise 280ms var(--e) forwards;animation-delay:calc(var(--i) * 40ms)}

  /* carousel controls, bottom right as in the brand artwork */
  .hero-ctl{position:absolute;right:max(var(--pad),calc(50% - 700px + var(--pad)));bottom:clamp(28px,5vh,52px);z-index:3;display:flex;align-items:center;gap:16px}
  .idx{font-size:11.5px;color:rgba(255,255,255,.45);letter-spacing:.12em}
  .idx b{color:#fff;font-weight:500}
  .arrow{width:44px;height:44px;display:grid;place-items:center;background:var(--rose);color:#fff;transition:background 280ms var(--e),transform 280ms var(--e)}
  .arrow:hover{background:#fff;color:var(--rose)}
  .arrow:active{transform:translateY(1px) scale(.97)}

  /* ---------------- shared section furniture ---------------- */
  .sec{padding:var(--sec) var(--pad);border-bottom:1px solid var(--hair)}
  /* the industries strip is visually heavy — the section after it gets extra air */
  .ind + .sec{padding-top:calc(var(--sec) + clamp(16px,3vh,48px))}
  .sec-head{display:grid;grid-template-columns:1.5fr 1fr;gap:clamp(34px,4vw,64px);align-items:end;margin-bottom:clamp(46px,7vh,88px)}
  .label{display:flex;align-items:center;gap:12px;margin:0 0 18px;font-size:10.5px;letter-spacing:.22em;text-transform:uppercase;color:var(--dim-2)}
  .label s{width:26px;height:1px;background:var(--rose);text-decoration:none}
  h2{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(25px,2.9vw,40px);line-height:1.16;letter-spacing:-.018em;margin:0;max-width:26ch}
  h2 u{text-decoration:none;color:var(--dim-2)}
  .sec-head p{margin:0;font-size:14.5px;line-height:1.65;color:var(--dim);max-width:44ch}
  .rv{opacity:0;transform:translateY(18px);transition:opacity 280ms var(--e),transform 280ms var(--e);transition-delay:calc(var(--i,0) * 40ms)}
  .rv.in{opacity:1;transform:none}

  /* page header (about / contact) */
  .phead{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;align-items:end;padding:clamp(46px,7vh,96px) var(--pad) clamp(40px,6vh,72px);border-bottom:1px solid var(--hair)}
  .phead h1{margin-bottom:18px;max-width:22ch}
  .phead .lede{margin:0}
  .phead .facts{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
  .phead .facts div{border-top:1px solid var(--hair);padding:12px 0}
  .phead .facts dt{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim-2)}
  .phead .facts dd{margin:6px 0 0;font-family:"Outfit",sans-serif;font-size:22px;font-weight:400}

  /* practices index */
  .filter{display:flex;align-items:center;gap:12px;border-bottom:1px solid var(--hair);padding-bottom:10px}
  .filter svg{color:var(--dim-2);flex:none}
  .filter input{flex:1;min-width:0;background:none;border:0;color:var(--bone);font:inherit;font-size:14.5px;padding:6px 0}
  .filter input:focus{outline:none}
  .filter input::placeholder{color:var(--dim-2)}
  .filter .tally{font-size:11.5px;color:var(--dim-2);white-space:nowrap}
  .filter .clear{font-size:11.5px;color:var(--rose-2);display:none}
  .filter.dirty .clear{display:inline}
  .prac{border-top:1px solid var(--hair)}
  .prac:last-of-type{border-bottom:1px solid var(--hair)}
  .prac-btn{width:100%;display:grid;grid-template-columns:auto 1fr auto auto auto;gap:20px;align-items:center;padding:30px 0;text-align:left}
  .prac-btn .code{font-size:11.5px;color:var(--dim-2);transition:color 280ms var(--e)}
  .prac-btn h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(19px,2.1vw,29px);letter-spacing:-.015em;margin:0;color:var(--dim);transition:color 280ms var(--e),transform 280ms var(--e)}
  .prac-btn .n{font-size:11.5px;color:var(--dim-2)}
  .prac-btn .pm{position:relative;width:15px;height:15px;flex:none}
  .prac-btn .pm::before,.prac-btn .pm::after{content:"";position:absolute;background:var(--dim);transition:transform 280ms var(--e),background 280ms var(--e)}
  .prac-btn .pm::before{left:0;top:7px;width:15px;height:1px}
  .prac-btn .pm::after{left:7px;top:0;width:1px;height:15px}
  .prac:hover .prac-btn h3{color:var(--bone);transform:translateX(6px)}
  .prac:hover .prac-btn .code{color:var(--rose-2)}
  .prac.open .prac-btn h3{color:var(--bone)}
  .prac.open .prac-btn .pm::after{transform:scaleY(0)}
  .prac.open .prac-btn .pm::before{background:var(--rose)}
  .prac-body{display:grid;grid-template-rows:0fr;transition:grid-template-rows 280ms var(--e)}
  .prac.open .prac-body{grid-template-rows:1fr}
  .prac-inner{overflow:hidden}
  .prac-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(238px,1fr));gap:0 34px;padding-bottom:26px}
  .svc{border-top:1px solid var(--hair-2);padding:13px 0}
  .svc b{display:block;font-size:14px;font-weight:500;color:var(--bone)}
  .svc small{display:block;font-size:12.5px;line-height:1.5;color:var(--dim-2);margin-top:4px;transition:color 180ms var(--ease-out)}
  .svc:hover small{color:var(--dim)}   /* the only affordance left: these are links */
  .svc[hidden]{display:none}
  /* a collapsed practice that still holds filter matches says so */
  .prac:not(.open) .prac-btn:hover .code{color:var(--rose-2)}
  .prac.hit:not(.open) .prac-btn .n{color:var(--rose-2)}
  .prac.hit:not(.open) .prac-btn h3{color:var(--bone)}

  /* hover preview card — trails the cursor, never intercepts it */
  .row-peek{
    position:fixed;left:0;top:0;z-index:60;width:232px;pointer-events:none;
    background:rgba(26,22,31,.82);
    backdrop-filter:blur(22px) saturate(180%);-webkit-backdrop-filter:blur(22px) saturate(180%);
    border:1px solid rgba(237,233,236,.14);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 26px 50px -26px rgba(5,1,8,.95);
    opacity:0;visibility:hidden;
    transition:opacity var(--t-micro) var(--ease-in),visibility var(--t-micro);
    will-change:transform;
  }
  .row-peek.on{opacity:1;visibility:visible;transition:opacity var(--t) var(--ease-out),visibility var(--t)}
  .row-peek-frame{position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--ink-3)}
  .row-peek-frame::after{content:"";position:absolute;inset:0;background:linear-gradient(200deg,rgba(238,22,101,.20),rgba(19,16,23,.30) 60%,rgba(19,16,23,.72))}
  .row-peek img{width:100%;height:100%;object-fit:cover;filter:grayscale(.6) contrast(1.05) brightness(.84);
    opacity:0;transform:scale(1.05);transition:opacity var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out)}
  .row-peek.ready img{opacity:1;transform:scale(1)}
  .row-peek-cap{padding:11px 13px 12px;border-top:1px solid rgba(237,233,236,.10)}
  .row-peek-cap b{display:block;font-size:13px;font-weight:500;letter-spacing:-.005em}
  .row-peek-cap span{display:block;margin-top:4px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--rose-2)}

  /* Where scroll-driven animations exist, the rail is tied to scroll position
     rather than a one-shot transition, so it draws under your finger. `linear`
     is correct here: the timeline IS the progress, easing it would decouple the
     line from the scroll. Falls back to the .in transition above. */
  /* ---------------- generated pages ---------------- */
  .ext{display:inline-block;width:9px;height:9px;margin-left:7px;opacity:.5;transition:opacity var(--t) var(--ease-out),transform var(--t) var(--ease-out)}
  a:hover .ext,button:hover .ext,.top:hover .ext{opacity:1;transform:translate(2px,-2px)}
  .crumb{display:flex;align-items:center;flex-wrap:wrap;gap:9px;margin:0 0 18px;font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2)}
  .crumb a{transition:color var(--t) var(--ease-out)}
  .crumb a:hover{color:var(--bone)}
  .crumb i{font-style:normal;color:rgba(237,233,236,.24)}
  .crumb [aria-current="page"]{color:var(--rose-2)}

  /* contact page: desks */
  .desks{border-top:1px solid var(--hair)}
  .desk{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr) minmax(0,.44fr);gap:clamp(20px,3vw,48px);
    padding:clamp(22px,3.4vh,34px) 0;border-bottom:1px solid var(--hair);align-items:start;
    transition:background var(--t) var(--ease-out)}
  .desk:hover{background:rgba(238,22,101,.04)}
  .desk-who h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(18px,1.9vw,23px);margin:0 0 8px;letter-spacing:-.012em}
  .desk-sla{font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-2)}
  .desk p{margin:0;font-size:14px;line-height:1.68;color:var(--dim);max-width:52ch}
  .desk-links{display:grid;gap:8px;font-size:13.5px}
  .desk-links a{color:var(--dim);border-bottom:1px solid var(--hair);padding-bottom:3px;justify-self:start;
    transition:color var(--t) var(--ease-out),border-color var(--t) var(--ease-out)}
  .desk-links a:hover{color:var(--bone);border-color:var(--rose)}
  .desk-none{color:var(--dim-2);font-size:13px}
  .desk-cta{justify-self:start;font-size:13px;color:var(--rose-2);border-bottom:1px solid currentColor;padding-bottom:3px;
    transition:color var(--t) var(--ease-out)}
  .desk-cta:hover{color:var(--bone)}
  .office-hours{margin-top:12px!important;font-size:11.5px;color:var(--dim-2)}
  @media (max-width:980px){ .desk{grid-template-columns:1fr;gap:12px} }

  /* case studies */
  .case-row{display:grid;grid-template-columns:minmax(0,.44fr) minmax(0,1fr);gap:clamp(22px,3.4vw,56px);
    padding:clamp(26px,4vh,44px) 0;border-top:1px solid var(--hair);align-items:center}
  .case-row:last-of-type{border-bottom:1px solid var(--hair)}
  .case-row .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ink-3)}
  .case-row img{width:100%;height:100%;object-fit:cover;filter:grayscale(.72) brightness(.62);transform:scale(1.02);
    transition:filter var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out)}
  .case-row:hover img{filter:grayscale(.3) brightness(.78);transform:scale(1.05)}
  .case-row h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(20px,2.3vw,29px);line-height:1.18;
    letter-spacing:-.018em;margin:14px 0 12px;max-width:24ch;transition:color var(--t) var(--ease-out)}
  .case-row p{margin:0 0 18px;font-size:14.5px;line-height:1.68;color:var(--dim);max-width:58ch}
  .case-figs{display:flex;flex-wrap:wrap;gap:12px 34px}
  .case-figs span{display:grid;gap:3px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2)}
  .case-figs b{font-size:15px;color:var(--rose-2);letter-spacing:0;text-transform:none}

  .did{list-style:none;counter-reset:d;margin:0;padding:0}
  .did li{display:grid;grid-template-columns:auto 1fr;gap:16px;padding:16px 0;border-top:1px solid var(--hair-2)}
  .did li::before{counter-increment:d;content:"0" counter(d);font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--rose);padding-top:3px}
  .did b{display:block;font-size:15px;font-weight:500;color:var(--bone);margin-bottom:5px}
  .did span{font-size:14px;line-height:1.65;color:var(--dim)}

  .figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,210px),1fr));gap:0;border-top:1px solid var(--hair)}
  .fig{padding:26px 26px 26px 0;border-bottom:1px solid var(--hair)}
  .fig + .fig{padding-left:26px;border-left:1px solid var(--hair)}
  .fig b{display:block;font-family:"Outfit",sans-serif;font-size:clamp(20px,2.2vw,27px);font-weight:500;color:var(--bone);letter-spacing:-.02em;margin-bottom:8px}
  .fig span{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2)}
  .kept{margin-top:clamp(30px,5vh,54px)}
  .kept ul{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,260px),1fr));gap:0 32px}
  .kept li{display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;padding:11px 0;border-top:1px solid var(--hair-2);font-size:13.5px;color:var(--dim)}
  @media (max-width:980px){
    .case-row{grid-template-columns:1fr}
    .fig + .fig{padding-left:0;border-left:0}
  }

  .note-hero{position:relative;aspect-ratio:21/9;overflow:hidden;margin-bottom:clamp(30px,5vh,60px);background:var(--ink-3)}
  .note-hero img{width:100%;height:100%;object-fit:cover;filter:grayscale(.55) brightness(.78)}
  .note-body p{margin:0 0 22px;font-size:15.5px;line-height:1.78;color:var(--dim);max-width:66ch}
  .note-body .lead-para{font-size:clamp(17px,1.7vw,20px);line-height:1.62;color:var(--bone)}

  .cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:clamp(18px,2.4vw,34px)}
  .pcard{position:relative;display:block;border:1px solid var(--hair);overflow:hidden;background:var(--ink-2);transition:border-color var(--t) var(--ease-out),transform var(--t) var(--spring)}
  .pcard:hover{border-color:rgba(238,22,101,.5)}
  .pcard:active{transform:scale(.99)}
  .pcard .ph{position:relative;aspect-ratio:16/9;overflow:hidden}
  .pcard img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.5);transform:scale(1.03);transition:filter var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out)}
  .pcard:hover img{filter:grayscale(.35) brightness(.72);transform:scale(1.06)}
  .pcard .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(19,16,23,.95) 8%,rgba(19,16,23,.2) 70%)}
  .pcard .body{padding:20px 22px 24px}
  .pcard h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(19px,2vw,24px);margin:0 0 6px;letter-spacing:-.014em}
  .pcard .n{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-2)}
  .pcard p{margin:10px 0 14px;font-size:13.5px;line-height:1.6;color:var(--dim)}
  .pcard ul{list-style:none;margin:0;padding:0;font-size:12.5px;color:var(--dim-2)}
  .pcard li{padding:6px 0;border-top:1px solid var(--hair-2)}

  .page-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.42fr);gap:clamp(30px,4.5vw,80px);align-items:start}
  .page-aside{position:sticky;top:calc(var(--nav) + 30px);border-left:1px solid var(--hair);padding-left:24px}
  .page-aside dt{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim-2);margin-bottom:6px}
  .page-aside dd{margin:0 0 18px;font-size:14px;color:var(--dim);line-height:1.6}
  .page-aside dd b{color:var(--bone);font-weight:500}
  .page-aside dd a{color:var(--dim);transition:color var(--t) var(--ease-out)}
  .page-aside dd a:hover{color:var(--rose-2)}

  .sector-row{display:grid;grid-template-columns:minmax(0,.42fr) minmax(0,1fr);gap:clamp(22px,3vw,52px);padding:clamp(26px,4vh,44px) 0;border-top:1px solid var(--hair);align-items:start}
  .sector-row .ph{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ink-3)}
  .sector-row img{width:100%;height:100%;object-fit:cover;filter:grayscale(.7) brightness(.62);transform:scale(1.02);transition:filter var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out)}
  .sector-row:hover img{filter:grayscale(.3) brightness(.78);transform:scale(1.05)}
  .sector-row h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(20px,2.2vw,27px);margin:0 0 10px;letter-spacing:-.015em}
  .sector-row p{margin:0 0 16px;font-size:14.5px;line-height:1.68;color:var(--dim);max-width:56ch}

  @media (max-width:980px){
    .page-grid,.sector-row{grid-template-columns:1fr}
    .page-aside{position:static;border-left:0;border-top:1px solid var(--hair);padding:22px 0 0}
  }

  .no-match{display:none;padding:40px 0 10px;border-top:1px solid var(--hair)}
  .no-match.on{display:block}
  .no-match p{margin:0 0 6px;font-size:15px}
  .no-match small{display:block;color:var(--dim-2);font-size:13px;margin-bottom:16px}

  /* steps */
  /* ================= HOW WE WORK — vertical milestone timeline =================
     Left column holds the argument and a live progress readout and sticks while
     you read. Right column is the timeline: one rail, three milestones, drawn
     top to bottom so the line moves the same direction as your scroll. */
  .how-grid{display:grid;grid-template-columns:minmax(0,.34fr) minmax(0,1fr);gap:clamp(38px,5.5vw,104px);align-items:start}
  .how-aside{position:sticky;top:calc(var(--nav) + clamp(24px,5vh,54px));align-self:start}
  .how-aside h2{margin-bottom:18px}
  .how-intro{margin:0;font-size:14.5px;line-height:1.65;color:var(--dim);max-width:40ch}

  /* live progress readout */
  .prog{margin-top:clamp(26px,4vh,44px);padding-top:22px;border-top:1px solid var(--hair)}
  .prog-top{display:flex;align-items:baseline;gap:8px}
  .prog-top .cur{font-family:"Outfit",sans-serif;font-size:clamp(30px,3.4vw,44px);font-weight:500;line-height:1;color:var(--bone);letter-spacing:-.03em}
  .prog-top .tot{font-size:12px;color:var(--dim-2);letter-spacing:.14em}
  .prog-name{margin-top:8px;font-size:11px;letter-spacing:.2em;text-transform:uppercase;color:var(--rose-2)}
  .prog-bars{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:16px}
  .prog-bars i{position:relative;height:2px;background:rgba(237,233,236,.12);overflow:hidden}
  .prog-bars i::after{content:"";position:absolute;inset:0;background:var(--rose);transform:scaleX(0);transform-origin:left;transition:transform var(--t-lg) var(--ease-out)}
  .prog-bars i.on::after{transform:scaleX(1)}

  /* the timeline itself */
  .phases{list-style:none;margin:0;padding:6px 0 0;position:relative}
  .step{
    position:relative;padding:0 0 clamp(56px,9vh,116px) clamp(30px,3.4vw,46px);
  }
  .step:last-child{padding-bottom:0}
  /* ONE rail for the whole timeline. A single fill scales from the first node to
     the last, driven by one progress value, so the line is continuous and linear
     instead of three segments each running their own animation. */
  .tl-rail{position:absolute;left:5px;top:0;width:1px;background:var(--hair);z-index:0}
  .tl-fill{position:absolute;inset:0;width:1px;background:var(--rose);transform:scaleY(var(--p,0));transform-origin:top;will-change:transform}
  .tl-head{ /* positioner only — transform is written every frame by the rail */
    position:absolute;left:-3px;top:-3px;width:7px;height:7px;pointer-events:none;
    transform:translateY(calc(var(--p,0) * var(--rail-h,0px)));will-change:transform;
  }
  .tl-head::before{ /* the visible circle, so it can scale in without fighting the position */
    content:"";position:absolute;inset:0;border-radius:50%;background:var(--rose);
    box-shadow:0 0 10px 2px rgba(238,22,101,.75),0 0 22px 6px rgba(238,22,101,.35);
    transform:scale(0);opacity:0;
    transition:transform var(--t-lg) var(--spring),opacity var(--t) var(--ease-out);
  }
  .phases.live .tl-head::before{transform:scale(1);opacity:1}

  .step .node{position:absolute;left:0;top:4px;width:11px;height:11px;z-index:2}
  .step .node b{
    position:absolute;inset:0;display:block;background:var(--ink);
    border:1px solid var(--dim-2);border-radius:50%;
    transform:scale(.72);
    transition:transform var(--t) var(--spring),background var(--t) var(--ease-out),
               border-color var(--t) var(--ease-out),box-shadow var(--t) var(--ease-out);
  }
  /* reached: the travelling point has arrived, so the milestone lights up */
  .step.reached .node b{
    background:var(--rose);border-color:var(--rose);
    box-shadow:0 0 0 4px rgba(238,22,101,.14),0 0 16px 3px rgba(238,22,101,.55);
  }
  .step.reached .no{color:var(--rose-2)}
  .step.reached h3{color:#fff}
  .step .node::before{ /* bloom, centred on the milestone, fades out inside its own box */
    content:"";position:absolute;left:50%;top:50%;width:230px;height:230px;z-index:-1;
    background:radial-gradient(closest-side,rgba(238,22,101,.20),rgba(238,22,101,0));
    transform:translate(-50%,-50%) scale(.55);opacity:0;pointer-events:none;
    transition:opacity var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out);
  }
  .step.reached .node::before{opacity:1;transform:translate(-50%,-50%) scale(1)}
  .step .node::after{content:"";position:absolute;inset:-4px;border:1px solid var(--rose);border-radius:50%;opacity:0;transform:scale(.6)}
  .step.reached .node::after{animation:ping 280ms var(--ease-out) both}
  @keyframes ping{from{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(1.9)}}
  .step:hover .node b{transform:scale(1.45)}


  /* the phase you are on carries the emphasis */
  .step{opacity:.46;transition:opacity var(--t) var(--ease-out)}
  .step.active,.step.reached,.step:hover{opacity:1}
  .step.reached .node b{transform:scale(1)}
  .step.active .node b{transform:scale(1.18)}

  .step-head{display:flex;align-items:center;gap:14px;min-height:24px}
  .step .no{display:inline-block;font-size:11.5px;color:var(--dim-2);letter-spacing:.12em;
    transition:color var(--t) var(--ease-out),transform var(--t) var(--spring)}
  .step.reached .no{color:var(--rose);transform:scale(1.06)}
  .step .dur{font-size:11.5px;color:var(--dim-2);padding:3px 8px;border:1px solid transparent;
    transition:color var(--t) var(--ease-out),border-color var(--t) var(--ease-out),background var(--t) var(--ease-out)}
  .step:hover .dur,.step.active .dur{color:var(--bone);border-color:rgba(238,22,101,.45);background:rgba(238,22,101,.10)}
  .step h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(20px,2.2vw,28px);margin:16px 0 0;letter-spacing:-.016em}
  /* description and deliverables sit side by side: the row uses its full width
     instead of running a narrow column down the left with dead space beside it */
  .step-body{display:grid;grid-template-columns:minmax(0,1.02fr) minmax(0,.98fr);gap:clamp(28px,4vw,72px);margin-top:22px;align-items:start}
  .step p{margin:0;font-size:14.5px;line-height:1.68;color:var(--dim);max-width:44ch}
  .step ul{list-style:none;margin:0;padding:0}
  .step ul::before{content:attr(data-label);display:block;font-size:10px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-2);padding-bottom:9px}
  .step li{
    display:grid;grid-template-columns:auto 1fr;gap:10px;align-items:center;
    font-size:13px;color:var(--dim-2);padding:11px 0;border-top:1px solid var(--hair-2);
    transition:color var(--t) var(--ease-out),border-color var(--t) var(--ease-out);
  }
  .step.reached li{border-top-color:rgba(238,22,101,.22)}
  .step.reached li{transition-delay:calc(var(--n) * 40ms)}
  .step li:hover{color:var(--bone)}
  .mk{position:relative;width:11px;height:11px;flex:none}
  .mk::before,.mk::after{content:"";position:absolute;background:var(--dim-2);transition:background var(--t) var(--ease-out),transform var(--t) var(--ease-out),opacity var(--t) var(--ease-out),width var(--t) var(--ease-out),left var(--t) var(--ease-out)}
  .mk::before{left:0;top:5px;width:11px;height:1px}
  .mk::after{left:1px;top:5px;width:5px;height:1px;transform-origin:left;transform:rotate(90deg) scaleX(0);opacity:0}
  .step li:hover .mk::before{background:var(--rose);width:7px;left:3px;transform:rotate(-45deg) translate(1px,-1px)}
  .step li:hover .mk::after{background:var(--rose);opacity:1;transform:rotate(45deg) scaleX(1) translate(-1px,2px)}

  /* insights */
  .feat{display:grid;grid-template-columns:1fr 1.02fr;gap:clamp(30px,4vw,64px);align-items:center;margin-bottom:clamp(20px,3vh,34px)}
  .feat .frame{position:relative;aspect-ratio:16/10;overflow:hidden;background:var(--ink-3)}
  .feat img{width:100%;height:100%;object-fit:cover;filter:grayscale(.7) contrast(1.06) brightness(.8);transform:scale(1.02);transition:transform 280ms var(--e),filter 280ms var(--e)}
  .feat .frame::after{content:"";position:absolute;inset:0;background:linear-gradient(210deg,rgba(238,22,101,.2),rgba(19,16,23,.35) 70%)}
  .feat:hover img{transform:scale(1.05);filter:grayscale(.35) contrast(1.06) brightness(.86)}
  .feat h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(23px,2.7vw,36px);line-height:1.16;letter-spacing:-.02em;margin:18px 0 16px;max-width:20ch}
  .feat p{margin:0 0 22px;font-size:15.5px;line-height:1.7;color:var(--dim);max-width:60ch}
  .meta{display:flex;gap:16px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2)}
  .meta b{color:var(--rose-2);font-weight:500}
  .rows{margin-top:26px}
  .row{display:grid;grid-template-columns:auto 1fr auto;gap:26px;align-items:baseline;padding:24px 0;border-top:1px solid var(--hair);transition:padding-left 280ms var(--e)}
  .row:hover{padding-left:10px}
  .row .date{font-size:11.5px;color:var(--dim-2)}
  .row h4{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(16px,1.55vw,21px);letter-spacing:-.01em;margin:0;color:var(--dim);transition:color 280ms var(--e)}
  .row:hover h4{color:var(--bone)}
  .row .tag{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2);transition:color 280ms var(--e)}
  .row:hover .tag{color:var(--rose-2)}

  /* ticker */
  .ticker{height:46px;display:flex;align-items:center;overflow:hidden;border-bottom:1px solid var(--hair);--dur:42s}
  .ticker-run{display:flex;flex:none;animation:run var(--dur) linear infinite}
  .ticker:hover .ticker-run{animation-play-state:paused}
  @keyframes run{to{transform:translateX(-50%)}}
  .ticker span{display:inline-flex;align-items:center;gap:32px;padding-right:32px;font-size:11.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2);white-space:nowrap}
  .ticker i{font-style:normal;color:var(--rose)}

  /* home contact band */
  .band{display:grid;grid-template-columns:1.35fr 1fr;gap:48px;align-items:end}
  .band h2{max-width:20ch}
  .band .cols{display:grid;grid-template-columns:1fr 1fr;gap:26px}
  .band dt{font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-2);margin-bottom:8px}
  .band dd{margin:0 0 18px;font-size:14px;color:var(--dim);line-height:1.6}
  .band dd a:hover{color:var(--bone)}

  /* ---------------- ABOUT ---------------- */
  .prose{display:grid;grid-template-columns:1.25fr 1fr;gap:56px;align-items:start}
  .prose p{margin:0 0 18px;font-size:15.5px;line-height:1.72;color:var(--dim);max-width:60ch}
  .prose p strong{color:var(--bone);font-weight:500}
  .prose .aside{border-top:1px solid var(--hair);padding-top:18px}
  .prose .aside h4{font-family:"Outfit",sans-serif;font-weight:400;font-size:17px;margin:0 0 10px}
  .prose .aside p{font-size:13.5px;line-height:1.65;max-width:none}

  .stances{border-top:1px solid var(--hair)}
  .stance{display:grid;grid-template-columns:.55fr 1fr;gap:clamp(28px,4vw,56px);padding:34px 0;border-bottom:1px solid var(--hair)}
  .stance h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(18px,1.85vw,24px);letter-spacing:-.012em;margin:0}
  .stance p{margin:0;font-size:14.5px;line-height:1.68;color:var(--dim);max-width:52ch}

  .lead-row{display:grid;grid-template-columns:auto 1.1fr 1fr auto;gap:28px;align-items:center;padding:20px 0;border-top:1px solid var(--hair);transition:padding-left 280ms var(--e)}
  .lead-row:last-child{border-bottom:1px solid var(--hair)}
  .lead-row:hover{padding-left:10px}
  .mono-mark{width:46px;height:46px;display:grid;place-items:center;border:1px solid var(--hair);font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--rose-2);transition:border-color 280ms var(--e),background 280ms var(--e)}
  .lead-row:hover .mono-mark{border-color:var(--rose);background:rgba(238,22,101,.1)}
  .lead-row h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:19px;margin:0;letter-spacing:-.01em}
  .lead-row .role{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2);margin-top:5px}
  .lead-row p{margin:0;font-size:13.5px;line-height:1.6;color:var(--dim);max-width:46ch}
  .lead-row .since{font-size:11.5px;color:var(--dim-2)}

  .time{border-top:1px solid var(--hair)}
  .tl{display:grid;grid-template-columns:auto 1fr;gap:34px;padding:22px 0;border-bottom:1px solid var(--hair-2);position:relative}
  .tl .yr{font-size:12px;color:var(--rose);letter-spacing:.1em;padding-top:3px}
  .tl p{margin:0;font-size:14.5px;line-height:1.68;color:var(--dim);max-width:64ch}
  .tl:hover p{color:var(--bone)}
  .tl p{transition:color 280ms var(--e)}

  .offices{display:grid;grid-template-columns:repeat(auto-fit,minmax(210px,1fr));gap:0}
  .office{border-top:1px solid var(--hair);padding:22px 26px 22px 0}
  .office + .office{padding-left:26px;border-left:1px solid var(--hair)}
  .office h4{font-family:"Outfit",sans-serif;font-weight:400;font-size:17px;margin:0 0 4px}
  .office .tagline{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-2);margin-bottom:12px}
  .office p{margin:0 0 10px;font-size:13.5px;line-height:1.6;color:var(--dim)}
  .office a{font-size:13px;color:var(--dim)}
  .office a:hover{color:var(--bone)}

  /* ---------------- CONTACT ---------------- */
  .contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:0;border-bottom:1px solid var(--hair)}
  .form-wrap{padding:clamp(40px,6vh,72px) clamp(34px,5vw,68px) clamp(46px,7vh,80px) var(--pad);border-right:1px solid var(--hair);min-width:0}
  .rail{padding:clamp(40px,6vh,72px) var(--pad) clamp(46px,7vh,80px) clamp(30px,4vw,52px);min-width:0}

  .form-grid{display:grid;grid-template-columns:1fr 1fr;gap:0 26px}
  .field{display:grid;gap:8px;align-content:start;margin-bottom:20px}
  .field.wide{grid-column:1/-1}
  .field label{font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2)}
  .field label i{font-style:normal;color:var(--rose);margin-left:4px}
  .field input,.field select,.field textarea{padding:13px 15px;background:var(--ink-2);border:1px solid var(--hair);color:var(--bone);font:inherit;font-size:14.5px;transition:border-color 280ms var(--e),background 280ms var(--e);border-radius:0}
  .field textarea{resize:vertical;min-height:132px;line-height:1.6}
  .field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--rose);background:var(--ink)}
  .field input::placeholder,.field textarea::placeholder{color:var(--dim-2)}
  .field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' fill='none'%3E%3Cpath d='M1 1.5 6 6.5l5-5' stroke='%23a49ba6' stroke-width='1.4' stroke-linecap='round'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 15px center;padding-right:40px}
  .field .help{font-size:11.5px;color:var(--dim-2);line-height:1.5}
  .field .err{font-size:11.5px;color:var(--rose-2);line-height:1.5;display:none}
  .field.bad input,.field.bad select,.field.bad textarea{border-color:var(--rose)}
  .field.bad .err{display:block}
  .field.bad .help{display:none}
  .field .count{font-size:11px;color:var(--dim-2);text-align:right}
  .field .count.near{color:var(--rose-2)}

  .more-toggle{
    grid-column:1/-1;display:flex;align-items:center;gap:12px;margin:2px 0 20px;padding:12px 0;
    font-size:13px;color:var(--dim);border-top:1px solid var(--hair);border-bottom:1px solid var(--hair);
    transition:color var(--t) var(--ease-out);
  }
  .more-toggle em{font-style:normal;font-size:10.5px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2);margin-left:auto}
  .more-toggle:hover{color:var(--bone)}
  .more-toggle .pm{position:relative;width:11px;height:11px;flex:none}
  .more-toggle .pm::before,.more-toggle .pm::after{content:"";position:absolute;background:var(--rose);transition:transform var(--t) var(--spring)}
  .more-toggle .pm::before{left:0;top:5px;width:11px;height:1px}
  .more-toggle .pm::after{left:5px;top:0;width:1px;height:11px}
  .more-toggle[aria-expanded="true"] .pm::after{transform:scaleY(0)}
  .more-fields{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:0 26px;animation:rise var(--t-lg) var(--ease-out) both}
  .more-fields[hidden]{display:none}
  @media (max-width:860px){ .more-fields{grid-template-columns:1fr} }

  .check{grid-column:1/-1;display:grid;grid-template-columns:auto 1fr;gap:14px;align-items:start;margin:2px 0 22px;padding-top:20px;border-top:1px solid var(--hair)}
  .check input{appearance:none;width:19px;height:19px;margin:2px 0 0;background:var(--ink-2);border:1px solid var(--hair);cursor:pointer;transition:background 280ms var(--e),border-color 280ms var(--e);position:relative;flex:none}
  .check input:checked{background:var(--rose);border-color:var(--rose)}
  .check input:checked::after{content:"";position:absolute;left:5px;top:4px;width:8px;height:4px;border-left:1.5px solid #fff;border-bottom:1.5px solid #fff;transform:rotate(-45deg)}
  .check input:focus-visible{outline:2px solid var(--rose-2);outline-offset:2px}
  .check span{font-size:13.5px;line-height:1.6;color:var(--dim)}
  .check .err{display:none;font-size:11.5px;color:var(--rose-2);margin-top:6px}
  .check.bad input{border-color:var(--rose)}
  .check.bad .err{display:block}

  .form-foot{grid-column:1/-1;display:flex;align-items:center;gap:20px;flex-wrap:wrap}
  .form-foot .note{font-size:12.5px;color:var(--dim-2);max-width:34ch}
  .btn[data-busy="true"]{pointer-events:none;color:var(--dim)}

  .alert{grid-column:1/-1;display:none;gap:14px;grid-template-columns:auto 1fr;align-items:start;border:1px solid var(--rose);background:rgba(238,22,101,.08);padding:16px 18px;margin-bottom:22px}
  .alert.on{display:grid;animation:rise 280ms var(--e) both}
  .alert svg{color:var(--rose-2);margin-top:2px}
  .alert b{display:block;font-size:14px;font-weight:500;margin-bottom:4px}
  .alert p{margin:0 0 10px;font-size:13px;line-height:1.6;color:var(--dim)}
  .alert button{font-size:12.5px;color:var(--rose-2);border-bottom:1px solid currentColor;padding-bottom:1px}

  .sent{display:none}
  .sent.on{display:block;animation:rise 280ms var(--e) both}
  .sent .mark{width:44px;height:44px;display:grid;place-items:center;border:1px solid var(--rose);color:var(--rose-2);margin-bottom:22px}
  .sent h2{font-size:clamp(23px,2.5vw,33px);margin-bottom:16px}
  .sent > p{margin:0 0 26px;font-size:15px;line-height:1.7;color:var(--dim);max-width:52ch}
  .receipt{border-top:1px solid var(--hair);margin-bottom:28px}
  .receipt div{display:grid;grid-template-columns:.6fr 1fr;gap:20px;padding:12px 0;border-bottom:1px solid var(--hair-2);font-size:13.5px}
  .receipt dt{font-size:11px;letter-spacing:.16em;text-transform:uppercase;color:var(--dim-2)}
  .receipt dd{margin:0;color:var(--bone)}

  .rail h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:18px;margin:0 0 16px;letter-spacing:-.01em}
  .rail .block{margin-bottom:38px}
  .rail .next{list-style:none;margin:0;padding:0;counter-reset:n}
  .rail .next li{display:grid;grid-template-columns:auto 1fr;gap:16px;padding:14px 0;border-top:1px solid var(--hair);font-size:13.5px;line-height:1.6;color:var(--dim)}
  .rail .next li::before{counter-increment:n;content:"0" counter(n);font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--rose)}
  .rail dl{margin:0}
  .rail dt{font-size:10.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim-2);margin-bottom:6px}
  .rail dd{margin:0 0 18px;font-size:14px;line-height:1.6;color:var(--dim)}
  .rail dd a:hover{color:var(--bone)}
  .rail .hr{height:1px;background:var(--hair);margin:0 0 34px}

  /* ---------------- INDUSTRIES: full-bleed sector band ---------------- */
  .ind{display:flex;flex-direction:column;position:relative;overflow:hidden;background:var(--ink-2);border-bottom:1px solid var(--hair)}
  .ind-stage{position:relative;flex:1;min-height:clamp(500px,72vh,720px);display:grid;align-content:space-between;padding:clamp(30px,4.6vh,54px) var(--pad) clamp(32px,5vh,56px)}
  .ind-bg{position:absolute;inset:0;z-index:0}
  .ind-bg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:0;filter:grayscale(.8) contrast(1.12) brightness(.5);transform:scale(1.05);transition:opacity 280ms var(--e),transform 280ms var(--e)}
  .ind-bg img.on{opacity:1;transform:scale(1)}
  .ind-bg::after{content:"";position:absolute;inset:0;background:linear-gradient(95deg,var(--ink) 2%,rgba(19,16,23,.88) 32%,rgba(19,16,23,.5) 62%,rgba(238,22,101,.14) 100%)}
  .ind-top{position:relative;z-index:2}
  .ind-top .label{margin-bottom:16px}
  .glyph{display:inline-grid;grid-template-columns:1fr 1fr;gap:3px;width:15px;vertical-align:middle}
  .glyph i{display:block;width:6px;height:6px;background:var(--rose)}
  .ind-top h2{font-family:"Outfit",sans-serif;font-weight:500;font-size:clamp(40px,6.2vw,88px);line-height:.96;letter-spacing:-.035em;margin:0;max-width:none}
  .ind-copy{position:relative;z-index:2;max-width:56ch;margin-top:auto;padding-top:40px}
  .ind-copy h3{font-family:"Outfit",sans-serif;font-weight:500;font-size:clamp(20px,2.3vw,29px);letter-spacing:-.015em;margin:0 0 12px;opacity:0;animation:rise 280ms var(--e) forwards}
  .ind-copy p{margin:0 0 20px;font-size:15px;line-height:1.68;color:var(--dim);max-width:52ch;opacity:0;animation:rise 280ms var(--e) .07s forwards}
  .chips{display:flex;flex-wrap:wrap;gap:8px;margin:0 0 24px;opacity:0;animation:rise 280ms var(--e) .14s forwards}
  .chip{font-size:12px;padding:8px 13px;color:var(--dim);border:1px solid var(--hair);background:rgba(19,16,23,.5);transition:color 280ms var(--e),border-color 280ms var(--e),background 280ms var(--e)}
  .chip:hover{color:var(--bone);border-color:var(--rose);background:rgba(238,22,101,.14)}
  .ind-more{display:inline-flex;align-items:center;gap:9px;font-size:12px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--rose-2);opacity:0;animation:rise 280ms var(--e) .2s forwards}
  .ind-more svg{transition:transform 280ms var(--e)}
  .ind-more:hover{color:var(--bone)}
  .ind-more:hover svg{transform:translateX(5px)}
  .strip{position:relative;z-index:3;display:flex;border-top:1px solid var(--hair);background:rgba(19,16,23,.86);backdrop-filter:blur(12px)}
  .strip-arrow{flex:none;width:54px;display:grid;place-items:center;color:var(--dim);transition:background 280ms var(--e),color 280ms var(--e)}
  .strip-arrow.back{border-right:1px solid var(--hair)}
  .strip-arrow.back:hover{background:var(--ink-3);color:var(--bone)}
  .strip-arrow.fwd{border-left:1px solid var(--hair);background:var(--rose);color:#fff}
  .strip-arrow.fwd:hover{background:#c2004b}
  .strip-track{flex:1;display:flex;overflow-x:auto;scrollbar-width:none;-ms-overflow-style:none;scroll-behavior:smooth}
  .strip-track::-webkit-scrollbar{display:none}
  .tab{flex:1 0 auto;min-width:150px;padding:17px 20px;font-size:13.5px;font-weight:500;color:var(--dim);border-right:1px solid var(--hair);white-space:nowrap;text-align:center;transition:color 280ms var(--e),background 280ms var(--e)}
  .tab:last-child{border-right:0}
  .tab:hover{color:var(--bone);background:rgba(237,233,236,.05)}
  .tab.on{background:var(--rose);color:#fff}
  .tab .tn{display:block;font-family:"JetBrains Mono",monospace;font-size:10px;letter-spacing:.12em;margin-top:5px;color:var(--dim-2)}
  .tab.on .tn{color:rgba(255,255,255,.62)}

  /* industries dropdown: sector tiles, deliberately not another list stack */
  .mega.sectors .mega-in{grid-template-columns:.3fr 1fr;gap:40px}
  .s-rail h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:19px;line-height:1.25;margin:0 0 10px;letter-spacing:-.01em}
  .s-rail p{margin:0 0 16px;font-size:13px;line-height:1.62;color:var(--dim)}
  .tiles{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--hair)}
  .tile{position:relative;display:block;background:var(--ink-2);overflow:hidden;text-align:left}
  .tile .ph{position:relative;aspect-ratio:16/10;overflow:hidden}
  .tile img{width:100%;height:100%;object-fit:cover;filter:grayscale(1) brightness(.48);transform:scale(1.03);transition:filter 280ms var(--e),transform 280ms var(--e)}
  .tile:hover img,.tile[data-live="1"] img{filter:grayscale(.35) brightness(.74);transform:scale(1.07)}
  .tile .ph::after{content:"";position:absolute;inset:0;background:linear-gradient(to top,rgba(19,16,23,.94) 6%,rgba(19,16,23,.28) 72%)}
  .tile .cap{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:12px 14px 13px;border-bottom:2px solid transparent;transition:border-color 280ms var(--e)}
  .tile:hover .cap,.tile[data-live="1"] .cap{border-bottom-color:var(--rose)}
  .tile b{display:block;font-size:13.5px;font-weight:500}
  .tile small{display:block;font-size:11px;line-height:1.45;color:var(--dim-2);margin-top:4px;opacity:0;transform:translateY(4px);transition:opacity 280ms var(--e),transform 280ms var(--e)}
  .tile:hover small,.tile[data-live="1"] small{opacity:1;transform:none}

  /* contact now lives on the homepage: its header is an h2, not a second h1 */
  .phead h2{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(28px,3.4vw,48px);line-height:1.12;letter-spacing:-.02em;margin:0 0 18px;max-width:22ch}

  /* footer */
  footer{padding:clamp(46px,6vh,74px) var(--pad) 30px}
  .f-grid{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:34px;padding-bottom:38px;border-bottom:1px solid var(--hair)}
  .f-grid h5{margin:0 0 14px;font-size:10.5px;letter-spacing:.2em;text-transform:uppercase;color:var(--dim-2)}
  .f-grid ul{list-style:none;margin:0;padding:0}
  .f-grid li a{display:block;padding:6px 0;font-size:13px;color:var(--dim);transition:color 280ms var(--e),transform 280ms var(--e)}
  .f-grid li a:hover{color:var(--bone);transform:translateX(4px)}
  .f-brand p{margin:16px 0 0;font-size:13.5px;line-height:1.65;color:var(--dim);max-width:34ch}
  .f-bar{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;padding-top:22px;font-size:11.5px;color:var(--dim-2)}

  /* dialog */
  .scrim{position:fixed;inset:0;z-index:70;background:rgba(19,16,23,.72);backdrop-filter:blur(6px);opacity:0;visibility:hidden;transition:opacity 280ms var(--e),visibility 280ms}
  body.dlg .scrim{opacity:1;visibility:visible}
  .dialog{position:fixed;z-index:71;right:var(--pad);top:calc(var(--nav) + 16px);width:min(420px,calc(100vw - 2 * var(--pad)));background:rgba(26,22,31,.80);backdrop-filter:blur(26px) saturate(180%);-webkit-backdrop-filter:blur(26px) saturate(180%);border:1px solid rgba(237,233,236,.14);box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 50px 90px -40px rgba(5,1,8,.95);padding:28px;opacity:0;visibility:hidden;transform:translateY(-10px) scale(.985);transform-origin:top right;transition:opacity var(--t) var(--ease-in),transform var(--t) var(--ease-in),visibility var(--t);max-height:calc(100dvh - var(--nav) - 40px);overflow:auto}
  body.dlg .dialog{opacity:1;visibility:visible;transform:none;transition:opacity var(--t-lg) var(--ease-out),transform var(--t-lg) var(--ease-out),visibility var(--t-lg)}
  .dialog h2{font-family:"Outfit",sans-serif;font-weight:500;font-size:20px;margin:0 0 6px;letter-spacing:-.01em;max-width:none}
  .dialog > div > p{margin:0 0 22px;font-size:13.5px;color:var(--dim);line-height:1.6}
  .dialog .field{margin-bottom:16px}
  .dialog .btn{width:100%;justify-content:center;margin-top:6px}
  .ok{display:none}
  .ok.on{display:block;animation:rise 280ms var(--e) forwards}
  .ok .mark{width:38px;height:38px;display:grid;place-items:center;border:1px solid var(--rose);color:var(--rose-2);margin-bottom:16px}
  .ok p{font-size:13.5px;color:var(--dim);line-height:1.65;margin:0 0 20px}
  .close{position:absolute;right:18px;top:18px;width:30px;height:30px;display:grid;place-items:center;color:var(--dim)}
  .close:hover{color:var(--bone)}

  /* burger */
  .burger{display:none;width:38px;height:38px;place-items:center;margin-left:auto}
  .burger i{width:20px;height:1px;background:var(--bone);position:relative;display:block;transition:background 280ms var(--e)}
  .burger i::before,.burger i::after{content:"";position:absolute;left:0;width:20px;height:1px;background:var(--bone);transition:transform 280ms var(--e)}
  .burger i::before{top:-6px}.burger i::after{top:6px}
  body.nav-open .burger i{background:transparent}
  body.nav-open .burger i::before{transform:translateY(6px) rotate(45deg)}
  body.nav-open .burger i::after{transform:translateY(-6px) rotate(-45deg)}

  /* ---------------- responsive ---------------- */
  @media (max-width:1290px){
    nav{gap:28px}
    #callbackBtn{margin-left:8px;padding:13px 22px}
    .utils{margin-left:8px}
  }
  @media (max-width:1180px){
    .mega-in{grid-template-columns:1fr 1fr 1fr;gap:28px}
    .m-prev{grid-column:1/-1;border-left:0;border-top:1px solid var(--hair);padding:24px 0 0;display:grid;grid-template-columns:1fr 1.2fr;gap:24px;align-items:center}
    .m-prev .frame{aspect-ratio:16/9}
    .f-grid{grid-template-columns:1fr 1fr 1fr}
    .lead-row{grid-template-columns:auto 1fr auto;gap:20px}
    .lead-row p{display:none}
  }
  @media (max-width:980px){
    .hero{min-height:100svh}
    .copy{padding:calc(var(--nav) + 34px) var(--pad) 116px}
    .copy > *{max-width:none}
    .neb{background-position:68% center;opacity:.8}
    .hero::before{background:linear-gradient(180deg,rgba(10,2,16,.9) 0%,rgba(10,2,16,.66) 42%,rgba(10,2,16,.92) 100%)}
    .hero-ctl{right:var(--pad);bottom:34px}
    .prose,.offices{grid-template-columns:1fr}
    .how-grid{grid-template-columns:1fr;gap:40px}
    .step{padding-bottom:clamp(44px,7vh,72px)}
    .step-body{grid-template-columns:1fr;gap:18px}
    .step p{max-width:none}
    .how-aside{position:static}
    .prog{display:flex;align-items:center;gap:16px;margin-top:24px}
    .prog-bars{flex:1;margin-top:0}
    .step{padding-left:28px}
    .office + .office{padding-left:0;border-left:0}
    .feat,.band,.sec-head,.phead,.stance,.contact-grid{grid-template-columns:1fr}
    .sec-head,.phead,.stance{align-items:start}
    .phead{gap:34px}
    .stance{gap:12px}
    h1{max-width:none}
    .form-wrap{border-right:0;border-bottom:1px solid var(--hair);padding:44px var(--pad) 50px}
    .rail{padding:44px var(--pad) 54px}
  }
  @media (max-width:1140px){
    .burger{display:grid}
    body.stuck .head-glass{border-bottom:1px solid rgba(237,233,236,.12)}
    body.stuck .head-in > *{transform:none}
    .nav-fold{display:flex;flex-direction:column;align-items:stretch;width:100%}
    body.nav-open .head-shift,
    body.nav-open .head-glass{transform:none!important}   /* menu open: the bar stays put */
    nav{position:fixed;left:0;right:0;top:var(--nav);flex-direction:column;align-items:stretch;gap:0;margin:0;padding:8px var(--pad) 30px;background:var(--ink);border-bottom:1px solid var(--hair);max-height:calc(100dvh - var(--nav));overflow:auto;opacity:0;visibility:hidden;transform:translateY(-10px);transition:opacity 280ms var(--e),transform 280ms var(--e),visibility 280ms}
    body.nav-open nav{opacity:1;visibility:visible;transform:none}
    .top{border-bottom:1px solid var(--hair-2)}
    .top-link{width:100%;justify-content:space-between;padding:17px 0;font-size:16px}
    .tick{display:none}
    .mega{position:static;display:none;opacity:1;visibility:visible;transform:none;background:none;border:0;box-shadow:none;backdrop-filter:none}
    .mega::after{display:none}
    .top.open .mega{display:block}
    .mega-in{padding:0 0 20px;grid-template-columns:1fr;gap:24px}
    .m-list{max-height:none}
    .m-prev{display:none}
    .utils{margin:18px 0 0;justify-content:space-between;width:100%}
    .search-panel{width:min(340px,calc(100vw - 2 * var(--pad)))}
    nav > .btn{width:100%;justify-content:center;margin-top:16px}
    .f-grid{grid-template-columns:1fr 1fr}
    .dialog{right:var(--pad);left:var(--pad);width:auto;top:auto;bottom:16px;transform-origin:bottom center}
    .band .cols,.form-grid,.phead .facts{grid-template-columns:1fr}
    .phead .facts div:first-child{border-top:1px solid var(--hair)}
  }
  @media (max-width:560px){
    .prac-btn{grid-template-columns:auto 1fr auto;gap:14px}
    .prac-btn .n{display:none}
    .row,.tl,.receipt div{grid-template-columns:1fr;gap:6px}
    .row .tag{order:-1}
    .f-grid{grid-template-columns:1fr}
    .lead-row{grid-template-columns:auto 1fr;gap:16px}
    .lead-row .since{display:none}
  }
  @media (max-width:1180px){
    .tiles{grid-template-columns:repeat(2,1fr)}
    .mega.sectors .mega-in{grid-template-columns:1fr;gap:26px}
  }
  @media (max-width:980px){
    .ind-stage{min-height:auto;padding-bottom:34px}
    .ind-copy{padding-top:52px}
  }
  @media (max-width:640px){
    .tab{min-width:124px;padding:15px 13px;font-size:12.5px}
    .strip-arrow{width:44px}
  }
  @media (hover:none){ .row-peek{display:none} }
  @media (prefers-reduced-motion:reduce){
    *,*::before,*::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
    .rise,.m-col,.rv,.view.on{opacity:1;transform:none}
    .step{opacity:1}
    .tl-fill{transform:scaleY(1)}
    .tl-head::before{transition:none}
    .step .node b{opacity:1;transform:scale(1);background:var(--rose);border-color:var(--rose)}
    .head-shift,.head-glass,.head-glass::after,.head-in{transition:none!important}
    body.stuck .head-in > *{transform:none}
  }

  /* --- pressed states: every interactive surface answers the finger --- */
  .m-list a:active,.row:active,.lead-row:active{transform:translateX(4px) scale(.995)}
  .svc:active{opacity:.7}
  .lang-btn:active,.plain:active,.close:active{transform:scale(.96)}
  .chip:active{transform:scale(.96)}
  .strip-arrow:active{transform:scale(.94)}
  .tab:active{transform:scale(.97)}
  .tile:active{transform:scale(.985)}
  .tile:active img{transform:scale(1.02)}
  .top-link:active{transform:translateY(1px)}
  .prac-btn:active .code{transform:scale(.9)}
  /* release from a press overshoots once, then settles — spring, not ease */
  .btn,.arrow,.chip,.tab,.tile,.strip-arrow,.close,.lang-btn,.plain{transition-timing-function:var(--spring)}

  /* ================= motion v2 — one system, three curves ================= */
  :root{
    --ease-emph:cubic-bezier(.05,.7,.1,1);   /* entrances: decisive start, long soft landing */
    --ease-std:cubic-bezier(.2,0,0,1);       /* things moving on screen                    */
    --ease-exit:cubic-bezier(.3,0,.8,.15);   /* exits: ease away, then leave quickly        */
  }
  /* scroll reveals: rise, sharpen, settle — staggered in reading order */
  .rv{opacity:0;transform:translate3d(0,24px,0);
    transition:opacity 620ms var(--ease-std),transform 820ms var(--ease-emph);
    transition-delay:calc(var(--i,0) * 60ms + var(--bd,0ms))}
  .rv.in{opacity:1;transform:none}
  /* first paint of the hero: the copy arrives after the page, line by line */
  .copy .rise{opacity:1;transform:none;animation:none}
  @keyframes riseIn{from{opacity:0;transform:translate3d(0,18px,0);filter:blur(6px)}to{opacity:1;transform:none;filter:none}}
  /* hero headline words ride up out of a mask */
  .hw{display:inline-block;overflow:hidden;vertical-align:top;padding:0 .04em .14em;margin:0 -.04em -.14em}
  .hw-i{display:inline-block;will-change:transform}
  .idx b{display:inline-block}
  /* autoplay progress: you can see when the next solution is coming */
  .hp{position:relative;width:56px;height:1px;background:rgba(255,255,255,.16);overflow:hidden;margin-right:4px}
  .hp i{position:absolute;inset:0;background:var(--rose);transform-origin:0 50%;transform:scaleX(0)}
  /* route changes: the old page eases away, the new one rises into place; the bar stays put */
  @supports (view-transition-name:none){
    .head{view-transition-name:hs-head}
    ::view-transition-group(hs-head){animation:none}
    ::view-transition-old(hs-head){display:none}
    ::view-transition-new(hs-head){animation:none}
    ::view-transition-old(root){animation:vtOut 200ms var(--ease-exit) both}
    ::view-transition-new(root){animation:vtIn 620ms var(--ease-emph) 60ms both}
    @keyframes vtOut{to{opacity:0;transform:translate3d(0,-12px,0)}}
    @keyframes vtIn{from{opacity:0;transform:translate3d(0,20px,0)}}
    /* menus vanish instantly when a link inside them changes the page, so they never get caught in the crossfade */
    html.vt-snap .mega,html.vt-snap .search-panel,html.vt-snap .lang-menu,html.vt-snap .m-col,html.vt-snap .scrim{transition:none !important;animation:none !important}
  }
  .view.on{animation:viewIn 640ms var(--ease-emph) both}
  @keyframes viewIn{from{opacity:0;transform:translate3d(0,18px,0)}to{opacity:1;transform:none}}
  html.vt .view.on{animation:none}
  /* panels materialise from their trigger, and leave faster than they came */
  @media (min-width:1141px){
    .mega{transform:translate3d(0,-12px,0);transform-origin:top center;
      transition:opacity 180ms var(--ease-exit),transform 220ms var(--ease-exit),visibility 0s linear 220ms}
    .top.open .mega{transform:none;transition:opacity 300ms var(--ease-std),transform 520ms var(--ease-emph),visibility 0s}
    .m-col{transform:translate3d(0,16px,0)}
    .top.open .m-col{animation:mIn 620ms var(--ease-emph) forwards;animation-delay:calc(70ms + var(--i) * 50ms)}
  }
  @keyframes mIn{to{opacity:1;transform:none}}
  .search-panel,.lang-menu{transform:translate3d(0,-10px,0) scale(.97);transform-origin:top right;
    transition:opacity 160ms var(--ease-exit),transform 200ms var(--ease-exit),visibility 0s linear 200ms}
  .search.open .search-panel,.lang.open .lang-menu{transform:none;transition:opacity 260ms var(--ease-std),transform 480ms var(--ease-emph),visibility 0s}
  .dialog{transform:translate3d(0,-14px,0) scale(.96);
    transition:opacity 180ms var(--ease-exit),transform 220ms var(--ease-exit),visibility 0s linear 220ms}
  body.dlg .dialog{transform:none;transition:opacity 280ms var(--ease-std),transform 560ms var(--ease-emph),visibility 0s}
  .scrim{transition:opacity 320ms var(--ease-std),visibility 0s linear 320ms}
  body.dlg .scrim{transition:opacity 420ms var(--ease-std),visibility 0s}
  .ok.on{animation:riseIn 640ms var(--ease-emph) both}
  /* accordion: the panel opens on a long curve, then its rows cascade in */
  .prac-body{transition:grid-template-rows 360ms var(--ease-std)}
  .prac.open .prac-body{transition:grid-template-rows 620ms var(--ease-emph)}
  .prac-body .svc{transition:opacity 420ms var(--ease-std) calc(var(--n,0) * 30ms + 110ms),transform 620ms var(--ease-emph) calc(var(--n,0) * 30ms + 110ms)}
  .prac:not(.open) .prac-body .svc{opacity:0;transform:translate3d(0,12px,0);transition:opacity 140ms var(--ease-exit),transform 180ms var(--ease-exit)}
  /* press is instant; the release springs back (the spring lives on the resting state) */
  .btn:active,.arrow:active,.chip:active,.tab:active,.tile:active,.strip-arrow:active,.close:active,.plain:active,.pcard:active,.prac-btn:active,.tick:active{transition-duration:90ms;transition-timing-function:var(--ease-std)}
  /* How we work as its own page, built from the homepage timeline */
  .how-head{display:none}
  body.how-only #v-home > :not(#how):not(.how-head){display:none !important}
  body.how-only #v-home > #how{display:block !important}
  body.how-only #v-home > .how-head{display:grid !important;padding-top:calc(var(--nav) + clamp(46px,7vh,96px))}
  body.how-only .how-aside > .rv{display:none}
  @media (max-width:980px){ body.how-only #v-home > .how-head{grid-template-columns:1fr} }
  @media (prefers-reduced-motion:reduce){
    .rv,.rise,.m-col,.hw-i{opacity:1 !important;transform:none !important;filter:none !important}
    .prac:not(.open) .prac-body .svc{transform:none}
    .hp{display:none}
  }

/* Preserve the generated artwork palette within the existing dark layout. */
.m-prev img,.row-peek img,.case-row img,.note-hero img,.pcard img,.sector-row img,.feat img,.tile img{filter:brightness(.90) saturate(.90)}
.case-row:hover img,.pcard:hover img,.sector-row:hover img,.feat:hover img,.tile:hover img,.tile[data-live="1"] img{filter:brightness(1) saturate(1)}
.ind-bg img{filter:brightness(.65) saturate(.80)}
/* subject sits right, opposite the copy; its left edge dissolves into the band */
.ind-bg img{left:auto;right:0;width:min(72%,1180px);object-position:50% 50%;
  -webkit-mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 18%,#000 42%);mask-image:linear-gradient(90deg,transparent 0%,rgba(0,0,0,.55) 18%,#000 42%)}
.ind-bg::after{background:linear-gradient(95deg,var(--ink) 4%,rgba(19,16,23,.82) 30%,rgba(19,16,23,.28) 58%,rgba(238,22,101,.12) 100%)}
@media (max-width:980px){ .ind-bg img{width:100%;-webkit-mask-image:none;mask-image:none} }

/* A roomier image grid, with the original typography and visual language. */
:root{--pad:clamp(20px,4vw,60px);--sec:clamp(72px,10vh,128px)}
.shell,.head-in,.copy,.mega-in{max-width:1480px}
.sec-head{margin-bottom:clamp(32px,4.5vh,56px)}
.case-row,.sector-row{grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(28px,4vw,56px);align-items:center}
.case-row .ph,.sector-row .ph{aspect-ratio:3/2}
.case-row h3{font-size:clamp(24px,2.35vw,34px);max-width:27ch}
.case-row p,.sector-row p{max-width:none}
.case-body{min-width:0}
.case-body .meta{flex-wrap:wrap;gap:8px 16px}
#work>.more{margin-top:24px}
.pcard .ph{display:block;aspect-ratio:3/2}
.pcard .ph img{display:block}
.pcard .body{display:block}
.pcard .body .n,.pcard h3{display:block}
/* overview cards: image and name only */
.cards > .pcard .n,.cards > .pcard p,.cards > .pcard ul{display:none}
.cards > .pcard h3{margin:0}
.cards > .pcard .body{padding:18px 22px 20px}
.cards:has(> .pcard){grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:640px){ .cards:has(> .pcard){grid-template-columns:1fr} }
.feat{grid-template-columns:minmax(0,1.12fr) minmax(0,1fr)}
.feat .frame{aspect-ratio:3/2}
.note-hero{aspect-ratio:16/9}

/* Larger, image-first navigation preview without squeezing the link columns. */
@media (min-width:1141px){
 #megaIn{grid-template-columns:repeat(4,minmax(0,1fr)) minmax(300px,1.85fr);gap:clamp(16px,1.6vw,24px);padding-top:28px;padding-bottom:28px;max-height:calc(100dvh - var(--nav) - 12px);overflow-y:auto}
 #megaIn .m-prev{grid-column:auto;display:flex;flex-direction:column;gap:0;border-top:0;border-left:1px solid var(--hair);padding:0 0 0 22px;align-items:stretch}
 #megaIn .m-prev .frame{order:0;width:100%;aspect-ratio:3/2;flex:none}
 #megaIn .m-prev .who{order:1;display:flex;flex-direction:column;align-items:flex-start;gap:7px;margin-top:16px;line-height:1.4}
 #megaIn .m-prev .who b{font-size:15px;letter-spacing:.015em;text-transform:none}
 #megaIn .m-prev p{order:2;min-height:0;margin:10px 0 0;font-size:13px;line-height:1.6}
 #megaIn .m-list a{padding:9px 0;line-height:1.4}
 /* selected row: the text steps in and a short rose bar grows beside it, clear of the letters */
 #megaIn .m-list a{position:relative;transition:color 220ms var(--ease-std,ease),padding-left 420ms var(--ease-emph,ease-out)}
 #megaIn .m-list a::before{content:"";position:absolute;left:0;top:50%;width:2px;height:16px;margin-top:-8px;background:var(--rose);transform:scaleY(0);transform-origin:50% 50%;transition:transform 220ms var(--ease-exit,ease-in)}
 #megaIn .m-list a:hover,#megaIn .m-list a[data-live="1"]{padding-left:16px}
 #megaIn .m-list a[data-live="1"]{box-shadow:none}
 #megaIn .m-list a[data-live="1"]::before{transform:scaleY(1);transition:transform 420ms var(--ease-emph,ease-out)}
}
.m-prev .frame::after,.row-peek-frame::after{background:linear-gradient(180deg,transparent 55%,rgba(19,16,23,.20))}
.m-prev img.on{opacity:1}
.row-peek{width:clamp(320px,30vw,440px);max-width:calc(100vw - 32px);background:rgba(20,16,25,.97);box-shadow:0 18px 64px rgba(0,0,0,.48),inset 0 1px 0 rgba(255,255,255,.08)}
.row-peek-frame{aspect-ratio:3/2;max-height:calc(100dvh - var(--nav) - 130px)}
.row-peek-cap{padding:15px 18px 16px}
.row-peek-cap b{font-size:16px;line-height:1.35}
.row-peek-cap span{margin-top:6px;font-size:10.5px;line-height:1.4}
.row-peek img,.m-prev img{filter:brightness(1) saturate(1)}
@media (max-width:980px){
 .case-row,.sector-row,.feat{grid-template-columns:1fr;gap:24px}
 .case-row h3{max-width:30ch}
 .note-hero{aspect-ratio:3/2}
}
@media (max-width:560px){
 :root{--sec:64px}
 .sec-head{gap:20px;margin-bottom:28px}
 .case-row,.sector-row{padding:24px 0}
 .case-row h3{font-size:25px}
 .case-figs{gap:16px 24px}
}

html{scroll-behavior:smooth}
html.wheel-easing{scroll-behavior:auto}
@media(prefers-reduced-motion:reduce){html,.strip-track{scroll-behavior:auto!important}}

  .bk-scrim{position:fixed;inset:0;z-index:80;background:rgba(10,6,14,.74);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);opacity:0;visibility:hidden;transition:opacity 320ms var(--ease-std,ease),visibility 0s linear 320ms}
  .bk-on .bk-scrim{opacity:1;visibility:visible;transition:opacity 420ms var(--ease-std,ease),visibility 0s}
  .bk{position:fixed;z-index:81;inset:0;display:grid;place-items:center;padding:clamp(12px,3vw,40px);pointer-events:none;visibility:hidden}
  .bk-on .bk{visibility:visible}
  .bk-card{pointer-events:auto;width:min(1180px,100%);height:min(780px,calc(100dvh - 2 * clamp(12px,3vw,40px)));display:grid;grid-template-columns:minmax(0,.86fr) minmax(0,1.14fr);
    background:var(--ink,#131017);border:1px solid rgba(237,233,236,.12);box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 60px 120px -40px rgba(3,0,6,.95);
    opacity:0;transform:translate3d(0,22px,0) scale(.975);transition:opacity 180ms var(--ease-exit,ease-in),transform 240ms var(--ease-exit,ease-in)}
  .bk-on .bk-card{opacity:1;transform:none;transition:opacity 300ms var(--ease-std,ease),transform 640ms var(--ease-emph,ease-out)}
  /* left: the brand artwork, the advisor, and a running summary */
  .bk-side{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:clamp(28px,3.4vw,48px);background:#0a0210}
  .bk-side::before{content:"";position:absolute;inset:-4%;background-image:var(--neb);background-size:cover;background-position:72% 50%;opacity:.78;transform:scale(1.06);transition:transform 1400ms var(--ease-emph,ease-out)}
  .bk-on .bk-side::before{transform:scale(1)}
  .bk-side::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(10,2,16,.86) 0%,rgba(10,2,16,.35) 38%,rgba(10,2,16,.55) 62%,rgba(10,2,16,.96) 100%)}
  .bk-side > *{position:relative;z-index:1}
  .bk-eyebrow{display:flex;align-items:center;gap:12px;white-space:nowrap;margin:0 0 60px;font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--dim,#b9b0b8)}
  .bk-eyebrow s{width:26px;height:1px;background:var(--rose,#ee1665)}
  .bk-side h2{font-family:"Outfit",sans-serif;font-weight:500;font-size:clamp(28px,3vw,42px);line-height:1.08;letter-spacing:-.03em;margin:0 0 16px;max-width:13ch;color:#fff}
  .bk-side h2 u{text-decoration:none;color:rgba(255,255,255,.5)}
  .bk-side > p:not(.bk-eyebrow){margin:0;font-size:14.5px;line-height:1.6;color:var(--dim,#b9b0b8);max-width:34ch}
  .bk-who{margin-top:auto;display:flex;align-items:center;gap:16px;padding-bottom:20px}
  .bk-mono{width:46px;height:46px;flex:none;display:grid;place-items:center;border:1px solid rgba(237,233,236,.22);font-family:"JetBrains Mono",monospace;font-size:13px;color:var(--bone,#ede9ec);background:rgba(19,16,23,.5)}
  .bk-who b{display:block;font-weight:500;font-size:15px;color:var(--bone,#ede9ec)}
  .bk-who span{display:block;margin-top:3px;font-size:13px;color:var(--dim,#b9b0b8)}
  .bk-sum{margin:auto 0 0;border-top:1px solid rgba(237,233,236,.14)}
  .bk-sum dd:not(.set) .bk-ok{display:none}
  .bk-sum div{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:15px 0;border-bottom:1px solid rgba(237,233,236,.10);font-size:14px}
  .bk-sum dt{color:var(--dim,#b9b0b8)}
  .bk-sum dd{margin:0;display:flex;align-items:center;gap:10px;color:var(--dim-2,#8a8189);text-align:right}
  .bk-sum dd.set{color:var(--bone,#ede9ec)}
  .bk-ok{width:18px;height:18px;display:grid;place-items:center;background:var(--rose,#ee1665);color:#fff;transform:scale(0);transition:transform 200ms var(--ease-exit,ease-in)}
  .bk-sum dd.set .bk-ok{transform:scale(1);transition:transform 420ms var(--spring,ease-out)}
  /* right: steps */
  .bk-main{position:relative;display:grid;grid-template-rows:auto minmax(0,1fr) auto;min-width:0;background:var(--ink,#131017)}
  .bk-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr)) 44px;gap:10px;align-items:start;padding:clamp(22px,3vw,40px) clamp(24px,3.4vw,52px) 0}
  .bk-step{display:grid;gap:12px;font-family:"JetBrains Mono",monospace;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--dim-2,#8a8189);transition:color 280ms var(--ease-std,ease)}
  .bk-step i{display:block;height:1px;background:rgba(237,233,236,.14);position:relative;overflow:hidden}
  .bk-step i::after{content:"";position:absolute;inset:0;background:var(--rose,#ee1665);transform-origin:0 50%;transform:scaleX(var(--f,0));transition:transform 620ms var(--ease-emph,ease-out)}
  .bk-step.on,.bk-step.done{color:var(--bone,#ede9ec)}
  .bk-x{width:44px;height:44px;display:grid;place-items:center;border:1px solid rgba(237,233,236,.16);color:var(--bone,#ede9ec);margin-top:-12px;transition:border-color 180ms,background 180ms,transform 280ms var(--spring,ease-out)}
  .bk-x:hover{border-color:var(--rose,#ee1665)}
  .bk-x:active{transform:scale(.94);transition-duration:90ms}
  .bk-x:focus-visible,.bk-opt:focus-visible,.bk-chip:focus-visible,.bk-day:focus-visible,.bk-slot:focus-visible,.bk-btn:focus-visible{outline:2px solid var(--rose-2,#ff5c8d);outline-offset:3px}
  .bk-body{position:relative;overflow:hidden auto;padding:clamp(26px,4vh,44px) clamp(24px,3.4vw,52px) 24px;overscroll-behavior:contain}
  .bk-pane{display:none}
  .bk-pane.on{display:block}
  .bk-pane h3{font-family:"Outfit",sans-serif;font-weight:400;font-size:clamp(24px,2.5vw,34px);line-height:1.12;letter-spacing:-.022em;margin:0 0 10px;color:var(--bone,#ede9ec)}
  .bk-pane h3 + p{margin:0 0 28px;font-size:14.5px;line-height:1.6;color:var(--dim,#b9b0b8)}
  .bk-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
  .bk-opt{display:grid;gap:6px;text-align:left;padding:18px 20px 20px;border:1px solid rgba(237,233,236,.12);background:var(--ink-2,#1a161f);
    transition:border-color 180ms var(--ease-std,ease),background 220ms var(--ease-std,ease),transform 320ms var(--spring,ease-out)}
  .bk-opt:hover{border-color:rgba(238,22,101,.55)}
  .bk-opt:active{transform:scale(.985);transition-duration:90ms}
  .bk-opt em{font-style:normal;font-family:"JetBrains Mono",monospace;font-size:11.5px;color:var(--dim-2,#8a8189)}
  .bk-opt b{font-weight:500;font-size:16px;color:var(--bone,#ede9ec)}
  .bk-opt span{font-size:13px;line-height:1.5;color:var(--dim,#b9b0b8)}
  .bk-opt[aria-pressed="true"]{background:var(--rose,#ee1665);border-color:var(--rose,#ee1665)}
  .bk-opt[aria-pressed="true"] em,.bk-opt[aria-pressed="true"] span{color:rgba(255,255,255,.86)}
  .bk-opt[aria-pressed="true"] b{color:#fff}
  .bk-label{margin:30px 0 12px;font-size:14px;color:var(--bone,#ede9ec)}
  .bk-chips{display:flex;flex-wrap:wrap;gap:10px}
  .bk-chip{display:flex;align-items:baseline;gap:10px;min-height:46px;padding:12px 18px;border:1px solid rgba(237,233,236,.14);color:var(--bone,#ede9ec);font-size:14.5px;
    transition:border-color 180ms,background 220ms,transform 320ms var(--spring,ease-out)}
  .bk-chip small{font-family:"JetBrains Mono",monospace;font-size:11px;color:var(--dim-2,#8a8189)}
  .bk-chip:hover{border-color:rgba(238,22,101,.55)}
  .bk-chip:active{transform:scale(.97);transition-duration:90ms}
  .bk-chip[aria-pressed="true"]{background:var(--rose,#ee1665);border-color:var(--rose,#ee1665)}
  .bk-chip[aria-pressed="true"] small{color:rgba(255,255,255,.82)}
  .bk-days{display:grid;grid-auto-flow:column;grid-auto-columns:88px;gap:8px;overflow-x:auto;padding-bottom:10px;scroll-snap-type:x mandatory;scrollbar-width:thin;scrollbar-color:rgba(237,233,236,.2) transparent}
  .bk-day{scroll-snap-align:start;display:grid;justify-items:center;gap:4px;padding:14px 0 12px;border:1px solid rgba(237,233,236,.12);background:var(--ink-2,#1a161f);
    transition:border-color 180ms,background 220ms,transform 320ms var(--spring,ease-out)}
  .bk-day small{font-family:"JetBrains Mono",monospace;font-size:10.5px;letter-spacing:.14em;color:var(--dim-2,#8a8189)}
  .bk-day b{font-family:"Outfit",sans-serif;font-weight:400;font-size:28px;line-height:1;color:var(--bone,#ede9ec)}
  .bk-day span{font-size:12px;color:var(--dim,#b9b0b8)}
  .bk-day:hover{border-color:rgba(238,22,101,.55)}
  .bk-day:active{transform:scale(.96);transition-duration:90ms}
  .bk-day[aria-pressed="true"]{background:var(--rose,#ee1665);border-color:var(--rose,#ee1665)}
  .bk-day[aria-pressed="true"] small,.bk-day[aria-pressed="true"] span{color:rgba(255,255,255,.85)}
  .bk-slots{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:8px;margin-top:22px}
  .bk-slot{height:48px;border:1px solid rgba(237,233,236,.14);font-family:"JetBrains Mono",monospace;font-size:14px;color:var(--bone,#ede9ec);
    opacity:0;transform:translate3d(0,8px,0);animation:bkIn 460ms var(--ease-emph,ease-out) forwards;animation-delay:calc(var(--n,0) * 35ms);
    transition:border-color 180ms,background 220ms}
  .bk-slot:hover{border-color:rgba(238,22,101,.55)}
  .bk-slot[aria-pressed="true"]{background:var(--rose,#ee1665);border-color:var(--rose,#ee1665);color:#fff}
  .bk-slot:disabled{color:var(--dim-2,#8a8189);text-decoration:line-through;background:rgba(237,233,236,.03);border-color:rgba(237,233,236,.06);cursor:not-allowed}
  @keyframes bkIn{to{opacity:1;transform:none}}
  .bk-note{margin:18px 0 0;font-size:12.5px;color:var(--dim-2,#8a8189)}
  .bk-form{display:grid;grid-template-columns:1fr 1fr;gap:18px 18px}
  .bk-f{display:grid;gap:8px;min-width:0}
  .bk-f.full{grid-column:1 / -1}
  .bk-f label{font-size:13.5px;color:var(--bone,#ede9ec)}
  .bk-f label i{font-style:normal;color:var(--rose-2,#ff5c8d)}
  .bk-f input,.bk-f textarea{width:100%;padding:14px 16px;font:inherit;font-size:14.5px;color:var(--bone,#ede9ec);background:var(--ink-2,#1a161f);border:1px solid rgba(237,233,236,.12);border-radius:0;transition:border-color 180ms,background 180ms}
  .bk-f textarea{min-height:96px;resize:vertical}
  .bk-f input:focus,.bk-f textarea:focus{outline:none;border-color:var(--rose,#ee1665);background:var(--ink,#131017)}
  .bk-f small{min-height:0;font-size:12.5px;color:var(--rose-2,#ff5c8d);display:none}
  .bk-f.bad input{border-color:var(--rose-2,#ff5c8d)}
  .bk-f.bad small{display:block;animation:bkIn 260ms var(--ease-emph,ease-out) both}
  .bk-check{display:flex;align-items:center;gap:12px;font-size:14px;color:var(--dim,#b9b0b8);cursor:pointer}
  .bk-check input{appearance:none;width:20px;height:20px;border:1px solid rgba(237,233,236,.3);display:grid;place-items:center;margin:0;transition:background 180ms,border-color 180ms}
  .bk-check input:checked{background:var(--rose,#ee1665);border-color:var(--rose,#ee1665)}
  .bk-check input:checked::after{content:"";width:9px;height:5px;border:solid #fff;border-width:0 0 1.6px 1.6px;transform:translateY(-1px) rotate(-45deg)}
  .bk-done{width:72px;height:72px;display:grid;place-items:center;background:var(--rose,#ee1665);color:#fff;margin-bottom:26px;animation:bkPop 620ms var(--spring,ease-out) both}
  .bk-done path{stroke-dasharray:30;stroke-dashoffset:30;animation:bkDraw 520ms var(--ease-emph,ease-out) 260ms forwards}
  @keyframes bkPop{from{transform:scale(.4);opacity:0}}
  @keyframes bkDraw{to{stroke-dashoffset:0}}
  .bk-recap{margin:26px 0 0;border-top:1px solid rgba(237,233,236,.12)}
  .bk-recap div{display:flex;justify-content:space-between;gap:16px;padding:15px 0;border-bottom:1px solid rgba(237,233,236,.10);font-size:14px}
  .bk-recap dt{color:var(--dim,#b9b0b8)} .bk-recap dd{margin:0;color:var(--bone,#ede9ec);text-align:right}
  .bk-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:18px clamp(24px,3.4vw,52px);border-top:1px solid rgba(237,233,236,.10)}
  .bk-btn{display:inline-flex;align-items:center;gap:10px;height:50px;padding:0 24px;font-size:14px;font-weight:500;border:1px solid rgba(237,233,236,.2);color:var(--bone,#ede9ec);
    transition:background 220ms var(--ease-std,ease),border-color 220ms,color 220ms,opacity 220ms,transform 320ms var(--spring,ease-out)}
  .bk-btn:hover{border-color:var(--rose,#ee1665)}
  .bk-btn:active{transform:translateY(1px) scale(.985);transition-duration:90ms}
  .bk-btn.go{margin-left:auto;background:var(--rose,#ee1665);border-color:var(--rose,#ee1665);color:#fff}
  .bk-btn.go:hover{background:#ff2a77}
  .bk-btn.go[aria-disabled="true"]{opacity:.38;cursor:not-allowed}
  .bk-btn svg{transition:transform 280ms var(--ease-emph,ease-out)}
  .bk-btn.go:not([aria-disabled="true"]):hover svg{transform:translate(3px,-3px)}
  .bk-btn[hidden]{display:none}
  @media (max-width:900px){
    .bk{padding:0}
    .bk-card{height:100dvh;grid-template-columns:1fr;grid-template-rows:auto minmax(0,1fr);border:0}
    .bk-side{padding:22px var(--pad,20px) 18px}
    .bk-side h2{font-size:24px;max-width:none;margin-bottom:6px}
    .bk-side > p,.bk-sum,.bk-eyebrow{display:none}
    .bk-grid,.bk-form{grid-template-columns:1fr}
    .bk-slots{grid-template-columns:repeat(3,minmax(0,1fr))}
    .bk-steps{padding-top:18px}
  }
  @media (prefers-reduced-motion:reduce){
    .bk-card,.bk-on .bk-card{transform:none}
    .bk-slot{animation:none;opacity:1;transform:none}
    .bk-done,.bk-done path{animation:none;stroke-dashoffset:0}
  }

/* ==========================================================
   LANGUAGES
   Geist, Outfit and JetBrains Mono have no Arabic or Devanagari,
   so those scripts are added to the same families by unicode-range
   (Noto Sans, SIL Open Font License) — every existing rule keeps working.
   ========================================================== */
@font-face{font-family:"Geist";font-weight:300 700;font-display:swap;src:url("../fonts/noto-sans-arabic.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+200C-200E,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:"Outfit";font-weight:300 700;font-display:swap;src:url("../fonts/noto-sans-arabic.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+200C-200E,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:"JetBrains Mono";font-weight:400 500;font-display:swap;src:url("../fonts/noto-sans-arabic.woff2") format("woff2");unicode-range:U+0600-06FF,U+0750-077F,U+0870-08FF,U+200C-200E,U+FB50-FDFF,U+FE70-FEFC}
@font-face{font-family:"Geist";font-weight:300 700;font-display:swap;src:url("../fonts/noto-sans-devanagari.woff2") format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20B9,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:"Outfit";font-weight:300 700;font-display:swap;src:url("../fonts/noto-sans-devanagari.woff2") format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20B9,U+A830-A839,U+A8E0-A8FF}
@font-face{font-family:"JetBrains Mono";font-weight:400 500;font-display:swap;src:url("../fonts/noto-sans-devanagari.woff2") format("woff2");unicode-range:U+0900-097F,U+1CD0-1CF9,U+200C-200D,U+20B9,U+A830-A839,U+A8E0-A8FF}

/* tracking pulls Arabic letters apart and breaks Devanagari conjuncts */
html[lang="ar"] body :is(*,*::before,*::after),html[lang="hi"] body :is(*,*::before,*::after){letter-spacing:0 !important}
/* Devanagari vowel marks sit above the headline bar; tight display leading clips them */
html[lang="hi"] :is(h1,h2){line-height:1.22}

/* ---------- right-to-left (Arabic) ----------
   Grid and flex rows mirror on their own; these are the rules written
   with physical left/right, plus artwork and arrows that point a way. */

/* counters and codes stay "01 / 04" inside right-to-left text */
[dir="rtl"] :is(#pracNo,.hero-ctl .idx,.prog-top,.step-head .no,.field .count,.prac-btn .code,.tn,.row .date,.tl .yr,.fig b,.case-figs b,.m-col h3 .mono,#ref,.bk-slot,.bk-opt em,.bk-chip small){direction:ltr;unicode-bidi:isolate}

/* arrows point the way the page reads */
[dir="rtl"] svg[viewBox="0 0 16 12"],[dir="rtl"] svg.ext,[dir="rtl"] .bk-btn svg{scale:-1 1}
[dir="rtl"] .f-grid .arw{display:inline-block;scale:-1 1}

/* hero: the artwork moves to the left, the copy reads from the right */
/* the hero breaks out of the 1480px shell; in RTL an over-wide box ignores margin-left
   and anchors to the right, so the breakout margin has to sit on the right instead */
[dir="rtl"] .hero{margin-left:0;margin-right:calc(50% - 50vw)}
[dir="rtl"] #neb{scale:-1 1}
[dir="rtl"] .hero::before{background:
  linear-gradient(180deg,rgba(10,2,16,.62) 0%,rgba(10,2,16,0) calc(var(--nav) + 40px)),
  linear-gradient(270deg,#0a0210 0%,rgba(10,2,16,.94) 24%,rgba(10,2,16,.58) 44%,rgba(10,2,16,0) 66%)}
[dir="rtl"] .hero-ctl{right:auto;left:max(var(--pad),calc(50% - 700px + var(--pad)))}
[dir="rtl"] .hp{margin-right:0;margin-left:4px}

/* EPMS band: the module artwork sits opposite the copy */
[dir="rtl"] .ind-bg img{right:auto;left:0;-webkit-mask-image:linear-gradient(270deg,transparent 0%,rgba(0,0,0,.55) 18%,#000 42%);mask-image:linear-gradient(270deg,transparent 0%,rgba(0,0,0,.55) 18%,#000 42%)}
[dir="rtl"] .ind-bg::after{background:linear-gradient(265deg,var(--ink) 4%,rgba(19,16,23,.82) 30%,rgba(19,16,23,.28) 58%,rgba(238,22,101,.12) 100%)}
[dir="rtl"] .strip-arrow.back{border-right:0;border-left:1px solid var(--hair)}
[dir="rtl"] .strip-arrow.fwd{border-left:0;border-right:1px solid var(--hair)}
[dir="rtl"] .tab{border-right:0;border-left:1px solid var(--hair)}
[dir="rtl"] .tab:last-child{border-left:0}

/* nav: menus open from the left edge of their trigger */
[dir="rtl"] .utils{margin-left:0;margin-right:12px}
[dir="rtl"] .burger{margin-left:0;margin-right:auto}
[dir="rtl"] .search-panel,[dir="rtl"] .lang-menu{right:auto;left:0;transform-origin:top left}
[dir="rtl"] .ext{margin-left:0;margin-right:7px}
[dir="rtl"] .m-list a{transition:color 280ms var(--e),padding-right 280ms var(--e)}
[dir="rtl"] .m-list a:hover,[dir="rtl"] .m-list a[data-live="1"]{padding-left:0;padding-right:9px}
[dir="rtl"] .m-prev{border-left:0;border-right:1px solid var(--hair);padding-left:0;padding-right:28px}
@media (min-width:1141px){
  [dir="rtl"] #megaIn .m-prev{border-left:0;border-right:1px solid var(--hair);padding:0 22px 0 0}
  [dir="rtl"] #megaIn .m-list a{transition:color 220ms var(--ease-std,ease),padding-right 420ms var(--ease-emph,ease-out)}
  [dir="rtl"] #megaIn .m-list a::before{left:auto;right:0}
  [dir="rtl"] #megaIn .m-list a:hover,[dir="rtl"] #megaIn .m-list a[data-live="1"]{padding-left:0;padding-right:16px}
}

/* lists and rows that nudge on hover */
[dir="rtl"] .prac-btn,[dir="rtl"] .tile,[dir="rtl"] .bk-opt{text-align:right}
[dir="rtl"] .row,[dir="rtl"] .lead-row{transition:padding-right 280ms var(--e)}
[dir="rtl"] .row:hover,[dir="rtl"] .lead-row:hover{padding-left:0;padding-right:10px}
[dir="rtl"] .ticker span{padding-right:0;padding-left:32px}

/* how we work: the timeline rail runs down the right */
[dir="rtl"] .tl-rail{left:auto;right:5px}
[dir="rtl"] .step .node{left:auto;right:0}
[dir="rtl"] .step{padding-left:0;padding-right:clamp(30px,3.4vw,46px)}
[dir="rtl"] .prog-bars i::after{transform-origin:right}

/* columns divided by a rule */
[dir="rtl"] .fig + .fig,[dir="rtl"] .office + .office{padding-left:0;padding-right:26px;border-left:0;border-right:1px solid var(--hair)}
[dir="rtl"] .page-aside{border-left:0;border-right:1px solid var(--hair);padding-left:0;padding-right:24px}
[dir="rtl"] .form-wrap{border-right:0;border-left:1px solid var(--hair);padding:clamp(40px,6vh,72px) var(--pad) clamp(46px,7vh,80px) clamp(34px,5vw,68px)}

/* small marks next to labels */
[dir="rtl"] :is(.office h4,.desk-cta,[data-callback].btn,.bk-sum dt)::before{margin-right:0;margin-left:8px}
[dir="rtl"] .field label i{margin-left:0;margin-right:4px}
[dir="rtl"] .field .count{text-align:left}
[dir="rtl"] .more-toggle em{margin-left:0;margin-right:auto}
[dir="rtl"] .field select{background-position:left 15px center;padding-left:40px;padding-right:15px}
[dir="rtl"] .close{right:auto;left:18px}
[dir="rtl"] .dialog{right:auto;left:var(--pad)}
[dir="rtl"] .bk-sum dd,[dir="rtl"] .bk-recap dd{text-align:left}
[dir="rtl"] .bk-btn.go{margin-left:0;margin-right:auto}

@media (max-width:980px){
  [dir="rtl"] .hero::before{background:linear-gradient(180deg,rgba(10,2,16,.9) 0%,rgba(10,2,16,.66) 42%,rgba(10,2,16,.92) 100%)}
  [dir="rtl"] .hero-ctl{left:var(--pad)}
  [dir="rtl"] .ind-bg img{-webkit-mask-image:none;mask-image:none}
  [dir="rtl"] .step{padding-right:28px}
  [dir="rtl"] .fig + .fig,[dir="rtl"] .office + .office{padding-right:0;border-right:0}
  [dir="rtl"] .page-aside{border-right:0;padding:22px 0 0}
  [dir="rtl"] .form-wrap{border-left:0;padding:44px var(--pad) 50px}
}
@media (max-width:1140px){ [dir="rtl"] .dialog{right:var(--pad)} }
