:root{
    --void:    #070D16;   /* page background           */
    --void-2:  #0B1422;   /* panels / cards            */
    --grid:    rgba(150,185,230,.06);
    --line:    rgba(150,185,230,.16);
    --paper:   #E9F0FA;   /* primary text              */
    --dim:     #8DA2BE;   /* secondary text            */
    --faint:   #58708F;   /* tertiary / hud            */
    --signal:  #FF4D1C;   /* the signal — orange       */
    --series:  #4D7CFF;   /* secondary data — blue     */
    --gutter:  clamp(20px, 5vw, 76px);
  }
  *{ margin:0; padding:0; box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    font-family:"Spline Sans", system-ui, sans-serif;
    background:
      linear-gradient(var(--grid) 1px, transparent 1px),
      linear-gradient(90deg, var(--grid) 1px, transparent 1px),
      var(--void);
    background-size:56px 56px, 56px 56px, auto;
    color:var(--paper);
    line-height:1.55;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  ::selection{ background:var(--signal); color:#fff; }
  a{ color:inherit; }
  a:focus-visible, button:focus-visible{ outline:2px solid var(--signal); outline-offset:3px; }

  .mono{
    font-family:"IBM Plex Mono", ui-monospace, monospace;
    font-size:.72rem; letter-spacing:.09em; text-transform:uppercase;
  }

  /* ---------- fixed scene ---------- */
  #scene{
    position:fixed; inset:0; z-index:0;
    width:100%; height:100%;
    display:block;
  }

  /* ---------- header ---------- */
  header{
    position:fixed; inset:0 0 auto 0; z-index:40;
    border-bottom:1px solid transparent;
    transition:background .35s ease, border-color .35s ease;
  }
  header.scrolled{
    background:rgba(7,13,22,.7);
    backdrop-filter:blur(12px);
    -webkit-backdrop-filter:blur(12px);
    border-bottom-color:var(--line);
  }
  .nav{
    display:flex; align-items:center; justify-content:space-between;
    height:68px; padding-inline:var(--gutter);
  }
  .brand{
    display:flex; align-items:center; gap:10px;
    text-decoration:none; font-weight:600; font-size:1.02rem; letter-spacing:-.01em;
  }
  .btn{
    display:inline-flex; align-items:center; gap:10px;
    background:var(--signal); color:#fff; text-decoration:none;
    font-weight:500; font-size:.92rem;
    padding:12px 22px; border:1px solid var(--signal);
    transition:background .25s ease, border-color .25s ease, transform .25s ease;
  }
  .btn:hover{ background:#ff6638; border-color:#ff6638; transform:translateY(-1px); }
  .btn.ghost{ background:transparent; border-color:var(--line); color:var(--paper); }
  .btn.ghost:hover{ border-color:var(--signal); background:rgba(255,77,28,.08); transform:translateY(-1px); }
  .btn .px{ width:7px; height:7px; background:#fff; }
  .btn .txt-s{ display:none; }
  .btn.ghost .px{ background:var(--signal); }

  /* ---------- HUD ---------- */
  .hud{
    position:fixed; z-index:30; bottom:18px; left:var(--gutter);
    color:var(--faint); display:flex; align-items:center; gap:14px;
    pointer-events:none;
  }
  .hud .bar{
    width:90px; height:3px; background:rgba(141,162,190,.18); position:relative; overflow:hidden;
  }
  .hud .bar i{
    position:absolute; inset:0; background:var(--signal);
    transform-origin:left center; transform:scaleX(0);
  }
  .hud-right{
    position:fixed; z-index:30; bottom:18px; right:var(--gutter);
    color:var(--faint); pointer-events:none; display:flex; align-items:center; gap:10px;
    transition:opacity .5s ease;
  }
  .hud-right .arrow{ display:inline-block; animation:nudge 1.8s ease-in-out infinite; }
  @keyframes nudge{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(5px);} }

  /* ---------- story panels ---------- */
  main{ position:relative; z-index:10; }
  .panel{
    min-height:100vh; min-height:100svh;
    display:flex; align-items:center;
    padding:100px var(--gutter) 90px;
    position:relative;
  }
  /* empty space BETWEEN chapter cards — falls in the phase-transition zone,
     so each card still sits exactly on its phase when centred in view */
  .panel:not(:last-of-type){ margin-bottom:100vh; }
  .panel-copy{
    max-width:560px;
    background:rgba(7,13,22,.42);
    backdrop-filter:blur(3px);
    -webkit-backdrop-filter:blur(3px);
    border:1px solid var(--line);
    padding:clamp(26px, 4vw, 44px);
    position:relative;
  }
  .panel-copy::before{
    content:""; position:absolute; top:-1px; left:-1px;
    width:18px; height:18px;
    border-top:2px solid var(--signal); border-left:2px solid var(--signal);
  }
  .panel.right{ justify-content:flex-end; }
  .panel.center{ justify-content:center; text-align:center; align-items:flex-end; padding-bottom:104px; }
  .panel.center .panel-copy{ max-width:680px; }
  .panel.center .eyebrow{ justify-content:center; }

  .eyebrow{
    display:flex; align-items:center; gap:12px;
    color:var(--dim); margin-bottom:18px; white-space:nowrap;
  }
  .eyebrow b{ color:var(--signal); font-weight:500; }
  .eyebrow::before{ content:""; width:7px; height:7px; background:var(--signal); }

  .panel h2, .panel h1{
    font-family:"Archivo", sans-serif;
    font-variation-settings:"wdth" 110;
    font-weight:830;
    font-size:clamp(1.8rem, 4.2vw, 2.9rem);
    line-height:1.0; letter-spacing:-.02em; text-transform:uppercase;
    margin-bottom:18px;
  }
  .panel h1{ font-size:clamp(2.1rem, 5vw, 3.4rem); }
  .panel .sig{ color:var(--signal); }
  .panel p{ color:var(--dim); font-size:clamp(.97rem, 1.3vw, 1.08rem); max-width:46ch; }
  .panel.center p{ margin-inline:auto; }
  .panel .stat-row{
    display:flex; gap:26px; margin-top:24px; flex-wrap:wrap; width:100%;
  }
  .panel .stat .n{
    font-family:"Archivo", sans-serif; font-variation-settings:"wdth" 116;
    font-weight:820; font-size:1.6rem; color:var(--paper);
    font-variant-numeric:tabular-nums;
  }
  .panel .stat .n em{ font-style:normal; color:var(--signal); }
  .panel .stat .l{ color:var(--faint); margin-top:2px; }
  .panel .stat .src{ color:var(--dim); margin-top:6px; font-size:.68rem; letter-spacing:.1em; display:flex; align-items:flex-start; gap:7px; white-space:normal; word-break:break-word; }
  .panel .stat-row .src{
    flex:0 0 100%; width:100%; max-width:100%; display:block; position:relative;
    padding-left:14px; box-sizing:border-box;
    color:var(--dim); margin-top:10px; font-size:.68rem; letter-spacing:.1em;
    line-height:1.6; white-space:normal; overflow-wrap:anywhere;
  }
  .panel .stat-row .src::before{
    content:""; position:absolute; left:0; top:6px;
    width:5px; height:5px; background:var(--signal);
  }
  .cta-row{ display:flex; gap:14px; margin-top:30px; flex-wrap:wrap; }
  .panel.center .cta-row{ justify-content:center; }

  [data-reveal]{ opacity:0; transform:translateY(26px); }
  .no-anim [data-reveal]{ opacity:1 !important; transform:none !important; }

  /* ================= BUSINESS / CONVERSION SECTIONS ================= */
  .biz{
    position:relative; z-index:10;
    background:
      linear-gradient(var(--grid) 1px, transparent 1px),
      linear-gradient(90deg, var(--grid) 1px, transparent 1px),
      var(--void);
    background-size:56px 56px, 56px 56px, auto;
  }
  .biz.alt{ background-color:var(--void-2);
    background-image:
      linear-gradient(rgba(150,185,230,.05) 1px, transparent 1px),
      linear-gradient(90deg, rgba(150,185,230,.05) 1px, transparent 1px);
  }
  .sec{ padding:clamp(72px,9vw,128px) var(--gutter); max-width:1280px; margin-inline:auto; }
  .sec-head{ margin-bottom:clamp(40px,6vw,68px); max-width:760px; }
  .sec-head.center{ margin-inline:auto; text-align:center; }
  .sec-head.center .eyebrow{ justify-content:center; }
  .sec-head h2{
    font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 112;
    font-weight:820; font-size:clamp(1.9rem,4.4vw,3.1rem); line-height:1.0;
    letter-spacing:-.02em; text-transform:uppercase; margin-bottom:16px;
  }
  .sec-head h2 .sig{ color:var(--signal); }
  .sec-head p{ color:var(--dim); font-size:clamp(1rem,1.3vw,1.1rem); max-width:54ch; }
  .sec-head.center p{ margin-inline:auto; }

  /* generic card grid */
  .grid{ display:grid; gap:1px; background:var(--line); border:1px solid var(--line); }
  .grid.cols-2{ grid-template-columns:repeat(2,1fr); }
  .grid.cols-3{ grid-template-columns:repeat(3,1fr); }
  .grid.cols-4{ grid-template-columns:repeat(4,1fr); }
  .card{ background:var(--void); padding:30px 26px 32px; display:flex; flex-direction:column; gap:14px;
    transition:background .3s ease; position:relative; }
  .biz.alt .card{ background:var(--void-2); }
  .card:hover{ background:#0E1A2C; }
  .card .ax{ color:var(--faint); display:flex; justify-content:space-between; gap:10px; }
  .card h3{ font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 108;
    font-weight:740; font-size:1.24rem; line-height:1.15; letter-spacing:-.01em; }
  .card p{ color:var(--dim); font-size:.93rem; flex:1; }
  .card .more{ color:var(--paper); text-decoration:none; font-size:.86rem; font-weight:500;
    display:inline-flex; gap:8px; align-items:center; margin-top:2px; }
  .card .more::after{ content:"→"; color:var(--signal); transition:transform .25s ease; }
  .card:hover .more::after{ transform:translateX(4px); }
  .glyph{ height:54px; } .glyph svg{ width:100%; height:100%; overflow:visible; }

  /* process / how it works */
  .pipe{ position:relative; display:grid; grid-template-columns:repeat(4,1fr); gap:clamp(22px,3vw,40px); }
  .pipe::before{ content:""; position:absolute; top:5px; left:0; right:0; height:1px; background:var(--line); }
  .pstep{ position:relative; padding-top:32px; }
  .pstep::before{ content:""; position:absolute; top:0; left:0; width:11px; height:11px;
    background:var(--void); border:1px solid var(--signal); }
  .biz.alt .pstep::before{ background:var(--void-2); }
  .pstep .mono{ color:var(--signal); }
  .pstep h3{ font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 108;
    font-weight:720; font-size:1.22rem; margin:9px 0 10px; }
  .pstep p{ color:var(--dim); font-size:.92rem; }
  .pstep .dur{ margin-top:14px; color:var(--faint); }

  /* tech stack + security */
  .stack-tags{ display:flex; flex-wrap:wrap; gap:10px; }
  .stack-tags span{ border:1px solid var(--line); padding:9px 15px; color:var(--dim);
    font-family:"IBM Plex Mono",monospace; font-size:.78rem; letter-spacing:.03em;
    transition:border-color .25s ease, color .25s ease; }
  .stack-tags span:hover{ border-color:var(--signal); color:var(--paper); }
  /* cards at 75% transparency — let the grid/backdrop show through */
  .card{ background:rgba(7,13,22,.25); }
  .biz.alt .card{ background:rgba(11,20,34,.25); }
  .card:hover{ background:rgba(14,26,44,.38); }

  /* partner data stack */
  .partner-stack{ max-width:780px; margin:44px auto 0; text-align:center; }
  .partner-stack.wide{ max-width:1040px; }
  .stack-groups{ display:flex; flex-direction:column; gap:22px; margin-top:8px; text-align:left; }
  .stack-group .sg-label{ font-size:.72rem; letter-spacing:.14em; text-transform:uppercase;
    color:var(--signal); margin-bottom:12px; opacity:.9; }
  .stack-group .stack-tags{ justify-content:flex-start; }
  .partner-stack .pstack-label{ font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:.74rem;
    letter-spacing:.14em; text-transform:uppercase; color:var(--faint); margin-bottom:20px; }
  .partner-stack .stack-tags{ justify-content:center; }

  /* technology partners */
  .partners{ border-top:1px solid var(--line); }
  .partner-row{ display:grid; grid-template-columns:repeat(3,1fr); gap:1px;
    background:var(--line); border:1px solid var(--line); max-width:1000px; margin-inline:auto; }
  .partner{ background:rgba(7,13,22,.25); padding:42px 26px 36px; display:flex; flex-direction:column;
    align-items:center; gap:18px; text-align:center; transition:background .3s ease; }
  .partner:hover{ background:rgba(14,26,44,.45); }
  .partner .logo{ height:42px; display:flex; align-items:center; justify-content:center; }
  .partner .logo svg{ height:30px; width:auto; display:block; }
  .partner .logo svg.ms{ height:28px; }
  .partner .logo svg.aws{ height:36px; }
  .partner .logo svg.cl{ height:30px; }
  .partner .pname{ font-weight:600; font-size:1rem; letter-spacing:-.01em; }
  .partner .pdesc{ color:var(--faint); }
  @media (max-width:760px){ .partner-row{ grid-template-columns:1fr; } }

  /* named projects */
  .project{ gap:12px; }
  .project p{ flex:none; }
  .project .scope{ flex:0 0 auto; color:var(--signal); font-family:"IBM Plex Mono",ui-monospace,monospace;
    font-size:.7rem; text-transform:uppercase; letter-spacing:.08em; margin-top:-2px; }
  .project h3{ margin-bottom:2px; }
  .ptags{ display:flex; flex-wrap:wrap; gap:7px; margin-top:auto; padding-top:14px; flex:none; }
  .ptags span{ border:1px solid var(--line); color:var(--dim);
    font-family:"IBM Plex Mono",ui-monospace,monospace; font-size:.64rem; letter-spacing:.03em;
    padding:5px 9px; white-space:nowrap; }

  /* faq */
  .faq{ max-width:880px; }
  .faq details{ border-top:1px solid var(--line); }
  .faq details:last-child{ border-bottom:1px solid var(--line); }
  .faq summary{ list-style:none; cursor:pointer; padding:22px 0; display:flex;
    justify-content:space-between; align-items:center; gap:20px;
    font-weight:600; font-size:1.05rem; color:var(--paper); }
  .faq summary::-webkit-details-marker{ display:none; }
  .faq summary .ic{ width:14px; height:14px; position:relative; flex-shrink:0; }
  .faq summary .ic::before, .faq summary .ic::after{ content:""; position:absolute; background:var(--signal);
    transition:transform .25s ease, opacity .25s ease; }
  .faq summary .ic::before{ left:0; right:0; top:6px; height:2px; }
  .faq summary .ic::after{ top:0; bottom:0; left:6px; width:2px; }
  .faq details[open] summary .ic::after{ transform:scaleY(0); }
  .faq details p{ color:var(--dim); font-size:.95rem; padding:0 0 22px; max-width:64ch; }

  /* final CTA */
  .final{ text-align:center; border-top:1px solid var(--line); }
  .final .eyebrow{ justify-content:center; }
  .final h2{ font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 116;
    font-weight:840; font-size:clamp(2.4rem,6vw,5rem); line-height:.96; letter-spacing:-.025em;
    text-transform:uppercase; margin:16px auto; max-width:16ch; }
  .final h2 .sig{ color:var(--signal); }
  .final p{ color:var(--dim); max-width:48ch; margin:0 auto 34px; }
  .final .cta-row{ justify-content:center; }

  /* ---------- footer ---------- */
  footer{
    position:relative; z-index:10;
    border-top:1px solid var(--line);
    background:rgba(7,13,22,.78);
    backdrop-filter:blur(6px);
    -webkit-backdrop-filter:blur(6px);
  }
  .foot{
    display:flex; justify-content:space-between; align-items:center; gap:18px;
    flex-wrap:wrap; padding:26px var(--gutter); color:var(--faint);
  }
  .foot a{ text-decoration:none; }
  .foot a:hover{ color:var(--signal); }

  /* ---------- step navigator ---------- */
  .step-nav{
    position:fixed; right:var(--gutter); top:50%;
    transform:translateY(-50%);
    z-index:30;
    display:flex; flex-direction:column; align-items:flex-end;
  }
  .step-track{
    position:absolute; right:3px; top:0; bottom:0;
    width:1px; background:var(--line);
    pointer-events:none;
  }
  .step-track-fill{
    position:absolute; top:0; left:0; right:0;
    background:var(--signal);
    transform-origin:top center; transform:scaleY(0);
  }
  .step-list{
    list-style:none;
    display:flex; flex-direction:column; gap:26px;
    position:relative;
  }
  .step-item a{
    display:flex; align-items:center; gap:11px;
    text-decoration:none; flex-direction:row-reverse;
  }
  .step-item a:focus-visible{ outline:2px solid var(--signal); outline-offset:4px; }
  .step-dot{
    width:7px; height:7px;
    background:var(--faint);
    flex-shrink:0;
    transition:background .25s ease, transform .25s ease;
  }
  .step-lbl{
    font-family:"IBM Plex Mono", ui-monospace, monospace;
    font-size:.66rem; letter-spacing:.09em; text-transform:uppercase;
    color:var(--faint); white-space:nowrap;
    opacity:0; transform:translateX(8px);
    transition:opacity .25s ease, transform .25s ease, color .25s ease;
    pointer-events:none;
  }
  .step-item.s-active .step-dot{
    background:var(--signal); transform:scale(1.6);
  }
  .step-item.s-active .step-lbl{
    opacity:1; transform:translateX(0); color:var(--paper);
    pointer-events:auto;
  }
  .step-item a:hover .step-lbl{
    opacity:1; transform:translateX(0);
  }

  /* header nav links (hidden under 1020px via media query below) */
  .nav-links{ display:flex; align-items:center; gap:30px; }
  .nav-links a.lk{ text-decoration:none; color:var(--dim); font-size:.92rem; position:relative; }
  .nav-links a.lk::after{ content:""; position:absolute; left:0; bottom:-4px; height:2px; width:0;
    background:var(--signal); transition:width .25s ease; }
  .nav-links a.lk:hover{ color:var(--paper); }
  .nav-links a.lk:hover::after{ width:100%; }

  @media (max-width: 1020px){
    .grid.cols-4{ grid-template-columns:repeat(2,1fr); }
    .grid.cols-3{ grid-template-columns:repeat(2,1fr); }
    .pipe{ grid-template-columns:repeat(2,1fr); row-gap:38px; }
    .nav-links{ display:none; }
  }

  @media (max-width: 760px){
    .panel{ align-items:flex-end; padding-bottom:96px; }
    .panel.right{ justify-content:flex-start; }
    .panel-copy{ max-width:none; width:100%; }
    .hud .lab{ display:none; }
    .hud-right{ display:none; }
    .step-nav{ display:none; }
    .nav .btn .txt{ display:none; }
    .nav .btn .txt-s{ display:inline; }
    .nav .btn{ padding:11px 16px; }
    .grid.cols-4, .grid.cols-3, .grid.cols-2{ grid-template-columns:1fr; }
    .pipe{ grid-template-columns:1fr; row-gap:0; }
    .pipe::before{ top:0; bottom:0; left:5px; right:auto; width:1px; height:100%; }
    .pstep{ padding:0 0 34px 32px; } .pstep::before{ left:0; }
    .stack-tags span{ font-size:.72rem; padding:8px 12px; }
  }

  @media (prefers-reduced-motion: reduce){
    html{ scroll-behavior:auto; }
    .hud-right .arrow{ animation:none; }
    [data-reveal]{ opacity:1; transform:none; }
  }

  /* ---------- contact form ---------- */
  .final{ text-align:left; }
  .final .eyebrow{ justify-content:flex-start; }
  .final h2{ max-width:18ch; margin-inline:0; }
  .final p{ margin-inline:0; }
  .contact-wrap{
    display:grid; grid-template-columns:1fr 300px; gap:clamp(32px,5vw,72px);
    margin-top:40px; align-items:start;
  }
  .contact-form{ display:flex; flex-direction:column; gap:18px; }
  .cf-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .cf-field{ display:flex; flex-direction:column; gap:7px; }
  .cf-label{ color:var(--faint); }
  .cf-opt{ color:var(--faint); opacity:.6; text-transform:none; font-style:italic; }
  .cf-input{
    background:rgba(150,185,230,.06);
    border:1px solid var(--line);
    color:var(--paper);
    font-family:"Spline Sans",system-ui,sans-serif;
    font-size:.95rem;
    padding:12px 14px;
    outline:none;
    transition:border-color .22s ease, background .22s ease;
    border-radius:0;
    -webkit-appearance:none;
    width:100%;
  }
  .cf-input::placeholder{ color:var(--faint); }
  .cf-input:focus{ border-color:var(--signal); background:rgba(255,77,28,.04); }
  .cf-input.invalid{ border-color:#ff4444; }
  .cf-textarea{ resize:vertical; min-height:110px; }
  .cf-footer{
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; flex-wrap:wrap;
  }
  .cf-note{ color:var(--faint); max-width:36ch; font-size:.72rem; }
  .cf-note .cf-link{ color:var(--dim); text-decoration:underline; }
  .cf-note .cf-link:hover{ color:var(--signal); }
  /* honeypot — visually and physically removed from the page, off-screen for bots */
  .cf-hp{ position:absolute; left:-9999px; width:1px; height:1px; overflow:hidden; }
  .cf-success, .cf-error{
    display:none; margin-top:16px; padding:14px 18px; border-radius:8px;
    font-size:.9rem; line-height:1.5; font-family:"IBM Plex Mono",monospace;
  }
  .cf-success{ display:none; background:rgba(77,255,140,.1); border:1px solid rgba(77,255,140,.35); color:#4dff8c; }
  .cf-error  { display:none; background:rgba(255,68,68,.1);  border:1px solid rgba(255,68,68,.35);  color:#ff6b6b; }
  .cf-success.visible, .cf-error.visible{ display:block; }
  .cf-aside{
    border:1px solid var(--line); padding:32px 26px;
    display:flex; flex-direction:column; gap:24px;
    background:rgba(7,13,22,.42); position:relative;
  }
  .cf-aside::before{
    content:""; position:absolute; top:-1px; left:-1px;
    width:14px; height:14px;
    border-top:2px solid var(--signal); border-left:2px solid var(--signal);
  }
  .cf-aside-label{ color:var(--faint); margin-bottom:3px; }
  .cf-aside-val{ color:var(--paper); font-weight:600; font-size:1.02rem; text-decoration:none; }
  a.cf-aside-val:hover{ color:var(--signal); }
  .cf-aside-guarantee{
    display:flex; gap:12px; align-items:flex-start;
    color:var(--dim); font-size:.9rem; padding-top:16px;
    border-top:1px solid var(--line); margin-top:4px;
  }
  @media (max-width:900px){
    .contact-wrap{ grid-template-columns:1fr; }
    .cf-aside{ max-width:none; }
  }
  @media (max-width:600px){
    .cf-row{ grid-template-columns:1fr; }
    .cf-footer{ flex-direction:column; align-items:flex-start; }
  }

  /* ---------- mobile progress dots ---------- */
  .m-progress{
    display:none;
    position:fixed; bottom:22px; left:50%; transform:translateX(-50%);
    z-index:30; gap:9px; align-items:center;
    pointer-events:none;
  }
  .m-dot{
    width:6px; height:6px; background:var(--faint);
    transition:background .25s ease, transform .25s ease;
    flex-shrink:0;
  }
  .m-dot.active{ background:var(--signal); transform:scale(1.55); }
  @media (max-width:760px){
    .m-progress{ display:flex; }
    .hud-right{ display:none; }
  }

#team .msg-grid{ display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);
    gap:clamp(18px,3vw,40px); align-items:stretch; margin-top:34px; }
  #team .msg-card{ background:var(--void-2); border:1px solid var(--line); border-radius:14px;
    padding:clamp(26px,3vw,38px); display:flex; flex-direction:column; align-items:flex-start; }
  #team .msg-photo{ width:128px; height:128px; border-radius:50%; overflow:hidden;
    border:1px solid var(--line); margin-bottom:22px; background:var(--void);
    position:relative; display:flex; align-items:center; justify-content:center; }
  #team .msg-photo img{ width:100%; height:100%; object-fit:cover; display:block; position:relative; z-index:1; }
  #team .msg-photo-fallback{ position:absolute; inset:0; display:flex; align-items:center; justify-content:center;
    font-family:"Archivo",sans-serif; font-weight:760; font-size:2.2rem; color:var(--dim); letter-spacing:.02em; z-index:0; }
  #team .msg-card h3{ font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 108;
    font-weight:760; font-size:1.32rem; color:var(--paper); letter-spacing:-.01em; margin-bottom:6px; }
  #team .msg-card .role{ color:var(--dim); font-size:.86rem; margin-bottom:20px; }
  #team .msg-li{ display:inline-flex; align-items:center; gap:9px; color:var(--paper);
    text-decoration:none; font-size:.88rem; font-weight:500; padding:9px 16px;
    border:1px solid var(--line); border-radius:999px; transition:border-color .25s ease, color .25s ease; }
  #team .msg-li svg{ color:var(--dim); transition:color .25s ease; }
  #team .msg-li:hover{ border-color:var(--signal); color:var(--signal); }
  #team .msg-li:hover svg{ color:var(--signal); }
  #team .msg-body{ background:var(--void-2); border:1px solid var(--line); border-radius:14px;
    padding:clamp(28px,3vw,44px); display:flex; flex-direction:column; justify-content:center; gap:18px; }
  #team .msg-body p{ color:var(--dim); font-size:clamp(1rem,1.2vw,1.1rem); line-height:1.7; max-width:62ch; }
  #team .msg-body p:first-child{ color:var(--paper); }
  @media (max-width:820px){
    #team .msg-grid{ grid-template-columns:1fr; }
    #team .msg-card{ align-items:center; text-align:center; }
    #team .msg-body p{ max-width:none; }
  }

