/* ============================================================
   MIDAS — Brutalist Grid  ·  cream / ink / vermillion
   Ported verbatim from the Midas prototype (reference/index.html).
   ============================================================ */

/* ---- WordPress block normalization ---- */
.wp-site-blocks { padding: 0 !important; }
.wp-site-blocks > .is-layout-flow > * + * { margin-block-start: 0; }
.wp-block-group, .wp-block-cover, .wp-block-columns { margin: 0; }
.wp-block-post-content > * + * { margin-block-start: 0; }
.entry-content > * + * { margin-block-start: 0; }
body.wp-admin { overflow: visible; }

:root{
  --bg:#ede6d6;
  --paper:#f7f1e1;
  --ink:#131210;
  --ink-dim:rgba(19,18,16,.55);
  --line:rgba(19,18,16,.20);
  --line-d:rgba(247,241,225,.20);
  --paper-dim:rgba(247,241,225,.55);
  --red:#d83f24;
  --warm:#c89a5e;
  --col-pad:clamp(20px,3.3vw,48px);
  --nav-h:72px;
  --ease:cubic-bezier(.2,.7,.2,1);
}

*{box-sizing:border-box;margin:0;padding:0;}

html{-webkit-text-size-adjust:100%;}
html.lenis,html.lenis body{height:auto;}
.lenis.lenis-smooth{scroll-behavior:auto!important;}
.lenis.lenis-stopped{overflow:hidden;}

body{
  background:var(--bg);
  color:var(--ink);
  font-family:"Archivo",-apple-system,BlinkMacSystemFont,sans-serif;
  font-size:15px;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
  overflow-x:hidden;
}

a{color:inherit;text-decoration:none;}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit;}
ul{list-style:none;}
::selection{background:var(--red);color:var(--paper);}
:focus-visible{outline:2px solid var(--red);outline-offset:2px;}

/* ---- type primitives ---- */
.mono{
  font-family:"IBM Plex Mono",monospace;font-weight:400;
  font-size:11px;letter-spacing:.14em;text-transform:uppercase;line-height:1.5;
}
.serif{font-family:"Instrument Serif",Georgia,serif;font-style:italic;font-weight:400;}
.red{color:var(--red);}

.display{
  font-family:"Archivo",sans-serif;font-weight:800;
  text-transform:uppercase;line-height:.92;letter-spacing:-.04em;
}
.display .serif{
  text-transform:none;letter-spacing:-.02em;font-weight:400;
  font-size:1.05em;
}

/* ============================================================
   GRID PRIMITIVES — hairlines via 1px gap
   ============================================================ */
.band{border-top:1px solid var(--ink);position:relative;}
.hero{border-top:none;}
.grid{display:grid;gap:1px;background:var(--line);}
.grid.on-dark{background:var(--line-d);}
.cell{
  background:var(--bg);
  padding:clamp(26px,3.4vw,40px) var(--col-pad);
  display:flex;flex-direction:column;justify-content:center;
}
.band.dark{background:var(--ink);color:var(--paper);border-top-color:var(--ink);}
.band.dark .cell{background:var(--ink);}
.band.red{background:var(--red);color:var(--paper);border-top-color:var(--ink);}
.band.red .cell{background:var(--red);}
.band.red .grid{background:rgba(247,241,225,.22);}
.band.red .sec-label .mono{color:rgba(247,241,225,.78);}
.band.red .sec-label .sq{background:var(--ink);}
.band.red .red{color:var(--ink);}
.band.red .proj-lede p{color:var(--paper);}
.band.red .proj-cta{color:var(--paper);}
.band.red .proj-cta::after{background:var(--ink);}
.band.red .stamp-text{fill:var(--paper);}
.band.red .stamp::before,.band.red .stamp::after{border-color:rgba(247,241,225,.28);}
.band.red .stamp-mark{color:var(--ink);}
.band.red .stamp-dot{background:var(--ink);}

/* ============================================================
   NAV
   ============================================================ */
