/* Geist (Vercel), self-hosted, SIL Open Font License 1.1 – see assets/fonts/OFL.txt */
@font-face{font-family:"Geist";src:url("../assets/fonts/Geist-Variable-latin.woff2") format("woff2");font-weight:100 900;font-style:normal;font-display:swap}
:root{
    --black:#000; --near:#0b0b0b; --paper:#f3f1ec; --ink:#000;
    --amber:#f9b233; --gold:#efbc21; --orange:#d84815;
    --grad:linear-gradient(100deg,#f9b233 0%,#efbc21 42%,#d84815 100%);
    --line-dk:#2a2a2a; --line-lt:#d4cfc5;
    --muted-lt:#9a958c; --muted-dk:#5c584f;
    /* cold states */
    --cold-dark:#514e48; --cold-paper:#a9a49a;
    --pad:clamp(20px,5vw,84px); --maxw:1560px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  body{font-family:"Geist",-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;background:var(--black);color:#fff;
    -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;font-feature-settings:"ss01","cv01";overflow-x:hidden}
  a{color:inherit;text-decoration:none}
  button{font-family:inherit;cursor:pointer;border:0;background:none;color:inherit}
  ::selection{background:var(--orange);color:#fff}
  :focus-visible{outline:2px solid var(--amber);outline-offset:3px}
  .wrap{max-width:var(--maxw);margin:0 auto;padding-left:var(--pad);padding-right:var(--pad)}
  img,video{display:block}

  /* ====== HEAT SYSTEM ====== */
  /* media / color blocks */
  .hm{filter:saturate(.10) brightness(.62) contrast(1.05);transition:filter 1.2s cubic-bezier(.2,.7,.2,1)}
  .hm.lit{filter:none}
  /* text on dark */
  .ht{color:var(--cold-dark);transition:color 1s cubic-bezier(.2,.7,.2,1)}
  .ht.lit{color:#fff}
  .ht-soft{color:#46443f;transition:color 1s cubic-bezier(.2,.7,.2,1)}
  .ht-soft.lit{color:#d7d3ca}
  .ht-mute{color:#3d3b37;transition:color 1s cubic-bezier(.2,.7,.2,1)}
  .ht-mute.lit{color:var(--muted-lt)}
  /* text on paper */
  .hp{color:var(--cold-paper);transition:color 1s cubic-bezier(.2,.7,.2,1)}
  .hp.lit{color:#000}
  .hp-body{color:#b5b0a6;transition:color 1s cubic-bezier(.2,.7,.2,1)}
  .hp-body.lit{color:#2f2c26}
  .hp-mute{color:#bdb8ae;transition:color 1s cubic-bezier(.2,.7,.2,1)}
  .hp-mute.lit{color:var(--muted-dk)}
  /* strokes */
  .hs{border-color:#1a1a1a!important;transition:border-color 1s ease}
  .hs.lit{border-color:var(--line-dk)!important}
  .hs-p{border-color:#e2ded6!important;transition:border-color 1s ease}
  .hs-p.lit{border-color:var(--line-lt)!important}
  /* gradient text only when lit */
  .hg{background:linear-gradient(100deg,#4a4740,#3a3833);-webkit-background-clip:text;background-clip:text;color:transparent;
      transition:background 1.2s ease}
  .hg.lit{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

  /* ====== heat rail ====== */
  #rail{position:fixed;top:0;right:0;width:3px;height:100vh;z-index:60;background:rgba(255,255,255,.06)}
  #rail i{position:absolute;top:0;left:0;right:0;height:100%;transform-origin:top;transform:scaleY(0);
    background:var(--grad);transition:background .8s ease}
  @media(max-width:700px){#rail{width:2px}}

  /* ====== header ====== */
  header{position:fixed;top:0;left:0;right:0;z-index:70;display:flex;align-items:center;justify-content:space-between;
    padding:18px var(--pad);transition:background .35s,border-color .35s,padding .35s;border-bottom:1px solid transparent}
  header.solid{background:rgba(0,0,0,.9);backdrop-filter:blur(10px);border-bottom-color:var(--line-dk);padding-top:12px;padding-bottom:12px}
  .brand{display:inline-flex;align-items:center;line-height:0}
  .brand svg{height:26px;width:auto;display:block}
  nav{display:flex;align-items:center;gap:clamp(14px,2.2vw,34px)}
  header .nav-links{align-items:center}
  .nav-links{display:flex;gap:clamp(14px,2.2vw,34px);align-items:center}
  .nav-links a{display:inline-flex;align-items:center;font-size:.8rem;font-weight:500;letter-spacing:.08em;text-transform:uppercase;color:#d7d3ca;transition:background-size .35s}
  .nav-links a:not(.nav-cta){background:var(--grad) no-repeat left bottom;background-size:0% 2px;padding:4px 0}
  .nav-links a:not(.nav-cta):hover{background-size:100% 2px}
  .nav-links a.nav-cta{display:inline-flex;align-items:center;border:1px solid #fff;padding:12px 20px;color:#fff;line-height:1;background:none;transition:background .2s,color .2s}
  .nav-links a.nav-cta:hover{background:#fff;color:#000}
  .loc{display:inline-flex;align-items:center;font-size:.68rem;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--muted-lt);border:1px solid var(--line-dk);padding:9px 12px;line-height:1}
  @media(max-width:760px){.loc{display:none}}
  @media(max-width:480px){.nav-links a:not(.nav-cta){display:none}}

  /* ====== intro ====== */
  #intro{position:fixed;inset:0;z-index:200;background:#000;display:flex;align-items:center;justify-content:center;flex-direction:column;gap:30px;transition:transform .7s cubic-bezier(.7,0,.2,1)}
  #intro.out{transform:translateY(-101%)}
  #intro svg{height:clamp(26px,4vw,44px);width:auto;opacity:0;transform:scale(.94);transition:opacity .7s ease .15s,transform .9s cubic-bezier(.2,.7,.2,1) .15s}
  #intro.go svg{opacity:1;transform:none}
  #intro .burn{width:min(46vw,420px);height:1px;background:#1d1d1d;position:relative;overflow:hidden}
  #intro .burn i{position:absolute;inset:0;background:var(--grad);transform:scaleX(0);transform-origin:left;transition:transform 1.15s cubic-bezier(.6,.05,.2,1) .2s}
  #intro.go .burn i{transform:scaleX(1)}
  #intro .skip{position:absolute;bottom:26px;right:28px;color:#6f6a61;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;cursor:pointer}

  /* ====== hero ====== */
  .hero-wrap{position:relative;height:230vh}
  .hero{position:sticky;top:0;height:100svh;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;border-bottom:1px solid var(--line-dk)}
  .hero video,.hero .hero-poster{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0;
    filter:saturate(.06) brightness(.42) contrast(1.15);transition:filter 1.6s cubic-bezier(.2,.7,.2,1)}
  .hero.warm video,.hero.warm .hero-poster{filter:saturate(.55) brightness(.72) contrast(1.05)}
  .hero .hero-poster{display:none}
  .hero .scrim{position:absolute;inset:0;z-index:1;background:linear-gradient(to top,rgba(0,0,0,.93) 0%,rgba(0,0,0,.5) 38%,rgba(0,0,0,.4) 66%,rgba(0,0,0,.65) 100%)}
  .grain{position:absolute;inset:-40px;z-index:1;pointer-events:none;opacity:.09;mix-blend-mode:overlay;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='240' height='240' filter='url(%23n)'/%3E%3C/svg%3E");
    animation:grain 1.2s steps(4) infinite}
  @keyframes grain{0%{transform:translate(0,0)}25%{transform:translate(-14px,8px)}50%{transform:translate(10px,-12px)}75%{transform:translate(-6px,-6px)}100%{transform:translate(0,0)}}
  .bleed{position:absolute;left:-12%;bottom:-18%;width:72%;height:72%;z-index:1;pointer-events:none;opacity:0;transition:opacity 1.6s ease;
    background:radial-gradient(ellipse at 22% 88%,rgba(249,178,51,.20),rgba(216,72,21,.06) 45%,transparent 70%);mix-blend-mode:screen}
  .hero.warm .bleed{opacity:1}
  .hero-inner{position:relative;z-index:2;padding:0 var(--pad) clamp(44px,6vw,96px);max-width:var(--maxw);margin:0 auto;width:100%}
  .kicker{display:flex;align-items:center;gap:14px;font-size:.78rem;font-weight:500;letter-spacing:.14em;text-transform:uppercase;color:#8e8a82;margin-bottom:clamp(20px,3vw,34px)}
  .kicker .bar{width:46px;height:2px;background:#3a3833;transition:background 1.2s ease}
  .hero.warm .kicker .bar{background:var(--grad)}
  h1.display{font-weight:800;line-height:.88;letter-spacing:-.04em;font-size:clamp(3rem,11vw,10rem);text-wrap:balance}
  .display .lw{display:block;overflow:hidden;padding-bottom:.14em;margin-bottom:-.14em}
  .display .l{display:block;transform:translateY(122%);transition:transform 1s cubic-bezier(.2,.75,.2,1)}
  .loaded .display .l1{transform:none;transition-delay:.15s}
  .loaded .display .l2{transform:none;transition-delay:.32s}
  .display .ch{display:inline-block;will-change:transform,opacity,filter}
  .display .chw{display:inline-block;white-space:nowrap}
  .display .l1{color:#cfcbc3}
  .display .l2{position:relative;display:inline-block}
  .ignite-base{color:#4e4b45}
  .ignite-fill{position:absolute;left:0;right:0;top:0;bottom:-.22em;clip-path:inset(0 100% 0 0);
    background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
  .hreveal{opacity:0;transform:translateY(16px);transition:opacity .8s cubic-bezier(.2,.7,.2,1),transform .8s cubic-bezier(.2,.7,.2,1)}
  .loaded .hreveal{opacity:1;transform:none}
  .loaded .kicker.hreveal{transition-delay:.05s}
  .loaded .hero-sub.hreveal{transition-delay:.55s}
  .loaded .hero-ctas.hreveal{transition-delay:.7s}
  .hero-sub{margin-top:clamp(22px,3vw,34px);max-width:44ch;font-size:clamp(1.05rem,1.5vw,1.4rem);line-height:1.5}
  .hero-ctas{margin-top:clamp(28px,3.5vw,44px);display:flex;flex-wrap:wrap;gap:14px}
  .btn{display:inline-flex;align-items:center;gap:12px;padding:15px 26px;font-size:.92rem;font-weight:600;transition:transform .25s,background .25s,color .25s,border-color .25s;border:1px solid transparent}
  .btn:hover{transform:translateY(-2px)}
  .btn-primary{background:#fff;color:#000}
  .btn-primary:hover{background:var(--orange);color:#fff}
  .scrollcue{position:absolute;bottom:20px;right:var(--pad);z-index:2;font-size:.66rem;letter-spacing:.2em;text-transform:uppercase;color:#5b5851;display:flex;align-items:center;gap:10px}
  .scrollcue .ln{width:1px;height:32px;background:linear-gradient(#5b5851,transparent);animation:cue 2.2s ease-in-out infinite}
  @keyframes cue{0%,100%{transform:scaleY(.5);transform-origin:top}50%{transform:scaleY(1);transform-origin:top}}
  @media(max-width:620px){.scrollcue{display:none}}

  /* ====== claim ====== */
  .claim{background:var(--black);padding:clamp(90px,14vw,220px) 0;border-bottom:1px solid var(--line-dk)}
  .claim p{font-size:clamp(1.8rem,4.6vw,4rem);font-weight:700;line-height:1.12;letter-spacing:-.03em;max-width:22ch}
  .claim .w{color:#312f2b;transition:color .4s}
  .claim .w.on{color:#fff}
  .claim .w.hot{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}

  /* ====== section scaffolding ====== */
  section{scroll-margin-top:76px}
  .sec-head{display:flex;align-items:baseline;justify-content:space-between;gap:20px;flex-wrap:wrap;margin-bottom:clamp(34px,5vw,64px)}
  .sec-tag{font-size:.76rem;font-weight:600;letter-spacing:.2em;text-transform:uppercase;display:flex;align-items:baseline;gap:12px}
  .sec-tag .idx{color:#3d3b37;transition:color 1s ease}
  .sec-tag.lit .idx,.sec-head.lit .idx{color:var(--orange)}

  /* ====== FELT / work ====== */
  .work{background:var(--black);padding:clamp(70px,9vw,130px) 0 clamp(40px,6vw,90px);position:relative}
  .toggle{display:inline-flex;border:1px solid var(--line-dk)}
  .toggle button{font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;color:#6b675f;padding:10px 18px;transition:color .25s,background .25s}
  .toggle button.on{background:#fff;color:#000}
  .toggle button:not(.on):hover{color:#cfcbc3}

  .work-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;flex-wrap:wrap;
    padding-bottom:20px;border-bottom:1px solid #1a1a1a;margin-bottom:clamp(26px,3.4vw,44px)}
  .work-title{font-size:clamp(2.6rem,8vw,7rem);font-weight:800;letter-spacing:-.05em;line-height:.82;text-transform:uppercase}
  .work-title.lit{background:linear-gradient(100deg,#d84815,#f9b233);-webkit-background-clip:text;background-clip:text;color:transparent}
  .work-note{font-size:.84rem;max-width:36ch;line-height:1.5;text-align:right}
  @media(max-width:760px){.work-note{text-align:left}}
  .band{margin-bottom:clamp(46px,6vw,90px)}
  .band-head{display:flex;align-items:flex-end;justify-content:space-between;gap:24px;padding-bottom:18px;border-bottom:1px solid #1a1a1a;margin-bottom:26px;transition:border-color 1s ease}
  .band-head.lit{border-bottom-color:var(--line-dk)}
  .band-word{font-size:clamp(2.6rem,8vw,7rem);font-weight:800;letter-spacing:-.05em;line-height:.82;
    color:transparent;-webkit-text-stroke:1px #262626;transition:-webkit-text-stroke-color 1.1s ease,color 1.1s ease}
  .band-head.lit .band-word{-webkit-text-stroke-color:transparent}
  .band-note{font-size:.82rem;color:#3d3b37;max-width:34ch;line-height:1.5;text-align:right;transition:color 1s ease}
  .band-head.lit .band-note{color:var(--muted-lt)}
  .band-row{display:flex;gap:2px;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:6px;scrollbar-width:thin;scrollbar-color:#2a2a2a transparent}
  .band-row::-webkit-scrollbar{height:3px}
  .band-row::-webkit-scrollbar-thumb{background:#2a2a2a}
  .card{position:relative;flex:0 0 clamp(280px,32vw,470px);aspect-ratio:16/9;scroll-snap-align:start;overflow:hidden;background:#060606;
    display:flex;flex-direction:column;justify-content:space-between;padding:18px;text-align:left;isolation:isolate}
  .card .poster,.card video.prev{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}
  .card video.prev{opacity:0;transition:opacity .45s}
  .card.playing video.prev{opacity:1}
  .card.playing .poster{opacity:0}
  .card.playing .poster.loaded{opacity:0}
  .card .poster{transition:opacity .45s,transform .7s cubic-bezier(.2,.7,.2,1),filter 1.2s cubic-bezier(.2,.7,.2,1)}
  /* loading: blurred preview underneath, real still fades in once loaded */
  .card .lqip{position:absolute;inset:0;z-index:-3;overflow:hidden}
  .card .lqip i{position:absolute;inset:-12%;background-size:cover;background-position:center;filter:blur(14px)}
  .card .poster{opacity:0}
  .card .poster.loaded{opacity:1}
  .card:hover .poster{transform:scale(1.04)}
  .card .scrim{position:absolute;inset:0;z-index:-1;background:linear-gradient(to top,rgba(0,0,0,.86) 0%,rgba(0,0,0,.15) 50%,rgba(0,0,0,.4) 100%)}
  .card .top{display:flex;align-items:flex-start;justify-content:space-between;position:relative;z-index:1}
  .card .num{font-size:.7rem;font-weight:600;letter-spacing:.1em;font-variant-numeric:tabular-nums}
  .card .emo{font-size:.6rem;letter-spacing:.16em;text-transform:uppercase;font-weight:600;border:1px solid currentColor;padding:4px 8px;opacity:.9}
  .card .label{position:relative;z-index:1}
  .card .client{display:block;font-weight:800;letter-spacing:-.02em;line-height:.98;font-size:clamp(1.3rem,2vw,2rem);transition:color .4s}
  .card .sub{display:block;font-weight:200;font-size:.8rem;letter-spacing:.02em;margin-top:.45em;opacity:0;transform:translateY(5px);transition:opacity .35s,transform .35s}
  .card:hover .sub,.card:focus-visible .sub{opacity:1;transform:none}
  @media(hover:none){.card .sub{opacity:1;transform:none}}
  .card .outcome{display:block;font-size:.78rem;line-height:1.4;margin-top:.5em;color:var(--muted-lt);max-width:34ch}

  /* client view grid */
  .cgrid{display:grid;grid-template-columns:repeat(3,1fr);column-gap:2px;row-gap:clamp(56px,7vw,96px)}
  .cgrid .card{flex:none;width:100%}
  @media(max-width:1000px){.cgrid{grid-template-columns:repeat(2,1fr)}}
  @media(max-width:620px){.cgrid{grid-template-columns:1fr}}
  .hidden{display:none}

  /* ====== process ====== */
  .process{background:var(--paper);color:var(--ink);padding:clamp(70px,9vw,140px) 0;position:relative;overflow:hidden}
  .steps{border-top:2px solid #e2ded6;transition:border-color 1s ease}
  .steps.lit{border-top-color:#000}
  .step{display:grid;grid-template-columns:120px minmax(180px,.4fr) 1fr;gap:24px;padding:26px 0;border-bottom:1px solid;align-items:baseline}
  .step .rn{font-size:clamp(2rem,3.4vw,3.2rem);font-weight:200;line-height:.8;font-variant-numeric:tabular-nums}
  .step .temp{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;font-weight:600;display:block;margin-top:.6em}
  .step h3{font-size:clamp(1.15rem,1.7vw,1.55rem);font-weight:700;letter-spacing:-.01em}
  .step p{font-size:1rem;line-height:1.5;max-width:54ch}
  @media(max-width:680px){.step{grid-template-columns:56px 1fr;gap:8px 16px}.step p{grid-column:1/-1}}

  /* ====== about / credentials ====== */
  .about{background:var(--paper);color:var(--ink);padding:clamp(80px,10vw,150px) 0 clamp(70px,9vw,140px);position:relative;overflow:hidden}
  .lead-xl{font-size:clamp(1.9rem,5vw,4.4rem);font-weight:700;line-height:1;letter-spacing:-.03em;max-width:20ch}
  .lead-xl .thin{font-weight:200}
  .about-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:clamp(30px,6vw,92px);margin-top:clamp(40px,6vw,84px);align-items:start}
  @media(max-width:860px){.about-grid{grid-template-columns:1fr;gap:44px}}
  .about-body p{font-size:clamp(1.05rem,1.35vw,1.24rem);line-height:1.62;max-width:52ch}
  .about-body p+p{margin-top:1.1em}
  .stats{border-top:2px solid}
  .stat{display:flex;align-items:baseline;gap:18px;padding:20px 0;border-bottom:1px solid}
  .stat .num{font-size:clamp(2.4rem,4.5vw,3.7rem);font-weight:800;letter-spacing:-.03em;line-height:1;min-width:3.4ch}
  .stat .lab{font-size:.98rem;line-height:1.35}
  .clients{margin-top:clamp(56px,7vw,100px);border-top:1px solid;padding-top:30px}
  .clients h4{font-size:.72rem;letter-spacing:.2em;text-transform:uppercase;font-weight:600;margin-bottom:22px}
  .clients .row{display:flex;flex-wrap:wrap;gap:14px 44px}
  .clients .row span{font-size:clamp(1rem,1.5vw,1.35rem);font-weight:600}

  /* ====== contact (always hot) ====== */
  .contact{background:var(--paper);color:var(--ink);padding:clamp(70px,9vw,140px) 0;position:relative;overflow:hidden}
  .contact .glow{position:absolute;right:-10%;top:-20%;width:60%;height:120%;pointer-events:none;
    background:radial-gradient(ellipse at 70% 40%,rgba(249,178,51,.30),rgba(216,72,21,.10) 45%,transparent 72%)}
  .contact-lead{font-size:clamp(2.2rem,6vw,5.4rem);font-weight:800;letter-spacing:-.04em;line-height:.96;max-width:14ch}
  .contact-lead .g{background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
  .contact-email{margin-top:30px}
  .contact-email a{display:inline-flex;align-items:center;gap:12px;font-size:clamp(1.4rem,3.4vw,2.6rem);font-weight:700;letter-spacing:-.01em;
    color:#000;border-bottom:3px solid #000;padding-bottom:6px;transition:gap .3s,border-color .3s,color .3s}
  .contact-email a:hover{gap:22px;border-color:var(--orange);color:var(--orange)}
  .offices{display:grid;grid-template-columns:1fr 1fr;border-top:2px solid var(--ink);margin-top:clamp(44px,6vw,84px)}
  .office{padding:26px 0;border-bottom:1px solid var(--ink)}
  .office:first-child{padding-right:clamp(24px,5vw,64px);border-right:1px solid var(--line-lt)}
  .office:last-child{padding-left:clamp(24px,5vw,64px)}
  .office .city{font-size:clamp(1.4rem,2.6vw,2.1rem);font-weight:800;letter-spacing:-.02em;margin-bottom:12px}
  .office .city sup{font-size:.34em;font-weight:600;letter-spacing:.1em;vertical-align:super;color:var(--orange)}
  .office address{font-style:normal;line-height:1.6;color:#3a362f;font-size:1rem}
  .office .role{margin-top:12px;font-size:.74rem;letter-spacing:.14em;text-transform:uppercase;color:var(--muted-dk);font-weight:500}
  @media(max-width:680px){.offices{grid-template-columns:1fr}.office:first-child{padding-right:0;border-right:none}.office:last-child{padding-left:0}}

  /* ====== footer ====== */
  footer{background:#000;padding:clamp(46px,6vw,78px) 0 0;border-top:1px solid var(--line-dk)}
  .foot-top{display:flex;align-items:flex-start;justify-content:space-between;gap:30px;flex-wrap:wrap}
  .foot-line{font-size:clamp(1rem,1.5vw,1.35rem);font-weight:300;letter-spacing:-.01em;color:#d7d3ca;text-transform:uppercase}
  .foot-line b{font-weight:900}
  .foot-logo{display:block;width:100%;max-width:var(--maxw);margin:clamp(40px,6vw,80px) auto 0;padding:0 var(--pad);cursor:pointer;line-height:0}
  .foot-logo svg{width:100%;height:auto;display:block;
    filter:saturate(.10) brightness(.45);transition:filter 1.1s cubic-bezier(.2,.7,.2,1)}
  .foot-logo:hover svg,.foot-logo.lit svg{filter:none}
  .foot-logo .c2{fill:url(#forge_grad)}
  .foot-logo .c1{fill:none}
  .foot-nav{display:flex;gap:24px;flex-wrap:wrap}
  .foot-nav a{font-size:.8rem;letter-spacing:.06em;text-transform:uppercase;color:#d7d3ca}
  .foot-nav a:hover{color:#fff}
  .foot-bot{margin-top:clamp(38px,5vw,64px);padding-top:22px;border-top:1px solid var(--line-dk);display:flex;justify-content:space-between;gap:14px;flex-wrap:wrap;font-size:.75rem;color:#6f6b62}
  .foot-claim{font-weight:600;letter-spacing:.26em;text-transform:uppercase;color:var(--muted-lt)}
  .foot-legal .sep{margin:0 .7em;color:#3d3b37}
  .foot-legal a{color:#6f6b62;transition:color .25s}
  .foot-legal a:hover,.foot-legal a[aria-expanded="true"]{color:#fff}

  /* ====== legal / privacy panels (fireglory-style slide toggle) ====== */
  .legal-panel{background:var(--paper);color:var(--ink);overflow:hidden}
  .js .legal-panel{height:0;visibility:hidden}
  .js .legal-panel.open{visibility:visible}
  .legal-panel>.wrap{padding-top:clamp(90px,10vw,140px);padding-bottom:clamp(60px,8vw,110px)}
  .legal-title{font-size:clamp(2rem,4.4vw,4rem);font-weight:900;letter-spacing:-.03em;line-height:1;text-transform:uppercase}
  .legal-title .thin{font-weight:200}
  .legal-title .slash{font-weight:200;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
  .legal-text{max-width:74ch;margin-top:clamp(36px,5vw,64px);font-size:1rem;line-height:1.65;color:#2f2c26}
  .legal-text h2{font-size:.8rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);
    margin:3.2em 0 1.4em;padding-top:1.4em;border-top:1px solid var(--line-lt)}
  .legal-text h2:first-child{margin-top:0;padding-top:0;border-top:0}
  .legal-text h3{font-size:1.1rem;font-weight:700;letter-spacing:-.01em;color:var(--ink);margin:2em 0 .6em}
  .legal-text h4{font-size:1rem;font-weight:600;color:var(--ink);margin:1.5em 0 .4em}
  .legal-text h2+h3{margin-top:0}
  .legal-text ul{margin:1em 0;padding-left:1.2em}
  .legal-text li+li{margin-top:.5em}
  .legal-text li::marker{color:var(--orange)}
  .legal-text p,.legal-text li{overflow-wrap:anywhere}
  .legal-text p+p,.legal-text ul+p{margin-top:1em}
  .legal-text a{border-bottom:1px solid var(--line-lt);transition:color .25s,border-color .25s}
  .legal-text a:hover{color:var(--orange);border-color:var(--orange)}

  .to-top{cursor:pointer;color:#d7d3ca;text-transform:uppercase;letter-spacing:.1em}

  .logo-white .w2{fill:#fff}.logo-white .w1{fill:none}
  .c2{fill:url(#forge_grad)}.c1{fill:none}
  .brand svg{filter:saturate(.15) brightness(.8);transition:filter 1.2s ease}
  header.solid .brand svg,.brand:hover svg{filter:none}

  /* ====== lightbox ====== */
  .lb{position:fixed;inset:0;z-index:100;display:none;align-items:center;justify-content:center;background:rgba(0,0,0,.95);padding:var(--pad)}
  .lb.open{display:flex}
  .lb-stage{position:relative;width:100%;max-width:1180px;aspect-ratio:16/9;background:#000;border:1px solid var(--line-dk)}
  .lb-stage video,.lb-stage iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
  .lb-cap{position:absolute;left:0;bottom:-36px;font-size:.8rem;color:#d7d3ca}
  .lb-cap .muted{color:var(--muted-lt)}
  .lb-close{position:absolute;top:calc(var(--pad) - 4px);right:var(--pad);z-index:2;width:46px;height:46px;border:1px solid var(--line-dk);background:rgba(0,0,0,.5);color:#fff;font-size:1.5rem;line-height:1}
  .lb-close:hover{background:var(--orange);border-color:var(--orange)}

  /* ====== cursor chip ====== */
  #chip{position:fixed;left:0;top:0;z-index:80;pointer-events:none;display:flex;align-items:center;gap:8px;background:#fff;color:#000;
    font-size:.64rem;font-weight:700;letter-spacing:.16em;text-transform:uppercase;padding:10px 15px;border-radius:999px;
    opacity:0;transform:translate(-50%,-50%) scale(.75);transition:opacity .25s,transform .25s}
  #chip.on{opacity:1;transform:translate(-50%,-50%) scale(1)}
  #chip svg{width:9px;height:9px;fill:#000}
  body.chipmode .card{cursor:none}

  #fx{position:fixed;inset:0;z-index:5;pointer-events:none;mix-blend-mode:screen}

  /* ====== reduced motion / touch: everything warm ====== */
  @media(prefers-reduced-motion:reduce){
    html{scroll-behavior:auto}
    #intro{display:none}
    .hero-wrap{height:auto}.hero{position:relative;height:auto;min-height:100svh}
    .hero video{display:none}.hero .hero-poster{display:block}
    .display .l{transform:none!important;transition:none!important}
    .hreveal{opacity:1!important;transform:none!important}
    .ignite-base{color:transparent}.ignite-fill{clip-path:none!important}
    .grain{animation:none}#fx,#chip{display:none}
    .card video.prev{display:none}
    .scrollcue .ln{animation:none}
  }
  body.allwarm .hm,body.allwarm .ht,body.allwarm .ht-soft,body.allwarm .ht-mute,
  body.allwarm .hp,body.allwarm .hp-body,body.allwarm .hp-mute,
  body.allwarm .hs,body.allwarm .hs-p,body.allwarm .hg{transition:none!important}
