/* ==========================================================================
   StartiQOS AI — Site system
   Loaded last on every page. One set of rules for the shared building
   blocks (page heads, section heads, numbered lists, cards, notes, code
   panels, questions, closing calls to action) so every page reads with the
   same rhythm. Colours come from variables.css and premium.css.
   ========================================================================== */

/* ---- Section heads --------------------------------------------------------
   No ghosted section numbers: the eyebrow and heading carry the structure. */
.sec-head{padding-right:0;max-width:940px}
.sec-head::after,.sec-head::before{display:none}
.sec-head h1,.sec-head h2{max-width:24ch;text-wrap:balance}
.sec-head h1{font-size:clamp(40px,4.6vw,66px);line-height:1.06;letter-spacing:-.022em}
.sec-head h2{font-size:clamp(32px,3.4vw,50px);line-height:1.1;letter-spacing:-.02em}
.sec-head .lead{max-width:60ch;font-size:clamp(16px,1.15vw,17.5px);line-height:1.75;font-weight:300;color:var(--ink-2);text-wrap:pretty}
.sec-head--stack{max-width:760px}
.sec-head--stack h1,.sec-head--stack h2{max-width:none}

/* ---- Page head ------------------------------------------------------------
   The first section of every inner page: a soft gold light and a receding
   grid floor on the right, in CSS only, behind the copy. */
main > .section:first-child:not(.hero){position:relative;overflow:hidden;isolation:isolate;
  padding-top:calc(92px + clamp(48px,7vh,84px));padding-bottom:clamp(56px,8vh,96px)}