.nav{
  position:fixed;top:0;left:0;right:0;z-index:1000;
  border-bottom:1px solid var(--ink);background:var(--bg);
}
.nav-grid{
  display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr 1.5fr;
  gap:1px;background:var(--line);
}
.nav-cell{
  background:var(--bg);min-height:var(--nav-h);
  display:flex;align-items:center;justify-content:center;
  padding:0 18px;transition:background .25s var(--ease),color .25s var(--ease);
}
.nav-logo{justify-content:flex-start;gap:11px;padding-left:var(--col-pad);}
.logo-sq{width:17px;height:17px;background:var(--red);flex:none;}
.logo-word{font-weight:800;font-size:22px;letter-spacing:-.04em;}
.nav-link{
  font-family:"IBM Plex Mono",monospace;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;
}
.nav-link:hover,.nav-link.active{background:var(--ink);color:var(--paper);}
.nav-cta{
  background:var(--red);color:var(--paper);gap:.6rem;
  font-family:"IBM Plex Mono",monospace;font-size:11px;
  letter-spacing:.12em;text-transform:uppercase;font-weight:500;
}
.nav-cta:hover{background:var(--ink);}
.nav-cta .x{transition:transform .3s var(--ease);}
.nav-cta:hover .x{transform:translateX(4px);}
.cta-inner{display:inline-flex;align-items:center;gap:.55rem;will-change:transform;}
.nav-burger{display:none;background:var(--bg);align-items:center;justify-content:center;}
.burger-box{display:flex;flex-direction:column;gap:5px;width:24px;}
.burger-box span{height:2px;background:var(--ink);transition:.3s var(--ease);}
.nav-burger.open .burger-box span:nth-child(1){transform:translateY(7px) rotate(45deg);}
.nav-burger.open .burger-box span:nth-child(2){opacity:0;}
.nav-burger.open .burger-box span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}

.mobile-menu{
  position:fixed;inset:0;z-index:999;background:var(--ink);color:var(--paper);
  display:flex;flex-direction:column;justify-content:center;
  padding:var(--nav-h) var(--col-pad) 40px;
  opacity:0;visibility:hidden;transition:opacity .35s var(--ease),visibility .35s;
}
.mobile-menu.open{opacity:1;visibility:visible;}
.mobile-menu a{
  font-weight:800;text-transform:uppercase;font-size:13vw;letter-spacing:-.04em;
  line-height:1.15;padding:.12em 0;border-bottom:1px solid var(--line-d);
  display:flex;justify-content:space-between;align-items:center;
}
.mobile-menu a .mn{font-family:"IBM Plex Mono",monospace;font-size:13px;color:var(--red);letter-spacing:.1em;}
.mobile-menu .mm-cta{color:var(--red);border-bottom:none;}

/* ============================================================
   HERO
   ============================================================ */