/* ==================================================================
   BLOG / INNER PAGES  (added for the WordPress theme)
   Reuses the existing tokens — no new colours introduced.
   ================================================================== */

/* Inner pages have no canvas behind them, so give the header room. */
.page-top{ padding-top:clamp(96px,12vh,150px); }
.sec.narrow{ max-width:760px; }

/* --- post cards on the listing --- */
.post-card h3{ margin-bottom:2px; }
.post-card h3 a{ text-decoration:none; color:var(--paper); }
.post-card:hover h3 a{ color:var(--signal); }
.post-thumb{ display:block; margin:2px 0 4px; border:1px solid var(--line); overflow:hidden; }
.post-thumb img{ width:100%; height:150px; object-fit:cover; display:block;
  transition:transform .4s ease, opacity .3s ease; opacity:.85; }
.post-card:hover .post-thumb img{ transform:scale(1.03); opacity:1; }

/* --- single post --- */
.post-head{ margin-bottom:34px; }
.post-head h1{ font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 112;
  font-weight:800; font-size:clamp(1.9rem,4.4vw,3rem); line-height:1.08;
  letter-spacing:-.025em; margin:10px 0 16px; }
.post-meta{ color:var(--faint); font-size:.8rem; display:flex; gap:9px; flex-wrap:wrap; align-items:center; }