main > .section:first-child:not(.hero)::before{content:'';position:absolute;z-index:-1;pointer-events:none;
  right:-8%;bottom:-6%;width:min(62vw,880px);height:72%;
  background-image:linear-gradient(var(--line-gold) 1px,transparent 1px),linear-gradient(90deg,var(--line-gold) 1px,transparent 1px);
  background-size:52px 52px;
  transform:perspective(800px) rotateX(64deg) rotateZ(-10deg);transform-origin:50% 100%;
  -webkit-mask-image:radial-gradient(ellipse 60% 70% at 60% 70%,#000 0%,transparent 72%);
          mask-image:radial-gradient(ellipse 60% 70% at 60% 70%,#000 0%,transparent 72%);
  opacity:1}
main > .section:first-child:not(.hero)::after{content:'';position:absolute;z-index:-1;pointer-events:none;
  right:4%;top:6%;width:min(46vw,620px);aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle at 50% 50%,rgba(224,154,71,.20),rgba(224,154,71,.06) 42%,transparent 70%);
  filter:blur(8px)}
@media (max-width:900px){
  main > .section:first-child:not(.hero)::before{opacity:.35;width:110vw;right:-40%}
  main > .section:first-child:not(.hero)::after{opacity:.6;width:80vw}
}

/* ---- Numbered lists become cards ------------------------------------------
   .rows/.row from layout.js. Column count follows the number of items so
   no row is left with a stray card. */
.rows{margin-top:0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(16px,1.6vw,24px)}
.rows:has(> .row:nth-child(2):last-child),
.rows:has(> .row:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.rows:has(> .row:nth-child(7):last-child){grid-template-columns:repeat(12,minmax(0,1fr))}
.rows:has(> .row:nth-child(7):last-child) > .row{grid-column:span 3}
.rows:has(> .row:nth-child(7):last-child) > .row:nth-child(n+5){grid-column:span 4}

.row,.row:last-child{display:grid;grid-template-columns:36px minmax(0,1fr);gap:0 18px;align-content:start;padding:clamp(24px,2.2vw,32px);border:1px solid var(--line);border-radius:14px;
  background:var(--white);box-shadow:var(--lift-2);transition:transform var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e),border-color var(--t-fast) var(--e)}
.row:hover{transform:translateY(-3px);box-shadow:var(--lift-3);border-color:var(--line-gold)}
.row__num{grid-row:span 2;display:grid;place-items:center;width:36px;height:36px;margin:0;padding:0;border-radius:50%;
  background:linear-gradient(160deg,var(--void-2,#1a1a1d),var(--void,#0e0e10));color:var(--gold-lit,#E09A47);
  font-family:var(--font-mono);font-size:11px;letter-spacing:.04em;box-shadow:0 6px 14px -6px rgba(20,16,10,.45),inset 0 1px 0 rgba(255,255,255,.08)}
.row__title{align-self:center;min-height:36px;display:flex;align-items:center;font-family:var(--font-display);font-size:clamp(20px,1.55vw,24px);line-height:1.22;color:var(--ink);text-wrap:balance}
.row__title a{color:inherit;text-decoration:none;background:linear-gradient(var(--gold),var(--gold)) 0 100%/0 1px no-repeat;transition:background-size var(--t-fast) var(--e),color var(--t-fast) var(--e)}
.row__title a::after{content:' \2192';color:var(--gold);font-family:var(--font-body);font-size:.75em}
.row:hover .row__title a{color:var(--gold-deep);background-size:100% 1px}
.row__body{grid-column:1 / -1;margin-top:14px;font-size:14.5px;line-height:1.7;color:var(--ink-2);text-wrap:pretty}
.section--void .row{background:var(--void-2);border-color:var(--void-line);box-shadow:none}
.section--void .row__title{color:#fff}
.section--void .row__body{color:var(--void-text)}

/* ---- Cards ---------------------------------------------------------------- */
.grid-3--open{gap:clamp(16px,1.6vw,24px)}
.grid-3--open:has(> .cause:nth-child(4):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
.cause,.section--alt .cause{background:var(--white);border:1px solid var(--line);border-radius:14px;box-shadow:var(--lift-2);
  padding:clamp(26px,2.4vw,34px)}
.cause::before{border-radius:14px 14px 0 0}
.cause:hover{transform:translateY(-3px)}
.cause__label{margin-bottom:16px;font-size:10px;letter-spacing:var(--ls-mono);color:var(--gold-deep)}
.cause__title{max-width:none;font-size:clamp(21px,1.6vw,25px);line-height:1.22;margin-bottom:12px;text-wrap:balance}
.cause__body{font-size:14.5px;line-height:1.7;color:var(--ink-2);text-wrap:pretty}
.cause__answer{margin-top:22px;padding-top:18px;font-size:14px;line-height:1.65}
.cause__answer strong{color:var(--gold-deep)}

/* ---- Notes ---------------------------------------------------------------- */
.note{max-width:860px;border-radius:12px;border-left:3px solid var(--gold);background:linear-gradient(100deg,rgba(200,125,46,.10),rgba(200,125,46,.04));
  font-size:15px;line-height:1.75;text-wrap:pretty}
.note--plain{background:var(--white);border:1px solid var(--line);border-left:3px solid var(--gold);box-shadow:var(--lift-2)}
.section--void .note{border-radius:12px}

/* ---- Code panels: the console's dark material ----------------------------- */
.codeblock,.section--alt .codeblock,.section--void .codeblock{border:0;border-radius:14px;overflow:hidden;
  background:linear-gradient(165deg,var(--void-2) 0%,var(--void) 100%);
  box-shadow:inset 0 1px 0 var(--cx-glare),var(--cx-shadow)}
.codeblock__label{display:flex;align-items:center;gap:14px;background:rgba(255,255,255,.03);border-bottom:1px solid var(--cx-edge);color:var(--gold-lit);
  font-size:10px;letter-spacing:var(--ls-mono)}
.codeblock__label::before{content:'';flex:none;width:34px;height:8px;
  background:radial-gradient(circle 4px at 4px 4px,var(--cx-faint) 98%,transparent) 0 0/13px 8px repeat-x}
.codeblock__pre{color:var(--void-text);font-size:13px;line-height:1.85}

/* ---- Diagram: where the gateway sits -------------------------------------- */
.flow{margin-top:clamp(28px,3.6vh,44px);padding:clamp(28px,3.2vw,52px);border-radius:16px;position:relative;overflow:hidden;
  background:linear-gradient(165deg,var(--void-2) 0%,var(--void) 100%);box-shadow:inset 0 1px 0 var(--cx-glare),var(--cx-shadow);color:var(--void-text)}
.flow::before{content:'';position:absolute;inset:0;pointer-events:none;
  background-image:linear-gradient(var(--cx-grid) 1px,transparent 1px),linear-gradient(90deg,var(--cx-grid) 1px,transparent 1px);background-size:32px 32px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 50%,#000,transparent 75%);mask-image:radial-gradient(ellipse at 50% 50%,#000,transparent 75%)}
.flow__label{position:relative;margin:0 0 clamp(22px,2.6vw,34px);font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}
.flow__grid{position:relative;display:grid;grid-template-columns:minmax(0,1fr) 72px minmax(0,1.35fr) 72px minmax(0,1fr);align-items:center}
.flow__node{position:relative;padding:clamp(18px,1.8vw,24px);border-radius:12px;background:rgba(255,255,255,.035);border:1px solid var(--cx-edge);box-shadow:inset 0 1px 0 var(--cx-glare)}
.flow__k{margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--cx-muted)}
.flow__t{margin:8px 0 0;font-family:var(--font-display);font-size:clamp(19px,1.5vw,23px);line-height:1.2;color:#fff}
.flow__d{margin:8px 0 0;font-size:13.5px;line-height:1.6;color:var(--void-text)}
.flow__node--core{padding:clamp(22px,2.2vw,30px);background:linear-gradient(160deg,rgba(224,154,71,.12),rgba(224,154,71,.03));border-color:rgba(224,154,71,.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08),0 0 0 6px rgba(224,154,71,.05),0 24px 60px -24px rgba(224,154,71,.45)}
.flow__node--core .flow__k{color:var(--gold-lit)}
.flow__checks{list-style:none;margin:16px 0 0;padding:0;display:grid;gap:8px}
.flow__checks li{display:flex;align-items:center;gap:10px;font-size:13.5px;color:#fff}
.flow__checks li::before{content:'';flex:none;width:6px;height:6px;border-radius:50%;background:var(--gold-lit);box-shadow:0 0 0 3px rgba(224,154,71,.15)}
.flow__verdicts{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 0;padding:16px 0 0;border-top:1px solid var(--cx-edge)}
.flow__verdicts span{padding:5px 10px;border-radius:999px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase}
.flow__v--allow{background:var(--ok-bg);color:var(--ok)}
.flow__v--esc{background:var(--warn-bg);color:var(--warn-lit)}
.flow__v--deny{background:var(--bad-bg);color:var(--bad)}
.flow__out{display:grid;gap:14px}
.flow__link{position:relative;height:1px;margin:0 10px;background:linear-gradient(90deg,rgba(224,154,71,.15),rgba(224,154,71,.6))}
.flow__link::after{content:'';position:absolute;right:-1px;top:-3px;border:3.5px solid transparent;border-left:6px solid rgba(224,154,71,.8);border-right:0}
.flow__link span{position:absolute;top:-2.5px;left:0;width:6px;height:6px;border-radius:50%;background:var(--gold-lit);box-shadow:0 0 10px var(--gold-lit);
  animation:flow-pulse 2.6s var(--e-out) infinite}
.flow__link + .flow__node + .flow__link span{animation-delay:1.3s}
@keyframes flow-pulse{0%{left:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{left:calc(100% - 6px);opacity:0}}
@media (max-width:900px){
  .flow__grid{grid-template-columns:1fr}
  .flow__link{height:44px;width:1px;margin:6px auto;background:linear-gradient(180deg,rgba(224,154,71,.15),rgba(224,154,71,.6))}
  .flow__link::after{right:-3px;top:auto;bottom:-1px;border:3.5px solid transparent;border-top:6px solid rgba(224,154,71,.8);border-bottom:0}
  .flow__link span{left:-2.5px;top:0;animation-name:flow-pulse-v}
}
@keyframes flow-pulse-v{0%{top:0;opacity:0}15%{opacity:1}85%{opacity:1}100%{top:calc(100% - 6px);opacity:0}}
@media (prefers-reduced-motion:reduce){.flow__link span{animation:none;opacity:0}}

/* ---- Questions ------------------------------------------------------------ */
.acc{display:grid;gap:12px}
.acc__item{border:1px solid var(--line);border-radius:12px;background:var(--white);box-shadow:var(--lift-2);padding:0 clamp(20px,2.2vw,28px);
  transition:border-color var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e)}
.acc__item:hover{border-color:var(--line-gold)}
.acc__item[data-open="true"]{border-color:var(--line-gold);box-shadow:var(--lift-3)}
.acc__trigger{padding:20px 0;font-size:clamp(18px,1.35vw,20px);line-height:1.35}
.acc__body{font-size:15px;line-height:1.75;color:var(--ink-2);padding-bottom:22px}

/* ---- Closing call to action: one dark panel ------------------------------- */
.cta{padding-block:clamp(56px,8vh,96px);text-align:center}
.cta > .wrap{position:relative;overflow:hidden;isolation:isolate;width:calc(100% - 2 * var(--gutter));max-width:calc(var(--max-w) - 2 * var(--gutter));padding-block:clamp(48px,7vh,88px);border-radius:20px;
  background:linear-gradient(160deg,var(--void-2) 0%,var(--void) 100%);box-shadow:inset 0 1px 0 var(--cx-glare),var(--cx-shadow)}
.cta > .wrap::before{content:'';position:absolute;z-index:-1;left:50%;top:-40%;width:70%;aspect-ratio:1;transform:translateX(-50%);border-radius:50%;
  background:radial-gradient(circle,rgba(224,154,71,.22),transparent 65%);pointer-events:none}
.cta > .wrap::after{content:'';position:absolute;left:15%;right:15%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-lit),transparent);opacity:.6}
.cta__title{color:#fff;font-size:clamp(30px,3.2vw,46px);line-height:1.12;text-wrap:balance}
.cta__title .accent{color:var(--gold-lit)}
.cta__sub{color:var(--void-text);font-size:16px;line-height:1.75;max-width:58ch;text-wrap:pretty}
.cta .btn--primary{background:var(--gold);border-color:var(--gold);color:#fff}
.cta .btn--primary:hover{background:var(--gold-lit);border-color:var(--gold-lit)}
.cta .btn--ghost{background:transparent;border-color:rgba(255,255,255,.22);color:#fff}
.cta .btn--ghost:hover{border-color:var(--gold-lit);color:var(--gold-lit)}
@media (max-width:700px){.cta > .wrap{width:calc(100% - 32px);border-radius:16px}}

@media (max-width:1000px){
  .rows,.rows:has(> .row:nth-child(7):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
  .rows:has(> .row:nth-child(7):last-child) > .row,
  .rows:has(> .row:nth-child(7):last-child) > .row:nth-child(n+5){grid-column:auto}
}
@media (max-width:700px){
  .rows,.rows:has(> .row:nth-child(2):last-child),.rows:has(> .row:nth-child(4):last-child),
  .rows:has(> .row:nth-child(7):last-child),.grid-3--open:has(> .cause:nth-child(4):last-child){grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  .row:hover,.cause:hover{transform:none}
}

/* ---------------------------------------------------------------
   The Platform: available modules first, planned modules after,
   one note and the calls to action in a closing panel
   --------------------------------------------------------------- */
.plat__head{max-width:920px}
.plat__title{margin-top:18px;font-size:clamp(34px,3.6vw,52px);line-height:1.1;letter-spacing:-.02em;text-wrap:balance}
.plat__lead{margin-top:22px;font-size:clamp(16px,1.15vw,17.5px);line-height:1.75;font-weight:300;color:var(--ink-2);max-width:56ch;text-wrap:pretty}

.plat__group{margin-top:clamp(48px,6vh,72px)}
.plat__group--soon{margin-top:clamp(44px,5.5vh,64px)}
.plat__bar{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding-bottom:16px;margin-bottom:clamp(20px,2vw,28px);border-bottom:1px solid var(--line)}
.plat__label{display:flex;align-items:center;gap:12px;font-family:var(--font-body);font-size:15px;font-weight:600;letter-spacing:0;color:var(--ink)}
.plat__dot{width:8px;height:8px;border-radius:50%;background:var(--live);box-shadow:0 0 0 4px var(--live-bg)}
.plat__group--soon .plat__dot{background:var(--gold);box-shadow:0 0 0 4px var(--gold-wash)}
.plat__count{margin:0;font-family:var(--font-mono);font-size:11px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--muted)}

.plat__grid{display:grid;gap:clamp(16px,1.6vw,24px)}
.plat__grid--live{grid-template-columns:repeat(6,minmax(0,1fr))}
.plat__grid--live > .pmod{grid-column:span 2}
.plat__grid--live > .pmod--wide{grid-column:span 3}
.plat__grid--soon{grid-template-columns:repeat(3,minmax(0,1fr))}

.pmod{display:flex;flex-direction:column;padding:clamp(24px,2.2vw,32px);background:var(--white);border:1px solid var(--line);border-radius:14px;
  box-shadow:var(--lift-2);transition:transform var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e)}
.pmod:hover{transform:translateY(-3px);box-shadow:var(--lift-3)}
.pmod__t{font-family:var(--font-display);font-size:clamp(22px,1.7vw,26px);line-height:1.2;text-wrap:balance}
.pmod__one{margin:10px 0 0;font-size:15px;line-height:1.65;color:var(--ink-2);text-wrap:pretty}
.pmod__k{margin:22px 0 0;padding-top:18px;border-top:1px solid var(--line);font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.pmod__list{list-style:none;margin:12px 0 0;padding:0;display:grid;gap:9px}
.pmod__list li{position:relative;padding-left:24px;font-size:14px;line-height:1.6;color:var(--ink-2)}
.pmod__list li::before{content:'';position:absolute;left:2px;top:.42em;width:9px;height:5px;border-left:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(-45deg)}
.pmod--wide .pmod__list{display:block;columns:2;column-gap:32px}
.pmod--wide .pmod__list li{break-inside:avoid;margin-bottom:9px}
.pmod__next{margin:auto 0 0;padding-top:22px;font-size:13.5px;line-height:1.6;color:var(--ink-2)}
.pmod__next span{display:block;margin-bottom:4px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--muted)}
.pmod__next::before{content:'';display:block;height:1px;margin-bottom:16px;background:var(--line)}

/* planned modules: same card, quieter material */
.pmod--soon{background:transparent;border-color:var(--line-strong);border-style:dashed;box-shadow:none}
.pmod--soon:hover{transform:none;box-shadow:none}
.pmod--soon .pmod__t{color:var(--ink-2)}
.pmod--soon .pmod__k{color:var(--muted)}
.pmod--soon .pmod__list li{color:var(--muted)}
.pmod--soon .pmod__list li::before{left:3px;top:.55em;width:6px;height:6px;border:1.5px solid var(--muted-2);border-radius:50%;transform:none}

.plat__foot{margin-top:clamp(40px,5vh,56px);display:flex;align-items:center;justify-content:space-between;gap:clamp(20px,3vw,48px);
  padding:clamp(24px,2.6vw,36px) clamp(24px,3vw,44px);background:var(--white);border:1px solid var(--line);border-radius:16px;box-shadow:var(--lift-2)}
.plat__note{margin:0;font-size:14.5px;line-height:1.7;color:var(--muted);max-width:62ch}
.plat__actions{flex:none;display:flex;flex-wrap:wrap;gap:12px}

@media (max-width:1100px){
  .plat__grid--live{grid-template-columns:repeat(2,minmax(0,1fr))}
  .plat__grid--live > .pmod,.plat__grid--live > .pmod--wide{grid-column:span 1}
  .plat__grid--live > .pmod:last-child{grid-column:1 / -1}
  .pmod--wide .pmod__list{columns:1}
  .plat__grid--live > .pmod:last-child .pmod__list{columns:2}
  .plat__grid--soon{grid-template-columns:1fr}
  .plat__grid--soon .pmod__list{display:block;columns:2;column-gap:32px}
  .plat__grid--soon .pmod__list li{break-inside:avoid;margin-bottom:9px}
  .plat__foot{flex-direction:column;align-items:flex-start}
}
@media (max-width:760px){
  .plat__grid--live,.plat__grid--soon{grid-template-columns:1fr}
  .plat__grid--live > .pmod:last-child .pmod__list,.plat__grid--soon .pmod__list{columns:1}
}

/* ---- Card finish for the remaining surfaces -------------------------------- */
.finding{border-radius:14px;box-shadow:var(--lift-2)}
.ceiling{border-radius:14px;overflow:hidden;box-shadow:var(--lift-2)}
.contact__aside{border-radius:14px;box-shadow:var(--lift-2)}
.lcard{border-radius:14px}
.field input,.field select,.field textarea{border-radius:10px;transition:border-color var(--t-fast) var(--e),box-shadow var(--t-fast) var(--e)}
.field input:focus,.field select:focus,.field textarea:focus{box-shadow:0 0 0 4px var(--gold-wash)}

/* ---- Blog cards: cover art on top, two to a row ------------------------------ */
.postlist:has(> .postcard:nth-child(2)){grid-template-columns:repeat(2,minmax(0,1fr))}
.postcard{display:flex;flex-direction:column;padding:0;overflow:hidden;border-radius:16px;background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-2)}
.postcard:hover{transform:translateY(-4px);box-shadow:var(--lift-3);border-color:var(--line-gold)}
.postcard__cover{position:relative;aspect-ratio:16/8;overflow:hidden;background:linear-gradient(160deg,var(--void-2),var(--void))}
.postcard__cover svg{position:absolute;inset:0;width:100%;height:100%;transition:transform 1.2s var(--e)}
.postcard:hover .postcard__cover svg{transform:scale(1.04)}
.postcard__body{display:flex;flex-direction:column;flex:1;padding:clamp(24px,2.4vw,34px)}
.postcard__title{max-width:none;text-wrap:balance}
.postcard__go{margin-top:auto;padding-top:18px}
@media (max-width:800px){.postlist:has(> .postcard:nth-child(2)){grid-template-columns:1fr}}

/* Two-sentence headings: the accent sentence takes its own line */
.accent--line{display:block}

/* ---- Fit panels (industry pages): ticks for a fit, open circles for not yet --- */
.fit{gap:clamp(16px,1.6vw,24px)}
.fit__col{border-radius:14px;background:var(--white);box-shadow:var(--lift-2);padding:clamp(26px,2.4vw,34px)}
.fit__col--soft{background:transparent;border-style:dashed;border-color:var(--line-strong);box-shadow:none}
.fit__h{font-size:clamp(21px,1.6vw,25px);margin-bottom:16px}
.fit ul{list-style:none;padding:0;display:grid;gap:10px;font-size:14.5px;line-height:1.6}
.fit li{position:relative;padding-left:24px}
.fit li::before{content:'';position:absolute;left:2px;top:.42em;width:9px;height:5px;border-left:1.5px solid var(--gold);border-bottom:1.5px solid var(--gold);transform:rotate(-45deg)}
.fit__col--soft li{color:var(--muted)}
.fit__col--soft li::before{left:3px;top:.55em;width:6px;height:6px;border:1.5px solid var(--muted-2);border-radius:50%;transform:none}

/* ---- Legal pages: headings carry the numbers, so no ghosted numerals --------- */
.lcard__num{display:none}
.lcard{grid-template-columns:minmax(0,1fr) clamp(92px,10vw,140px)}
@media (max-width:700px){.lcard{grid-template-columns:1fr}}

/* ---- Platform page head: the turning chess piece (js/piece.js) ----------------
   Sits in the empty right side of the first section; the copy keeps the left. */
.piece{display:none}
@media (min-width:1000px){
  .phero .sec-head,.phero .note{max-width:min(860px,54%)}
  .piece{display:block;position:absolute;z-index:0;right:max(var(--gutter),calc((100% - var(--max-w)) / 2 + var(--gutter)));top:50%;
    width:clamp(320px,34vw,560px);aspect-ratio:4/5;transform:translateY(-46%);margin:0;pointer-events:none}
  .piece__canvas{position:absolute;inset:0;width:100%;height:100%;opacity:0;transform:translateY(24px) scale(.97);
    transition:opacity 1.4s var(--e) .2s,transform 1.6s var(--e) .2s}
  .piece.is-ready .piece__canvas{opacity:1;transform:none}
  /* warm light behind the piece */
  .piece__halo{position:absolute;left:50%;top:44%;width:92%;aspect-ratio:1;transform:translate(-50%,-50%);border-radius:50%;
    background:radial-gradient(circle,rgba(224,154,71,.30),rgba(224,154,71,.08) 45%,transparent 70%);animation:piece-breathe 6s ease-in-out infinite}
  /* a thin gold orbit with a travelling light, tilted into the floor plane */
  .piece__orbit{position:absolute;left:50%;bottom:-6%;width:78%;aspect-ratio:1;border-radius:50%;border:1px solid rgba(200,125,46,.35);
    transform:translateX(-50%) perspective(900px) rotateX(76deg);animation:piece-orbit 14s linear infinite}
  .piece__orbit i{position:absolute;left:50%;top:-4px;width:8px;height:8px;margin-left:-4px;border-radius:50%;background:var(--gold-lit);
    box-shadow:0 0 12px 3px rgba(224,154,71,.7)}
  /* contact shadow */
  .piece__floor{position:absolute;left:50%;bottom:15%;width:50%;height:6%;transform:translateX(-50%);border-radius:50%;
    background:radial-gradient(ellipse,rgba(20,14,8,.38),transparent 70%);filter:blur(4px)}
  .piece.is-static .piece__canvas{display:none}
}
@keyframes piece-breathe{0%,100%{opacity:.8;transform:translate(-50%,-50%) scale(1)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.06)}}
@keyframes piece-orbit{to{transform:translateX(-50%) perspective(900px) rotateX(76deg) rotateZ(360deg)}}
@media (prefers-reduced-motion:reduce){.piece__halo,.piece__orbit{animation:none}}

/* ---- Figure captions: centred under the figure, framed by gold hairlines ------ */
figure > figcaption,.hero__visual-cap,.problem__cap{
  display:flex;align-items:center;justify-content:center;gap:14px;
  margin:clamp(20px,2.4vw,28px) auto 0;max-width:100%;text-align:center;
  font-family:var(--font-mono);font-size:10.5px;line-height:1.6;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
figure > figcaption::before,figure > figcaption::after{content:'';flex:0 1 56px;min-width:18px;height:1px}
figure > figcaption::before{background:linear-gradient(90deg,transparent,var(--gold))}
figure > figcaption::after{background:linear-gradient(90deg,var(--gold),transparent)}
@media (max-width:600px){
  figure > figcaption,.hero__visual-cap,.problem__cap{font-size:9.5px;letter-spacing:.12em;gap:10px}
  figure > figcaption::before,figure > figcaption::after{flex-basis:28px}
}

/* ---- Mission: copy beside a dark fact panel ------------------------------------ */
.mgrid{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,80px);align-items:center}
.mtext__title{margin-top:18px;font-size:clamp(30px,3vw,44px);line-height:1.12;letter-spacing:-.02em;text-wrap:balance;max-width:20ch}
.mtext__title .accent{display:block}
.mtext__lead{margin:22px 0 0;font-size:clamp(16px,1.15vw,17.5px);line-height:1.8;font-weight:300;color:var(--ink-2);max-width:58ch;text-wrap:pretty}
.mtext__lead a{color:var(--gold-deep);text-decoration:none;border-bottom:1px solid var(--line-gold)}
.mtext__lead a:hover{color:var(--gold)}
.mtext__quote{margin:30px 0 0;padding:4px 0 4px clamp(20px,2vw,28px);border-left:2px solid var(--gold)}
.mtext__qk{margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.mtext__q{margin:10px 0 0;font-family:var(--font-display);font-style:italic;font-size:clamp(21px,1.75vw,27px);line-height:1.38;color:var(--ink);text-wrap:balance;max-width:30ch}
.mtext__close{margin:28px 0 0;font-size:16px;line-height:1.7;color:var(--ink-2)}
.mtext__close strong{color:var(--ink);font-weight:600}
.mfact{position:relative;overflow:hidden;margin:0;padding:clamp(30px,3vw,44px);border-radius:18px;color:var(--void-text);
  background:linear-gradient(160deg,var(--void-2) 0%,var(--void) 100%);box-shadow:inset 0 1px 0 var(--cx-glare),var(--cx-shadow);
  transform:perspective(1200px) rotateY(-6deg) rotateX(2deg);transition:transform .9s var(--e)}
.mfact:hover{transform:perspective(1200px) rotateY(-2deg) rotateX(1deg)}
.mfact::before{content:'';position:absolute;right:-30%;top:-40%;width:80%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(224,154,71,.22),transparent 65%);pointer-events:none}
.mfact::after{content:'';position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-lit),transparent);opacity:.6}
.mfact__k{position:relative;margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}
.mfact__k--sub{margin-top:26px;padding-top:22px;border-top:1px solid var(--cx-edge);color:var(--cx-muted)}
.mfact__n{position:relative;margin:14px 0 0;font-family:var(--font-display);font-size:clamp(64px,6.4vw,96px);line-height:1;color:#fff;letter-spacing:-.02em}
.mfact__n small{display:block;margin-bottom:6px;font-family:var(--font-body);font-size:13px;letter-spacing:.02em;color:var(--cx-muted)}
.mfact__l{position:relative;margin:12px 0 0;font-size:15.5px;line-height:1.6;color:var(--void-text);max-width:34ch}
.mfact__why{position:relative;list-style:none;margin:14px 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.mfact__why li{padding:7px 12px;border-radius:999px;border:1px solid var(--cx-edge);background:rgba(255,255,255,.03);font-size:13px;color:var(--void-text)}
.mfact__why li.is-key{border-color:rgba(224,154,71,.45);background:rgba(224,154,71,.12);color:var(--gold-lit)}
.mfact__note{position:relative;margin:20px 0 0;font-family:var(--font-display);font-style:italic;font-size:clamp(17px,1.3vw,19px);line-height:1.45;color:#fff}
@media (max-width:900px){.mgrid{grid-template-columns:1fr}.mfact{transform:none}.mfact:hover{transform:none}}
@media (prefers-reduced-motion:reduce){.mfact,.mfact:hover{transform:none}}

/* ---- Page-head illustration (Mission): isometric organisation scene ----------- */
.page-art{display:none}
@media (min-width:1000px){
  .page-art{display:block;position:absolute;z-index:0;margin:0;pointer-events:none;
    right:max(var(--gutter),calc((100% - var(--max-w)) / 2 + var(--gutter)));top:50%;width:clamp(340px,36vw,580px);aspect-ratio:1;
    transform:translateY(-48%);animation:art-in 1.6s var(--e) both .2s}
  .page-art svg{width:100%;height:100%;overflow:visible}
}
@keyframes art-in{from{opacity:0;transform:translateY(-44%)}to{opacity:1;transform:translateY(-48%)}}
.org__win{stroke:rgba(20,20,20,.12);stroke-width:1}
.org__win--shade{stroke:rgba(20,20,20,.16)}
.org__grid{stroke:rgba(224,154,71,.10);stroke-width:1}
.org__link{fill:none;stroke:#E09A47;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:3 7;animation:org-flow 1.6s linear infinite}
.org__agent{animation:org-float 4.2s ease-in-out infinite}
.org__glow{transform-box:fill-box;transform-origin:center;animation:org-pulse 3.6s ease-in-out infinite}
@keyframes org-flow{to{stroke-dashoffset:-20}}
@keyframes org-float{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
@keyframes org-pulse{0%,100%{opacity:.7;transform:scale(.92)}50%{opacity:1;transform:scale(1.08)}}
@media (prefers-reduced-motion:reduce){.page-art,.org__link,.org__agent,.org__glow{animation:none}}

/* ---- Numbered cards with word labels ("Product", "Service 01") get a pill ------ */
.row,.row:last-child{grid-template-columns:auto minmax(0,1fr)}
.row__num{min-width:36px;width:auto;padding:0 12px;border-radius:999px;white-space:nowrap}

/* ---- About: "At a glance" fact sheet in the page head --------------------------- */
@media (min-width:1000px){
  .page-art--card{aspect-ratio:auto;width:clamp(340px,30vw,440px);animation-name:card-in}
}
@keyframes card-in{from{opacity:0;transform:translateY(-44%) perspective(1200px) rotateY(-14deg)}to{opacity:1;transform:translateY(-50%) perspective(1600px) rotateY(-3deg)}}
.glance{position:relative;overflow:hidden;padding:clamp(28px,2.6vw,38px);border-radius:20px;color:var(--void-text);
  background:linear-gradient(160deg,var(--void-2) 0%,var(--void) 100%);box-shadow:inset 0 1px 0 var(--cx-glare),var(--cx-shadow)}
.glance::before{content:'';position:absolute;right:-35%;top:-45%;width:90%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(224,154,71,.22),transparent 65%)}
.glance::after{content:'';position:absolute;left:12%;right:12%;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-lit),transparent);opacity:.6}
.glance__k{position:relative;margin:0 0 18px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}
.glance__list{position:relative;margin:0;display:grid}
.glance__list div{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:14px 0;border-top:1px solid var(--cx-edge)}
.glance__list dt{font-size:13px;color:var(--cx-muted)}
.glance__list dd{margin:0;display:flex;align-items:center;gap:8px;font-size:15px;font-weight:500;color:#fff;text-align:right}
.glance__live{width:7px;height:7px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 0 rgba(74,222,128,.6);animation:glance-live 2.4s ease-out infinite}
@keyframes glance-live{0%{box-shadow:0 0 0 0 rgba(74,222,128,.55)}80%,100%{box-shadow:0 0 0 8px rgba(74,222,128,0)}}
.glance__foot{position:relative;margin:18px 0 0;padding-top:18px;border-top:1px solid var(--cx-edge);font-family:var(--font-display);font-style:italic;font-size:17px;line-height:1.45;color:#fff}

/* ---- About: detection vs capability removal --------------------------------------- */
.vs{margin:0;padding:clamp(24px,2.4vw,32px);border-radius:18px;background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-3)}
.vs__k{margin:0 0 16px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.vs__row{padding:20px 22px;border-radius:14px}
.vs__row + .vs__row{margin-top:12px}
.vs__row--weak{background:var(--cream-2);border:1px dashed var(--line-strong)}
.vs__row--strong{background:linear-gradient(160deg,var(--void-2),var(--void));color:var(--void-text);box-shadow:var(--cx-shadow)}
.vs__t{margin:0;display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:21px;line-height:1.2;color:var(--ink)}
.vs__row--strong .vs__t{color:#fff}
.vs__t em{font-style:normal;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;padding:4px 8px;border-radius:999px;background:rgba(224,154,71,.16);color:var(--gold-lit)}
.vs__d{margin:8px 0 0;font-size:14.5px;line-height:1.6;color:var(--ink-2)}
.vs__row--strong .vs__d{color:var(--void-text)}
.vs__r{margin:12px 0 0;display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;font-weight:500;color:var(--muted)}
.vs__r span{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:11px;background:rgba(168,50,50,.1);color:#A83232}
.vs__row--strong .vs__r{color:#fff}
.vs__row--strong .vs__r span{background:rgba(74,222,128,.15);color:#4ade80}

/* ---- About: globe beside "where we are" ------------------------------------------- */
.mgrid--globe{align-items:center}
.mgrid--globe .sec-head{margin-bottom:0}
.globe-wrap{margin:0;max-width:520px;justify-self:center;width:100%}
.globe{width:100%;height:auto;overflow:visible}
.globe__line{fill:none;stroke:rgba(224,154,71,.18);stroke-width:.8}
.globe__line--eq{stroke:rgba(224,154,71,.34)}
.globe__orbit{fill:none;stroke:rgba(200,125,46,.35);stroke-width:1;stroke-dasharray:2 6;animation:globe-dash 18s linear infinite}
.globe__arc{fill:none;stroke:#E09A47;stroke-width:1.6;stroke-linecap:round;stroke-dasharray:4 8;opacity:.9;animation:globe-dash 2.2s linear infinite}
.globe__node{fill:#E8C89A;stroke:#08080a;stroke-width:1.5}
.globe__home{fill:#E09A47;stroke:#fff;stroke-width:1.5}
.globe__pulse{fill:rgba(224,154,71,.35);transform-box:fill-box;transform-origin:center;animation:globe-pulse 2.4s ease-out infinite}
.globe__tag line{stroke:rgba(255,255,255,.55);stroke-width:1}
.globe__tag text{font-family:var(--font-body);font-size:15px;font-weight:600;fill:#fff}
.globe__tag .globe__sub{font-size:11.5px;font-weight:400;fill:rgba(255,255,255,.65);letter-spacing:.04em}
@keyframes globe-dash{to{stroke-dashoffset:-24}}
@keyframes globe-pulse{0%{transform:scale(.4);opacity:1}100%{transform:scale(2.2);opacity:0}}
@media (prefers-reduced-motion:reduce){.globe__orbit,.globe__arc,.globe__pulse,.glance__live{animation:none}.page-art--card{animation:none}}

/* ---- About, "Why we exist": the argument as three beats, card beside it ------- */
.why{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:clamp(36px,5vw,88px);align-items:start}
.why .sec-head{margin-bottom:clamp(28px,3.4vh,40px)}
.why .vs{position:sticky;top:120px;margin-top:clamp(40px,5vh,60px)}
.beats{list-style:none;margin:0;padding:0;display:grid;gap:0;border-top:1px solid var(--line)}
.beat{padding:clamp(22px,2.6vh,30px) 0;border-bottom:1px solid var(--line)}
.beat__k{margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.beat__t{margin:10px 0 0;font-family:var(--font-display);font-size:clamp(21px,1.7vw,26px);line-height:1.25;color:var(--ink);text-wrap:balance}
.beat__b{margin:10px 0 0;font-size:15.5px;line-height:1.75;color:var(--ink-2);max-width:62ch;text-wrap:pretty}
.why__close{margin:clamp(28px,3.4vh,40px) 0 0;padding:clamp(22px,2.4vw,30px) clamp(24px,2.6vw,34px);border-radius:14px;border-left:3px solid var(--gold);
  background:var(--white);box-shadow:var(--lift-2);font-size:15.5px;line-height:1.75;color:var(--ink-2)}
.why__close em{display:block;margin-bottom:6px;font-family:var(--font-display);font-size:clamp(22px,1.8vw,27px);line-height:1.25;color:var(--ink)}
.vs__d,.vs__r{font-size:14.5px}
.vs__t{font-size:22px}
@media (max-width:1000px){.why{grid-template-columns:1fr}.why .vs{position:static;margin-top:0}}

/* =====================================================================
   Inner pages, pass 2: no empty right halves, stronger reading text,
   icons on cards, page-head panels
   ===================================================================== */

@media (min-width:1000px){
  /* the page head keeps its copy to the left of its panel, and is tall enough for it */
  .phero:has(.page-art--card) > .wrap{min-height:clamp(430px,34vw,520px);display:flex;flex-direction:column;justify-content:center}
}

/* Reading text: regular weight, full contrast */
.sec-head .lead{font-weight:400;color:var(--ink-2)}
.prose p{font-size:clamp(16px,1.15vw,17px);line-height:1.8;color:var(--ink-2)}
.prose strong{color:var(--ink);font-weight:600}
.row__body,.cause__body{color:var(--ink-2);font-size:15px;line-height:1.72}
.cause__title,.row__title{letter-spacing:-.005em}

/* Card icons, top right */
.row,.cause{position:relative}
.card-ico{position:absolute;top:clamp(22px,2vw,28px);right:clamp(22px,2vw,28px);display:grid;place-items:center;width:42px;height:42px;border-radius:12px;
  background:linear-gradient(160deg,#fff8ee,#f5e9d8);color:var(--gold-deep);box-shadow:inset 0 0 0 1px rgba(200,125,46,.18);
  transition:transform var(--t-fast) var(--e),background var(--t-fast) var(--e),color var(--t-fast) var(--e)}
.card-ico svg{width:21px;height:21px}
.row:hover .card-ico,.cause:hover .card-ico{transform:translateY(-2px) rotate(-4deg);background:linear-gradient(160deg,var(--void-2),var(--void));color:var(--gold-lit)}
.row:has(.card-ico) .row__title{padding-right:52px}
.cause:has(.card-ico) .cause__label,.cause:has(.card-ico) .cause__title{padding-right:54px}

/* How we work: the sequence */
.seq{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:4px}
.seq::before{content:'';position:absolute;left:17px;top:20px;bottom:20px;width:1px;background:linear-gradient(var(--cx-edge),rgba(224,154,71,.6),var(--cx-edge))}
.seq li{position:relative;display:flex;gap:16px;align-items:flex-start;padding:10px 0}
.seq b{flex:none;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#1d1d21;border:1px solid var(--cx-edge);
  font-family:var(--font-mono);font-size:10.5px;font-weight:400;color:var(--gold-lit)}
.seq span{font-size:13.5px;line-height:1.5;color:var(--cx-muted)}
.seq strong{display:block;margin-bottom:2px;font-family:var(--font-display);font-size:19px;font-weight:400;color:#fff}
.seq__gate b{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 0 0 5px rgba(224,154,71,.15);animation:seq-gate 2.8s ease-in-out infinite}
@keyframes seq-gate{50%{box-shadow:0 0 0 9px rgba(224,154,71,.06)}}

/* What we don't do: scope in and out */
.scope__h{position:relative;margin:4px 0 10px;font-family:var(--font-display);font-size:19px;color:#fff}
.scope{position:relative;list-style:none;margin:0 0 18px;padding:0;display:grid;gap:8px}
.scope li{display:flex;align-items:center;gap:10px;font-size:14px;color:var(--void-text)}
.scope li::before{flex:none;display:grid;place-items:center;width:20px;height:20px;border-radius:50%;font-size:11px}
.scope--in li::before{content:'\2713';background:rgba(74,222,128,.14);color:#4ade80}
.scope--out li::before{content:'\2715';background:rgba(248,113,113,.14);color:#f87171}
.scope--out li{color:var(--cx-muted)}
.scope--out{margin-bottom:0}

/* Contact: the two ways in */
.path{position:relative;padding:16px 18px;border-radius:14px;background:rgba(255,255,255,.04);border:1px solid var(--cx-edge)}
.path + .path{margin-top:10px}
.path__t{margin:0;font-family:var(--font-display);font-size:20px;color:#fff}
.path__d{margin:6px 0 0;font-size:13.5px;line-height:1.55;color:var(--void-text)}
.path__m{margin:12px 0 0;display:flex;gap:8px}
.path__m span{padding:4px 10px;border-radius:999px;font-family:var(--font-mono);font-size:10px;letter-spacing:.08em;text-transform:uppercase;
  background:rgba(224,154,71,.12);color:var(--gold-lit)}

/* Careers: still worth writing */
.reach{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:clamp(28px,4vw,64px);align-items:center;
  padding:clamp(30px,3.4vw,52px);border-radius:20px;background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-3)}
.reach__k{margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.reach__t{margin:12px 0 0;font-family:var(--font-display);font-size:clamp(24px,2.1vw,32px);line-height:1.2;color:var(--ink);text-wrap:balance}
.reach__b{margin:14px 0 0;font-size:16px;line-height:1.75;color:var(--ink-2)}
.reach__side{padding:clamp(22px,2.4vw,32px);border-radius:16px;background:linear-gradient(160deg,var(--void-2),var(--void));box-shadow:var(--cx-shadow)}
.reach__tags{list-style:none;margin:0 0 22px;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.reach__tags li{padding:7px 12px;border-radius:999px;border:1px solid rgba(224,154,71,.35);background:rgba(224,154,71,.1);font-size:13px;color:var(--gold-lit)}
.reach__side .btn{width:100%;justify-content:center;background:var(--gold);border-color:var(--gold);color:#fff}
.reach__side .btn:hover{background:var(--gold-lit);border-color:var(--gold-lit)}
.reach__note{margin:12px 0 0;text-align:center;font-size:13px;color:var(--cx-muted)}
@media (max-width:900px){.reach{grid-template-columns:1fr}}
@media (prefers-reduced-motion:reduce){.seq__gate b{animation:none}}
.reach > *{min-width:0}
.reach__side .btn{white-space:normal;text-align:center;height:auto;min-height:48px;padding-block:12px;line-height:1.35}
@media (max-width:600px){.reach{padding:22px}.reach__side{padding:20px}}

/* =====================================================================
   Pass 3: one editorial voice, and visuals instead of text on the right
   ===================================================================== */

/* Reading text in the headline family, so paragraphs match the headings */
.sec-head .lead,.prose p,.mtext__lead,.cta__sub,.reach__b,.beat__b,.why__close,
.row__body,.cause__body,.pmod__one,.how__b,.fit li,.acc__body,.note,.postcard__desc,.problem__lead{
  font-family:var(--font-display);font-weight:400;letter-spacing:0;font-feature-settings:'kern','liga','onum'}
.sec-head .lead,.mtext__lead,.problem__lead{font-size:clamp(18px,1.4vw,20.5px);line-height:1.62;color:#3a3530;max-width:56ch}
.prose p{font-size:clamp(17.5px,1.3vw,19.5px);line-height:1.7;color:#3a3530}
.row__body,.cause__body,.pmod__one,.how__b,.beat__b{font-size:16.5px;line-height:1.62;color:#3f3a34}
.cause__answer,.fit li,.acc__body,.reach__b{font-size:16px;line-height:1.62}
.note{font-size:16.5px;line-height:1.65}
.note strong,.prose strong{font-family:var(--font-display);font-weight:500;color:var(--ink)}
.cta__sub{font-size:18px;line-height:1.6}


/* ---- Works without scripts --------------------------------------------------
   main.js adds html.js-ready. If it never runs (a blocked script, or the page
   opened straight from a folder), menus open on hover and focus, content that
   waits to be revealed appears anyway, and answers are shown open. */
@media (min-width:1101px){
  .nav__item:hover > .nav__drop,.nav__item:focus-within > .nav__drop{opacity:1;visibility:visible;transform:none}
  .nav__item:hover > .nav__link .nav__chev,.nav__item:focus-within > .nav__link .nav__chev{transform:rotate(180deg)}
}
html:not(.js-ready) .rv,html:not(.js-ready) .rv-stagger > *,html:not(.js-ready) .mask > span{animation:no-js-show .01s linear 1.2s forwards}
@keyframes no-js-show{to{opacity:1;transform:none}}
html:not(.js-ready) .acc__panel{max-height:none}

/* =====================================================================
   Services page heads: live panels
   ===================================================================== */
.live__dot{display:inline-block;width:7px;height:7px;margin-right:9px;border-radius:50%;background:#4ade80;vertical-align:1px;animation:glance-live 2.4s ease-out infinite}

/* Services overview: engagements board */
.eng{position:relative;display:grid;gap:18px}
.eng__row{display:grid;grid-template-columns:1fr auto;gap:8px 14px;align-items:baseline}
.eng__t{margin:0;display:flex;align-items:center;gap:10px;font-family:var(--font-display);font-size:18px;color:#fff}
.eng__t b{display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:#1d1d21;border:1px solid var(--cx-edge);font-family:var(--font-mono);font-size:10px;font-weight:400;color:var(--gold-lit)}
.eng__m{margin:0;font-family:var(--font-mono);font-size:11px;letter-spacing:.06em;color:var(--gold-lit)}
.eng__bar{grid-column:1 / -1;height:6px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.eng__bar i{display:block;height:100%;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,var(--gold),var(--gold-lit));transform-origin:left;animation:bar-fill 1.6s var(--e) both .6s}
.eng__bar--steps{display:grid;grid-template-columns:repeat(4,1fr);gap:4px;background:none}
.eng__bar--steps i{width:auto;background:rgba(255,255,255,.07);position:relative;overflow:hidden}
.eng__bar--steps i::after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,var(--gold),var(--gold-lit));transform:scaleX(0);transform-origin:left;animation:stage-run 8s linear infinite}
.eng__bar--steps i:nth-child(2)::after{animation-delay:2s}.eng__bar--steps i:nth-child(3)::after{animation-delay:4s}.eng__bar--steps i:nth-child(4)::after{animation-delay:6s}
.eng__audit{position:relative;margin:22px 0 0;padding-top:18px;border-top:1px solid var(--cx-edge);display:flex;align-items:center;gap:10px;font-size:14px;color:#fff}
.eng__audit span{display:grid;place-items:center;width:20px;height:20px;border-radius:50%;background:rgba(74,222,128,.15);color:#4ade80;font-size:11px}
@keyframes bar-fill{from{transform:scaleX(0)}}
@keyframes stage-run{0%{transform:scaleX(0)}25%,100%{transform:scaleX(1)}}

/* Service 01: answers with sources, and a refusal */
.rag{position:relative;display:grid;gap:10px}
.rag__q{margin:0;display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.5;color:var(--void-text)}
.rag__q span{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:6px;background:#1d1d21;border:1px solid var(--cx-edge);font-family:var(--font-mono);font-size:10px;color:var(--cx-muted)}
.rag__a{margin-left:32px;padding:14px 16px;border-radius:12px;background:rgba(255,255,255,.045);border:1px solid var(--cx-edge);animation:rag-in 9s var(--e) infinite}
.rag__a p{margin:0;font-family:var(--font-display);font-size:16.5px;line-height:1.45;color:#fff}
.rag__src{margin-top:10px!important;display:flex;flex-wrap:wrap;gap:6px}
.rag__src span{padding:4px 9px;border-radius:999px;background:rgba(224,154,71,.12);border:1px solid rgba(224,154,71,.3);font-family:var(--font-mono)!important;font-size:10px!important;letter-spacing:.04em;color:var(--gold-lit)}
.rag__q--2{margin-top:6px;animation:rag-in2 9s var(--e) infinite}
.rag__a--refuse{border-color:rgba(248,113,113,.3);background:rgba(248,113,113,.06);animation-name:rag-in2}
.rag__a--refuse p:first-child{color:var(--void-text)}
.rag .rag__no{background:rgba(248,113,113,.12);border-color:rgba(248,113,113,.35);color:#fca5a5}
@keyframes rag-in{0%{opacity:0;transform:translateY(8px)}8%,100%{opacity:1;transform:none}}
@keyframes rag-in2{0%,40%{opacity:0;transform:translateY(8px)}50%,100%{opacity:1;transform:none}}

/* Service 02: ceilings */
.ceil{position:relative;display:grid;gap:14px}
.ceil__row{display:grid;grid-template-columns:118px 1fr 66px;align-items:center;gap:12px}
.ceil__row p{margin:0;font-size:13.5px;color:var(--void-text)}
.ceil__row b{text-align:right;white-space:nowrap;font-family:var(--font-display);font-size:17px;font-weight:400;color:#fff}
.ceil__bar{position:relative;height:8px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.ceil__bar::after{content:'';position:absolute;top:0;bottom:0;left:var(--w,0);width:1px}
.ceil__bar i{display:block;height:100%;width:var(--w);border-radius:inherit;background:linear-gradient(90deg,rgba(200,125,46,.55),var(--gold-lit));transform-origin:left;animation:bar-fill 1.8s var(--e) both .5s}
.ceil__row:nth-child(2) i{animation-delay:.65s}.ceil__row:nth-child(3) i{animation-delay:.8s}.ceil__row:nth-child(4) i{animation-delay:.95s}.ceil__row:nth-child(5) i{animation-delay:1.1s}
.ceil__row--mark p,.ceil__row--mark b{color:var(--gold-lit)}

/* Service 03: stages, one at a time */
.stg{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:6px}
.stg::before{content:'';position:absolute;left:17px;top:18px;bottom:18px;width:1px;background:var(--cx-edge)}
.stg li{position:relative;display:flex;gap:16px;align-items:center;padding:9px 0}
.stg b{flex:none;display:grid;place-items:center;width:35px;height:35px;border-radius:50%;background:#1d1d21;border:1px solid var(--cx-edge);font-family:var(--font-mono);font-size:11px;font-weight:400;color:var(--gold-lit);
  animation:stg-on 8s linear infinite}
.stg li:nth-child(2) b{animation-delay:2s}.stg li:nth-child(3) b{animation-delay:4s}.stg li:nth-child(4) b{animation-delay:6s}
.stg span{font-size:12.5px;font-family:var(--font-mono);letter-spacing:.04em;color:var(--cx-muted)}
.stg strong{display:block;margin-bottom:2px;font-family:var(--font-display);font-size:18px;font-weight:400;letter-spacing:0;color:#fff}
@keyframes stg-on{0%,24%{background:var(--gold);border-color:var(--gold);color:#fff;box-shadow:0 0 0 6px rgba(224,154,71,.14)}26%,100%{background:#1d1d21;border-color:var(--cx-edge);color:var(--gold-lit);box-shadow:none}}

@media (prefers-reduced-motion:reduce){.live__dot,.eng__bar i,.eng__bar--steps i::after,.rag__a,.rag__q--2,.ceil__bar i,.stg b{animation:none}.eng__bar--steps i::after{transform:none}}

/* =====================================================================
   Platform layer page heads: live panels from each page's example
   ===================================================================== */
.glance .ok{color:#4ade80}.glance .warn{color:var(--gold-lit)}.glance .no{color:#f87171}
.glance code{font-family:var(--font-mono);font-size:12px;color:#fff}

/* Layer 01: held vs used */
.hu__n{position:relative;display:flex;align-items:center;gap:18px;margin-bottom:18px}
.hu__n span{display:flex;flex-direction:column;font-size:12px;color:var(--cx-muted);letter-spacing:.04em}
.hu__n b{font-family:var(--font-display);font-size:48px;font-weight:400;line-height:1;color:#fff}
.hu__n b.is-gold{color:var(--gold-lit)}
.hu__n i{font-style:normal;font-size:24px;color:var(--gold-lit)}
.hu__caps{position:relative;list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.hu__caps li{padding:5px 10px;border-radius:999px;border:1px solid var(--cx-edge);font-family:var(--font-mono);font-size:10.5px;color:var(--cx-muted);
  animation:hu-fade 6s ease-in-out infinite}
.hu__caps li.on{border-color:rgba(224,154,71,.45);background:rgba(224,154,71,.12);color:var(--gold-lit);animation:none}
.hu__caps li:nth-child(4){animation-delay:.3s}.hu__caps li:nth-child(5){animation-delay:.6s}.hu__caps li:nth-child(6){animation-delay:.9s}.hu__caps li:nth-child(7){animation-delay:1.2s}.hu__caps li:nth-child(8){animation-delay:1.5s}
@keyframes hu-fade{0%,30%{opacity:1}50%,85%{opacity:.25;text-decoration:line-through}100%{opacity:1}}

/* Layer 02: composition */
.cmp{position:relative;display:grid;gap:8px}
.cmp__cap,.cmp__eq{display:flex;gap:12px;align-items:center;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--cx-edge)}
.cmp__cap > span{font-size:14px}
.cmp p{margin:0;display:flex;flex-direction:column;gap:3px;font-family:var(--font-mono);font-size:10.5px;color:var(--cx-muted)}
.cmp p b{font-size:12.5px;font-weight:400;color:#fff}
.cmp__plus{text-align:center;color:var(--gold-lit);font-size:18px;line-height:1}
.cmp__eq{border-color:rgba(224,154,71,.4);background:rgba(224,154,71,.08);margin-top:4px}
.cmp__deny{padding:11px 14px;border-radius:12px;background:rgba(248,113,113,.1);border:1px solid rgba(248,113,113,.35);font-family:var(--font-mono);font-size:11px;color:#fca5a5;
  animation:deny-pulse 3s ease-in-out infinite}
@keyframes deny-pulse{50%{box-shadow:0 0 0 5px rgba(248,113,113,.08)}}

/* Layer 03: delegation chain */
.chain{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:10px}
.chain li{position:relative;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--cx-edge)}
.chain li + li{margin-left:22px}.chain li + li + li{margin-left:44px}
.chain li + li::before{content:'';position:absolute;left:-14px;top:-10px;width:12px;height:30px;border-left:1px solid rgba(224,154,71,.5);border-bottom:1px solid rgba(224,154,71,.5);border-radius:0 0 0 6px}
.chain b{display:block;font-family:var(--font-display);font-size:17px;font-weight:400;color:#fff}
.chain span{display:block;margin-top:3px;font-family:var(--font-mono);font-size:10.5px;color:var(--cx-muted)}
.chain em{position:absolute;right:12px;top:12px;font-style:normal;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.chain li.ok em{color:#4ade80}.chain li.no{border-color:rgba(248,113,113,.35);background:rgba(248,113,113,.06)}.chain li.no em{color:#f87171}

/* Layer 04: taint */
.taint__meter{position:relative;display:grid;grid-template-columns:auto 1fr auto;gap:12px;align-items:center;margin-bottom:16px}
.taint__meter span,.taint__meter em{font-family:var(--font-mono);font-size:10.5px;font-style:normal;color:var(--cx-muted)}
.taint__meter em{color:var(--gold-lit)}
.taint__bar{position:relative;height:8px;border-radius:99px;background:rgba(255,255,255,.07)}
.taint__bar i{position:absolute;left:0;top:0;bottom:0;border-radius:inherit;background:linear-gradient(90deg,var(--gold),#f87171);animation:taint-rise 7s var(--e) infinite}
.taint__bound{position:absolute;left:33%;top:-5px;bottom:-5px;width:2px;background:#fff;border-radius:2px;opacity:.7}
.taint__log{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:8px}
.taint__log li{display:flex;justify-content:space-between;align-items:center;gap:10px;padding:10px 12px;border-radius:10px;background:rgba(255,255,255,.04);border:1px solid var(--cx-edge)}
.taint__log span{font-family:var(--font-mono);font-size:10.5px}
.taint__log li:nth-child(2){animation:rag-in2 7s var(--e) infinite}
.taint__log li:nth-child(3){animation:taint-row 7s var(--e) infinite}
@keyframes taint-rise{0%,20%{width:8%}45%,100%{width:100%}}
@keyframes taint-row{0%,55%{opacity:0;transform:translateY(6px)}65%,100%{opacity:1;transform:none}}

/* Layer 06: nine checks */
.nine{position:relative;list-style:none;margin:0;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:6px 14px;counter-reset:n}
.nine li{counter-increment:n;display:flex;align-items:center;gap:10px;padding:7px 0;font-size:13.5px;color:var(--void-text)}
.nine li::before{content:counter(n);display:grid;place-items:center;width:24px;height:24px;border-radius:50%;border:1px solid var(--cx-edge);background:#1d1d21;
  font-family:var(--font-mono);font-size:10px;color:var(--gold-lit);animation:nine-on 9s linear infinite}
.nine li:nth-child(2)::before{animation-delay:.6s}.nine li:nth-child(3)::before{animation-delay:1.2s}.nine li:nth-child(4)::before{animation-delay:1.8s}
.nine li:nth-child(5)::before{animation-delay:2.4s}.nine li:nth-child(6)::before{animation-delay:3s}.nine li:nth-child(7)::before{animation-delay:3.6s}
.nine li:nth-child(8)::before{animation-delay:4.2s}.nine li:nth-child(9)::before{animation-delay:4.8s}
@keyframes nine-on{0%{background:#1d1d21;color:var(--gold-lit)}2%,60%{background:var(--gold);border-color:var(--gold);color:#fff}70%,100%{background:#1d1d21;border-color:var(--cx-edge);color:var(--gold-lit)}}
.nine__v{position:relative;margin:16px 0 0;display:flex;gap:8px}
.nine__v span{padding:5px 12px;border-radius:999px;font-family:var(--font-mono);font-size:10.5px;letter-spacing:.06em;text-transform:uppercase;background:rgba(255,255,255,.05);border:1px solid var(--cx-edge)}
@media (prefers-reduced-motion:reduce){.hu__caps li,.cmp__deny,.taint__bar i,.taint__log li,.nine li::before{animation:none}.taint__bar i{width:100%}}

/* =====================================================================
   Homepage pass: compact cards, equal rhythm, nothing oversized
   ===================================================================== */
/* Narrow multi-column cards: the editorial face at a reading size that fits */
.how__b,.rows .row__body,.grid-3--open .cause__body,.pmod__one{font-size:15.5px;line-height:1.6}
.how__t{font-size:clamp(21px,1.5vw,24px)}
.how__card{padding:clamp(22px,1.8vw,28px)}
.how__steps{align-items:stretch}
.how__meta{padding-top:18px}
.row__title{font-size:clamp(19px,1.4vw,22px)}
.rows{align-items:stretch}
.row{padding:clamp(22px,1.9vw,28px)}
.pmod{padding:clamp(22px,1.9vw,30px)}
.pmod__t{font-size:clamp(21px,1.5vw,24px)}
.pmod__k{margin-top:18px;padding-top:16px}
.pmod__list li{font-size:14px}
.pmod__next{padding-top:18px}

/* Academy: the facts as a stacked card list with gold markers */
.academy{gap:clamp(36px,5vw,80px);align-items:center}
.academy__facts{border-top:0;display:grid;gap:10px;counter-reset:af}
.academy__facts li{counter-increment:af;position:relative;padding:18px 20px 18px 66px;border:1px solid var(--line);border-radius:14px;background:var(--white);
  box-shadow:var(--lift-2);font-family:var(--font-display);font-size:16px;line-height:1.5;color:#3f3a34;
  transition:transform var(--t-fast) var(--e),border-color var(--t-fast) var(--e)}
.academy__facts li:hover{transform:translateX(4px);border-color:var(--line-gold)}
.academy__facts li::before{content:counter(af,decimal-leading-zero);position:absolute;left:18px;top:50%;transform:translateY(-50%);
  display:grid;place-items:center;width:32px;height:32px;border-radius:50%;background:linear-gradient(160deg,var(--void-2),var(--void));
  font-family:var(--font-mono);font-size:10.5px;color:var(--gold-lit)}
.academy__facts strong,.academy__facts b{display:block;margin-bottom:2px;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ink)}
.row__more{grid-column:1 / -1;align-self:end;margin-top:auto;padding-top:18px;display:inline-flex;align-items:center;gap:8px;
  font-family:var(--font-mono);font-size:10.5px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep);text-decoration:none}
.row__more span{transition:transform var(--t-fast) var(--e)}
.row:hover .row__more span{transform:translateX(4px)}
.row:has(.row__more){grid-template-rows:auto 1fr auto}
.row:has(.row__more) .row__body{align-self:start}
.row:has(.row__more) .row__num,.row:has(.row__more) .row__title{grid-row:1}
.row:has(.row__more) .row__body{grid-row:2}
.row:has(.row__more) .row__more{grid-row:3}

/* =====================================================================
   Platform modules: one draggable row of designed cards (js/carousel.js)
   ===================================================================== */
.pcar{position:relative;margin-top:clamp(36px,5vh,56px)}
.pcar__bar{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:22px}
.pcar__hint{margin:0;font-size:16px;color:var(--muted)}
.pcar__nav{display:flex;gap:8px}
.pcar__btn{display:grid;place-items:center;width:46px;height:46px;border-radius:50%;border:1px solid var(--line-strong);background:var(--white);color:var(--ink);font-size:17px;
  cursor:pointer;transition:background var(--t-fast) var(--e),color var(--t-fast) var(--e),border-color var(--t-fast) var(--e)}
.pcar__btn:hover{background:var(--ink);color:#fff;border-color:var(--ink)}
/* the track bleeds to the right edge of the window */
.pcar__track{display:flex;gap:20px;overflow-x:auto;overscroll-behavior-x:contain;scroll-snap-type:x proximity;scrollbar-width:none;
  margin-right:calc(-1 * max(var(--gutter),(100vw - var(--max-w)) / 2 + var(--gutter)));padding:6px max(var(--gutter),(100vw - var(--max-w)) / 2 + var(--gutter)) 28px 2px;
  cursor:grab;user-select:none;-webkit-user-select:none}
.pcar__track::-webkit-scrollbar{display:none}
.pcar__track.is-dragging{cursor:grabbing;scroll-snap-type:none}
.pcar__track.is-dragging .pc{pointer-events:none}
.pcar__progress{position:relative;height:2px;margin-top:4px;border-radius:2px;background:var(--line);overflow:hidden}
.pcar__progress i{position:absolute;left:0;top:0;bottom:0;width:30%;border-radius:inherit;background:var(--gold)}
.pcar__cursor{position:absolute;left:-44px;top:-44px;z-index:5;display:grid;place-items:center;width:88px;height:88px;border-radius:50%;pointer-events:none;
  background:rgba(20,20,20,.86);color:#fff;font-size:14px;font-weight:500;letter-spacing:.02em;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);
  opacity:0;scale:.4;transition:opacity .25s var(--e),scale .35s var(--e)}
.pcar.show-cursor .pcar__cursor{opacity:1;scale:1}
.pcar.show-cursor .pcar__track{cursor:none}
@media (hover:none){.pcar__cursor{display:none}.pcar__track{cursor:auto}}

/* cards */
.pc{flex:none;scroll-snap-align:start;position:relative;display:flex;flex-direction:column;width:clamp(290px,27vw,400px);min-height:520px;
  padding:clamp(26px,2.2vw,34px);border-radius:22px;overflow:hidden;transition:transform .6s var(--e),box-shadow .6s var(--e)}
.pc:hover{transform:translateY(-6px)}
.pc--dark,.pc--lead{background:linear-gradient(165deg,#1b1a1d 0%,#0c0c0e 100%);color:var(--void-text);box-shadow:0 30px 60px -30px rgba(20,16,10,.55)}
.pc--dark::before,.pc--lead::before{content:'';position:absolute;right:-30%;top:-30%;width:90%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(200,110,40,.38),transparent 65%);pointer-events:none}
.pc--light{background:linear-gradient(170deg,#ffffff 0%,#f6f1ea 100%);border:1px solid var(--line);box-shadow:0 24px 50px -30px rgba(20,16,10,.25)}
.pc--soon{background:var(--cream);border:1px dashed var(--line-strong)}
.pc--lead{width:clamp(320px,31vw,460px)}
.pc > *{position:relative}
.pc__big{margin:0;font-family:var(--font-body);font-weight:300;font-size:clamp(110px,10vw,150px);line-height:.9;letter-spacing:-.05em;color:#fff}
.pc__lede{margin:26px 0 0;font-size:clamp(20px,1.6vw,24px);line-height:1.35;letter-spacing:-.01em;color:#fff;max-width:20ch}
.pc__tags{list-style:none;margin:auto 0 0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.pc__tags li{padding:7px 13px;border-radius:999px;background:rgba(255,255,255,.08);font-size:13.5px;color:#fff}
.pc__tags li.is-soon{background:none;border:1px dashed rgba(255,255,255,.25);color:var(--cx-muted)}
.pc__top{display:flex;align-items:center;justify-content:space-between;margin-bottom:auto;padding-bottom:40px}
.pc__ico{display:grid;place-items:center;width:52px;height:52px;border-radius:15px}
.pc__ico svg{width:24px;height:24px}
.pc--dark .pc__ico{background:rgba(224,154,71,.14);color:var(--gold-lit);box-shadow:inset 0 0 0 1px rgba(224,154,71,.25)}
.pc--light .pc__ico{background:linear-gradient(160deg,var(--void-2),var(--void));color:var(--gold-lit)}
.pc--soon .pc__ico{background:var(--white);color:var(--muted);box-shadow:inset 0 0 0 1px var(--line)}
.pc__st{display:inline-flex;align-items:center;gap:7px;padding:6px 11px;border-radius:999px;font-size:12px;font-weight:500}
.pc__st::before{content:'';width:6px;height:6px;border-radius:50%;background:#4ade80}
.pc--dark .pc__st{background:rgba(255,255,255,.08);color:#fff}
.pc--light .pc__st{background:var(--live-bg);color:var(--live)}
.pc--light .pc__st::before{background:var(--live)}
.pc--soon .pc__st{background:var(--gold-wash);color:var(--gold-deep)}
.pc--soon .pc__st::before{background:var(--gold)}
.pc__t{margin:0;font-family:var(--font-body);font-weight:500;font-size:clamp(23px,1.8vw,27px);line-height:1.15;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.pc--dark .pc__t{color:#fff}
.pc__one{margin:10px 0 0;font-size:15.5px;line-height:1.5;color:var(--ink-2)}
.pc--dark .pc__one{color:var(--void-text)}
.pc__list{list-style:none;margin:20px 0 0;padding:0;display:grid;gap:8px}
.pc__list li{position:relative;padding-left:20px;font-size:13.5px;line-height:1.5;color:var(--muted)}
.pc__list li::before{content:'';position:absolute;left:0;top:.6em;width:8px;height:1px;background:var(--gold)}
.pc--dark .pc__list li{color:var(--cx-muted)}
.pc__next{margin:22px 0 0;padding-top:16px;border-top:1px solid var(--line);font-size:13.5px;line-height:1.5;color:var(--ink-2)}
.pc--dark .pc__next{border-color:var(--cx-edge);color:var(--void-text)}
.pc__next span{display:block;margin-bottom:3px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.pc--dark .pc__next span{color:var(--gold-lit)}
@media (max-width:700px){.pc{width:82vw;min-height:480px}.pc--lead{width:86vw}.pcar__hint{font-size:14px}}
@media (prefers-reduced-motion:reduce){.pc:hover{transform:none}}
.pcar__track{padding-bottom:8px}
.pcar__progress{margin-top:22px}
.pc--dark,.pc--lead{box-shadow:0 10px 24px -14px rgba(20,16,10,.45)}
.pc--light{box-shadow:0 10px 24px -16px rgba(20,16,10,.22)}
@media (max-width:700px){.pc{width:76vw}.pc--lead{width:80vw}.pcar__track{gap:14px}}

/* =====================================================================
   Every card set as a moving row (rows(), causes() and the homepage)
   ===================================================================== */
.pcar__cursor{left:-30px;top:-30px;width:60px;height:60px;font-size:11.5px;letter-spacing:.04em;background:rgba(20,20,20,.88)}
.pcar.is-auto .pcar__track{scroll-snap-type:none}
.pcar--cards{margin-top:clamp(8px,1.4vh,16px)}
.pcar__foot{display:flex;align-items:center;gap:24px;margin-top:22px}
.pcar__foot .pcar__progress{flex:1;margin:0}
.pcar__foot .pcar__btn{width:40px;height:40px;font-size:15px}
.pcar.is-static .pcar__foot{display:none}
.pcar.is-static .pcar__track{cursor:auto}

/* the track is a flex row whatever grid class it carries */
.pcar__track.rows,.pcar__track.grid-3--open{display:flex;gap:20px}
.pcar__track > .row,.pcar__track > .cause{flex:none;width:clamp(290px,27vw,390px);min-height:clamp(340px,30vw,400px);scroll-snap-align:start;
  border-radius:22px;padding:clamp(26px,2.2vw,34px);transition:transform .6s var(--e),box-shadow .6s var(--e)}
.pcar__track > .row:hover,.pcar__track > .cause:hover{transform:translateY(-6px)}

/* alternate dark and light, as in the module row */
.pcar--cards .pcar__track > :nth-child(odd){background:linear-gradient(165deg,#1b1a1d 0%,#0c0c0e 100%);border:0;color:var(--void-text);
  box-shadow:0 12px 26px -16px rgba(20,16,10,.5);overflow:hidden}
.pcar--cards .pcar__track > :nth-child(odd)::after{content:'';position:absolute;right:-35%;top:-35%;width:90%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(200,110,40,.32),transparent 65%);pointer-events:none;opacity:1}
.pcar--cards .pcar__track > :nth-child(odd) > *:not(.card-ico){position:relative;z-index:1}
.pcar--cards .pcar__track > :nth-child(odd) > .card-ico{position:absolute;z-index:1}
.pcar--cards .pcar__track > :nth-child(even){background:linear-gradient(170deg,#ffffff 0%,#f6f1ea 100%);border:1px solid var(--line);box-shadow:0 12px 26px -18px rgba(20,16,10,.22)}
.pcar--cards .pcar__track > :nth-child(odd) .row__title,.pcar--cards .pcar__track > :nth-child(odd) .cause__title{color:#fff}
.pcar--cards .pcar__track > :nth-child(odd) .row__title a{color:#fff}
.pcar--cards .pcar__track > :nth-child(odd) .row__body,.pcar--cards .pcar__track > :nth-child(odd) .cause__body{color:var(--void-text)}
.pcar--cards .pcar__track > :nth-child(odd) .cause__answer{color:var(--void-text);border-color:var(--cx-edge)}
.pcar--cards .pcar__track > :nth-child(odd) .cause__answer strong,.pcar--cards .pcar__track > :nth-child(odd) .cause__label,.pcar--cards .pcar__track > :nth-child(odd) .row__more{color:var(--gold-lit)}
.pcar--cards .pcar__track > :nth-child(odd) .row__num{background:rgba(224,154,71,.16);box-shadow:inset 0 0 0 1px rgba(224,154,71,.3)}
.pcar--cards .pcar__track > :nth-child(odd) .card-ico{background:rgba(224,154,71,.14);color:var(--gold-lit);box-shadow:inset 0 0 0 1px rgba(224,154,71,.25)}
.pcar--cards .pcar__track > :nth-child(odd)::before{display:none}
.pcar__track > .cause{display:flex;flex-direction:column}
.pcar__track > .cause .cause__answer{margin-top:auto}
@media (max-width:700px){.pcar__track > .row,.pcar__track > .cause{width:78vw;min-height:320px}}

/* Homepage "Four steps" as a moving row: the step (li) carries the badge and
   timeline line, the card inside it takes the dark or light finish */
.pcar--how{margin-top:clamp(40px,5vh,64px)}
.how__steps.pcar__track{display:flex;gap:20px;margin:0 calc(-1 * max(var(--gutter),(100vw - var(--max-w)) / 2 + var(--gutter))) 0 0;align-items:stretch;padding-top:6px}
.how__steps.pcar__track > li{flex:none;width:clamp(300px,28vw,400px);background:none;border:0;box-shadow:none;overflow:visible;scroll-snap-align:start}
.how__steps.pcar__track > li::after{display:none}
.how__steps.pcar__track > li .how__n::after{margin-right:-20px;background:var(--line-gold)}
.how__steps.pcar__track > li:last-child .how__n::after{margin-right:0;background:linear-gradient(90deg,var(--line-gold),transparent)}
.how__steps.pcar__track .how__card{min-height:clamp(380px,32vw,440px);border-radius:22px;padding:clamp(26px,2.2vw,34px);transition:transform .6s var(--e),box-shadow .6s var(--e)}
.how__steps.pcar__track .how__card:hover{transform:translateY(-6px)}
.how__steps.pcar__track > li:nth-child(odd) .how__card{position:relative;overflow:hidden;border:0;color:var(--void-text);
  background:linear-gradient(165deg,#1b1a1d 0%,#0c0c0e 100%);box-shadow:0 12px 26px -16px rgba(20,16,10,.5)}
.how__steps.pcar__track > li:nth-child(odd) .how__card::before{content:'';position:absolute;right:-35%;top:-35%;width:90%;aspect-ratio:1;border-radius:50%;
  background:radial-gradient(circle,rgba(200,110,40,.32),transparent 65%);pointer-events:none}
.how__steps.pcar__track > li:nth-child(odd) .how__card > *{position:relative}
.how__steps.pcar__track > li:nth-child(odd) .how__t,.how__steps.pcar__track > li:nth-child(odd) .how__meta dd{color:#fff}
.how__steps.pcar__track > li:nth-child(odd) .how__b{color:var(--void-text)}
.how__steps.pcar__track > li:nth-child(odd) .how__meta div{border-color:var(--cx-edge)}
.how__steps.pcar__track > li:nth-child(odd) .how__meta dt{color:var(--gold-lit)}
.how__steps.pcar__track > li:nth-child(even) .how__card{background:linear-gradient(170deg,#ffffff 0%,#f6f1ea 100%);box-shadow:0 12px 26px -18px rgba(20,16,10,.22)}
.how__steps.pcar__track > li:nth-child(odd) .how__n span{background:var(--gold);color:#fff}
@media (max-width:700px){.how__steps.pcar__track > li{width:78vw}}

/* ---- Homepage "Built and tested": dark proof panel with stat cards -------------- */
.measured{position:relative;overflow:hidden;isolation:isolate}
.measured::before{content:'';position:absolute;z-index:-1;left:50%;top:-30%;width:min(1100px,90vw);aspect-ratio:2/1;transform:translateX(-50%);
  background:radial-gradient(ellipse at center,rgba(200,110,40,.22),transparent 65%);pointer-events:none}
.measured::after{content:'';position:absolute;z-index:-1;inset:0;pointer-events:none;
  background-image:linear-gradient(rgba(255,255,255,.035) 1px,transparent 1px),linear-gradient(90deg,rgba(255,255,255,.035) 1px,transparent 1px);background-size:56px 56px;
  -webkit-mask-image:radial-gradient(ellipse at 50% 40%,#000,transparent 75%);mask-image:radial-gradient(ellipse at 50% 40%,#000,transparent 75%)}
.measured__head{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,6vw,96px);align-items:end;margin-bottom:clamp(40px,5vh,64px)}
.measured__head .sec-head{margin:0}
.measured .sec-head h2{color:#fff}
.measured .sec-head h2 .accent{color:var(--gold-lit)}
.measured__lead{margin:0;padding-left:24px;border-left:1px solid rgba(224,154,71,.4);font-family:var(--font-display);font-size:clamp(17px,1.3vw,19px);line-height:1.65;color:var(--void-text)}
.measured__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(14px,1.4vw,20px)}
.mstat{position:relative;overflow:hidden;padding:clamp(24px,2.2vw,32px);border-radius:20px;background:linear-gradient(165deg,rgba(255,255,255,.06),rgba(255,255,255,.015));
  border:1px solid rgba(255,255,255,.08);box-shadow:inset 0 1px 0 rgba(255,255,255,.06);transition:transform .6s var(--e),border-color .6s var(--e)}
.mstat::after{content:'';position:absolute;left:0;right:0;top:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-lit),transparent);opacity:0;transition:opacity .6s var(--e)}
.mstat:hover{transform:translateY(-6px);border-color:rgba(224,154,71,.35)}
.mstat:hover::after{opacity:.8}
.mstat__ico{display:grid;place-items:center;width:44px;height:44px;border-radius:13px;background:rgba(224,154,71,.12);color:var(--gold-lit);box-shadow:inset 0 0 0 1px rgba(224,154,71,.25)}
.mstat__ico svg{width:21px;height:21px}
.mstat__n{margin:clamp(28px,3vw,44px) 0 0;font-family:var(--font-body);font-weight:300;font-size:clamp(46px,4.4vw,68px);line-height:1;letter-spacing:-.04em;color:#fff;
  font-variant-numeric:tabular-nums}
.mstat__n small{margin-left:6px;font-size:.32em;font-weight:400;letter-spacing:0;color:var(--gold-lit)}
.mstat__t{margin:16px 0 0;font-size:15.5px;font-weight:500;color:#fff}
.mstat__d{margin:6px 0 0;font-size:13.5px;line-height:1.55;color:var(--cx-muted)}
.measured__todo{margin-top:clamp(20px,2.4vh,28px);display:flex;flex-wrap:wrap;align-items:center;gap:12px 18px;padding:18px 22px;border-radius:16px;border:1px dashed rgba(255,255,255,.16)}
.measured .measured__k{margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}
.measured__todo ul{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:8px}
.measured__todo li{display:flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:rgba(255,255,255,.05);font-size:13.5px;color:#fff}
.measured__todo li::before{content:'';width:7px;height:7px;border-radius:50%;border:1.5px solid var(--gold-lit)}
.measured__note{margin:0 0 0 auto;font-size:13.5px;color:var(--cx-muted)}
@media (max-width:1000px){.measured__head{grid-template-columns:1fr;gap:20px}.measured__grid{grid-template-columns:repeat(2,minmax(0,1fr))}.measured__note{margin-left:0}}
@media (max-width:560px){.measured__grid{grid-template-columns:1fr}}

/* rows slide off both screen edges instead of being cut at the content edge */
.pcar__track{--bleed:max(var(--gutter),(100vw - var(--max-w)) / 2 + var(--gutter));margin-left:calc(-1 * var(--bleed));padding-left:var(--bleed);scroll-padding-left:var(--bleed)}
.how__steps.pcar__track{margin-left:calc(-1 * var(--bleed))!important;padding-left:var(--bleed)}

/* ---- Buttons: rounded pills in sentence case, matching the navbar ------------- */
.btn{border-radius:999px;text-transform:none;letter-spacing:0;font-size:15px;font-weight:500;padding-inline:26px}
.btn--sm{font-size:14px}
.btn__arrow{transition:transform var(--t-fast) var(--e)}
.btn:hover .btn__arrow{transform:translateX(3px)}

/* =====================================================================
   Liquid glass. Same palette; surfaces become translucent with a bright
   rim, soft inner light and a highlight that follows the pointer
   (js/glass.js sets --gx/--gy). Blur is kept to floating surfaces.
   ===================================================================== */
:root{
  --lg-rim:inset 0 1px 0 rgba(255,255,255,.95),inset 0 0 0 1px rgba(255,255,255,.5),inset 0 -14px 24px -18px rgba(255,255,255,.7);
  --lg-rim-dark:inset 0 1px 0 rgba(255,255,255,.14),inset 0 0 0 1px rgba(255,255,255,.07),inset 0 -18px 30px -24px rgba(255,255,255,.12);
}

/* light glass */
.lg{--gx:22%;--gy:0%;
  background:
    radial-gradient(120% 70% at var(--gx) var(--gy),rgba(255,255,255,.75),rgba(255,255,255,0) 55%),
    linear-gradient(160deg,rgba(255,255,255,.72),rgba(255,250,243,.5))!important;
  border:1px solid rgba(255,255,255,.7)!important;
  box-shadow:var(--lg-rim),0 18px 40px -24px rgba(80,50,20,.28)!important;
  -webkit-backdrop-filter:blur(16px) saturate(170%);backdrop-filter:blur(16px) saturate(170%)}
/* dark glass: smoked, same warm glow */
.lg-dark{--gx:78%;--gy:0%;
  background:
    radial-gradient(90% 60% at var(--gx) var(--gy),rgba(255,214,170,.13),rgba(255,214,170,0) 60%),
    linear-gradient(165deg,rgba(27,26,29,.95),rgba(9,9,11,.98))!important;
  border:1px solid rgba(255,255,255,.08)!important;
  box-shadow:var(--lg-rim-dark),0 22px 46px -26px rgba(20,12,4,.6)!important}
.lg,.lg-dark{transition:transform .6s var(--e),box-shadow .6s var(--e),background-position .3s}
.pcar__btn.lg{border-radius:50%!important}

/* rows get a warm glow behind them, so the glass has something to refract */
.pcar{isolation:isolate}
.pcar::before{content:'';position:absolute;z-index:-1;left:10%;right:10%;top:20%;bottom:20%;border-radius:50%;
  background:radial-gradient(ellipse at 30% 50%,rgba(224,154,71,.16),transparent 60%),radial-gradient(ellipse at 75% 50%,rgba(200,110,40,.10),transparent 60%);
  filter:blur(30px);pointer-events:none}

/* floating chrome: navbar, dropdowns, buttons, cursor, cookie panel */
.nav::before{background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(255,255,255,.56));border-color:rgba(255,255,255,.75);
  -webkit-backdrop-filter:blur(22px) saturate(190%);backdrop-filter:blur(22px) saturate(190%);
  box-shadow:var(--lg-rim),0 14px 36px -14px rgba(80,50,20,.22)}
.nav.is-stuck::before{background:linear-gradient(180deg,rgba(255,255,255,.82),rgba(255,255,255,.66))}
.nav__drop{background:linear-gradient(170deg,rgba(255,255,255,.86),rgba(255,251,245,.74))!important;border-color:rgba(255,255,255,.8)!important;
  -webkit-backdrop-filter:blur(24px) saturate(180%);backdrop-filter:blur(24px) saturate(180%);box-shadow:var(--lg-rim),0 24px 50px -20px rgba(60,35,10,.3)!important}
.nav__drop-link:hover{background:rgba(255,255,255,.7)}
.nav__logo{box-shadow:var(--lg-rim),0 4px 10px -4px rgba(80,30,20,.3)}
.btn--ghost{background:rgba(255,255,255,.45);border-color:rgba(255,255,255,.75);-webkit-backdrop-filter:blur(12px) saturate(160%);backdrop-filter:blur(12px) saturate(160%);
  box-shadow:var(--lg-rim),0 8px 20px -14px rgba(80,50,20,.3)}
.btn--ghost:hover{background:rgba(255,255,255,.7)}
.btn--primary,.btn--gold,.nav__actions .btn--gold{box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -8px 16px -10px rgba(255,255,255,.18),0 10px 22px -12px rgba(20,16,10,.5)}
.cta .btn--ghost,.section--void .btn--ghost{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.18);box-shadow:var(--lg-rim-dark)}
.pcar__cursor{background:rgba(20,20,22,.55);-webkit-backdrop-filter:blur(10px) saturate(160%);backdrop-filter:blur(10px) saturate(160%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.25),inset 0 0 0 1px rgba(255,255,255,.12),0 10px 24px -10px rgba(0,0,0,.45)}
.cta > .wrap,.glance{box-shadow:var(--lg-rim-dark),var(--cx-shadow)!important}

/* the light glass cards keep their text colours */
.lg .row__title,.lg .cause__title,.lg .pc__t,.lg .how__t{color:var(--ink)}
@media (prefers-reduced-transparency:reduce){
  .lg{background:#fff!important;-webkit-backdrop-filter:none;backdrop-filter:none}
  .nav::before,.nav__drop{background:#fff!important;-webkit-backdrop-filter:none;backdrop-filter:none}
}

/* =====================================================================
   Who it's for: page-head panels
   ===================================================================== */
/* SaaS: security review answered */
.qa{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:8px}
.qa li{padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--cx-edge);animation:rag-in 10s var(--e) infinite}
.qa li:nth-child(2){animation-delay:.25s}.qa li:nth-child(3){animation-delay:.5s}.qa li:nth-child(4){animation-delay:.75s}
.qa__q{margin:0;font-family:var(--font-display);font-size:16px;line-height:1.35;color:#fff}
.qa__a{margin:6px 0 0;display:flex;align-items:center;gap:8px;font-size:12.5px;color:var(--gold-lit)}
.qa__a span{display:grid;place-items:center;width:17px;height:17px;border-radius:50%;background:rgba(74,222,128,.15);color:#4ade80;font-size:9.5px}

/* Agencies: one hop through the gateway */
.hop{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:22px}
.hop li{position:relative;padding:13px 15px;border-radius:12px;background:rgba(255,255,255,.04);border:1px solid var(--cx-edge)}
.hop li + li::before{content:'';position:absolute;left:50%;top:-22px;width:1px;height:22px;background:linear-gradient(rgba(224,154,71,.2),rgba(224,154,71,.8))}
.hop li + li::after{content:'';position:absolute;left:calc(50% - 3px);top:-5px;width:6px;height:6px;border-radius:50%;background:var(--gold-lit);box-shadow:0 0 8px var(--gold-lit)}
.hop b{display:block;font-family:var(--font-display);font-size:18px;font-weight:400;color:#fff}
.hop span{display:block;margin-top:3px;font-size:12.5px;color:var(--cx-muted)}
.hop em{position:absolute;right:12px;top:13px;padding:3px 9px;border-radius:999px;font-style:normal;font-family:var(--font-mono);font-size:9.5px;letter-spacing:.06em;text-transform:uppercase;background:rgba(224,154,71,.14);color:var(--gold-lit)}
.hop__core{border-color:rgba(224,154,71,.4)!important;background:linear-gradient(160deg,rgba(224,154,71,.12),rgba(224,154,71,.03))!important}
.hop__out{position:relative;margin:18px 0 0;padding-top:16px;border-top:1px solid var(--cx-edge);font-size:14px;color:#fff}
.hop__out span{display:block;margin-bottom:3px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}

/* Enterprise IT: inventory and kill switch */
.inv{position:relative;list-style:none;margin:0;padding:0;display:grid;gap:6px}
.inv li{display:grid;grid-template-columns:1fr auto auto;gap:12px;align-items:center;padding:11px 14px;border-radius:11px;background:rgba(255,255,255,.04);border:1px solid var(--cx-edge)}
.inv b{font-family:var(--font-display);font-size:17px;font-weight:400;color:#fff}
.inv em{font-style:normal;font-family:var(--font-mono);font-size:10.5px;color:var(--cx-muted)}
.inv span{display:flex;align-items:center;gap:6px;font-family:var(--font-mono);font-size:10px;letter-spacing:.06em;text-transform:uppercase}
.inv span::before{content:'';width:6px;height:6px;border-radius:50%;background:#4ade80}
.inv__kill{position:relative;margin-top:16px;display:flex;align-items:center;gap:14px;padding:14px 16px;border-radius:12px;border:1px solid rgba(224,154,71,.35);background:rgba(224,154,71,.07)}
.inv__sw{flex:none;position:relative;width:38px;height:22px;border-radius:999px;background:#2a2a2e;box-shadow:inset 0 0 0 1px var(--cx-edge)}
.inv__sw::after{content:'';position:absolute;left:3px;top:3px;width:16px;height:16px;border-radius:50%;background:var(--gold-lit);box-shadow:0 0 10px rgba(224,154,71,.7)}
.inv__kill p{margin:0;font-size:12.5px;color:var(--cx-muted)}
.inv__kill b{display:block;font-family:var(--font-display);font-size:17px;font-weight:400;color:#fff}
@media (prefers-reduced-motion:reduce){.qa li{animation:none}}

/* page heads with a panel and a note: keep the note beside the copy, not under the panel */
.phero .note{max-width:min(760px,54%)}
@media (max-width:999px){.phero .note{max-width:none}}

/* =====================================================================
   Research page: paper card, method, contents, findings, references
   ===================================================================== */
.rmeta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.rmeta__t{margin-top:16px;font-size:clamp(28px,2.6vw,40px);line-height:1.12;letter-spacing:-.02em}
.rsteps{list-style:none;margin:28px 0 0;padding:0;display:grid;gap:12px}
.rsteps li{display:flex;gap:16px;align-items:flex-start;padding:16px 18px;border-radius:14px;background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-2)}
.rsteps b{flex:none;display:grid;place-items:center;width:34px;height:34px;border-radius:50%;background:linear-gradient(160deg,var(--void-2),var(--void));font-family:var(--font-mono);font-size:10.5px;font-weight:400;color:var(--gold-lit)}
.rsteps div{font-family:var(--font-display);font-size:16px;line-height:1.5;color:#3f3a34}
.rsteps strong{display:block;font-family:var(--font-body);font-size:14px;font-weight:600;color:var(--ink)}
.rtoc{padding:clamp(24px,2.4vw,34px);border-radius:20px;background:linear-gradient(165deg,var(--void-2),var(--void));color:var(--void-text);box-shadow:var(--cx-shadow);position:sticky;top:110px}
.rtoc__k{margin:0 0 14px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}
.rtoc ol{list-style:none;margin:0;padding:0;display:grid}
.rtoc a{display:flex;gap:14px;align-items:baseline;padding:13px 0;border-top:1px solid var(--cx-edge);font-family:var(--font-display);font-size:17px;line-height:1.35;color:#fff;text-decoration:none;transition:color var(--t-fast) var(--e),padding var(--t-fast) var(--e)}
.rtoc a:hover{color:var(--gold-lit);padding-left:6px}
.rtoc b{flex:none;font-family:var(--font-mono);font-size:11px;font-weight:400;color:var(--gold-lit)}

/* findings: title column left, evidence right */
.rfinds{display:grid;gap:clamp(20px,2.4vw,32px)}
.rfind{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr);gap:clamp(24px,4vw,64px);padding:clamp(28px,3vw,48px);border-radius:22px;
  background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-2);scroll-margin-top:110px}
.rfind__head{position:sticky;top:120px;align-self:start}
.rfind__n{margin:0;font-family:var(--font-mono);font-size:11px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.rfind__t{margin:14px 0 0;font-size:clamp(26px,2.3vw,34px);line-height:1.15;letter-spacing:-.015em;text-wrap:balance}
.rfind__k{margin:0 0 10px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--muted)}
.rfind__p{margin:0;font-family:var(--font-display);font-size:clamp(17px,1.25vw,18.5px);line-height:1.75;color:#3a3530}
.rfind__p a{color:var(--gold-deep);border-bottom:1px solid var(--line-gold);text-decoration:none}
.rfind__so{margin-top:24px;padding:20px 22px;border-radius:14px;background:linear-gradient(160deg,var(--void-2),var(--void));color:#fff}
.rfind__so .rfind__k{color:var(--gold-lit)}
.rfind__so p:last-child{margin:0;font-family:var(--font-display);font-size:17px;line-height:1.55}
.rfind__src{margin:18px 0 0;display:flex;flex-wrap:wrap;gap:8px}
.rfind__src a{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;border:1px solid var(--line-gold);background:var(--gold-wash);font-size:13px;font-weight:500;color:var(--gold-deep);text-decoration:none}
.rfind__src a span{font-family:var(--font-mono);font-size:10.5px;font-weight:400;color:var(--muted)}
.rfind__src a:hover{background:var(--white)}

/* finding 04: the confidence bounds */
.rstat{margin:22px 0 0;padding:18px 20px;border-radius:14px;border:1px solid var(--line);background:var(--cream)}
.rstat__row{display:grid;grid-template-columns:64px 1fr auto;gap:14px;align-items:center;padding:10px 0}
.rstat__row + .rstat__row{border-top:1px solid var(--line)}
.rstat__n{margin:0;font-family:var(--font-display);font-size:34px;line-height:1;color:var(--ink)}
.rstat__l{margin:0;font-size:14px;line-height:1.45;color:var(--ink-2)}
.rstat__v{margin:0;font-size:13px;color:var(--muted);white-space:nowrap}
.rstat__v b{font-family:var(--font-display);font-size:22px;font-weight:400;color:var(--gold-deep)}
.rstat figcaption{margin-top:8px;font-size:12.5px;color:var(--muted)}

/* references */
.rrefs{margin:28px 0 0;padding:0;list-style:none;counter-reset:ref;display:grid;gap:8px}
.rrefs li{counter-increment:ref}
.rrefs a{display:flex;align-items:center;gap:16px;padding:14px 18px;border-radius:12px;background:var(--white);border:1px solid var(--line);text-decoration:none;transition:border-color var(--t-fast) var(--e)}
.rrefs a::before{content:'[' counter(ref) ']';flex:none;font-family:var(--font-mono);font-size:12px;color:var(--gold-deep)}
.rrefs a:hover{border-color:var(--line-gold)}
.rrefs span{flex:1;font-family:var(--font-display);font-size:17px;color:var(--ink)}
.rrefs code{font-family:var(--font-mono);font-size:11.5px;color:var(--muted)}
@media (max-width:1000px){.rmeta,.rfind{grid-template-columns:1fr}.rtoc,.rfind__head{position:static}}
@media (max-width:560px){.rstat__row{grid-template-columns:48px 1fr}.rstat__v{grid-column:2}}

/* =====================================================================
   Blog: index (featured article, research and LinkedIn cards) and posts
   ===================================================================== */
.blog-li{position:relative;margin-top:20px;display:flex;align-items:center;gap:10px;padding:12px 16px;border-radius:12px;background:rgba(255,255,255,.06);
  border:1px solid rgba(255,255,255,.12);color:#fff;font-size:14px;font-weight:500;text-decoration:none;transition:background var(--t-fast) var(--e)}
.blog-li span{margin-left:auto;color:var(--gold-lit)}
.blog-li:hover{background:rgba(255,255,255,.12)}

.feat{margin-top:24px;display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);border-radius:24px;overflow:hidden;text-decoration:none;
  background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-3);transition:transform .6s var(--e),box-shadow .6s var(--e)}
.feat:hover{transform:translateY(-4px)}
.feat__cover{position:relative;min-height:340px;background:linear-gradient(160deg,var(--void-2),var(--void))}
.feat__cover svg{position:absolute;inset:0;width:100%;height:100%;transition:transform 1.4s var(--e)}
.feat:hover .feat__cover svg{transform:scale(1.04)}
.feat__body{display:flex;flex-direction:column;padding:clamp(28px,3vw,48px)}
.feat__t{margin:16px 0 0;font-size:clamp(28px,2.6vw,40px);line-height:1.12;letter-spacing:-.02em;color:var(--ink);text-wrap:balance}
.feat__d{margin:16px 0 0;font-family:var(--font-display);font-size:18px;line-height:1.6;color:#3f3a34}
.feat .postcard__go{margin-top:auto;padding-top:24px}

.blog-pair{display:grid;grid-template-columns:minmax(0,1.3fr) minmax(0,1fr);gap:20px}
.blog-res,.blog-follow{position:relative;overflow:hidden;display:flex;flex-direction:column;padding:clamp(28px,3vw,44px);border-radius:22px;text-decoration:none;transition:transform .6s var(--e)}
.blog-res:hover,.blog-follow:hover{transform:translateY(-4px)}
.blog-res{background:linear-gradient(165deg,var(--void-2),var(--void));color:var(--void-text);box-shadow:var(--cx-shadow)}
.blog-res::before{content:'';position:absolute;right:-25%;top:-40%;width:70%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,rgba(224,154,71,.25),transparent 65%)}
.blog-res > *{position:relative}
.blog-follow{background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-2)}
.blog-res__k{margin:0;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}
.blog-follow .blog-res__k{color:var(--gold-deep)}
.blog-res__t{margin:14px 0 0;font-size:clamp(24px,2vw,30px);line-height:1.18;color:#fff;text-wrap:balance}
.blog-follow .blog-res__t{color:var(--ink)}
.blog-res__d{margin:12px 0 0;font-family:var(--font-display);font-size:17px;line-height:1.6}
.blog-res__go{margin-top:auto;padding-top:24px;font-size:14px;font-weight:500;color:var(--gold-lit)}
.blog-follow .blog-res__go{color:var(--gold-deep)}
.blog-follow__ico{display:grid;place-items:center;width:44px;height:44px;margin-bottom:18px;border-radius:12px;background:#0a66c2;color:#fff}
.blog-follow__ico svg{width:20px;height:20px}

/* post page */
.post-x__hero .wrap{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(32px,5vw,72px);align-items:center;min-height:0!important}
.post-x__head{order:-1}
.post-x__cover{position:relative;aspect-ratio:4/3;border-radius:22px;overflow:hidden;background:linear-gradient(160deg,var(--void-2),var(--void));box-shadow:var(--cx-shadow)}
.post-x__cover svg{position:absolute;inset:0;width:100%;height:100%}
.post-x__meta{margin:0;display:flex;flex-wrap:wrap;gap:14px;align-items:center;font-family:var(--font-mono);font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.post-x__title{margin:18px 0 0;font-size:clamp(36px,4vw,58px);line-height:1.06;letter-spacing:-.025em;text-wrap:balance}
.post-x__lead{margin:22px 0 0;font-family:var(--font-display);font-size:clamp(18px,1.4vw,21px);line-height:1.6;color:#3a3530;max-width:56ch}
.post-x__by{margin-top:28px;display:flex;align-items:center;gap:14px}
.post-x__by p{margin:0;font-size:13.5px;line-height:1.4;color:var(--muted)}
.post-x__by b{display:block;font-size:15px;font-weight:600;color:var(--ink)}
.post-x__av{flex:none;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(160deg,var(--void-2),var(--void));color:var(--gold-lit);font-family:var(--font-mono);font-size:12px}
.post-x__av--lg{width:56px;height:56px;font-size:14px}
.post-x__main{padding-top:clamp(24px,3vh,40px)}
.post-x__grid{display:grid;grid-template-columns:260px minmax(0,1fr);gap:clamp(32px,5vw,80px);align-items:start}
.post-x__side{position:sticky;top:110px;display:grid;gap:18px}
.post-x__k{margin:0 0 12px;font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-deep)}
.post-x__toc ol{list-style:none;margin:0;padding:0;border-left:1px solid var(--line)}
.post-x__toc a{display:block;padding:7px 0 7px 16px;margin-left:-1px;border-left:2px solid transparent;font-size:13.5px;line-height:1.45;color:var(--ink-2);text-decoration:none;transition:color var(--t-fast) var(--e),border-color var(--t-fast) var(--e)}
.post-x__toc a:hover{color:var(--ink);border-left-color:var(--gold)}
.post-x__share{display:grid;gap:8px;padding-top:18px;border-top:1px solid var(--line)}
.post-x__btn{display:flex;align-items:center;gap:9px;padding:10px 14px;border-radius:12px;border:1px solid var(--line);background:var(--white);font-size:13.5px;font-weight:500;color:var(--ink);text-decoration:none;transition:border-color var(--t-fast) var(--e)}
.post-x__btn:hover{border-color:var(--line-gold)}
.post-x__btn--li{background:#0a66c2;border-color:#0a66c2;color:#fff}
.post-x__btn--li:hover{background:#0957a5;border-color:#0957a5}
.post-x__body{max-width:720px}
.post-x__prose{max-width:none}
.post-x__prose p{font-size:clamp(17.5px,1.25vw,19px);line-height:1.8;margin-bottom:22px}
.post-x__prose h2{margin:48px 0 16px;font-size:clamp(25px,2vw,31px);line-height:1.2;letter-spacing:-.015em;scroll-margin-top:110px}
.post-x__cite{margin-top:40px;padding:20px 22px;border-radius:14px;background:var(--cream-2);border:1px solid var(--line)}
.post-x__cite p:last-child{margin:0;font-family:var(--font-mono);font-size:12.5px;line-height:1.7;color:var(--ink-2);word-break:break-word}
.post-x__author{margin-top:20px;display:flex;gap:18px;align-items:flex-start;padding:24px;border-radius:16px;background:var(--white);border:1px solid var(--line);box-shadow:var(--lift-2)}
.post-x__author p{margin:0;font-family:var(--font-display);font-size:16px;line-height:1.6;color:#3f3a34}
.post-x__links{margin-top:12px!important;display:flex;flex-wrap:wrap;gap:16px}
.post-x__links a{font-family:var(--font-body);font-size:13.5px;font-weight:500;color:var(--gold-deep);text-decoration:none}
@media (max-width:1000px){.post-x__hero .wrap,.post-x__grid,.feat,.blog-pair{grid-template-columns:1fr}.post-x__side{position:static}.post-x__head{order:0}.post-x__cover{aspect-ratio:16/8}.feat__cover{min-height:240px}}
.blog-li svg,.post-x__btn svg{flex:none;width:17px;height:17px}
.phero:has(.blog-li) > .wrap{min-height:clamp(560px,42vw,640px)}
/* a single article card sits side by side, not as a full-width banner */
.postlist:not(:has(> .postcard:nth-child(2))) > .postcard{flex-direction:row}
.postlist:not(:has(> .postcard:nth-child(2))) .postcard__cover{flex:0 0 42%;aspect-ratio:auto;min-height:260px}
@media (max-width:800px){.postlist:not(:has(> .postcard:nth-child(2))) > .postcard{flex-direction:column}.postlist:not(:has(> .postcard:nth-child(2))) .postcard__cover{flex:none;aspect-ratio:16/8;min-height:0}}
.post-x__grid > *{min-width:0}
@media (max-width:1000px){.post-x__grid{grid-template-columns:minmax(0,1fr)}}
/* blog post: lists and tables in the editorial face, matching the paragraphs */
.post-x__prose li{font-family:var(--font-display);font-size:clamp(17px,1.2vw,18.5px);line-height:1.7;color:#3a3530}
.post-x__prose h3{font-size:clamp(20px,1.6vw,23px);scroll-margin-top:110px}
.post-x__prose .table-wrap{border-radius:14px;border:1px solid var(--line);background:var(--white);box-shadow:var(--lift-2)}
.post-x__prose .table thead th{background:var(--void);color:var(--gold-lit);border:0}
.post-x__prose .table td{font-size:14.5px}
.post-x__prose .table td:first-child{font-family:var(--font-display);font-size:16px;color:var(--ink)}
.post-x__prose .codeblock{margin:28px 0}
.post-x__prose .post__sources li{font-family:var(--font-body)}
@media (max-width:700px){.post-x__prose .table-wrap{padding:0 16px}}

/* ---- Homepage research: intro and figures left, findings index right ------------ */
.rx__grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(40px,6vw,96px);align-items:start}
.rx__intro{position:sticky;top:120px}
.rx__intro .sec-head{margin-bottom:0}
.rx__intro .sec-head > *{max-width:none!important}
.rx__facts{margin:32px 0 30px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.rx__facts div{padding:18px 16px 18px 0}
.rx__facts div + div{padding-left:18px;border-left:1px solid var(--line)}
.rx__facts dt{font-family:var(--font-display);font-size:clamp(34px,3vw,46px);line-height:1;color:var(--ink)}
.rx__facts dd{margin:8px 0 0;font-size:13px;line-height:1.4;color:var(--muted)}
.rx__list{list-style:none;margin:0;padding:0;border-radius:22px;overflow:hidden;background:linear-gradient(165deg,var(--void-2),var(--void));box-shadow:var(--cx-shadow)}
.rx__list li + li{border-top:1px solid var(--cx-edge)}
.rx__row{position:relative;display:grid;grid-template-columns:52px minmax(0,1fr) 28px;gap:18px;align-items:start;padding:clamp(22px,2.2vw,30px) clamp(22px,2.4vw,34px);
  text-decoration:none;transition:background .4s var(--e)}
.rx__row::before{content:'';position:absolute;left:0;top:18%;bottom:18%;width:2px;background:var(--gold-lit);transform:scaleY(0);transition:transform .4s var(--e)}
.rx__row:hover{background:rgba(255,255,255,.035)}
.rx__row:hover::before{transform:scaleY(1)}
.rx__n{font-family:var(--font-display);font-size:30px;line-height:1;color:var(--gold-lit)}
.rx__txt{display:grid;gap:6px}
.rx__t{font-family:var(--font-display);font-size:clamp(20px,1.6vw,24px);line-height:1.25;color:#fff}
.rx__b{font-family:var(--font-display);font-size:15.5px;line-height:1.6;color:var(--void-text)}
.rx__go{align-self:center;color:var(--cx-muted);font-size:18px;transition:transform .4s var(--e),color .4s var(--e)}
.rx__row:hover .rx__go{transform:translateX(4px);color:var(--gold-lit)}
@media (max-width:1000px){.rx__grid{grid-template-columns:1fr}.rx__intro{position:static}}
@media (max-width:560px){.rx__row{grid-template-columns:40px minmax(0,1fr)}.rx__go{display:none}.rx__n{font-size:24px}}

/* =====================================================================
   StartiQOS Assistant (js/assistant.js): 3D robot launcher, chat panel
   ===================================================================== */
.as{position:fixed;right:clamp(16px,2vw,28px);bottom:clamp(16px,2vw,28px);z-index:880;font-family:var(--font-body)}
.as__fab{position:relative;display:grid;place-items:center;width:64px;height:64px;padding:0;border:0;border-radius:22px;cursor:pointer;
  background:radial-gradient(120% 80% at 30% 15%,#3b3a40 0%,#141417 60%,#0a0a0c 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),inset 0 -6px 12px rgba(0,0,0,.5),0 0 0 1px rgba(224,154,71,.35),0 14px 30px -10px rgba(20,12,4,.65),0 0 26px -6px rgba(224,154,71,.55);
  transform:perspective(400px) rotateX(8deg);transition:transform .5s var(--e),box-shadow .5s var(--e);animation:as-float 4.5s ease-in-out infinite}
.as__fab:hover{transform:perspective(400px) rotateX(0) translateY(-3px) scale(1.04)}
.as__fab:focus-visible{outline:2px solid var(--gold);outline-offset:4px}
.as__bot{display:block;width:44px;height:44px;filter:drop-shadow(0 3px 4px rgba(0,0,0,.55))}
.as__bot svg,.as__av svg,.as__mini svg{width:100%;height:100%;display:block}
.as__ping{position:absolute;right:6px;top:6px;width:10px;height:10px;border-radius:50%;background:#4ade80;box-shadow:0 0 0 2px #141417;animation:glance-live 2.4s ease-out infinite}
.as.is-open .as__fab{animation:none;transform:perspective(400px) rotateX(0) scale(.92)}
.as-eyes{transform-origin:32px 31.5px;animation:as-blink 5s infinite}
.as-ant{animation:as-glow 2.4s ease-in-out infinite}
@keyframes as-float{0%,100%{translate:0 0}50%{translate:0 -5px}}
@keyframes as-blink{0%,94%,100%{transform:scaleY(1)}96%{transform:scaleY(.1)}}
@keyframes as-glow{0%,100%{opacity:.7}50%{opacity:1}}

.as__hint{position:absolute;right:76px;bottom:14px;margin:0;padding:10px 14px;border-radius:14px 14px 4px 14px;white-space:nowrap;font-size:13.5px;font-weight:500;color:var(--ink);
  background:rgba(255,255,255,.92);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--lg-rim,0 0 0 1px var(--line)),0 10px 24px -12px rgba(60,35,10,.35);
  opacity:0;transform:translateX(8px);pointer-events:none;transition:opacity .4s var(--e),transform .4s var(--e)}
.as.show-hint:not(.is-open) .as__hint{opacity:1;transform:none}

.as__panel{position:absolute;right:0;bottom:80px;width:min(400px,calc(100vw - 32px));height:min(620px,calc(100vh - 130px));display:flex;flex-direction:column;
  border-radius:24px;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(251,248,243,.92));-webkit-backdrop-filter:blur(24px) saturate(170%);backdrop-filter:blur(24px) saturate(170%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 0 0 1px rgba(20,20,20,.07),0 30px 70px -20px rgba(40,24,8,.45);
  opacity:0;transform:translateY(14px) scale(.97);transform-origin:bottom right;transition:opacity .3s var(--e),transform .35s var(--e)}
.as.is-open .as__panel{opacity:1;transform:none}
.as__head{position:relative;display:flex;align-items:center;gap:12px;padding:16px 16px 16px 18px;color:#fff;
  background:linear-gradient(160deg,#1d1c20,#0b0b0d);box-shadow:inset 0 -1px 0 rgba(255,255,255,.06)}
.as__head::after{content:'';position:absolute;left:12%;right:12%;bottom:0;height:1px;background:linear-gradient(90deg,transparent,var(--gold-lit),transparent);opacity:.55}
.as__av{flex:none;width:42px;height:42px;padding:4px;border-radius:13px;background:rgba(255,255,255,.06);box-shadow:inset 0 0 0 1px rgba(224,154,71,.3)}
.as__name{margin:0;font-family:var(--font-display);font-size:18px;line-height:1.2}
.as__sub{margin:2px 0 0;display:flex;align-items:center;gap:7px;font-size:12px;color:var(--cx-muted)}
.as__sub i{width:6px;height:6px;border-radius:50%;background:#4ade80}
.as__close{margin-left:auto;display:grid;place-items:center;width:34px;height:34px;border:0;border-radius:10px;background:rgba(255,255,255,.06);color:#fff;cursor:pointer}
.as__close svg{width:16px;height:16px}
.as__close:hover{background:rgba(255,255,255,.12)}

.as__log{flex:1;overflow-y:auto;padding:18px 16px 8px;display:flex;flex-direction:column;gap:12px;scrollbar-width:thin}
.as__msg{display:flex;gap:8px;align-items:flex-end;animation:as-in .35s var(--e) both}
.as__msg--user{justify-content:flex-end}
.as__mini{flex:none;width:26px;height:26px;padding:2px;border-radius:9px;background:linear-gradient(160deg,#2a2a2f,#0d0d10)}
.as__bubble{max-width:84%;padding:11px 14px;border-radius:16px 16px 16px 5px;font-size:14px;line-height:1.55;color:var(--ink-2);background:#fff;box-shadow:0 0 0 1px rgba(20,20,20,.06),0 4px 12px -8px rgba(40,24,8,.25)}
.as__bubble b{color:var(--ink);font-weight:600}
.as__msg--user .as__bubble{border-radius:16px 16px 5px 16px;color:#fff;background:linear-gradient(160deg,#26252a,#0f0f12)}
.as__links{margin:10px 0 0;display:flex;flex-wrap:wrap;gap:6px}
.as__links a{display:inline-flex;gap:6px;padding:5px 10px;border-radius:999px;background:var(--gold-wash);border:1px solid var(--line-gold);font-size:12.5px;font-weight:500;color:var(--gold-deep);text-decoration:none}
.as__links a:hover{background:#fff}
.as__cards{margin-top:10px;display:grid;gap:6px}
.as__card{display:flex;align-items:center;gap:10px;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:var(--cream);text-decoration:none;color:var(--ink);transition:border-color .3s var(--e),transform .3s var(--e)}
.as__card:hover{border-color:var(--line-gold);transform:translateX(2px)}
.as__card svg{flex:none;width:18px;height:18px;color:var(--gold-deep)}
.as__card span{display:grid;font-size:12.5px;line-height:1.35;color:var(--muted)}
.as__card b{font-size:13.5px;color:var(--ink)}
.as__card--wa{background:#e9f8ef;border-color:#bfe8cf}
.as__card--wa svg{color:#1faa59}
.as__note{margin:8px 0 0;font-size:12px;color:var(--muted)}
.as__sum{list-style:none;margin:8px 0;padding:10px 12px;border-radius:10px;background:var(--cream);display:grid;gap:4px}
.as__sum li{display:grid;grid-template-columns:72px 1fr;font-size:13px}
.as__sum b{font-weight:500;color:var(--muted)}
.as__typing .as__bubble{display:flex;gap:4px;padding:14px 16px}
.as__typing i{width:6px;height:6px;border-radius:50%;background:var(--muted-2);animation:as-dot 1s infinite}
.as__typing i:nth-child(2){animation-delay:.15s}.as__typing i:nth-child(3){animation-delay:.3s}
@keyframes as-dot{0%,60%,100%{opacity:.3;transform:none}30%{opacity:1;transform:translateY(-3px)}}
@keyframes as-in{from{opacity:0;transform:translateY(6px)}}

.as__chips{display:flex;flex-wrap:wrap;gap:6px;padding:4px 16px 10px}
.as__chips:empty{display:none}
.as__chip{padding:7px 12px;border-radius:999px;border:1px solid var(--line-strong);background:rgba(255,255,255,.8);font-size:12.5px;font-weight:500;color:var(--ink);cursor:pointer;transition:background .25s,border-color .25s}
.as__chip:hover{background:#fff;border-color:var(--gold)}
.as__form{display:flex;gap:8px;margin:0 12px;padding:6px;border-radius:16px;background:#fff;box-shadow:0 0 0 1px var(--line),0 6px 16px -10px rgba(40,24,8,.3)}
.as__input{flex:1;min-width:0;border:0;outline:0;background:none;padding:8px 10px;font:inherit;font-size:14px;color:var(--ink)}
.as__send{display:grid;place-items:center;width:38px;height:38px;border:0;border-radius:12px;background:var(--ink);color:#fff;cursor:pointer;transition:background .25s}
.as__send:hover{background:var(--gold)}
.as__send svg{width:17px;height:17px}
.as__foot{margin:8px 16px 12px;font-size:11px;line-height:1.4;text-align:center;color:var(--muted-2)}

@media (max-width:520px){
  .as__panel{position:fixed;right:8px;left:8px;bottom:84px;width:auto;height:calc(100vh - 110px);height:calc(100dvh - 110px)}
  .as__hint{display:none}
}
@media (prefers-reduced-motion:reduce){.as__fab,.as-eyes,.as-ant,.as__ping{animation:none}.as__msg{animation:none}}

/* =====================================================================
   Legal pages: one reading face, full-width cards, real tables
   ===================================================================== */
.lmain{display:grid;gap:18px}
.lcard,.lcard:has(.legal__table){display:block!important;position:relative;padding:clamp(28px,3vw,44px) clamp(26px,3.2vw,48px);border-radius:20px}
.lcard__num{display:none!important}
.lcard__icon{position:absolute;top:clamp(26px,2.8vw,40px);right:clamp(24px,3vw,44px);display:block!important}
.lcard__tile{display:grid;place-items:center;width:46px;height:46px;border-radius:14px;color:var(--gold-deep);
  background:linear-gradient(160deg,#fff8ee,#f3e6d3);box-shadow:inset 0 0 0 1px rgba(200,125,46,.2)}
.lcard__tile svg{width:22px;height:22px}
.lcard__icon::before,.lcard__icon::after,.lcard__tile::before,.lcard__tile::after{display:none!important}
.lcard__h{margin:0 0 18px;padding-right:64px;font-size:clamp(23px,2vw,29px);line-height:1.2;letter-spacing:-.01em}
.lcard .prose{max-width:none}
.lcard .prose p,.lcard .prose li{font-family:var(--font-body);font-size:15.5px;line-height:1.75;color:var(--ink-2);letter-spacing:0}
.lcard .prose p{margin:0 0 14px}
.lcard .prose p:last-child{margin-bottom:0}
.lcard .prose strong{font-family:var(--font-body);font-weight:600;color:var(--ink)}
.lcard .prose ul{list-style:none;padding:0;margin:4px 0 18px;display:grid;gap:10px}
.lcard .prose li{position:relative;padding-left:22px}
.lcard .prose li::before{content:'';position:absolute;left:3px;top:.68em;width:6px;height:6px;border-radius:50%;background:var(--gold)}
.lcard .prose a{color:var(--gold-deep);text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:3px}
.lcard .prose code{font-family:var(--font-mono);font-size:12.5px;padding:2px 6px;border-radius:6px;background:var(--cream-2);color:var(--ink)}

/* tables */
.lcard .legal__table{margin:10px 0 20px;overflow-x:auto;border:1px solid var(--line);border-radius:14px;background:var(--white)}
.lcard .legal__table table{width:100%;min-width:0;border-collapse:collapse;font-size:14px;line-height:1.55}
.lcard .legal__table th{padding:13px 16px;text-align:left;vertical-align:bottom;background:linear-gradient(160deg,var(--void-2),var(--void));border:0;
  font-family:var(--font-mono);font-size:10px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-lit)}
.lcard .legal__table td{padding:14px 16px;vertical-align:top;border:0;border-top:1px solid var(--line);color:var(--ink-2);font-family:var(--font-body)}
.lcard .legal__table tbody tr:nth-child(even) td{background:rgba(245,241,234,.55)}
.lcard .legal__table td:first-child{font-weight:600;color:var(--ink)}
.lcard .legal__table td code{white-space:normal;word-break:break-all}
@media (min-width:1001px){.lcard .legal__table table:has(th:nth-child(5)){font-size:13.5px}}
@media (max-width:860px){
  .lcard .legal__table{border:0;background:none;overflow:visible}
  .lcard .legal__table thead{display:none}
  .lcard .legal__table tr{display:block;margin-bottom:12px;padding:14px 16px;border:1px solid var(--line);border-radius:14px;background:var(--white)}
  .lcard .legal__table tbody tr:nth-child(even) td{background:none}
  .lcard .legal__table td{display:block;padding:6px 0;border:0}
  .lcard .legal__table td::before{content:attr(data-label);display:block;margin-bottom:2px;font-family:var(--font-mono);font-size:9.5px;font-weight:400;letter-spacing:.1em;text-transform:uppercase;color:var(--gold-deep)}
}
@media (max-width:600px){.lcard__icon{display:none!important}.lcard__h{padding-right:0}}

/* "at a glance" summary */
.lglance{border-radius:20px}
.lglance__text li,.lglance__text p{font-family:var(--font-body)}
.lcard > .lcard__icon{position:absolute!important;left:auto!important;bottom:auto!important;top:clamp(26px,2.8vw,40px)!important;right:clamp(24px,3vw,44px)!important;width:auto!important;height:auto!important;transform:none!important;margin:0!important}
.lcard .legal__table td code{white-space:nowrap;word-break:normal}
.lcard .legal__table td:first-child:has(code){width:1%}

/* =====================================================================
   Pass 4: review fixes
   ===================================================================== */

/* Playfair is a display face: keep it for headlines, standfirsts and long-form
   prose, and set card, list and panel copy in Inter, where it stays crisp at 15-16px
   and matches the module cards and hero beside it. */
.row__body,.cause__body,.cause__answer,.pmod__one,.how__b,.beat__b,.fit li,.acc__body,.reach__b,.why__close,
.note,.postcard__desc,.rx__b,.academy__facts li,.rsteps div,.rag__a p,.rfind__so p:last-child,.blog-res__d,.prose td{
  font-family:var(--font-body);letter-spacing:-.003em;font-feature-settings:normal}
.row__body,.cause__body,.pmod__one,.how__b,.beat__b,.rx__b{font-size:15.5px;line-height:1.68}
.cause__answer,.fit li,.acc__body,.reach__b,.academy__facts li,.rsteps div,.rag__a p{font-size:15px;line-height:1.66}
.note{font-size:15.5px;line-height:1.7}
.note strong{font-family:var(--font-body);font-weight:600}
.postcard__desc{font-size:14px;line-height:1.65}
.rfind__so p:last-child,.blog-res__d{font-size:15.5px;line-height:1.65}

/* A code panel's caption inside an article is a mono label, not a prose paragraph */
.prose .codeblock__label{margin:0;padding:14px clamp(20px,2.2vw,28px);font-family:var(--font-mono);font-size:10px;line-height:1.4;
  letter-spacing:var(--ls-mono);text-transform:uppercase;color:var(--gold-lit)}

/* Headlines never leave one word on the last line */
h1,h2,h3{text-wrap:balance}

/* Navbar over dark sections: dark glass, light ink, gold primary.
   navigation.js sets .is-dark when the bar sits over a dark background. */
.nav::before{transition:background-color var(--t-base) var(--e),box-shadow var(--t-base) var(--e),border-color var(--t-base) var(--e)}
.nav.is-dark:not(.is-open)::before{background:linear-gradient(180deg,rgba(30,28,26,.78),rgba(14,13,12,.68));border-color:rgba(255,255,255,.1);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 14px 36px -14px rgba(0,0,0,.7)}
.nav.is-dark:not(.is-open) .nav__brand{color:#fff}
.nav.is-dark:not(.is-open) .nav__link{color:rgba(255,255,255,.74)}
.nav.is-dark:not(.is-open) .nav__link:hover,.nav.is-dark:not(.is-open) .nav__link[aria-expanded="true"],
.nav.is-dark:not(.is-open) .nav__item[data-current="true"] > .nav__link{color:#fff;background:rgba(255,255,255,.07)}
.nav.is-dark:not(.is-open) .nav__actions .btn--ghost{color:rgba(255,255,255,.82);background:transparent;border-color:transparent;box-shadow:none}
.nav.is-dark:not(.is-open) .nav__actions .btn--ghost:hover{color:#fff;background:rgba(255,255,255,.08)}
.nav.is-dark:not(.is-open) .nav__actions .btn--gold{background:var(--gold);border-color:var(--gold)}
.nav.is-dark:not(.is-open) .nav__actions .btn--gold:hover{background:var(--gold-lit);border-color:var(--gold-lit)}
.nav.is-dark:not(.is-open) .nav__toggle span{background:#fff}
@media (prefers-reduced-transparency:reduce){.nav.is-dark:not(.is-open)::before{background:#141312!important}}

/* Path diagram on phones: steps size to their text, arrows point down */
@media (max-width:700px){
  .flow__node{flex:none}
  /* rotate, not transform: the reveal and reduced-motion rules reset transform */
  .flow > .flow__arrow{transform:none;rotate:90deg}
}

/* Cookie banner: a compact card that leaves the hero visible */
.cookie-banner{max-width:368px;padding:16px 18px 14px;border:1px solid rgba(20,20,20,.08);border-radius:16px;
  background:rgba(255,255,255,.9);-webkit-backdrop-filter:blur(18px) saturate(170%);backdrop-filter:blur(18px) saturate(170%);
  box-shadow:inset 0 1px 0 #fff,0 18px 40px -16px rgba(60,35,10,.32)}
.cookie-banner__text{margin:0 0 12px;font-size:13px;line-height:1.55}
.cookie-banner__actions{gap:6px;flex-wrap:nowrap}
.cookie-banner__actions .btn{height:36px;padding:0 14px;font-size:13px}
.cookie-banner__link{margin-left:auto;font-size:12.5px}
@media (max-width:560px){
  .cookie-banner{padding:14px 14px 12px;border-radius:14px}
  .cookie-banner__text{font-size:12.5px;margin-bottom:10px}
}

/* ---- FAQ: topic index in the page head, one section per topic ---------------- */
.faq-index{pointer-events:auto}
.ftopics{position:relative;display:grid}
.ftopic{display:grid;grid-template-columns:34px minmax(0,1fr) auto;align-items:center;gap:12px;padding:14px 4px;
  border-top:1px solid var(--cx-edge);color:#fff;transition:color var(--t-fast) var(--e),padding var(--t-fast) var(--e)}
.ftopic:hover{color:var(--gold-lit);padding-left:10px}
.ftopic__n{font-family:var(--font-mono);font-size:10px;letter-spacing:var(--ls-mono);color:var(--gold-lit)}
.ftopic__t{font-family:var(--font-display);font-size:20px;line-height:1.2}
.ftopic__c{min-width:26px;height:26px;display:grid;place-items:center;border-radius:999px;border:1px solid var(--cx-edge);
  font-family:var(--font-mono);font-size:11px;color:var(--cx-muted)}

.faqx__jump{display:none}
.faqx__group{display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:start;
  padding-block:clamp(40px,5vw,64px);border-top:1px solid var(--line);scroll-margin-top:96px}
.faqx__group:first-of-type{padding-top:0;border-top:0}
.faqx__group:last-child{padding-bottom:0}
.faqx__side{position:sticky;top:112px}
.faqx__n{margin:0;font-family:var(--font-mono);font-size:11px;letter-spacing:var(--ls-mono);color:var(--gold-deep)}
.faqx__h{margin:10px 0 0;font-size:clamp(28px,2.4vw,36px);line-height:1.15}
.faqx__d{margin:12px 0 0;max-width:30ch;font-size:15px;line-height:1.65;color:var(--ink-2)}
.faqx .acc__trigger{text-align:left;gap:20px}

@media (max-width:999px){
  /* the page-head index is hidden below 1000px, so the topics sit above the questions */
  .faqx__jump{display:flex;gap:8px;overflow-x:auto;margin:0 calc(-1 * var(--gutter)) clamp(28px,5vw,40px);padding:2px var(--gutter);
    scrollbar-width:none;position:sticky;top:74px;z-index:5;padding-block:10px;
    background:linear-gradient(180deg,rgba(245,241,234,.96) 70%,rgba(245,241,234,0));
    -webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}
  .faqx__jump::-webkit-scrollbar{display:none}
  .faqx__jump a{flex:none;display:inline-flex;align-items:center;gap:8px;height:38px;padding:0 14px;border-radius:999px;
    background:rgba(255,255,255,.86);border:1px solid var(--line);box-shadow:var(--lift-1);font-size:14px;font-weight:500;color:var(--ink);
    -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}
  .faqx__jump a span{font-family:var(--font-mono);font-size:10.5px;color:var(--gold-deep)}
  .faqx__group{grid-template-columns:1fr;gap:20px;scroll-margin-top:140px}
  .faqx__side{position:static}
  .faqx__h{font-size:clamp(26px,6.4vw,32px)}
  .faqx .acc__trigger{font-size:17px;padding:18px 0}
}

/* ---- Question sections on inner pages: heading left, questions right ------------
   Same layout as the FAQ page, instead of a centred column that breaks the page's
   left edge. Matches .wrap--narrow holding a stacked head followed by an accordion. */
.wrap--narrow:has(> .sec-head--stack + .acc) > .sec-head--stack{text-align:left;margin-inline:0;max-width:none}
.wrap--narrow:has(> .sec-head--stack + .acc) > .sec-head--stack .eyebrow{justify-content:flex-start}
.wrap--narrow:has(> .sec-head--stack + .acc) > .sec-head--stack .eyebrow::before{display:block}
.wrap--narrow:has(> .sec-head--stack + .acc) > .sec-head--stack h2{margin-inline:0}
.wrap--narrow:has(> .sec-head--stack + .acc) .acc__trigger{text-align:left;gap:20px}
@media (min-width:1000px){
  .wrap--narrow:has(> .sec-head--stack + .acc){max-width:var(--max-w);display:grid;
    grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:clamp(32px,5vw,88px);align-items:start}
  .wrap--narrow:has(> .sec-head--stack + .acc) > .sec-head--stack{position:sticky;top:112px;margin-bottom:0}
  .wrap--narrow:has(> .sec-head--stack + .acc) > .sec-head--stack h2{font-size:clamp(30px,2.6vw,40px)}
}

/* ---- Assistant: a closed panel is gone, not just transparent ------------------
   .as__panel sets display:flex, which overrides [hidden]; without this the invisible
   panel caught clicks on everything beneath the bottom-right corner. */
.as:not(.is-open) .as__panel{visibility:hidden;pointer-events:none;transition:opacity .3s var(--e),transform .35s var(--e),visibility 0s linear .35s}
.as.is-open .as__panel{visibility:visible}

/* ---- Mobile menu: the close button stays where the menu button was -----------
   The toggle lives in .nav__actions, which becomes the fixed bottom bar when the
   menu opens; pin it to the top right instead, and keep overlays off the menu. */
@media (max-width:1100px){
  .nav.is-open .nav__toggle{position:fixed;z-index:2;top:38px;right:calc(var(--gutter) + 10px)}
  .nav.is-open.is-stuck .nav__toggle{top:31px}
  body:has(.nav.is-open) .cookie-banner,body:has(.nav.is-open) .as{display:none}
}
@media (max-width:640px){
  .nav.is-open .nav__toggle{top:35px;right:calc(var(--gutter) + 14px)}
  .nav.is-open.is-stuck .nav__toggle{top:31px}
}

/* ---- Mobile menu: collapsed submenus are invisible until opened ----------------
   The desktop glass on .nav__drop is !important, so on phones each collapsed
   submenu showed as a thin white bar under its heading. */
@media (max-width:1100px){
  .nav__drop{background:none!important;border:0!important;box-shadow:none!important;-webkit-backdrop-filter:none;backdrop-filter:none}
  .nav__item:not([data-open="true"]) .nav__drop{padding:0}
}