.hero{padding-top:var(--nav-h);overflow:hidden;}
.hero-top{grid-template-columns:repeat(3,1fr);}
.hero-top .cell{padding-block:18px;}
.hero-top .mono{color:var(--ink-dim);}
.hero-top .stat-bullet{display:inline-flex;align-items:center;gap:.5rem;color:var(--ink);}
.hero-top .dot{width:8px;height:8px;background:var(--red);border-radius:50%;display:inline-block;}
.hero-top .dot.dot-green{background:#1e9e4a;}
.hero-top .dot.dot-blink{animation:blink 1.5s ease-in-out infinite;}
@keyframes blink{0%,100%{opacity:1;}50%{opacity:.18;}}

.hero-headline-wrap{
  position:relative;padding:clamp(34px,5vw,68px) var(--col-pad) clamp(30px,4vw,56px);
  border-top:1px solid var(--line);overflow:hidden;
}
.hero-bg-m{
  position:absolute;right:-.06em;bottom:-.34em;z-index:0;pointer-events:none;
  font-family:"Instrument Serif",serif;font-style:italic;
  font-size:38vw;line-height:.7;color:var(--red);opacity:.13;
  will-change:transform;
}
.hero-headline{position:relative;z-index:1;}
.hl-line{display:block;overflow:hidden;}
.hl-line .hl-inner{
  display:block;font-family:"Archivo",sans-serif;font-weight:800;
  text-transform:uppercase;line-height:.93;letter-spacing:-.045em;
  font-size:clamp(52px,12vw,172px);
  transform:translateY(110%);
}
.loaded .hl-line .hl-inner{transform:translateY(0);transition:transform 1s var(--ease);}
.loaded .hl-line:nth-child(2) .hl-inner{transition-delay:.08s;}
.loaded .hl-line:nth-child(3) .hl-inner{transition-delay:.16s;}
.loaded .hl-line:nth-child(4) .hl-inner{transition-delay:.24s;}
.hl-inner .serif{
  text-transform:none;font-weight:400;letter-spacing:-.02em;font-size:1.04em;
}
.hl-inner .red{color:var(--red);}

/* wild hover — REAL → GOLD letter swap */
.flip-word{display:inline-block;cursor:default;line-height:1;}
.ltr{
  display:inline-grid;grid-template-areas:"a";
  overflow:hidden;vertical-align:baseline;line-height:.92;
  /* breathing room so A's peak and S/O overshoot aren't clipped at huge sizes */
  padding:.14em 0 .06em;margin:-.14em 0 -.06em;
}
.ltr .t{
  grid-area:a;display:flex;justify-content:center;align-items:flex-start;
  /* center each letter inside its cell so the extra width (when the alt letter is
     wider, e.g. O behind E, D behind L) is split symmetrically left/right rather
     than dumped on one side — keeps both REAL and GOLD visually balanced. */
  transition:transform .55s cubic-bezier(.5,1.55,.4,1),opacity .35s ease;
  will-change:transform,opacity;
}
.ltr:nth-child(2) .t{transition-delay:.07s;}
.ltr:nth-child(3) .t{transition-delay:.14s;}
.ltr:nth-child(4) .t{transition-delay:.21s;}
.ltr .t.alt{
  transform:translateY(100%) rotate(-14deg) scale(.85);opacity:0;
  background:linear-gradient(135deg,#f5cb5c 0%,#b87f1f 50%,#f5cb5c 100%);
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.flip-word:hover .ltr .t:not(.alt){transform:translateY(-115%) rotate(14deg) scale(.85);opacity:0;}
.flip-word:hover .ltr .t.alt{transform:translateY(0) rotate(0deg) scale(1);opacity:1;}

.hero-bot{grid-template-columns:5fr 3fr 4fr;border-top:1px solid var(--line);}
.hero-desc p{font-size:clamp(15px,1.15vw,17px);max-width:34ch;}
.hero-desc .serif{font-size:1.18em;}
.hero-spec .mono{color:var(--ink-dim);margin-bottom:.9rem;}
.hero-spec ul li{
  font-weight:600;font-size:16px;padding:.32rem 0;
  border-bottom:1px solid var(--line);
}
.hero-spec ul li:last-child{border-bottom:none;}
.hero-cta{
  background:var(--ink);color:var(--paper);
  justify-content:space-between;gap:1.6rem;
  position:relative;overflow:hidden;isolation:isolate;
}
.hero-cta::before{
  content:"";position:absolute;inset:0;background:var(--red);
  transform:translateX(-101%);
  transition:transform .65s cubic-bezier(.55,.05,.2,1);
  z-index:-1;
}
.hero-cta:hover::before{transform:translateX(0);}
.hero-cta .mono{color:var(--paper-dim);transition:color .4s ease;}
.hero-cta .cta-big{
  font-weight:700;font-size:clamp(22px,2.3vw,32px);letter-spacing:-.03em;
  display:flex;align-items:center;gap:.5rem;line-height:1.05;margin-top:1.3rem;
  transition:transform .5s cubic-bezier(.2,.7,.2,1);
}
.hero-cta:hover .cta-big{transform:translateY(-2px);}
.hero-cta .cta-arr{transition:transform .55s cubic-bezier(.2,.7,.2,1);display:inline-block;}
.hero-cta:hover .cta-arr{transform:rotate(-45deg) translate(1px,-1px);}

/* ============================================================
   TICKER
   ============================================================ */
.ticker{
  background:var(--ink);color:var(--paper);overflow:hidden;
  border-top:1px solid var(--ink);padding-block:17px;white-space:nowrap;
}
.ticker-track{display:inline-flex;animation:scroll 38s linear infinite;}
.ticker:hover .ticker-track{animation-play-state:paused;}
.ticker-item{
  font-family:"IBM Plex Mono",monospace;font-size:13px;
  letter-spacing:.14em;text-transform:uppercase;
  padding:0 0;display:inline-flex;align-items:center;
}
.ticker-item::before{content:"\25CF";color:var(--red);margin:0 26px;font-size:9px;}
@keyframes scroll{to{transform:translateX(-50%);}}

/* ============================================================
   SECTION HEAD
   ============================================================ */
.sec-head{grid-template-columns:2fr 10fr;border-bottom:1px solid var(--ink);}
.sec-label{flex-direction:row;align-items:flex-start;justify-content:flex-start;gap:.6rem;}
.sec-label .sq{width:9px;height:9px;background:var(--red);}
.sec-label .mono{color:var(--ink-dim);}
.band.dark .sec-label .mono{color:var(--paper-dim);}
.sec-title{
  padding-block:clamp(34px,5vw,72px);
}
.sec-title h2{
  font-weight:800;text-transform:uppercase;line-height:.95;letter-spacing:-.04em;
  font-size:clamp(42px,6.6vw,104px);
}
.sec-title h2 .serif{text-transform:none;font-weight:400;letter-spacing:-.02em;font-size:1.06em;}

/* ============================================================
   SERVICES
   ============================================================ */
.svc-row{
  grid-template-columns:88px 2.2fr 3fr 1fr 78px;
  position:relative;border-top:1px solid var(--line);
}
.svc-row::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--red);transform:scaleY(0);transform-origin:top;z-index:5;
  transition:transform .3s var(--ease);
}
.svc-row:hover::before{transform:scaleY(1);}
.svc-row:hover .cell{background:var(--paper);}
.svc-row .cell{transition:background .25s var(--ease);}
.svc-num{font-family:"IBM Plex Mono",monospace;font-size:12px;color:var(--red);align-items:flex-start;}
.svc-name{
  font-weight:700;font-size:clamp(24px,2.7vw,40px);
  letter-spacing:-.03em;line-height:1;text-transform:uppercase;
}
.svc-name .serif{text-transform:none;font-weight:400;font-size:1.08em;letter-spacing:-.01em;}
.svc-desc{font-size:14.5px;color:var(--ink-dim);max-width:42ch;}
.svc-deliv{
  font-family:"IBM Plex Mono",monospace;font-size:11px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-dim);line-height:1.8;
}
.svc-arrow{align-items:flex-end;font-size:22px;}
.svc-arrow .a{display:inline-block;transition:transform .3s var(--ease),color .3s var(--ease);}
.svc-row:hover .svc-arrow .a{transform:translate(5px,-5px) rotate(-45deg);color:var(--red);}