.post-hero{ margin:0 0 38px; border:1px solid var(--line); }
.post-hero img{ width:100%; height:auto; display:block; }

/* Long-form reading column */
.post-body{ color:var(--dim); font-size:1.05rem; line-height:1.75; }
.post-body > * + *{ margin-top:1.15em; }
.post-body h2, .post-body h3, .post-body h4{
  font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 108;
  color:var(--paper); letter-spacing:-.015em; line-height:1.2;
  margin-top:1.9em; margin-bottom:.5em; }
.post-body h2{ font-size:1.6rem; font-weight:780; }
.post-body h3{ font-size:1.25rem; font-weight:740; }
.post-body h4{ font-size:1.05rem; font-weight:700; }
.post-body strong, .post-body b{ color:var(--paper); font-weight:600; }
.post-body a{ color:var(--signal); text-decoration:underline; text-underline-offset:3px; }
.post-body a:hover{ text-decoration-thickness:2px; }
.post-body ul, .post-body ol{ padding-left:1.35em; }
.post-body li + li{ margin-top:.45em; }
.post-body li::marker{ color:var(--signal); }
.post-body img{ max-width:100%; height:auto; border:1px solid var(--line); }
.post-body figure{ margin:1.8em 0; }
.post-body figcaption{ color:var(--faint); font-size:.82rem; margin-top:8px;
  font-family:"IBM Plex Mono",monospace; }
