  :root{
    --ink:#0E0D0C;
    --ink-2:#1A1817;
    --paper:#F6F4F1;
    --paper-2:#EDE9E4;
    --maroon:#8B1A2B;
    --maroon-deep:#6E1322;
    --maroon-bright:#E04B63;
    --green:#04A74E;
    --grey:#6E6763;
    --grey-light:#A49C97;
    --hairline:#D9D3CC;
    --glass:rgba(255,255,255,.07);
    --glass-line:rgba(255,255,255,.16);
    --serif:"Playfair Display",Georgia,serif;
    --sans:"Archivo","Helvetica Neue",Arial,sans-serif;
    --mono:"IBM Plex Mono",ui-monospace,monospace;
    --shell:1180px;
  }

  *,*::before,*::after{ box-sizing:border-box; }
  body{
    margin:0; background:var(--paper); color:var(--ink);
    font-family:var(--sans); font-size:16px; line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; }
  button{ font:inherit; cursor:pointer; }
  :focus-visible{ outline:2px solid var(--maroon-bright); outline-offset:3px; }

  .shell{ width:100%; max-width:var(--shell); margin:0 auto; padding-inline:24px; }
  @media (max-width:520px){ .shell{ padding-inline:18px; } }

  /* ---------- photographic grounds (placeholders) ---------- */
  .photo{ position:relative; overflow:hidden; background:var(--ink); isolation:isolate; }
  .photo::before{
    content:""; position:absolute; inset:0; z-index:0;
    background:
      radial-gradient(70% 55% at 78% 22%, rgba(255,255,255,.17), transparent 62%),
      radial-gradient(46% 40% at 18% 78%, rgba(255,255,255,.09), transparent 66%),
      linear-gradient(118deg,#2A2624 0%,#191615 44%,#0C0B0A 100%);
  }
  .photo::after{
    content:""; position:absolute; inset:0; z-index:1; opacity:.5;
    background:
      repeating-linear-gradient(104deg, rgba(255,255,255,.035) 0 1px, transparent 1px 7px),
      repeating-linear-gradient(16deg, rgba(0,0,0,.16) 0 1px, transparent 1px 11px);
  }
  .photo.v2::before{
    background:
      radial-gradient(64% 50% at 22% 26%, rgba(255,255,255,.15), transparent 60%),
      radial-gradient(50% 44% at 84% 74%, rgba(255,255,255,.07), transparent 64%),
      linear-gradient(200deg,#262221 0%,#151312 50%,#0B0A09 100%);
  }
  .photo.v3::before{
    background:
      radial-gradient(58% 46% at 50% 14%, rgba(255,255,255,.16), transparent 58%),
      radial-gradient(46% 40% at 12% 88%, rgba(255,255,255,.08), transparent 62%),
      linear-gradient(148deg,#242120 0%,#171514 46%,#0A0908 100%);
  }
  .photo.v4::before{
    background:
      radial-gradient(60% 52% at 86% 36%, rgba(255,255,255,.14), transparent 60%),
      radial-gradient(44% 38% at 24% 82%, rgba(255,255,255,.07), transparent 64%),
      linear-gradient(226deg,#282423 0%,#161413 48%,#0B0A09 100%);
  }
  .photo > *{ position:relative; z-index:2; }
  .scrim{ position:absolute; inset:0; z-index:1; background:rgba(8,7,7,.52); }

  /* ---------- header ---------- */
  .site-head{
    position:sticky; top:env(safe-area-inset-top,0px); z-index:60;
    background:rgba(14,13,12,.55);
    backdrop-filter:blur(18px) saturate(1.2);
    -webkit-backdrop-filter:blur(18px) saturate(1.2);
    border-bottom:1px solid rgba(255,255,255,.09);
  }
  .head-in{
    display:flex; align-items:center; justify-content:space-between; gap:20px;
    padding-block:16px;
  }
  .brand{ display:flex; flex-direction:column; line-height:1; text-decoration:none; }
  .brand b{
    font-family:var(--sans); font-weight:700; font-size:22px; letter-spacing:.13em;
    color:#fff;
  }
  .brand small{
    font-family:var(--sans); font-size:8.5px; letter-spacing:.42em;
    color:rgba(255,255,255,.62); margin-top:4px; padding-left:2px;
  }
  .nav{ display:flex; gap:26px; }
  .nav button{
    background:none; border:0; padding:4px 0; color:rgba(255,255,255,.74);
    font-size:14.5px; letter-spacing:.01em; position:relative; transition:color .2s;
  }
  .nav button:hover{ color:#fff; }
  .nav button[aria-current="page"]{ color:#fff; }
  .nav button[aria-current="page"]::after{
    content:""; position:absolute; left:0; right:0; bottom:-2px; height:1.5px;
    background:var(--maroon-bright);
  }
  .head-cta{
    background:rgba(255,255,255,.06); color:#fff;
    border:1px solid rgba(255,255,255,.28); border-radius:100px;
    padding:11px 22px; font-size:14px; font-weight:500; white-space:nowrap;
    transition:background .25s,border-color .25s,color .25s;
  }
  /* per brief: header CTA turns green on hover */
  .head-cta:hover{ background:var(--green); border-color:var(--green); color:#fff; }
  .burger{ display:none; background:none; border:0; color:#fff; padding:6px; }
  .burger svg{ display:block; }
  @media (max-width:900px){
    .nav{
      display:none; position:absolute; left:0; right:0; top:100%;
      flex-direction:column; gap:0; padding:8px 24px 18px;
      background:rgba(14,13,12,.96);
      backdrop-filter:blur(18px); -webkit-backdrop-filter:blur(18px);
      border-bottom:1px solid rgba(255,255,255,.1);
    }
    .nav.open{ display:flex; }
    .nav button{ padding:13px 0; text-align:left; border-bottom:1px solid rgba(255,255,255,.07); }
    .nav button[aria-current="page"]::after{ display:none; }
    .burger{ display:block; }
    .head-cta{ padding:9px 16px; font-size:13px; }
  }
  @media (max-width:520px){ .head-cta{ display:none; } }

  /* ---------- hero ---------- */
  .hero{ min-height:clamp(480px,74vh,660px); display:flex; align-items:center; padding-block:84px; }
  .hero-in{ width:100%; max-width:var(--shell); margin:0 auto; padding-inline:24px; }
  @media (max-width:520px){ .hero-in{ padding-inline:18px; } }
  .hero h1{
    font-family:var(--serif); font-weight:400; color:#fff;
    font-size:clamp(34px,5.6vw,60px); line-height:1.1; letter-spacing:-.012em;
    margin:0 0 20px; max-width:15ch; text-wrap:balance;
  }
  .hero h1 em{ font-style:italic; color:#fff; }
  .hero p.lede{
    margin:0 0 30px; max-width:52ch; font-size:17px; line-height:1.62;
    color:rgba(255,255,255,.82);
  }
  .hero-cta{ display:flex; flex-wrap:wrap; gap:12px; }
  .btn{
    display:inline-flex; align-items:center; gap:9px;
    border-radius:100px; padding:13px 26px; font-size:14.5px; font-weight:500;
    border:1px solid transparent; text-decoration:none; transition:all .24s;
  }
  .btn-solid{ background:var(--maroon); color:#fff; }
  .btn-solid:hover{ background:var(--maroon-deep); }
  .btn-ghost{ background:rgba(255,255,255,.05); color:#fff; border-color:rgba(255,255,255,.34); }
  .btn-ghost:hover{ background:rgba(255,255,255,.13); }
  .btn-dark{ background:var(--ink); color:#fff; }
  .btn-dark:hover{ background:var(--maroon); }

  .scroll-cue{
    display:flex; flex-direction:column; align-items:center; gap:7px;
    margin-top:52px;
  }
  .cue-mouse{
    width:19px; height:30px; border:1.5px solid var(--maroon-bright); border-radius:11px;
    display:flex; justify-content:center; padding-top:5px;
  }
  .cue-dot{
    width:3px; height:6px; border-radius:2px; background:var(--maroon-bright);
    animation:cueD 1.9s ease-in-out infinite;
  }
  @keyframes cueD{
    0%{transform:translateY(0);opacity:1}
    60%{transform:translateY(9px);opacity:0}
    100%{transform:translateY(0);opacity:0}
  }
  .cue-label{ font-size:9px; letter-spacing:.24em; text-transform:uppercase; color:rgba(255,255,255,.9); }
  .cue-chev{ animation:cueC 1.9s ease-in-out infinite; }
  @keyframes cueC{
    0%,100%{transform:translateY(0);opacity:.5}
    50%{transform:translateY(3px);opacity:1}
  }

  /* ---------- section furniture ---------- */
  section{ padding-block:clamp(64px,8vw,104px); }
  .sec-head{ text-align:center; margin-bottom:46px; }
  .eyebrow{
    font-family:var(--mono); font-size:11px; letter-spacing:.3em; text-transform:uppercase;
    color:var(--grey); display:inline-flex; align-items:center; gap:16px; margin-bottom:18px;
  }
  .eyebrow::before,.eyebrow::after{ content:""; width:52px; height:1px; background:var(--hairline); }
  .eyebrow.on-dark{ color:rgba(255,255,255,.62); }
  .eyebrow.on-dark::before,.eyebrow.on-dark::after{ background:rgba(255,255,255,.22); }
  h2.display{
    font-family:var(--serif); font-weight:400; font-size:clamp(28px,4.2vw,46px);
    line-height:1.16; letter-spacing:-.012em; margin:0 0 16px; text-wrap:balance;
  }
  h2.display em{ font-style:italic; color:var(--maroon); }
  .sec-head p{ margin:0 auto; max-width:64ch; color:var(--grey); font-size:16px; }
  .on-dark h2.display,.on-dark .sec-head p{ color:#fff; }
  .on-dark .sec-head p{ color:rgba(255,255,255,.72); }

  /* ---------- pillar accordion ---------- */
  .pillars{ display:flex; gap:10px; height:520px; }
  .pill{
    position:relative; border-radius:16px; overflow:hidden; cursor:pointer;
    border:1px solid rgba(255,255,255,.14);
    flex:0 0 74px; transition:flex-basis .55s cubic-bezier(.22,.8,.3,1);
    background:var(--ink);
  }
  .pill.open{ flex:1 1 auto; cursor:default; }
  .pill .bg{ position:absolute; inset:0; z-index:0; }
  .pill .veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(92deg,rgba(9,8,8,.93) 0%,rgba(9,8,8,.78) 42%,rgba(9,8,8,.30) 100%); }
  .pill.closed .veil{ background:rgba(9,8,8,.72); }
  .pill-closed-label{
    position:absolute; inset:0; z-index:3;
    display:flex; flex-direction:column; align-items:center; gap:18px; padding-block:26px;
  }
  .pill.open .pill-closed-label{ display:none; }
  .pill-closed-label .num{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.66); }
  .pill-closed-label .vert{
    writing-mode:vertical-rl; text-orientation:mixed;
    font-size:10px; letter-spacing:.26em; text-transform:uppercase;
    color:rgba(255,255,255,.82); white-space:nowrap;
  }
  .pill-body{
    position:relative; z-index:3; height:100%; display:none;
    flex-direction:column; justify-content:center; gap:14px;
    padding:38px 40px; max-width:560px;
  }
  .pill.open .pill-body{ display:flex; }
  .pill-body .num{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.66); display:flex; align-items:center; gap:12px; }
  .pill-body .num::after{ content:""; width:26px; height:1px; background:var(--maroon-bright); }
  .pill-body h3{
    font-family:var(--serif); font-weight:400; color:#fff; margin:0;
    font-size:clamp(24px,3vw,34px); line-height:1.14;
  }
  .pill-body p{ margin:0; color:rgba(255,255,255,.76); font-size:14.5px; line-height:1.6; }
  .checks{ list-style:none; margin:4px 0 0; padding:0; display:flex; flex-direction:column; gap:8px; }
  .checks li{ display:flex; align-items:center; gap:11px; color:#fff; font-size:14px; }
  .checks i{
    flex:0 0 18px; height:18px; border-radius:50%; background:var(--maroon);
    display:grid; place-items:center;
  }
  .checks svg{ display:block; }
  .invest{
    align-self:flex-start; margin-top:8px;
    background:linear-gradient(97deg,var(--maroon) 0%,var(--maroon-deep) 100%);
    color:#fff; border:0; border-radius:100px; padding:12px 24px;
    font-size:14px; font-weight:500; display:inline-flex; align-items:center; gap:10px;
  }
  @media (max-width:860px){
    .pillars{ flex-direction:column; height:auto; }
    .pill{ flex:0 0 auto; }
    .pill.closed{ min-height:64px; }
    .pill-closed-label{ flex-direction:row; justify-content:flex-start; gap:14px; padding:20px 22px; }
    .pill-closed-label .vert{ writing-mode:horizontal-tb; }
    .pill-body{ padding:28px 22px; max-width:none; }
  }

  /* ---------- glass cards ---------- */
  .glass{
    background:var(--glass); border:1px solid var(--glass-line); border-radius:16px;
    backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  }
  .glass-light{
    background:#fff; border:1px solid var(--hairline); border-radius:16px;
  }

  .reasons{ display:flex; flex-direction:column; gap:14px; }
  .reason{ display:grid; grid-template-columns:1.35fr .65fr; gap:0; overflow:hidden; align-items:stretch; }
  .reason:nth-child(even){ grid-template-columns:.65fr 1.35fr; }
  .reason:nth-child(even) .r-text{ order:2; }
  .reason:nth-child(even) .r-art{ order:1; }
  .r-text{ padding:34px 36px; display:flex; flex-direction:column; gap:11px; justify-content:center; }
  .r-text .num{ font-family:var(--mono); font-size:12px; color:var(--maroon); letter-spacing:.06em; }
  .r-text h3{ font-family:var(--serif); font-weight:400; font-size:26px; margin:0; line-height:1.2; }
  .r-text p{ margin:0; color:var(--grey); font-size:15px; max-width:52ch; }
  .r-art{ background:var(--paper-2); display:grid; place-items:center; padding:26px; min-height:190px; }
  .r-art svg{ width:100%; max-width:210px; height:auto; }
  @media (max-width:760px){
    .reason,.reason:nth-child(even){ grid-template-columns:1fr; }
    .reason:nth-child(even) .r-text{ order:1; }
    .reason:nth-child(even) .r-art{ order:2; }
  }

  /* ---------- marquee ---------- */
  .marquee{ overflow:hidden; mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); -webkit-mask-image:linear-gradient(90deg,transparent,#000 9%,#000 91%,transparent); }
  .marquee-track{ display:flex; gap:76px; width:max-content; animation:slide 34s linear infinite; align-items:center; }
  .marquee:hover .marquee-track{ animation-play-state:paused; }
  @keyframes slide{ to{ transform:translateX(-50%); } }
  .marquee img{
    height:54px; width:auto; filter:grayscale(1) contrast(.9); opacity:.62;
    transition:filter .3s,opacity .3s;
  }
  .marquee img:hover{ filter:none; opacity:1; }
  @media (prefers-reduced-motion:reduce){ .marquee-track{ animation:none; } }

  /* ---------- problems / solutions panels ---------- */
  .stack{ display:flex; flex-direction:column; gap:14px; }
  .item{ display:grid; grid-template-columns:104px 1fr; gap:26px; padding:32px 34px; align-items:start; }
  .item .icon{ display:grid; place-items:center; }
  .item .icon svg{ width:74px; height:74px; }
  .item h3{ font-family:var(--serif); font-weight:400; font-size:24px; margin:0 0 10px; line-height:1.22; color:#fff; }
  .item .kicker{ font-family:var(--mono); font-size:11px; letter-spacing:.2em; text-transform:uppercase; color:rgba(255,255,255,.5); display:block; margin-bottom:7px; }
  .item p{ margin:0 0 14px; color:rgba(255,255,255,.76); font-size:15px; }
  .cost{
    margin:0; padding-top:14px; border-top:1px solid rgba(255,255,255,.13);
    color:var(--maroon-bright); font-size:14.5px; font-weight:500;
  }
  .cost b{ font-family:var(--mono); font-size:10.5px; letter-spacing:.18em; text-transform:uppercase; color:rgba(255,255,255,.5); display:block; font-weight:400; margin-bottom:5px; }
  @media (max-width:680px){
    .item{ grid-template-columns:1fr; gap:16px; padding:26px 22px; }
    .item .icon{ justify-items:start; }
    .item .icon svg{ width:56px; height:56px; }
  }
  .pso{ display:flex; flex-direction:column; gap:12px; }
  .pso-row{ display:grid; grid-template-columns:96px 1fr; gap:10px; }
  .pso-row b{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.46); padding-top:3px; font-weight:400; }
  .pso-row span{ color:rgba(255,255,255,.78); font-size:15px; }
  .pso-row.out span{ color:var(--maroon-bright); font-weight:500; }
  .price{
    margin-top:16px; padding-top:14px; border-top:1px solid rgba(255,255,255,.13);
    font-family:var(--mono); font-size:13px; color:#fff;
  }
  .price em{ font-style:normal; color:rgba(255,255,255,.5); }
  @media (max-width:680px){ .pso-row{ grid-template-columns:1fr; gap:2px; } }

  .strip{ background:var(--maroon); color:#fff; }
  .strip-in{
    display:flex; flex-wrap:wrap; align-items:center; justify-content:center; gap:16px 34px;
    padding-block:34px; text-align:center;
  }
  .strip-in p{ margin:0; font-family:var(--serif); font-size:clamp(20px,2.6vw,26px); }
  .strip .btn-ghost{ border-color:rgba(255,255,255,.55); }

  /* ---------- TBS ---------- */
  .tbs{ display:grid; grid-template-columns:repeat(3,1fr); gap:14px; }
  .tbs-card{
    position:relative; border-radius:16px; overflow:hidden; min-height:400px;
    border:1px solid rgba(255,255,255,.14); cursor:pointer; background:var(--ink);
    transition:transform .4s cubic-bezier(.22,.8,.3,1);
  }
  .tbs-card .veil{ position:absolute; inset:0; z-index:1; background:linear-gradient(180deg,rgba(9,8,8,.30) 0%,rgba(9,8,8,.86) 72%); transition:background .4s; }
  .tbs-card.on .veil{ background:linear-gradient(180deg,rgba(9,8,8,.22) 0%,rgba(9,8,8,.90) 62%); }
  .tbs-card.on{ transform:translateY(-6px); }
  .tbs-in{ position:relative; z-index:2; height:100%; display:flex; flex-direction:column; padding:28px; }
  .tbs-in .num{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.62); }
  .tbs-in .rule{ width:26px; height:2px; background:var(--maroon-bright); margin:8px 0 14px; }
  .tbs-in h3{ font-family:var(--sans); font-weight:700; color:#fff; font-size:38px; margin:0; letter-spacing:-.02em; }
  .tbs-in .sub{ font-size:11px; letter-spacing:.22em; text-transform:uppercase; color:rgba(255,255,255,.66); margin-top:6px; }
  .tbs-in .body{
    margin-top:auto; color:rgba(255,255,255,.82); font-size:14px; line-height:1.55;
    max-height:0; opacity:0; overflow:hidden; transition:max-height .45s ease,opacity .35s ease;
  }
  .tbs-card.on .body{ max-height:200px; opacity:1; }
  @media (max-width:820px){ .tbs{ grid-template-columns:1fr; } .tbs-card{ min-height:240px; } .tbs-in .body{ max-height:200px; opacity:1; } }

  /* ---------- process ring ---------- */
  .ring-wrap{ display:grid; grid-template-columns:1fr; justify-items:center; }
  .ring{ position:relative; width:min(520px,92vw); aspect-ratio:1; }
  .ring-node{
    position:absolute; top:50%; left:50%; width:104px; height:104px; margin:-52px 0 0 -52px;
    border-radius:50%; display:grid; place-items:center; text-align:center;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18);
    backdrop-filter:blur(10px); -webkit-backdrop-filter:blur(10px);
    color:rgba(255,255,255,.8); font-size:12.5px; letter-spacing:.06em;
    cursor:pointer; transition:transform .35s cubic-bezier(.22,.8,.3,1),background .3s,border-color .3s,color .3s;
  }
  .ring-node:hover{ color:#fff; border-color:rgba(255,255,255,.4); }
  .ring-node.on{
    background:var(--maroon); border-color:var(--maroon); color:#fff;
    transform:translate(var(--x),var(--y)) scale(1.14);
  }
  .ring-node span{ font-family:var(--mono); font-size:10px; display:block; opacity:.7; margin-bottom:3px; }
  .ring-core{
    position:absolute; inset:27%; border-radius:50%;
    display:flex; flex-direction:column; align-items:center; justify-content:center; gap:8px;
    text-align:center; padding:18px;
    border:1px solid rgba(255,255,255,.12); background:rgba(255,255,255,.035);
  }
  .ring-core h4{ font-family:var(--serif); font-weight:400; color:#fff; font-size:23px; margin:0; }
  .ring-core p{ margin:0; font-size:13px; color:rgba(255,255,255,.72); line-height:1.5; }
  @media (max-width:620px){
    .ring{ display:none; }
  }
  .ring-list{ display:none; flex-direction:column; gap:10px; width:100%; }
  @media (max-width:620px){ .ring-list{ display:flex; } }
  .ring-list button{
    text-align:left; padding:16px 18px; border-radius:12px;
    background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); color:#fff;
  }
  .ring-list button.on{ background:var(--maroon); border-color:var(--maroon); }
  .ring-list b{ display:block; font-size:15px; margin-bottom:3px; }
  .ring-list small{ color:rgba(255,255,255,.72); font-size:13px; }

  /* ---------- systems ---------- */
  .systems{ display:grid; grid-template-columns:repeat(2,1fr); gap:14px; }
  @media (max-width:760px){ .systems{ grid-template-columns:1fr; } }
  .sys{ padding:28px 30px; display:flex; flex-direction:column; gap:10px; }
  .sys h4{ font-family:var(--serif); font-weight:400; font-size:21px; margin:0; }
  .sys p{ margin:0; color:var(--grey); font-size:14.5px; }
  .sys dl{ margin:6px 0 0; display:grid; grid-template-columns:auto 1fr; gap:6px 14px; font-size:13px; }
  .sys dt{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:var(--grey-light); padding-top:2px; }
  .sys dd{ margin:0; color:var(--ink); }

  /* ---------- connect ---------- */
  .connect-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:14px; }
  @media (max-width:880px){ .connect-grid{ grid-template-columns:1fr; } }
  .cbox{ padding:30px 32px; display:flex; flex-direction:column; gap:14px; }
  .cbox h3{ font-family:var(--serif); font-weight:400; font-size:24px; margin:0; color:#fff; }
  .cbox p{ margin:0; color:rgba(255,255,255,.74); font-size:14.5px; }
  .cal{ background:rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.14); border-radius:12px; padding:18px; }
  .cal-head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:12px; color:#fff; font-size:14px; }
  .cal-head span{ font-family:var(--mono); font-size:12px; color:rgba(255,255,255,.6); }
  .cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:5px; }
  .cal-grid i{
    font-family:var(--mono); font-style:normal; font-size:10px; text-align:center;
    color:rgba(255,255,255,.42); padding-bottom:4px;
  }
  .cal-grid button{
    aspect-ratio:1; border-radius:7px; border:1px solid transparent; background:rgba(255,255,255,.05);
    color:rgba(255,255,255,.75); font-size:12.5px; font-family:var(--mono);
    display:grid; place-items:center; transition:all .2s;
  }
  .cal-grid button:disabled{ opacity:.24; cursor:not-allowed; }
  .cal-grid button.free{ border-color:rgba(224,75,99,.5); color:#fff; }
  .cal-grid button.free:hover{ background:var(--maroon); border-color:var(--maroon); }
  .cal-grid button.sel{ background:var(--maroon); border-color:var(--maroon); color:#fff; }
  .slots{ display:flex; flex-wrap:wrap; gap:7px; margin-top:13px; }
  .slots button{
    border-radius:100px; padding:7px 15px; font-size:12.5px; font-family:var(--mono);
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.2); color:#fff;
  }
  .slots button:hover{ border-color:var(--maroon-bright); }
  .slots button.sel{ background:var(--maroon); border-color:var(--maroon); }

  .field{ display:flex; flex-direction:column; gap:6px; }
  .field label{ font-family:var(--mono); font-size:10.5px; letter-spacing:.14em; text-transform:uppercase; color:rgba(255,255,255,.55); }
  .field input,.field textarea,.field select{
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.18); border-radius:9px;
    padding:11px 13px; color:#fff; font:inherit; font-size:14.5px; width:100%;
  }
  .field input::placeholder,.field textarea::placeholder{ color:rgba(255,255,255,.34); }
  .field textarea{ resize:vertical; min-height:86px; }
  .two-up{ display:grid; grid-template-columns:1fr 1fr; gap:12px; }
  @media (max-width:520px){ .two-up{ grid-template-columns:1fr; } }
  .office{ display:grid; grid-template-columns:repeat(2,1fr); gap:20px 28px; }
  @media (max-width:620px){ .office{ grid-template-columns:1fr; } }
  .office div b{ font-family:var(--mono); font-size:10.5px; letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.5); display:block; margin-bottom:5px; font-weight:400; }
  .office div span{ color:#fff; font-size:15px; }

  /* ---------- footer ---------- */
  .site-foot{ background:var(--ink); color:#fff; padding-block:56px 26px; }
  .foot-grid{ display:grid; grid-template-columns:1fr 1.1fr .8fr; gap:40px; }
  @media (max-width:880px){ .foot-grid{ grid-template-columns:1fr; gap:32px; } }
  .foot-brand b{ font-size:20px; font-weight:700; letter-spacing:.13em; display:block; }
  .foot-brand small{ font-size:8.5px; letter-spacing:.42em; color:rgba(255,255,255,.55); display:block; margin:4px 0 16px 2px; }
  .foot-brand p{ margin:0; color:rgba(255,255,255,.7); font-size:14.5px; line-height:1.8; }
  .foot-brand .tag{ color:var(--maroon-bright); font-weight:500; }
  .foot-col h5{
    font-family:var(--mono); font-size:10.5px; letter-spacing:.2em; text-transform:uppercase;
    color:rgba(255,255,255,.5); margin:0 0 14px; font-weight:400;
  }
  .sub-btn{
    background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.22); color:#fff;
    border-radius:100px; padding:11px 20px; font-size:14px; transition:all .22s;
  }
  .sub-btn:hover{ background:var(--maroon); border-color:var(--maroon); }
  .foot-contact{ margin-top:20px; color:rgba(255,255,255,.7); font-size:14.5px; line-height:1.85; }
  .foot-contact a{ text-decoration:none; }
  .foot-contact a:hover{ color:var(--maroon-bright); }
  .socials{ display:grid; grid-template-columns:repeat(3,44px); gap:9px; }
  .socials a{
    width:44px; height:44px; border-radius:10px; display:grid; place-items:center;
    background:rgba(255,255,255,.06); border:1px solid rgba(255,255,255,.14);
    color:rgba(255,255,255,.8); transition:all .22s;
  }
  .socials a:hover{ background:var(--maroon); border-color:var(--maroon); color:#fff; }
  .foot-bottom{
    margin-top:42px; padding-top:20px; border-top:1px solid rgba(255,255,255,.12);
    display:flex; flex-wrap:wrap; gap:10px 24px; align-items:center; justify-content:space-between;
    font-size:13px; color:rgba(255,255,255,.55);
  }
  .foot-bottom nav{ display:flex; gap:20px; }
  .foot-bottom a{ text-decoration:none; }
  .foot-bottom a:hover{ color:#fff; }

  /* ---------- modal ---------- */
  .modal-back{
    position:fixed; inset:0; z-index:100; background:rgba(8,7,7,.72);
    backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px);
    display:grid; place-items:center; padding:20px;
  }
  .modal{
    width:100%; max-width:440px; background:#151312; color:#fff;
    border:1px solid rgba(255,255,255,.14); border-radius:18px; padding:30px;
    display:flex; flex-direction:column; gap:15px;
  }
  .modal h3{ font-family:var(--serif); font-weight:400; font-size:24px; margin:0; }
  .modal p{ margin:0; color:rgba(255,255,255,.7); font-size:14.5px; }
  .modal .row{ display:flex; gap:10px; justify-content:flex-end; margin-top:4px; }
  .modal .x{ background:none; border:0; color:rgba(255,255,255,.6); font-size:14px; padding:12px 16px; }

  /* ---------- notice ---------- */
  .mock-note{
    background:var(--ink-2); color:rgba(255,255,255,.72); font-size:12.5px;
    border-bottom:1px solid rgba(255,255,255,.1);
  }
  .mock-note .shell{ display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; justify-content:center; padding-block:9px; text-align:center; }
  .mock-note b{ color:#fff; font-weight:500; }

  /* ---------- reveal ---------- */
  @media (prefers-reduced-motion:no-preference){
    .route > *{ animation:rise .5s cubic-bezier(.22,.8,.3,1) both; }
    .route > *:nth-child(2){ animation-delay:.05s; }
    .route > *:nth-child(3){ animation-delay:.1s; }
    .route > *:nth-child(4){ animation-delay:.15s; }
    .route > *:nth-child(n+5){ animation-delay:.2s; }
    @keyframes rise{ from{ opacity:0; transform:translateY(14px); } to{ opacity:1; transform:none; } }
  }
  [hidden]{ display:none !important; }


/* WordPress theme adaptations */
body.admin-bar .site-head{top:32px}
.paper-section{background:var(--paper)}
.section-layer{position:relative;z-index:2}
.head-actions{display:flex;align-items:center;gap:10px}
.hero-bg,.pill .bg,.tbs-card .bg{position:absolute;inset:0;z-index:0;width:100%;height:100%;object-fit:cover;filter:grayscale(1) contrast(1.04)}
.hero .hero-bg{z-index:0}.hero .scrim{z-index:1;background:linear-gradient(90deg,rgba(8,7,7,.86),rgba(8,7,7,.52))}.hero-in{position:relative;z-index:2}
.nav ul{display:flex;gap:26px;list-style:none;margin:0;padding:0}.nav a{color:rgba(255,255,255,.74);font-size:14.5px;text-decoration:none}.nav a:hover,.nav .current-menu-item>a{color:#fff}
.nav .current-menu-item>a{position:relative}.nav .current-menu-item>a:after{content:"";position:absolute;left:0;right:0;bottom:-6px;height:1.5px;background:var(--maroon-bright)}
.hero-label{font-family:var(--mono);font-size:11px;letter-spacing:.3em;text-transform:uppercase;color:rgba(255,255,255,.66);margin-bottom:16px}
.photo.has-image:before,.photo.has-image:after{display:none}.pill .veil,.tbs-card .veil{z-index:1}
.pill{border-color:rgba(255,255,255,.24)}.tbs-card{border-color:rgba(255,255,255,.22)}
.pillar-detail{color:rgba(255,255,255,.62)!important;font-size:13.5px!important}
.invest{text-decoration:none}
.reason{background:#fff}.client-logo{height:54px;width:auto;max-width:180px;object-fit:contain;filter:grayscale(1);opacity:.66}
.roster-section{background:var(--paper-2);padding-block:64px}.roster-title{display:flex;justify-content:center;margin-bottom:30px}
.callback-form{display:flex;flex-direction:column;gap:11px}.honeypot{position:absolute!important;left:-9999px!important}
.form-status{border-radius:10px;padding:12px 14px;margin-bottom:16px}.form-status.success{background:#e7f5eb;color:#175e2f}.form-status.error{background:#fbe9ec;color:#7b1526}
.booking-link{align-self:flex-start}.cal-placeholder{display:grid;place-items:center;min-height:250px;text-align:center;background:rgba(255,255,255,.05);border:1px solid rgba(255,255,255,.14);border-radius:12px;padding:28px}
.booking-mark{font-family:var(--serif);font-size:34px;color:#fff;margin-bottom:12px}.booking-link-note{color:rgba(255,255,255,.65);font-size:13px;margin-top:10px}
.connect-side{display:flex;flex-direction:column;gap:14px}.office-box{margin-top:14px}.office a{color:inherit;text-decoration:none}.office a:hover{color:var(--maroon-bright)}
.modal-back[hidden]{display:none!important}.modal-back{display:grid}.modal .field input{color:#fff}.modal .notice{font-size:13px;color:var(--maroon-bright)}
.modal form{display:flex;flex-direction:column;gap:15px}.modal-open{overflow:hidden}.foot-contact b{display:block;font-weight:500;color:#fff;margin-bottom:6px}.socials span{font-family:var(--mono);font-size:11px;font-weight:500}
.generic-page{min-height:60vh;padding-top:96px}.generic-page .entry-content{max-width:760px}.generic-page h1{font-family:var(--serif);font-size:clamp(36px,5vw,56px);font-weight:400}.generic-page h2,.generic-page h3{font-family:var(--serif);font-weight:400}.generic-page a{color:var(--maroon)}
.skip-link{position:absolute;left:-9999px;top:auto}.skip-link:focus{left:18px;top:18px;z-index:1000;background:#fff;color:#000;padding:10px 14px;border-radius:6px}
.ring-node{--x:0px;--y:0px;transform:translate(var(--x),var(--y))}.ring-node.step-0{--x:0px;--y:-190px}.ring-node.step-1{--x:165px;--y:-95px}.ring-node.step-2{--x:165px;--y:95px}.ring-node.step-3{--x:0px;--y:190px}.ring-node.step-4{--x:-165px;--y:95px}.ring-node.step-5{--x:-165px;--y:-95px}
@media(max-width:900px){.nav ul{flex-direction:column;gap:0}.nav li{border-bottom:1px solid rgba(255,255,255,.07)}.nav a{display:block;padding:13px 0}.nav .current-menu-item>a:after{display:none}}
@media(max-width:782px){body.admin-bar .site-head{top:46px}}
@media(max-width:520px){.hero{min-height:560px}.hero h1{font-size:38px}.pill-body{display:flex!important}.pill-closed-label{display:none!important}.pill{min-height:430px}.marquee-track{gap:38px}.client-logo{height:42px}.foot-bottom nav{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.marquee-track{animation:none}}


/* --- brand monochrome treatment --- */
.hero-bg,
.pill .bg,
.tbs-card .bg {
  filter: grayscale(1) contrast(1.06) brightness(0.96);
}

/* --- wordmark --- */
.brand-mark{display:block;height:60px;width:auto;max-width:none}
.foot-mark{display:block;height:72px;width:auto;max-width:none;margin-bottom:18px}
@media (max-width:900px){.brand-mark{height:50px}}
@media (max-width:520px){.brand-mark{height:42px}.foot-mark{height:60px}}

/* --- cookie bar --- */
.cookie-bar{position:fixed;left:0;right:0;bottom:0;z-index:120;background:rgba(14,13,12,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-top:1px solid rgba(255,255,255,.14);padding:16px 0 calc(16px + env(safe-area-inset-bottom,0px))}
.cookie-in{max-width:1180px;margin:0 auto;padding-inline:24px;display:flex;align-items:center;gap:18px 28px;flex-wrap:wrap;justify-content:space-between}
.cookie-in p{margin:0;color:rgba(255,255,255,.80);font-size:14px;line-height:1.55;max-width:70ch}
.cookie-in a{color:#E04B63}
.cookie-actions{display:flex;gap:10px;flex-shrink:0}
.cookie-actions .btn{padding:10px 20px;font-size:14px}
@media (max-width:640px){.cookie-in{padding-inline:18px}.cookie-actions{width:100%}.cookie-actions .btn{flex:1;justify-content:center}}

/* --- footer refinements --- */
.foot-brand{text-align:center;display:flex;flex-direction:column;align-items:center}
.foot-brand .foot-mark{margin-inline:auto}
.foot-brand p{text-align:center}
.foot-bottom{padding-inline:8px}
.foot-bottom>span{padding-left:16px}
.foot-bottom>nav{padding-right:16px}
@media (max-width:880px){.foot-bottom{justify-content:center;text-align:center}.foot-bottom>span,.foot-bottom>nav{padding:0}}

/* client roster: full colour, even slots */
.marquee img,.client-logo{filter:none!important;opacity:1!important}
.marquee-track{align-items:center;gap:0}
.client-logo{height:44px;width:auto;max-width:150px;object-fit:contain;margin-inline:34px;flex:0 0 auto;transition:transform .25s ease}
.marquee img:hover,.client-logo:hover{transform:scale(1.06)}
@media (max-width:640px){.client-logo{height:36px;max-width:120px;margin-inline:22px}}
.marquee .client-logo{height:46px;max-width:140px;mix-blend-mode:multiply}
@media (max-width:640px){.marquee .client-logo{height:36px;max-width:112px}}

/* --- roster optical sizing --- */
.marquee .client-logo{height:46px;max-width:150px;margin-inline:32px;mix-blend-mode:multiply;object-fit:contain}
.marquee .client-logo[alt="Sawa Media"]{height:88px;max-width:240px}
.marquee .client-logo[alt="SunGate Solar"]{height:36px;max-width:130px;transform:translateY(-6px)}
.marquee .client-logo[alt="ICOC South Sudan"]{height:52px;max-width:150px}
.marquee .client-logo[alt="DigniPads"]{height:50px;max-width:140px}
.marquee .client-logo[alt="Leading Star"]{height:46px;max-width:130px}
@media (max-width:640px){
  .marquee .client-logo{height:36px;max-width:112px;margin-inline:20px}
  .marquee .client-logo[alt="Sawa Media"]{height:66px;max-width:180px}
  .marquee .client-logo[alt="SunGate Solar"]{height:28px;max-width:100px}
  .marquee .client-logo[alt="ICOC South Sudan"]{height:41px}
  .marquee .client-logo[alt="DigniPads"]{height:39px}
}