/* ============================================================
   WORK
   ============================================================ */
.work-grid{grid-template-columns:1fr 1fr;}
.work-card{
  background:var(--bg);padding:clamp(22px,2.6vw,34px) var(--col-pad);
  transition:background .3s var(--ease);
}
.work-card:hover{background:var(--paper);}
.work-meta{display:flex;justify-content:space-between;}
.work-meta .mono{color:var(--ink-dim);}
.work-thumb{
  margin-top:1.3rem;aspect-ratio:16/10;background:var(--ink);
  position:relative;overflow:hidden;
  background-image:repeating-linear-gradient(45deg,rgba(247,241,225,.055) 0 1px,transparent 1px 10px);
}
.work-thumb.thumb-warm{background-color:var(--warm);}
.work-thumb .tlabel{
  position:absolute;top:14px;left:14px;z-index:3;
  font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.1em;
  text-transform:uppercase;color:var(--paper-dim);
}
.work-thumb.thumb-warm .tlabel{color:rgba(19,18,16,.5);}
.shape-wrap{
  position:absolute;inset:0;display:flex;align-items:center;justify-content:center;
  transition:transform .8s var(--ease);
}
.work-card:hover .shape-wrap{transform:scale(1.08) rotate(-2deg);}
.shape.glow{position:absolute;inset:0;background:radial-gradient(circle at 58% 48%,rgba(216,63,36,.95),rgba(216,63,36,0) 60%);}
.shape.circle{width:46%;aspect-ratio:1;border-radius:50%;background:var(--ink);}
.shape.ring{width:54%;aspect-ratio:1;border:2px solid var(--paper);border-radius:50%;}
.shape.square{width:42%;aspect-ratio:1;background:var(--red);transform:rotate(12deg);}
.work-foot{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem;margin-top:1.4rem;}
.work-title{
  font-weight:800;text-transform:uppercase;letter-spacing:-.04em;line-height:.88;
  font-size:clamp(30px,3.5vw,52px);
}
.work-title .serif{text-transform:none;font-weight:400;font-size:1.1em;letter-spacing:-.02em;}
.work-tags{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:.7rem;}
.work-arrow{font-size:24px;}
.work-arrow .a{display:inline-block;transition:transform .35s var(--ease),color .35s var(--ease);}
.work-card:hover .work-arrow .a{transform:rotate(-45deg);color:var(--red);}

/* ============================================================
   TEAM
   ============================================================ */