.post-body blockquote{
  border-left:2px solid var(--signal); padding:4px 0 4px 20px;
  color:var(--paper); font-size:1.12rem; font-style:normal; }
.post-body code{
  font-family:"IBM Plex Mono",monospace; font-size:.88em;
  background:var(--void-2); border:1px solid var(--line);
  padding:2px 6px; color:var(--paper); }
.post-body pre{
  background:var(--void-2); border:1px solid var(--line);
  padding:20px; overflow-x:auto; }
.post-body pre code{ background:none; border:0; padding:0; font-size:.86rem; line-height:1.6; }
.post-body hr{ border:0; border-top:1px solid var(--line); margin:2.4em 0; }
.post-body table{ width:100%; border-collapse:collapse; font-size:.94rem; }
.post-body th, .post-body td{ border:1px solid var(--line); padding:10px 13px; text-align:left; }
.post-body th{ color:var(--paper); font-weight:600; background:var(--void-2); }

/* tags on a post */
.post-tags{ margin-top:36px; }
.post-tags a{ text-decoration:none; }

/* end-of-post CTA — routes readers back into the funnel */
.post-cta{
  margin-top:52px; padding:34px 30px; text-align:center;
  border:1px solid var(--line); background:var(--void-2); }
.post-cta h3{ font-family:"Archivo",sans-serif; font-variation-settings:"wdth" 108;
  font-weight:760; font-size:1.35rem; color:var(--paper); margin-bottom:8px; }
.post-cta p{ color:var(--dim); margin-bottom:22px; }

/* prev / next */
.post-nav{ display:flex; justify-content:space-between; gap:20px; flex-wrap:wrap;
  margin-top:44px; padding-top:26px; border-top:1px solid var(--line); font-size:.85rem; }
.post-nav a{ color:var(--dim); text-decoration:none; max-width:46%; }
.post-nav a:hover{ color:var(--signal); }

/* pagination */
.pagination{ margin-top:52px; }
.pagination .nav-links{ display:flex; gap:8px; justify-content:center; flex-wrap:wrap; }
.pagination a, .pagination span.current, .pagination span.dots{
  font-family:"IBM Plex Mono",monospace; font-size:.85rem;
  padding:9px 15px; border:1px solid var(--line); color:var(--dim); text-decoration:none;
  transition:border-color .25s ease, color .25s ease; }
.pagination a:hover{ border-color:var(--signal); color:var(--paper); }
.pagination span.current{ border-color:var(--signal); color:var(--signal); }

.no-posts{ color:var(--dim); }

@media (max-width:760px){
  .post-nav a{ max-width:100%; }
  .post-body{ font-size:1rem; }
}
