.has-drop{ position:relative; }
  .caret{ width:.6rem; height:.6rem; transition:transform .25s ease; }
  .has-drop[aria-expanded="true"] .caret{ transform:rotate(180deg); }
  .drop{
    position:absolute; top:calc(100% + 1rem); left:50%; transform:translateX(-50%) translateY(6px);
    min-width:280px; background:var(--bone); border:1px solid rgba(12,18,22,.12); border-radius:4px;
    padding:.5rem; opacity:0; visibility:hidden; transition:opacity .2s ease, transform .2s ease;
    box-shadow:0 24px 60px -24px rgba(12,18,22,.35);
  }
  .has-drop[aria-expanded="true"] .drop{ opacity:1; visibility:visible; transform:translateX(-50%) translateY(0); }
  .drop a{ display:block; padding:.7rem .8rem; border-radius:3px; color:var(--paper-70); font-size:.9rem; }
  .drop a:hover{ background:rgba(12,18,22,.05); color:var(--ink); }
  .drop a span{ display:block; font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--bronze-lo); margin-top:.15rem; }
  .cta-nav{ margin-left:.5rem; }
  .burger{ display:none; margin-left:auto; background:none; border:0; cursor:pointer; padding:.4rem; }
  .burger span{ display:block; width:24px; height:2px; background:var(--ink); margin:5px 0; transition:transform .3s, opacity .3s; }

  /* mobile menu */
  .mobile-menu{ display:none; }
  @media (max-width: 940px){
    .nav-links{ display:none; }
    .burger{ display:block; }
    .mobile-menu{
      display:block; position:fixed; inset:74px 0 0 0; z-index:70;
      background:var(--bone); padding:2rem var(--edge); transform:translateY(-8px);
      opacity:0; visibility:hidden; transition:opacity .3s ease, transform .3s ease; overflow-y:auto;
    }
    .mobile-menu.open{ opacity:1; visibility:visible; transform:none; }
    .mobile-menu a{ display:block; font-size:1.35rem; font-family:var(--serif); padding:.7rem 0; border-bottom:1px solid rgba(12,18,22,.1); color:var(--ink); }
    .mobile-menu .sub{ font-size:.95rem; font-family:var(--sans); color:var(--paper-70); padding-left:1rem; border:0; }
    .mobile-menu .btn{ margin-top:1.5rem; width:100%; justify-content:center; }
  }

  /* ============ HERO ============ */
  .hero{ position:relative; padding-block:clamp(3.5rem, 7vw, 6rem) clamp(4rem,8vw,7rem); overflow:hidden; }
  .hero-grid{ display:grid; grid-template-columns:1.15fr .85fr; gap:clamp(2rem,4vw,4.5rem); align-items:center; }
  .hero h1{ font-size:clamp(2.7rem, 6.2vw, 5.2rem); line-height:.98; letter-spacing:-.03em; }
  .hero h1 em{ font-style:italic; color:var(--bronze-hi); }
  .hero .support{ margin-top:1.9rem; max-width:44ch; color:var(--ink-70); font-size:clamp(1.02rem,1.5vw,1.22rem); line-height:1.55; }
  .hero-actions{ margin-top:2.4rem; display:flex; gap:1rem; flex-wrap:wrap; }
  .hero-eyebrow{ margin-bottom:1.9rem; }

  /* hero visual — a composed "brief" artifact, type+image as one composition, no stock */
  .hero-visual{ position:relative; }
  .brief-card{
    position:relative; background:var(--ink-2); border:1px solid var(--ink-3); border-radius:6px;
    padding:1.6rem 1.6rem 1.4rem; box-shadow:0 40px 90px -40px rgba(0,0,0,.8);
  }
  .brief-card::before{
    content:""; position:absolute; inset:0; border-radius:6px; pointer-events:none;
    background:radial-gradient(120% 90% at 100% 0%, rgba(192,137,74,.10), transparent 55%);
  }
  .brief-top{ display:flex; align-items:center; justify-content:space-between; gap:1rem; margin-bottom:1.15rem; }
  .brief-top .tag{ font-family:var(--mono); font-size:.66rem; letter-spacing:.16em; text-transform:uppercase; color:var(--bronze); }
  .brief-top .ref{ font-family:var(--mono); font-size:.66rem; color:var(--ink-45); }
  .brief-row{ display:grid; grid-template-columns:auto 1fr; gap:.7rem 1rem; align-items:baseline; padding:.7rem 0; border-top:1px solid var(--ink-3); }
  .brief-row:first-of-type{ border-top:0; }
  .brief-row .lab{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-45); white-space:nowrap; }
  .brief-row .val{ font-size:.95rem; color:var(--limestone); }
  .brief-row .val.filled{ color:var(--bone); }
  .brief-row .val .bar{ display:inline-block; height:.62rem; border-radius:1px; background:var(--ink-3); vertical-align:middle; }
  .brief-validated{ margin-top:1.15rem; padding:.75rem .9rem; border-radius:4px; background:rgba(111,163,155,.09); border:1px solid rgba(111,163,155,.32); display:flex; align-items:center; gap:.6rem; }
  .brief-validated .dot{ width:.5rem; height:.5rem; border-radius:50%; background:var(--signal); box-shadow:0 0 0 4px rgba(111,163,155,.16); }
  .brief-validated span{ font-family:var(--mono); font-size:.68rem; letter-spacing:.08em; text-transform:uppercase; color:var(--signal); }
  .hero-photo-wrap{ position:relative; aspect-ratio:4/5; border-radius:6px; overflow:hidden; border:1px solid var(--ink-3);
    background:radial-gradient(90% 120% at 20% 15%, rgba(192,137,74,.14), transparent 55%), linear-gradient(180deg,#0a0f12,#131f26 70%,#0a0f12); }
  .hero-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; }
  .hero-photo-wrap.noimg::after{ content:"Documentary image · workforce planning session"; position:absolute; left:1rem; right:1rem; bottom:1rem;
    font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-45); }
  .hero-visual .brief-card{ position:relative; z-index:2; margin-top:-2.6rem; margin-inline:1.1rem 0; width:auto; }

  @media (max-width: 900px){
    .hero-grid{ grid-template-columns:1fr; gap:2.5rem; }
    .hero-visual{ order:2; }
  }

  /* ============ WHY — transformation ============ */
  .why-head{ display:grid; grid-template-columns:1fr 1fr; gap:2rem 4rem; align-items:end; margin-bottom:clamp(2.5rem,5vw,4rem); }
  .why-head h2{ font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.9rem); }
  @media(max-width:820px){ .why-head{ grid-template-columns:1fr; align-items:start; } }

  .transform{ display:grid; grid-template-columns:1fr auto 1fr auto 1fr; align-items:stretch; gap:0; }
  .tstep{ padding:1.6rem 1.5rem; border:1px solid rgba(12,18,22,.14); background:var(--bone); }
  .tstep:nth-child(1){ border-right:0; }
  .tstep.tvalidated{ background:var(--ink); color:var(--bone); border-color:var(--ink); position:relative; }
  .tstep .tnum{ font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze-lo); }
  .tstep.tvalidated .tnum{ color:var(--bronze-hi); }
  .tstep h3{ font-family:var(--serif); font-size:1.4rem; margin-top:.7rem; font-weight:500; }
  .tstep p{ margin-top:.55rem; font-size:.92rem; color:var(--paper-70); }
  .tstep.tvalidated p{ color:var(--ink-70); }
  .tarrow{ display:flex; align-items:center; justify-content:center; padding-inline:.4rem; color:var(--bronze); }
  .tarrow svg{ width:26px; height:26px; }
  @media(max-width:820px){
    .transform{ grid-template-columns:1fr; }
    .tstep{ border:1px solid rgba(12,18,22,.14) !important; }
    .tarrow{ transform:rotate(90deg); padding-block:.5rem; }
  }

  /* ============ METHOD (Business-First Hiring™) ============ */

  /* ============ FIVE-STAGE SYSTEM (signature) ============ */
  .method{ background:var(--ink-2); border-top:1px solid var(--ink-3); }
  .method .head{ max-width:60ch; margin-bottom:clamp(1.75rem,3.5vw,2.75rem); }
  .method h2{ font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.8rem); }
  .method h2 em{ font-style:italic; color:var(--bronze-hi); }
  .method .head p{ margin-top:1rem; color:var(--ink-70); max-width:52ch; }

  .loop-arc{ width:100%; height:52px; margin-bottom:-14px; overflow:visible; display:block; }
  .loop-arc text{ font-family:var(--mono); font-size:11px; letter-spacing:.14em; text-transform:uppercase; fill:var(--signal); }
  .loop-flow{ stroke:var(--signal); stroke-width:1.4; fill:none; opacity:.4; }
  .loop-dash{ stroke:var(--signal); stroke-width:2.4; fill:none; stroke-dasharray:10 220; transition:opacity .3s ease; }
  .loop-arc.looping .loop-dash{ opacity:1; stroke-width:3.4; }
  .loop-arc.looping .loop-flow{ opacity:.75; }

  .stages{ display:grid; grid-template-columns:repeat(5,1fr); gap:.75rem; position:relative; }
  .stage{
    text-align:left; background:transparent; border:1px solid var(--ink-3); border-radius:5px;
    padding:1.1rem 1.05rem; cursor:pointer; color:var(--limestone); min-height:118px;
    font-family:var(--sans); transition:border-color .25s ease, background .25s ease, transform .25s ease;
    position:relative; display:flex; flex-direction:column;
  }
  .stage:hover{ border-color:var(--bronze); transform:translateY(-3px); }
  .stage[aria-selected="true"]{ border-color:var(--bronze); background:linear-gradient(180deg, rgba(192,137,74,.12), transparent); }
  .stage .snum{ font-family:var(--mono); font-size:.8rem; color:var(--bronze); letter-spacing:.05em; }
  .stage[aria-selected="true"] .snum{ color:var(--bronze-hi); }
  .stage h3{ font-size:1.02rem; font-weight:600; margin-top:.55rem; line-height:1.2; letter-spacing:-.01em; }
  .stage .node{ position:absolute; top:-6px; left:1.05rem; width:9px; height:9px; border-radius:50%; background:var(--ink-3); border:2px solid var(--ink-2); transition:background .3s ease, box-shadow .3s ease, transform .3s ease; }
  .stage[aria-selected="true"] .node{ background:var(--bronze); box-shadow:0 0 0 5px rgba(192,137,74,.18); transform:scale(1.25); }
  .stage:last-child[aria-selected="true"] .node{ background:var(--signal); box-shadow:0 0 0 5px rgba(111,163,155,.2); }

  .stage-detail{
    margin-top:1.5rem; background:var(--ink); border:1px solid var(--ink-3); border-radius:6px;
    padding:clamp(1.4rem,2.6vw,1.9rem); display:grid; grid-template-columns:1.15fr .85fr; gap:1.75rem;
    align-items:center; min-height:196px;
  }
  .stage-detail .sd-num{ font-family:var(--mono); color:var(--bronze); font-size:.78rem; letter-spacing:.14em; }
  .stage-detail h4{ font-family:var(--serif); font-weight:500; font-size:clamp(1.4rem,2.4vw,1.9rem); margin:.4rem 0 .7rem; }
  .stage-detail .q{ color:var(--ink-70); font-size:1.02rem; }
  .stage-detail .artifact{ align-self:center; }
  .artifact-chip{
    display:inline-flex; flex-direction:column; gap:.3rem; padding:.9rem 1.1rem;
    border:1px dashed var(--ink-3); border-radius:5px; background:rgba(192,137,74,.05);
  }
  .artifact-chip .al{ font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze-lo); }
  .artifact-chip .an{ font-size:1.05rem; color:var(--bone); font-weight:600; }
  .artifact-chip .ad{ font-size:.82rem; color:var(--ink-45); }
  .sd-signal{ grid-column:1 / -1; display:flex; align-items:center; gap:.7rem; padding-top:1rem; border-top:1px solid var(--ink-3); transition:color .3s ease; }
  .sd-signal .dot{ width:.5rem; height:.5rem; border-radius:50%; background:var(--ink-3); transition:background .3s ease; }
  .sd-signal span{ font-family:var(--mono); font-size:.72rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-45); }
  .sd-signal.loop .dot{ background:var(--signal); }
  .sd-signal.loop span{ color:var(--signal); }
  @media(max-width:820px){
    .stages{ grid-template-columns:1fr 1fr; }
    .loop-arc{ display:none; }
    .stage{ min-height:auto; }
    .stage-detail{ grid-template-columns:1fr; min-height:auto; }
  }
  @media(max-width:520px){ .stages{ grid-template-columns:1fr; } }

  /* ============ SOLUTIONS — editorial index ============ */
  .sol-head{ display:flex; justify-content:space-between; align-items:end; gap:2rem; margin-bottom:clamp(2rem,4vw,3.2rem); flex-wrap:wrap; }
  .sol-head h2{ font-family:var(--serif); font-size:clamp(1.8rem,3.6vw,3rem); max-width:18ch; }
  .sol-list{ border-top:1px solid rgba(12,18,22,.16); }
  .sol-row{
    display:grid; grid-template-columns:auto 1.1fr 1.4fr auto; gap:1.5rem; align-items:center;
    padding:1.6rem 0; border-bottom:1px solid rgba(12,18,22,.16);
    transition:padding-left .3s ease; position:relative;
  }
  .sol-row::before{ content:""; position:absolute; left:-100%; top:0; bottom:0; width:100%; background:linear-gradient(90deg, transparent, rgba(192,137,74,.07)); transition:left .4s ease; pointer-events:none; }
  .sol-row:hover{ padding-left:1rem; }
  .sol-row:hover::before{ left:0; }
  .sol-row .sidx{ font-family:var(--mono); font-size:.78rem; color:var(--bronze-lo); }
  .sol-row .sname{ font-family:var(--serif); font-size:clamp(1.3rem,2.2vw,1.7rem); font-weight:500; color:var(--ink); }
  .sol-row .ssit{ color:var(--paper-70); font-size:.98rem; }
  .sol-row .sgo{ color:var(--bronze-lo); display:flex; align-items:center; gap:.4rem; font-weight:600; font-size:.9rem; white-space:nowrap; }
  .sol-row .sgo svg{ transition:transform .25s ease; }
  .sol-row:hover .sgo svg{ transform:translateX(4px); }
  @media(max-width:860px){
    .sol-row{ grid-template-columns:auto 1fr; gap:.4rem 1rem; }
    .sol-row .ssit{ grid-column:2; }
    .sol-row .sgo{ grid-column:2; margin-top:.3rem; }
  }

  /* ============ HUMAN MOMENT ============ */
  .human{ padding:0; }
  .human-band{
    min-height:clamp(300px,40vw,440px); position:relative; display:flex; align-items:flex-end;
    background:
      radial-gradient(90% 120% at 15% 20%, rgba(192,137,74,.16), transparent 55%),
      linear-gradient(180deg, #0a0f12, #131f26 70%, #0a0f12);
    overflow:hidden;
  }
  .human-photo{ position:absolute; inset:0; width:100%; height:100%; object-fit:cover; z-index:0; }
  .human-scrim{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg, rgba(8,12,14,.30), rgba(8,12,14,.78)); }
  .human-band .grain{ position:absolute; inset:0; z-index:2; opacity:.5;
    background-image:radial-gradient(rgba(255,255,255,.04) 1px, transparent 1px); background-size:4px 4px; }
  .human-band .wrap{ position:relative; z-index:3; padding-block:clamp(2.5rem,5vw,4rem); width:100%; }
  .human-band h2{ font-family:var(--serif); font-size:clamp(1.6rem,3.4vw,2.8rem); max-width:20ch; font-weight:400; }
  .human-band h2 em{ font-style:italic; color:var(--bronze-hi); }
  .phcap{
    position:absolute; top:1.4rem; right:var(--edge); text-align:right;
    font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-45);
    border:1px solid var(--ink-3); padding:.5rem .7rem; border-radius:3px; background:rgba(12,18,22,.4);
  }

  /* ============ PROOF ============ */
  .proof{ background:var(--ink); }
  .proof-photo{ margin:clamp(2.25rem,4vw,3.25rem) 0 0; }
  .proof-photo img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:6px; border:1px solid var(--ink-3); }
  .proof-photo figcaption{ margin-top:.7rem; font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-45); }
  .proof-head{ display:grid; grid-template-columns:1fr 1fr; gap:2rem 4rem; align-items:end; margin-bottom:clamp(2.5rem,5vw,4rem); }
  .proof-head h2{ font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.8rem); }
  @media(max-width:820px){ .proof-head{ grid-template-columns:1fr; } }

  .case-stage{ display:grid; grid-template-columns:1fr 1.12fr; gap:clamp(1.5rem,4vw,3rem); align-items:stretch; }
  .case-metric{ display:flex; flex-direction:column; justify-content:center; min-height:300px; }
  .case-metric .ctag{ font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze); }
  .case-metric .stat{ font-family:var(--serif); font-weight:400; line-height:.94; letter-spacing:-.02em; font-size:clamp(2.8rem,7vw,5.4rem); color:var(--bone); margin-top:.7rem; overflow-wrap:anywhere; }
  .case-metric .stat-sub{ font-family:var(--mono); font-size:.8rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-45); margin-top:.9rem; max-width:26ch; }

  .case-panel{ background:var(--ink-2); border:1px solid var(--ink-3); border-radius:6px; padding:clamp(1.4rem,2.6vw,1.9rem); min-height:300px; display:flex; flex-direction:column; }
  .case-panel h3{ font-family:var(--serif); font-weight:500; font-size:1.45rem; margin:0 0 .9rem; line-height:1.15; }
  .case-fields{ margin:0; }
  .case-fields dt{ font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-45); margin-top:.9rem; }
  .case-fields dt:first-child{ margin-top:0; }
  .case-fields dd{ margin:.3rem 0 0; color:var(--ink-70); font-size:.95rem; line-height:1.5; }
  .case-controls{ display:flex; align-items:center; gap:1rem; margin-top:auto; padding-top:1.4rem; }
  .case-controls .cbtn{ width:42px; height:42px; border-radius:50%; border:1px solid var(--ink-3); background:transparent; color:var(--limestone); cursor:pointer; display:flex; align-items:center; justify-content:center; transition:border-color .2s, color .2s; }
  .case-controls .cbtn:hover{ border-color:var(--bronze); color:var(--bronze-hi); }
  .case-controls .cprog{ font-family:var(--mono); font-size:.72rem; color:var(--ink-45); margin-left:auto; }
  @media(max-width:820px){ .case-stage{ grid-template-columns:1fr; } .case-metric{ min-height:auto; } .case-panel{ min-height:auto; } }

  /* ============ GLOBAL WORKFORCE — routes/flows ============ */
  .global{ background:var(--limestone); color:var(--ink); }
  .global-head{ max-width:56ch; margin-bottom:clamp(2rem,4vw,3rem); }
  .global-head h2{ font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.8rem); }
  .global-head p{ margin-top:1rem; color:var(--paper-70); max-width:50ch; }
  .global-photo{ margin:0 0 clamp(2rem,4vw,3rem); }
  .global-photo img{ width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:6px; border:1px solid rgba(12,18,22,.14); }
  .global-photo figcaption{ margin-top:.7rem; font-family:var(--mono); font-size:.66rem; letter-spacing:.06em; color:var(--paper-45); }
  .flows{ display:grid; grid-template-columns:1.3fr 1fr; gap:clamp(1.5rem,4vw,3rem); align-items:center; }
  .flow-diagram{ position:relative; border:1px solid rgba(12,18,22,.14); border-radius:6px; background:var(--bone); padding:1.5rem; overflow:hidden; }
  .flow-diagram svg{ width:100%; height:auto; display:block; }
  .flow-diagram .fl-node{ fill:var(--ink); }
  .flow-diagram .fl-line{ stroke:var(--bronze); stroke-width:1.4; fill:none; opacity:.6; }
  .flow-diagram .fl-line.dim{ stroke:rgba(12,18,22,.3); }
  .flow-diagram text{ font-family:var(--mono); font-size:10px; letter-spacing:.06em; fill:var(--ink); text-transform:uppercase; }
  .flow-diagram text.mut{ fill:var(--paper-45); }
  .models{ display:flex; flex-direction:column; gap:1px; background:rgba(12,18,22,.12); border:1px solid rgba(12,18,22,.12); border-radius:6px; overflow:hidden; }
  .model{ background:var(--bone); padding:1.15rem 1.3rem; }
  .model .mlab{ font-family:var(--mono); font-size:.66rem; letter-spacing:.12em; text-transform:uppercase; color:var(--bronze-lo); }
  .model h3{ font-size:1.05rem; font-weight:600; color:var(--ink); margin-top:.35rem; letter-spacing:-.01em; }
  .model p{ font-size:.9rem; color:var(--paper-70); margin-top:.3rem; }
  @media(max-width:860px){ .flows{ grid-template-columns:1fr; } }

  /* ============ TALENTGYDE ============ */
  .gyde{ background:var(--ink); }
  .gyde .wrap{ display:grid; grid-template-columns:1fr 1fr; gap:clamp(2rem,5vw,4rem); align-items:center; }
  .gyde h2{ font-family:var(--serif); font-size:clamp(1.8rem,3.4vw,2.6rem); }
  .gyde h2 em{ font-style:italic; color:var(--bronze-hi); }
  .gyde .rel{ margin-top:1.3rem; color:var(--ink-70); max-width:46ch; }
  .gyde .attrib{ margin-top:1.3rem; font-family:var(--mono); font-size:.72rem; letter-spacing:.06em; color:var(--ink-45); }
  .gyde-caps{ list-style:none; margin:1.5rem 0 0; padding:0; display:flex; flex-wrap:wrap; gap:.6rem; }
  .gyde-caps li{ font-family:var(--mono); font-size:.72rem; letter-spacing:.04em; color:var(--bronze-hi);
    border:1px solid var(--ink-3); border-radius:100px; padding:.5rem .9rem; background:rgba(192,137,74,.06); }
  .gyde-shot{ margin:0; border:1px solid var(--ink-3); border-radius:8px; overflow:hidden; background:var(--ink-2); box-shadow:0 40px 90px -50px rgba(0,0,0,.85); }
  .gyde-chrome{ display:flex; align-items:center; gap:.5rem; padding:.7rem .9rem; border-bottom:1px solid var(--ink-3); background:#0f171d; }
  .gyde-chrome span{ width:.6rem; height:.6rem; border-radius:50%; background:var(--ink-3); }
  .gyde-chrome span:first-child{ background:#C0894A55; }
  .gyde-chrome em{ font-style:normal; margin-left:.6rem; font-family:var(--mono); font-size:.66rem; letter-spacing:.08em; text-transform:uppercase; color:var(--ink-45); }
  .gyde-shot img{ width:100%; display:block; }
  .gyde-shot figcaption{ padding:.7rem .9rem; font-family:var(--mono); font-size:.64rem; letter-spacing:.1em; text-transform:uppercase; color:var(--ink-45); border-top:1px solid var(--ink-3); }
  @media(max-width:820px){ .gyde .wrap{ grid-template-columns:1fr; } }

  /* ============ FINAL CTA ============ */
  .final{ background:var(--bone); color:var(--ink); position:relative; overflow:hidden; }
  .final .wrap{ display:grid; grid-template-columns:1.05fr .95fr; gap:clamp(2rem,5vw,4.5rem); align-items:start; }
  .final h2{ font-family:var(--serif); font-size:clamp(2rem,4.4vw,3.6rem); line-height:1.02; max-width:16ch; }
  .final .sub{ margin-top:1.4rem; color:var(--paper-70); max-width:40ch; }
  .cform{ background:var(--ink); color:var(--limestone); border-radius:8px; padding:clamp(1.5rem,3vw,2.2rem); }
  .cform .frow{ display:grid; grid-template-columns:1fr 1fr; gap:1rem; }
  .field{ margin-bottom:1rem; }
  .field label{ display:block; font-family:var(--mono); font-size:.64rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-45); margin-bottom:.4rem; }
  .field input, .field select, .field textarea{
    width:100%; background:var(--ink-2); border:1px solid var(--ink-3); border-radius:4px; color:var(--bone);
    font-family:var(--sans); font-size:.95rem; padding:.7rem .8rem; transition:border-color .2s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--bronze); outline:none; }
  .field textarea{ resize:vertical; min-height:88px; }
  .cform .btn{ width:100%; justify-content:center; margin-top:.4rem; }
  .cform .fnote{ margin-top:.9rem; font-size:.78rem; color:var(--ink-45); text-align:center; }
  @media(max-width:860px){ .final .wrap{ grid-template-columns:1fr; } .cform .frow{ grid-template-columns:1fr; } }

  /* ============ FOOTER ============ */
  footer.site{ background:var(--ink); border-top:1px solid var(--ink-3); padding-block:clamp(3rem,5vw,4.5rem) 2.5rem; }
  .foot-grid{ display:grid; grid-template-columns:1.4fr repeat(4,1fr); gap:2.5rem 2rem; }
  .foot-brand .brand{ font-size:1.5rem; }
  .foot-brand p{ margin-top:1rem; color:var(--ink-45); font-size:.86rem; max-width:30ch; }
  .foot-col h4{ font-family:var(--mono); font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze-lo); font-weight:500; margin-bottom:1rem; }
  .foot-col a{ display:block; color:var(--ink-70); font-size:.9rem; padding:.35rem 0; transition:color .2s; }
  .foot-col a:hover{ color:var(--bone); }
  .foot-bottom{ margin-top:clamp(2.5rem,5vw,3.5rem); padding-top:1.5rem; border-top:1px solid var(--ink-3); display:flex; justify-content:space-between; gap:1rem; flex-wrap:wrap; }
  .foot-bottom p{ font-size:.78rem; color:var(--ink-45); }
  .foot-bottom .legal{ font-family:var(--mono); letter-spacing:.02em; }
  @media(max-width:860px){ .foot-grid{ grid-template-columns:1fr 1fr; } }
  @media(max-width:520px){ .foot-grid{ grid-template-columns:1fr; } }

  /* ---- reveal animation ---- */
  .reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s cubic-bezier(.2,.7,.2,1), transform .7s cubic-bezier(.2,.7,.2,1); }
  .reveal.in{ opacity:1; transform:none; }
  @media (prefers-reduced-motion: reduce){
    .reveal{ opacity:1 !important; transform:none !important; transition:none !important; }
    .loop-dash{ display:none; }
  }

  /* ---- modal ---- */
  .modal{ position:fixed; inset:0; z-index:120; display:none; align-items:center; justify-content:center; padding:1.5rem; }
  .modal.open{ display:flex; }
  .modal-back{ position:absolute; inset:0; background:rgba(6,10,12,.72); backdrop-filter:blur(3px); }
  .modal-card{ position:relative; z-index:2; width:min(720px,100%); max-height:88vh; overflow-y:auto; background:var(--ink-2); border:1px solid var(--ink-3); border-radius:8px; padding:clamp(1.6rem,4vw,2.6rem); }
  .modal-card .mclose{ position:absolute; top:1rem; right:1rem; width:38px; height:38px; border-radius:50%; background:var(--ink); border:1px solid var(--ink-3); color:var(--limestone); cursor:pointer; font-size:1.1rem; }
  .modal-card .ctag{ font-family:var(--mono); font-size:.68rem; letter-spacing:.14em; text-transform:uppercase; color:var(--bronze); }
  .modal-card h3{ font-family:var(--serif); font-weight:500; font-size:clamp(1.5rem,3vw,2.1rem); margin:.6rem 0 1.2rem; }
  .modal-card .mmetric{ font-family:var(--serif); font-size:2.6rem; color:var(--bronze-hi); line-height:1; }
  .modal-card .mmetric span{ font-family:var(--mono); font-size:.7rem; letter-spacing:.12em; text-transform:uppercase; color:var(--ink-45); display:block; margin-top:.5rem; }
  .modal-card dt{ font-family:var(--mono); font-size:.66rem; letter-spacing:.1em; text-transform:uppercase; color:var(--bronze-lo); margin-top:1.3rem; }
  .modal-card dd{ margin:.35rem 0 0; color:var(--ink-70); }

  .visually-hidden{ position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }

  /* brand logo */
  .brand{ display:inline-flex; align-items:center; }
  .brand img{ height:44px; width:auto; display:block; }
  .foot-logo{ height:48px; width:auto; display:block; }
  @media(max-width:520px){ .brand img{ height:36px; } }