.team-grid{grid-template-columns:repeat(2,1fr);}
.team-cell{min-height:200px;position:relative;transition:background .25s var(--ease);}
.team-cell::before{
  content:"";position:absolute;top:0;left:0;right:0;height:4px;
  background:var(--red);transform:scaleY(0);transform-origin:top;z-index:5;
  transition:transform .3s var(--ease);
}
.team-cell:hover::before{transform:scaleY(1);}
.team-cell:hover{background:var(--paper);}
.tm-num{font-family:"IBM Plex Mono",monospace;font-size:11px;color:var(--red);letter-spacing:.1em;}
.tm-name{
  font-weight:800;text-transform:uppercase;letter-spacing:-.03em;line-height:.95;
  font-size:clamp(22px,2vw,30px);margin-top:auto;
}
.tm-name .serif{text-transform:none;font-weight:400;font-size:1.12em;}
.tm-role{font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-dim);margin-top:.7rem;}
.team-join{background:var(--red);color:var(--paper);transition:background .25s var(--ease);}
.team-join:hover{background:var(--ink);}
.team-join .tm-num{color:var(--paper);}
.team-join .tm-role{color:var(--paper-dim);}

/* link variant — show a small NE arrow at top-right that animates on hover */
a.team-cell{text-decoration:none;color:inherit;}
.tm-arrow{
  position:absolute;top:clamp(18px,2vw,28px);right:clamp(18px,2vw,28px);
  font-size:18px;color:var(--ink-dim);
  transition:transform .35s var(--ease),color .35s var(--ease);
}
a.team-cell:hover .tm-arrow{transform:rotate(-45deg);color:var(--red);}

/* ============================================================
   PROJECTS (red band — manifesto + button + FOMO)
   ============================================================ */
.proj-intro{grid-template-columns:7fr 5fr;}
.proj-lede p{
  font-family:"Instrument Serif",serif;font-style:italic;
  font-size:clamp(20px,2.3vw,32px);line-height:1.24;
}
.proj-cta-cell{
  display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  gap:1.3rem;padding:clamp(32px,3.6vw,56px) var(--col-pad);
}
.proj-cta-eyebrow,.proj-cta-meta{
  font-family:"IBM Plex Mono",monospace;font-size:11px;font-weight:500;
  text-transform:uppercase;letter-spacing:.14em;
  color:rgba(247,241,225,.82);
}
.proj-cta-meta{display:flex;align-items:center;gap:.9rem;flex-wrap:wrap;}
.proj-cta-dot{display:inline-block;width:4px;height:4px;background:var(--ink);}
.proj-button{
  display:inline-flex;align-items:center;justify-content:space-between;gap:1.4rem;
  background:var(--ink);color:var(--paper);
  padding:1.4rem 1.7rem;min-width:min(320px,100%);max-width:100%;
  font-family:"Archivo",sans-serif;font-weight:800;
  font-size:clamp(22px,2.4vw,34px);text-transform:uppercase;letter-spacing:-.025em;line-height:1;
  border:2px solid var(--ink);cursor:pointer;
  transition:background .3s var(--ease),color .3s var(--ease),transform .14s ease,border-color .3s var(--ease);
}
.proj-button:hover{background:var(--paper);color:var(--ink);border-color:var(--paper);}
.proj-button:active{transform:translateY(2px);}
.proj-button .pb-arr{display:inline-block;transition:transform .4s var(--ease);}
.proj-button:hover .pb-arr{transform:rotate(-45deg) scale(1.1);}
@media (max-width:540px){
  .proj-button{min-width:0;width:100%;font-size:20px;padding:1.2rem 1.3rem;}
}

@media (max-width:1080px){
  .proj-intro{grid-template-columns:1fr;}
}

/* ============================================================
   ENTERPRISE / EQUITY
   ============================================================ */
