  :root{
    --ink: #201c3e;
    --indigo: #4a4387;
    --indigo-deep: #2e2860;
    --paper: #fffcfa;
    --paper-dim: #f6f3ef;
    --rule: #e7e2d9;
    --brick: #9a3f2c;
    --brick-deep: #7c3123;
    --cream-text: #f4efe2;
    --r-sm: 10px;
    --r-md: 16px;
    --r-lg: 24px;
    --r-pill: 999px;
  }

  @view-transition{
    navigation: auto;
  }
  *{box-sizing:border-box; margin:0; padding:0;}
  body{
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter', -apple-system, sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  .wrap{max-width:1120px; margin:0 auto; padding:0 32px;}

  /* ---------- NAV ---------- */
  .masthead{
    background:var(--paper);
    border:1px solid var(--rule);
    border-radius:var(--r-lg);
    box-shadow:0 10px 30px rgba(20,17,45,.07);
    width:calc(100% - 48px); max-width:1200px;
    margin:18px auto 0;
    padding:14px 28px;
    position:sticky; top:16px; z-index:50;
    transition:padding .25s ease, box-shadow .25s ease, top .25s ease;
  }
  .masthead .wrap{
    display:flex; align-items:center; justify-content:space-between; gap:28px;
    max-width:none; padding:0;
  }
  .brand{display:flex; align-items:center; gap:18px; text-decoration:none; cursor:pointer; transition:opacity .2s ease;}
  .brand:hover{opacity:.85;}
  .brand img{
    height:54px; width:auto; display:block;
    transition:height .25s ease;
  }
  body.is-scrolled .masthead{
    padding:10px 24px;
    top:10px;
    box-shadow:0 14px 34px rgba(20,17,45,.12);
  }
  body.is-scrolled .brand img{height:42px;}

  nav{display:flex; align-items:center; gap:8px; font-family:'Inter',sans-serif; font-size:14px; font-weight:600;}
  nav a{
    color:var(--ink); text-decoration:none; letter-spacing:.01em;
    position:relative; transition:color .2s ease, background .2s ease;
    padding:9px 14px; border-radius:var(--r-pill);
  }
  nav a:hover{color:var(--brick); background:rgba(154,63,44,.07);}
  nav a.is-active{color:var(--brick); background:rgba(154,63,44,.09);}
  nav a.is-active::after{
    content:""; position:absolute; left:16px; right:16px; bottom:4px;
    height:2px; background:var(--brick); border-radius:2px;
  }
  .nav-cta{
    background:var(--brick);
    color:#fff !important;
    padding:11px 22px;
    border-radius:var(--r-pill);
    transition:transform .18s ease, background .2s ease, box-shadow .2s ease;
    box-shadow:0 4px 14px rgba(154,63,44,.28);
  }
  .nav-cta:hover{background:var(--brick-deep) !important; box-shadow:0 6px 18px rgba(154,63,44,.36);}
  .nav-cta:active{transform:scale(.94);}
  .nav-cta::after{display:none;}

  /* ---------- HERO ---------- */
  .hero{padding:108px 0 56px; position:relative; overflow:hidden;}
  .hero .wrap{
    display:grid; grid-template-columns:1.35fr 1fr; gap:64px; align-items:start;
    position:relative; z-index:1;
  }
  .hero .wrap > div{min-width:0;}
  .hero-glow{
    position:absolute; inset:-20% -10%; z-index:0; pointer-events:none;
    background:
      radial-gradient(closest-side, rgba(154,63,44,.16), transparent 70%) 12% 20% / 68% 68% no-repeat,
      radial-gradient(closest-side, rgba(74,67,135,.2), transparent 70%) 88% 75% / 75% 75% no-repeat,
      radial-gradient(closest-side, rgba(46,40,96,.1), transparent 72%) 50% 0% / 90% 60% no-repeat;
    animation:heroDrift 22s ease-in-out infinite alternate;
  }
  .hero::before{
    content:""; position:absolute; inset:0; z-index:0; pointer-events:none;
    background:linear-gradient(180deg, rgba(74,67,135,.05), transparent 40%);
  }
  @keyframes heroDrift{
    0%{transform:translate(0,0) scale(1);}
    100%{transform:translate(-2%,2%) scale(1.06);}
  }
  #hero-word{
    display:inline-block; transition:opacity .35s ease, transform .35s ease;
  }
  #hero-word.is-swapping{opacity:0; transform:translateY(6px);}
  @media(prefers-reduced-motion:reduce){
    .hero-glow{animation:none;}
    #hero-word{transition:none;}
  }
  h1{
    font-family:'Inter Tight', sans-serif;
    font-weight:800;
    font-size:68px;
    line-height:1.03;
    color:var(--indigo-deep);
    letter-spacing:-.03em;
  }
  h1 em{font-style:normal; color:var(--brick);}
  .hero-dek{
    font-size:19px;
    line-height:1.6;
    color:#4a4460;
    margin-top:28px;
    max-width:52ch;
  }
  .hero-ctas{display:flex; gap:14px; margin-top:36px; font-family:'Inter',sans-serif; flex-wrap:wrap;}
  .hero-cta-bar{
    display:inline-flex; align-items:center; gap:6px;
    margin-top:36px; font-family:'Inter',sans-serif;
    background:#fff; border:1.5px solid var(--rule); border-radius:var(--r-pill);
    padding:6px 6px 6px 26px;
    box-shadow:0 12px 30px rgba(32,28,62,.09);
    max-width:100%;
  }
  .hero-cta-bar-text{
    color:var(--ink); font-weight:600; font-size:15px; text-decoration:none;
    white-space:nowrap; padding-right:10px;
    transition:color .2s ease;
  }
  .hero-cta-bar-text:hover{color:var(--brick);}
  .hero-cta-bar-btn{
    background:var(--brick); color:#fff; font-weight:700; font-size:15px;
    text-decoration:none; white-space:nowrap;
    padding:15px 26px; border-radius:var(--r-pill);
    box-shadow:0 6px 18px rgba(154,63,44,.3);
    transition:transform .18s ease, background .2s ease, box-shadow .2s ease;
  }
  .hero-cta-bar-btn:hover{background:var(--brick-deep); box-shadow:0 8px 22px rgba(154,63,44,.38);}
  .hero-cta-bar-btn:active{transform:scale(.96);}
  @media(max-width:520px){
    .hero-cta-bar{display:flex; width:100%; flex-wrap:wrap; padding:18px 22px; border-radius:var(--r-lg); gap:12px;}
    .hero-cta-bar-text{padding-right:0; white-space:normal;}
    .hero-cta-bar-btn{width:100%; text-align:center;}
  }
  .btn{
    display:inline-block; padding:15px 28px; font-size:15px; font-weight:700;
    text-decoration:none; letter-spacing:.005em; border-radius:var(--r-pill);
    transition:transform .18s ease, background .2s ease, box-shadow .2s ease;
    will-change:transform;
  }
  .btn:active{transform:scale(.96) !important;}
  a.pillar:active, .chip:active{transform:scale(.98);}
  .btn-primary{background:var(--brick); color:#fff; box-shadow:0 6px 18px rgba(154,63,44,.3);}
  .btn-primary:hover{background:var(--brick-deep); box-shadow:0 8px 22px rgba(154,63,44,.38);}
  .btn-ghost{border:1.5px solid var(--ink); color:var(--ink);}
  .btn-ghost:hover{background:var(--ink); color:#fff;}
  .btn-red{background:var(--brick); color:#fff;}
  .btn-red:hover{background:var(--brick-deep);}
  .btn-stack{display:flex; flex-direction:row; align-items:center; gap:18px; margin-top:32px;}
  .btn-circle{
    width:56px; height:56px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    color:#fff; text-decoration:none;
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease;
    will-change:transform;
  }
  .btn-circle svg{width:22px; height:22px; stroke:currentColor; fill:none; stroke-width:2; stroke-linecap:round; stroke-linejoin:round;}
  .btn-circle:hover{transform:translateY(-3px) scale(1.06);}
  .btn-circle:active{transform:scale(.94) !important;}
  .btn-circle-red{background:var(--brick); box-shadow:0 8px 20px rgba(154,63,44,.32);}
  .btn-circle-red:hover{background:var(--brick-deep); box-shadow:0 12px 26px rgba(154,63,44,.4);}
  .btn-circle-blue{background:var(--indigo-deep); box-shadow:0 8px 20px rgba(46,40,96,.32);}
  .btn-circle-blue:hover{background:var(--ink); box-shadow:0 12px 26px rgba(46,40,96,.4);}

  .pull{
    background:var(--indigo-deep);
    color:var(--cream-text);
    padding:36px 34px;
    border-radius:var(--r-lg);
    font-family:'Inter', sans-serif;
    font-size:19px;
    font-weight:500;
    line-height:1.5;
    box-shadow:0 20px 44px rgba(46,40,96,.22);
  }
  .pull .attr{
    display:block; margin-top:20px; font-family:'Inter',sans-serif;
    font-weight:600; font-size:12px; letter-spacing:.08em;
    text-transform:uppercase; color:#c9c2ef; opacity:.85;
  }
  .pull-video{
    background:none; box-shadow:none; padding:0;
    display:flex; flex-direction:column; align-items:center;
  }
  .pull-video video{
    width:100%; max-width:340px;
    display:block; aspect-ratio:1/1; object-fit:contain;
  }
  .pull-video .attr{
    margin-top:20px; margin-bottom:0; text-align:center;
    color:var(--brick); opacity:1;
  }
  .pull-video .subtext{
    margin-top:8px; text-align:center; font-family:'Inter',sans-serif;
    font-size:13px; line-height:1.55; color:#4a4460; max-width:300px;
    opacity:.9;
  }

  /* ---------- SECTION LABEL ---------- */
  .section-label{
    font-family:'Inter',sans-serif; font-weight:700; font-size:12px;
    letter-spacing:.08em; text-transform:uppercase; color:var(--brick);
    display:inline-flex; align-items:center; margin-bottom:18px;
    background:rgba(154,63,44,.08); padding:7px 16px; border-radius:var(--r-pill);
  }
  .section-head{
    font-family:'Inter Tight',sans-serif; font-weight:800; font-size:46px;
    color:var(--indigo-deep); margin:0 0 18px; letter-spacing:-.025em; line-height:1.1;
  }
  .section-sub{
    font-size:18px; color:#4a4460; max-width:64ch; line-height:1.6; margin-bottom:12px;
  }
  .pillars:not(#pillars) .section-sub{
    max-width:none; margin-bottom:32px;
  }
  .pillars:not(#pillars) p + p{
    margin-top:18px;
  }
  .pillars:not(#pillars){
    padding-bottom:80px;
  }

  /* ---------- PILLARS ---------- */
  .pillars{padding:104px 0 28px;}
  .pillar-grid{
    display:grid; grid-template-columns:repeat(3,1fr);
    gap:20px; margin-top:48px;
  }
  .pillar{
    display:flex; flex-direction:column;
    background:#fff;
    border:1px solid var(--rule);
    border-radius:var(--r-lg);
    padding:30px 26px 34px;
    transition:transform .25s ease, box-shadow .25s ease, border-color .25s ease;
    text-decoration:none; color:inherit;
  }
  .pillar:hover{
    transform:translateY(-4px);
    box-shadow:0 20px 40px rgba(32,28,62,.1);
    border-color:transparent;
  }
  a.pillar{cursor:pointer;}
  .pillar-body{flex:1;}
  .pillar-thumb{
    margin-top:20px; border-radius:var(--r-md); overflow:hidden;
    aspect-ratio:16/9;
  }
  .pillar-thumb img{
    display:block; width:100%; height:100%; object-fit:cover;
    transition:transform .35s ease;
  }
  a.pillar:hover .pillar-thumb img{transform:scale(1.05);}
  .pillar-icon{
    width:48px; height:48px; margin-bottom:18px;
    color:#fff;
    background:var(--brick);
    border-radius:var(--r-md);
    display:flex; align-items:center; justify-content:center;
    box-shadow:0 6px 16px rgba(154,63,44,.28);
    transition:background .3s ease, box-shadow .3s ease;
  }
  .pillar-icon svg{
    width:23px; height:23px; stroke:currentColor; fill:none; stroke-width:1.8;
    transition:transform .45s cubic-bezier(.34,1.56,.64,1);
    transform-origin:center;
  }
  .pillar:hover .pillar-icon{
    background:var(--indigo-deep);
    box-shadow:0 8px 20px rgba(46,40,96,.32);
  }
  .pillar:hover .pillar-icon svg{
    transform:rotate(-8deg) scale(1.12);
  }
  .pillar:hover .pillar-icon{
    animation:iconwiggle .6s ease;
  }
  @keyframes iconwiggle{
    0%{transform:translateY(0);}
    30%{transform:translateY(-3px);}
    60%{transform:translateY(1px);}
    100%{transform:translateY(0);}
  }
  .pillar h3{
    font-family:'Inter Tight',sans-serif; font-size:21px; font-weight:700;
    color:var(--indigo-deep); margin-bottom:10px; line-height:1.25; letter-spacing:-.01em;
  }
  .pillar p{font-size:14.5px; line-height:1.6; color:#54506a;}

  /* ---------- CONNECTOR / BROKERAGE FEATURE ---------- */
  .connector{
    padding:112px 0;
    background:var(--paper-dim);
  }
  .connector .wrap{
    display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center;
  }
  .diagram{
    font-family:'Inter',sans-serif;
    display:flex; align-items:center; justify-content:center; gap:0;
    padding:20px;
  }
  .node{
    background:#fff; border:1px solid var(--rule); border-radius:var(--r-md);
    padding:14px 16px; font-size:12.5px; font-weight:600; text-align:center;
    width:118px; line-height:1.35;
    box-shadow:0 4px 14px rgba(32,28,62,.05);
    transition:transform .25s ease, box-shadow .25s ease;
    display:block; text-decoration:none; color:var(--ink); cursor:pointer;
  }
  .node:hover{
    transform:scale(1.08);
    box-shadow:0 10px 26px rgba(46,40,96,.16);
    position:relative; z-index:2;
  }
  .node.center{
    background:#fff; border-color:var(--rule);
    width:100px; height:100px; padding:12px;
    display:flex; align-items:center; justify-content:center;
    border-radius:var(--r-lg);
    box-shadow:0 8px 24px rgba(46,40,96,.14);
    transition:transform .25s ease, box-shadow .25s ease;
  }
  .node.center:hover{
    transform:scale(1.1);
    box-shadow:0 12px 30px rgba(46,40,96,.22);
    position:relative; z-index:2;
  }
  .node.center img{
    width:100%; height:100%; object-fit:cover; border-radius:calc(var(--r-lg) - 4px); display:block;
  }
  .link{flex:1; height:1.5px; background:var(--rule); position:relative; max-width:46px;}
  .link::after{
    content:"→"; position:absolute; right:-2px; top:50%; transform:translateY(-52%);
    font-size:14px; color:var(--brick);
  }
  .node-col{display:flex; flex-direction:column; gap:14px;}

  /* ---------- PROCESS STEPS ---------- */
  .process-steps{
    grid-column:1/-1; margin-top:60px; padding-top:52px;
    border-top:1px solid var(--rule);
    display:grid; grid-template-columns:repeat(4,1fr); gap:28px;
    position:relative;
  }
  .process-line{
    position:absolute; top:24px; left:12.5%; right:12.5%; height:2px;
    background:var(--rule); z-index:0;
  }
  .process-step{
    position:relative; z-index:1; text-align:center;
    display:block; text-decoration:none; color:inherit; cursor:pointer;
  }
  .process-icon-wrap{
    width:48px; height:48px; margin:0 auto 16px; border-radius:50%;
    background:var(--brick);
    box-shadow:0 6px 16px rgba(154,63,44,.28);
    display:flex; align-items:center; justify-content:center;
    transition:transform .25s ease, box-shadow .25s ease, background .3s ease;
  }
  .process-step:hover .process-icon-wrap{
    transform:scale(1.08); background:var(--indigo-deep);
    box-shadow:0 10px 26px rgba(46,40,96,.32);
  }
  .process-icon-wrap svg{
    width:21px; height:21px; stroke:#fff; fill:none; stroke-width:1.8;
  }
  .process-num{
    font-family:'Inter',sans-serif; font-size:11px; font-weight:700;
    letter-spacing:.1em; color:#a39c86; text-transform:uppercase;
    margin-bottom:10px;
  }
  .process-step h4{
    font-family:'Inter Tight',sans-serif; font-weight:700; font-size:19px;
    color:var(--indigo-deep); margin-bottom:8px; letter-spacing:-.01em;
  }
  .process-step p{
    font-size:13.5px; line-height:1.55; color:#54506a;
    max-width:22ch; margin:0 auto;
  }
  @media(max-width:860px){
    .process-steps{grid-template-columns:1fr; gap:32px;}
    .process-line{display:none;}
  }

  /* ---------- BIG STATEMENT ---------- */
  .big-statement{padding:136px 0; text-align:center;}
  .big-statement-text{
    font-family:'Inter Tight',sans-serif; font-weight:800; font-size:64px;
    line-height:1.15; color:var(--indigo-deep); max-width:16ch;
    margin:0 auto; letter-spacing:-.025em;
  }
  .big-statement-text em{font-style:normal; color:var(--brick);}
  @media(max-width:860px){
    .big-statement{padding:80px 0;}
    .big-statement-text{font-size:36px; max-width:14ch;}
  }

  /* ---------- MICRO CTA ---------- */
  .micro-cta{
    font-family:'Inter',sans-serif; font-size:13px; color:#8a8270;
    margin-top:16px;
  }
  .micro-cta a{color:var(--brick); text-decoration:none; font-weight:600;}
  .micro-cta a:hover{text-decoration:underline;}
  .micro-cta-dark{color:#c9c2ef;}
  .micro-cta-dark a{color:#fff;}

  /* ---------- PARTNERS MARQUEE ---------- */
  .partners-banner{
    background:var(--indigo-deep); color:var(--cream-text);
    padding:36px 0 40px; overflow:hidden;
    margin:8px 24px 48px; border-radius:32px;
  }
  .partners-label{
    font-family:'Inter',sans-serif; font-weight:700; font-size:11px;
    letter-spacing:.16em; text-transform:uppercase; color:#c9c2ef;
    text-align:center; margin-bottom:24px; opacity:.85;
  }
  .marquee-viewport{width:100%; overflow:hidden; -webkit-mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent); mask-image:linear-gradient(90deg, transparent, #000 8%, #000 92%, transparent);}
  .marquee-track{
    display:flex; align-items:center; width:max-content;
    animation:scroll 26s linear infinite;
  }
  .marquee-track:hover{animation-play-state:paused;}
  @keyframes scroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }
  .partner-logo-link{display:block; line-height:0;}
  .partner-logo-img{
    height:74px; width:auto; display:block;
    padding:0 34px; opacity:.9;
    transition:transform .3s ease, opacity .3s ease, filter .3s ease;
    filter:drop-shadow(0 0 0 rgba(255,255,255,0));
  }
  .partner-logo-img[alt="Terso AI"]{
    height:58px;
  }
  .partner-logo-img:hover,
  .partner-logo-img.is-active{
    transform:scale(1.04);
    opacity:1;
    filter:brightness(0) invert(1) drop-shadow(0 0 1px rgba(255,255,255,.8));
  }

  /* ---------- CLIENT TYPES ---------- */
  .clients{padding:92px 0;}
  .client-row{
    display:flex; flex-wrap:wrap; gap:12px; margin-top:28px;
    font-family:'Inter',sans-serif;
  }
  .chip{
    border:1px solid var(--rule); background:#fff; padding:11px 20px; font-size:13.5px; font-weight:600;
    border-radius:var(--r-pill); color:var(--ink);
    transition:transform .25s ease, background .25s ease, color .25s ease, box-shadow .25s ease;
    display:inline-block;
    text-decoration:none; cursor:pointer;
  }
  .chip:hover{
    transform:scale(1.05);
    background:var(--ink); color:#fff; border-color:var(--ink);
    box-shadow:0 10px 24px rgba(32,28,62,.18);
  }

  /* ---------- CTA / CONTACT ---------- */
  .cta{
    background:var(--indigo-deep); color:var(--cream-text); padding:104px 0; text-align:center;
    margin:0 24px; border-radius:32px 32px 0 0;
  }
  .cta h2{
    font-family:'Inter Tight',sans-serif; font-weight:800;
    font-size:42px; max-width:20ch; margin:0 auto 28px; letter-spacing:-.02em; line-height:1.14;
  }
  .cta .btn-primary{background:var(--brick);}
  .cta .btn-primary:hover{background:var(--brick-deep);}

  /* ---------- CONTACT FORM ---------- */
  .contact-wrap{max-width:640px;}
  .contact-form{
    display:flex; flex-direction:column; gap:20px;
    margin-top:34px; font-family:'Inter',sans-serif;
  }
  .field{display:flex; flex-direction:column; gap:8px;}
  .field span{
    font-size:12px; font-weight:600; letter-spacing:.08em;
    text-transform:uppercase; color:#6b6480;
  }
  .field input, .field textarea{
    font-family:'Inter',sans-serif; font-size:15px; color:var(--ink);
    border:1px solid var(--rule); border-radius:var(--r-md); padding:13px 16px;
    background:#fff; resize:vertical;
    transition:border-color .2s ease, box-shadow .2s ease;
  }
  .field input:focus, .field textarea:focus{
    outline:none; border-color:var(--indigo-deep);
    box-shadow:0 0 0 3px rgba(74,67,135,.14);
  }
  .contact-form .btn{
    border:none; cursor:pointer; align-self:flex-start;
    font-family:'Inter',sans-serif;
  }
  .form-status{font-size:14px; min-height:20px;}
  .form-status.is-pending{color:#6b6480;}
  .form-status.is-success{color:#2e7d4f;}
  .form-status.is-error{color:var(--brick-deep);}

  footer{
    background:var(--indigo-deep); color:#a89fd6; padding:0 0 30px;
    font-family:'Inter',sans-serif; font-size:12px;
    margin:32px 24px 40px; border-radius:32px;
    position:relative; overflow:hidden;
  }
  .cta + footer{margin-top:0; border-radius:0 0 32px 32px;}
  footer::before{
    content:"GMG"; position:absolute; z-index:0; pointer-events:none;
    left:50%; bottom:-0.32em; transform:translateX(-50%);
    font-family:'Inter Tight',sans-serif; font-weight:900; font-size:220px;
    line-height:1; letter-spacing:-.02em; white-space:nowrap;
    color:rgba(255,255,255,.05);
  }
  footer .wrap{
    display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px 24px;
    position:relative; z-index:1;
  }
  .footer-email{color:#a89fd6; text-decoration:none;}
  .footer-email:hover{color:#fff; text-decoration:underline;}

  .footer-bio{
    padding:22px 0; margin-bottom:20px;
    border-bottom:1px solid rgba(255,255,255,.12);
  }
  .footer-bio-photo{
    width:42px; height:42px; border-radius:50%; object-fit:cover; flex-shrink:0;
    border:1.5px solid rgba(255,255,255,.25);
  }
  .footer-bio-text{display:flex; flex-direction:column; line-height:1.35; min-width:0; flex:1 1 auto;}
  .footer-bio-name, .footer-bio-title{white-space:normal; overflow-wrap:break-word;}
  .footer-bio-name{font-weight:700; font-size:12.5px; color:#fff;}
  .footer-bio-title{font-size:11px; color:#a89fd6;}
  .footer-bio-links{display:flex; gap:16px; margin-left:4px; flex-wrap:wrap;}
  .footer-bio-links a{
    font-size:11.5px; color:#a89fd6; text-decoration:none;
    display:inline-flex; align-items:center; gap:6px; white-space:nowrap;
  }
  .footer-bio-links a:hover{color:#fff; text-decoration:underline;}
  .icon-x{width:12px; height:12px; fill:currentColor; flex-shrink:0;}
  .icon-jpost{width:14px; height:14px; border-radius:4px; flex-shrink:0; display:block;}
  .icon-linkedin{width:13px; height:13px; fill:currentColor; flex-shrink:0;}

  /* ---------- SCROLL REVEAL ---------- */
  .reveal{
    opacity:0; transform:translateY(22px);
    transition:opacity .7s ease, transform .7s ease;
  }
  .reveal.is-visible{opacity:1; transform:translateY(0);}
  @media(prefers-reduced-motion:reduce){
    .reveal{opacity:1; transform:none; transition:none;}
  }

  .pillar-grid.reveal .pillar,
  .client-row.reveal .chip{
    opacity:0; transform:translateY(18px);
    transition:opacity .6s ease, transform .6s ease;
  }
  .pillar-grid.reveal.is-visible .pillar,
  .client-row.reveal.is-visible .chip{
    opacity:1; transform:translateY(0);
  }
  .pillar-grid.reveal .pillar:nth-child(1){transition-delay:.02s;}
  .pillar-grid.reveal .pillar:nth-child(2){transition-delay:.1s;}
  .pillar-grid.reveal .pillar:nth-child(3){transition-delay:.18s;}
  .pillar-grid.reveal .pillar:nth-child(4){transition-delay:.26s;}
  .pillar-grid.reveal .pillar:nth-child(5){transition-delay:.34s;}
  .pillar-grid.reveal .pillar:nth-child(6){transition-delay:.42s;}
  .client-row.reveal .chip:nth-child(1){transition-delay:.02s;}
  .client-row.reveal .chip:nth-child(2){transition-delay:.08s;}
  .client-row.reveal .chip:nth-child(3){transition-delay:.14s;}
  .client-row.reveal .chip:nth-child(4){transition-delay:.2s;}
  .client-row.reveal .chip:nth-child(5){transition-delay:.26s;}
  .client-row.reveal .chip:nth-child(6){transition-delay:.32s;}

  /* ---------- SCROLL PROGRESS BAR ---------- */
  #scroll-progress{
    position:fixed; top:0; left:0; height:3px; width:0%;
    background:var(--brick); z-index:200;
    transition:width .1s linear;
  }

  /* ---------- MOBILE NAV TOGGLE ---------- */
  .nav-toggle{
    display:none; width:40px; height:40px; border:none; background:none;
    align-items:center; justify-content:center; cursor:pointer; flex-shrink:0;
    border-radius:50%; transition:background .2s ease;
  }
  .nav-toggle:hover{background:rgba(32,28,62,.06);}
  .nav-toggle svg{width:22px; height:22px; stroke:var(--ink); fill:none; stroke-width:2; stroke-linecap:round;}

  @media(max-width:860px){
    .hero .wrap, .connector .wrap{grid-template-columns:1fr;}
    .pillar-grid{grid-template-columns:1fr;}
    .strip .wrap{grid-template-columns:1fr 1fr;}
    h1{font-size:44px; letter-spacing:-.02em;}
    .hero{padding:60px 0 48px;}
    .section-head{font-size:32px;}

    .nav-toggle{display:flex;}
    nav{
      display:flex; flex-direction:column; align-items:stretch; gap:4px;
      position:absolute; top:calc(100% + 10px); left:0; right:0;
      background:var(--paper); border:1px solid var(--rule); border-radius:var(--r-lg);
      box-shadow:0 16px 34px rgba(20,17,45,.14);
      padding:14px; font-size:16px;
      opacity:0; visibility:hidden; transform:translateY(-8px);
      transition:opacity .2s ease, transform .2s ease, visibility .2s;
    }
    .masthead.nav-open nav{
      opacity:1; visibility:visible; transform:translateY(0);
    }
    nav a{padding:12px 14px; text-align:center;}
    nav a.is-active::after{display:none;}
    .nav-cta{margin-top:6px;}

    /* connector diagram: stack vertically instead of a cramped horizontal row */
    .diagram{flex-direction:column; gap:16px;}
    .node-col{flex-direction:row; flex-wrap:wrap; justify-content:center; gap:10px;}
    .node{width:calc(50% - 5px);}
    .link{width:1.5px; height:26px; max-width:none; flex:none;}
    .link::after{
      content:"↓"; right:auto; left:50%; top:auto; bottom:-3px;
      transform:translateX(-50%);
    }

    /* footer: stack and center instead of cramped space-between wrapping */
    footer .wrap{flex-direction:column; align-items:center; text-align:center; gap:14px;}
    .footer-bio{flex-direction:column; gap:14px;}
    .footer-bio-text{align-items:center;}
    .footer-bio-links{justify-content:center;}
  }