.ent{grid-template-columns:7fr 5fr;}
.ent-left{background:var(--ink);color:var(--paper);}
.ent-left .mono{color:var(--paper-dim);display:flex;align-items:center;gap:.6rem;}
.ent-left .mono .sq{width:8px;height:8px;background:var(--red);display:inline-block;}
.ent-left h2{
  font-weight:800;text-transform:uppercase;letter-spacing:-.04em;line-height:.95;
  font-size:clamp(38px,5vw,82px);margin-top:1.3rem;
}
.ent-left h2 .serif{text-transform:none;font-weight:400;font-size:1.06em;}
.ent-left p{
  font-family:"Instrument Serif",serif;font-style:italic;
  font-size:clamp(18px,1.8vw,25px);line-height:1.32;margin-top:0;max-width:40ch;
}
.ent-right{background:var(--red);color:var(--paper);gap:0;padding:0;}
.ent-r-top{padding:clamp(26px,3vw,40px) var(--col-pad);}
.ent-bigarrow{font-size:clamp(48px,6vw,82px);line-height:1;}
.ent-pitch{
  display:flex;align-items:center;justify-content:space-between;
  margin-top:clamp(28px,4vw,60px);
  font-weight:800;text-transform:uppercase;font-size:clamp(26px,3vw,40px);letter-spacing:-.03em;
}
.ent-pitch .ep-arr{transition:transform .35s var(--ease);display:inline-block;}
.ent-right:hover .ent-pitch .ep-arr{transform:translate(4px,-4px);}
.ent-terms{display:grid;grid-template-columns:1fr 1fr;gap:1px;background:var(--line-d);border-top:1px solid var(--line-d);}
.ent-term{background:var(--red);padding:clamp(22px,2.6vw,32px) var(--col-pad);}
.ent-term .mono{color:rgba(247,241,225,.7);}
.ent-term .et-v{font-family:"Instrument Serif",serif;font-style:italic;font-size:clamp(20px,2vw,27px);line-height:1.15;margin-top:.7rem;}

/* ============================================================
   FOOTER
   ============================================================ */
.footer{background:var(--bg);}
.footer-huge{padding:clamp(44px,7vw,116px) var(--col-pad) clamp(28px,4vw,56px);}
.footer-huge h2{
  font-weight:800;text-transform:uppercase;letter-spacing:-.055em;line-height:.82;
  font-size:clamp(64px,15vw,250px);
}
.footer-huge h2 .serif{text-transform:none;font-weight:400;letter-spacing:-.02em;font-size:1.04em;}
.footer-huge h2 .red{color:var(--red);}

/* footer h2 — word-stagger entry with one-shot gold foil sweep on GOLD */
.footer-h2.reveal{opacity:1;transform:none;transition:none;}
.footer-h2 .fw{
  display:inline-block;overflow:hidden;vertical-align:bottom;
  line-height:.82;
  /* extra clip-box headroom for round-letter overshoot (S/O/G/C) at footer-size type */
  padding:.18em 0 .12em;margin-top:-.18em;margin-bottom:-.12em;
}
.footer-h2 .fwi{
  display:inline-block;
  transform:translateY(110%) rotate(var(--r,8deg));opacity:0;
  transition:transform 1.05s cubic-bezier(.2,.85,.3,1.18),opacity .55s ease;
  will-change:transform,opacity;
}
.footer-h2 .fw:nth-child(1){--r:-6deg;}
.footer-h2 .fw:nth-child(2){--r:9deg;}
.footer-h2 .fw:nth-child(3){--r:-14deg;}
.footer-h2 .fw:nth-child(4){--r:7deg;}
.footer-h2.in .fwi{transform:translateY(0) rotate(0deg);opacity:1;}
.footer-h2.in .fw:nth-child(2) .fwi{transition-delay:.14s;}
.footer-h2.in .fw:nth-child(3) .fwi{transition-delay:.28s;}
.footer-h2.in .fw:nth-child(4) .fwi{transition-delay:.42s;}

.fwi.gold-text{
  background:linear-gradient(105deg,
    var(--red) 0%, var(--red) 35%,
    #f5cb5c 47%, #ffd866 50%, #b87f1f 53%, #f5cb5c 56%,
    var(--red) 65%, var(--red) 100%);
  background-size:300% 100%;background-position:100% 0;
  -webkit-background-clip:text;background-clip:text;
  color:transparent;-webkit-text-fill-color:transparent;
}
.footer-h2.in .fwi.gold-text{
  animation:gold-shine 1.5s cubic-bezier(.4,.05,.2,.95) 1s 1 forwards;
}
@keyframes gold-shine{from{background-position:100% 0;}to{background-position:0% 0;}}

@media (prefers-reduced-motion:reduce){
  .footer-h2 .fwi{transform:none!important;opacity:1!important;}
  .footer-h2.in .fwi.gold-text{animation:none!important;}
}
.footer-cols{grid-template-columns:repeat(4,1fr);}
.footer-col h4{
  font-family:"IBM Plex Mono",monospace;font-size:10px;letter-spacing:.13em;
  text-transform:uppercase;color:var(--red);margin-bottom:1.1rem;
}
.footer-col a{display:block;padding:.3rem 0;font-size:14.5px;color:var(--ink-dim);transition:color .2s var(--ease);}
.footer-col a:hover{color:var(--ink);}
.footer-bot{grid-template-columns:1fr;}
.footer-bot .mono{color:var(--ink-dim);}
.footer-bot .fb-right{text-align:right;}

/* ============================================================
   REVEAL
   ============================================================ */
.reveal{opacity:0;transform:translateY(38px);transition:opacity .9s var(--ease),transform .9s var(--ease);}
.reveal.in{opacity:1;transform:none;}

/* ============================================================
   ARROW (SVG) — geometric replacement for the text glyph
   ============================================================ */
.arr-ne{
  display:inline-block;vertical-align:-0.12em;
  width:1em;height:1em;
}
.svc-arrow .a,.work-arrow .a,.cta-arr,.pb-arr,.ep-arr{display:inline-flex;align-items:center;justify-content:center;}
.svc-arrow .arr-ne{width:1.05em;height:1.05em;}
.work-arrow .arr-ne{width:1em;height:1em;}

/* ============================================================
   DARK BAND BORDERS — promote ink hairlines to paper-dim so they
   actually show against the ink background (section 05 / equity).
   ============================================================ */
.band.dark .sec-head{border-bottom-color:var(--line-d);}
.band.dark .sec-label{border-right:1px solid var(--line-d);}
.band.dark .ent{border-top:1px solid var(--line-d);}
.band.dark .ent-left{border-right:1px solid var(--line-d);}
.band.dark .ent-terms{border-top:1px solid var(--line-d);background:var(--line-d);}
.band.dark .ent-term{border-right:1px solid var(--line-d);}
.band.dark .ent-term:last-child{border-right:none;}
@media (max-width:860px){
  .band.dark .ent-left{border-right:none;border-bottom:1px solid var(--line-d);}
  .band.dark .sec-label{border-right:none;border-bottom:1px solid var(--line-d);}
}

/* ============================================================
   RESPONSIVE
   ============================================================ */
@media (max-width:1080px){
  .hero-bot{grid-template-columns:1fr 1fr;}
  .hero-cta{grid-column:1/-1;}
  .svc-row{grid-template-columns:70px 1.4fr 2fr 64px;}
  .svc-deliv{display:none;}
  .team-grid{grid-template-columns:repeat(2,1fr);}
}
@media (max-width:860px){
  .nav-grid{grid-template-columns:1fr auto;}
  .nav-link,.nav-cta{display:none;}
  .nav-burger{display:flex;padding:0 20px;}
  .hero-bot{grid-template-columns:1fr;}

  /* Section heads stack — keep them left-aligned (h2 default is text-align:start
     but explicit here so they read flush-left at the chosen col-pad). */
  .sec-head{grid-template-columns:1fr;}
  .sec-label,.sec-title{align-items:flex-start;}
  .sec-title h2{text-align:left;}

  /* Services rows on mobile — single-column vertical stack so num / name / desc
     don't fight for grid tracks. Hide arrow + deliv as before. */
  .svc-row{grid-template-columns:1fr;gap:0;background:transparent;}
  .svc-row .cell{padding-block:10px;}
  .svc-num{padding-top:clamp(20px,3vw,28px);}
  .svc-name{padding-block:6px 4px;}
  /* Drop the desktop max-width so the cell fills the full row — otherwise the
     .grid background (line color) shows through on the right side as a grey strip. */
  .svc-desc{max-width:none;padding-bottom:clamp(20px,3vw,28px);}
  .svc-arrow{display:none;}

  .work-grid{grid-template-columns:1fr;}
  .ent{grid-template-columns:1fr;}
  .footer-cols{grid-template-columns:1fr 1fr;}
}
@media (max-width:540px){
  .hero-top{grid-template-columns:1fr;}
  .team-grid{grid-template-columns:1fr;}
  .footer-cols{grid-template-columns:1fr;}
  .footer-bot{grid-template-columns:1fr;}
  .footer-bot .fb-right{text-align:left;}
}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.001ms!important;animation-iteration-count:1!important;
    transition-duration:.001ms!important;
  }
  .reveal{opacity:1!important;transform:none!important;}
  .hl-line .hl-inner{transform:none!important;}
  .ticker-track{animation:none;}
}
