/* ==================================================================
   ARTHA v2 — SHARED STYLESHEET (site-wide)
   Extracted from ARTHA-V2-Home-BUILD-v2 (locked) + sub-page components.
   Tokens/type/flat-brand per BRAND-LIBRARY.md. GSAP motion via artha.js.
   ================================================================== */

:root {
  --ink:#0D1B2A; --ink-2:#15263A; --ink-3:#1E3554;
  --white:#FFFFFF;
  --white-80:rgba(255,255,255,.80); --white-60:rgba(255,255,255,.60);
  --white-40:rgba(255,255,255,.40); --white-24:rgba(255,255,255,.24);
  --white-12:rgba(255,255,255,.12); --white-08:rgba(255,255,255,.08);
  --lavender:#B8B5FF; --lavender-ink:#6B5B9E; --lavender-soft:#D8D6FF;
  --font-display:'Outfit',system-ui,sans-serif;
  --font-body:'Sora',system-ui,sans-serif;
  --font-ui:'DM Sans',system-ui,sans-serif;
  --font-script:'Caveat','Outfit',cursive;
  --space-2:8px; --space-3:12px; --space-4:16px; --space-5:20px;
  --space-6:24px; --space-8:32px; --space-10:40px; --space-12:48px;
  --space-16:64px; --space-20:80px; --space-24:96px; --space-32:128px;
  --radius-card:24px; --radius-pill:100px; --radius-tag:6px;
  --container:1240px; --nav-h:96px;
}
* { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:auto; }
body {
  background:var(--ink); color:var(--white);
  font-family:var(--font-body); font-weight:600; line-height:1.55;
  -webkit-font-smoothing:antialiased; -moz-osx-font-smoothing:grayscale;
  overflow-x:hidden;
}
a { color:inherit; text-decoration:none; }
button { font-family:inherit; }
img { display:block; max-width:100%; }
.container { max-width:var(--container); margin:0 auto; padding:0 var(--space-8); }
.accent { color:var(--lavender); font-style:normal; }
.ui-label { font-family:var(--font-ui); font-weight:600; text-transform:uppercase; letter-spacing:.08em; }

/* ---- image treatment ---- */
.photo-wrap { position:relative; overflow:hidden; }
.photo-wrap img {
  width:100%; height:100%; object-fit:cover;
  filter:saturate(.85) brightness(.82) contrast(1.06);
  transition:transform .7s cubic-bezier(.22,1,.36,1), filter .5s ease;
}
.photo-wrap::before { content:''; position:absolute; inset:0; z-index:1; pointer-events:none;
  mix-blend-mode:soft-light;
  background:linear-gradient(135deg,rgba(13,27,42,.18),rgba(13,27,42,.10) 55%,rgba(13,27,42,.28)); }
.photo-wrap::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(180deg,transparent 30%,rgba(13,27,42,.4) 70%,rgba(13,27,42,.75)); }

/* ---- nav ---- */
.nav { position:fixed; top:0; left:0; right:0; height:var(--nav-h); z-index:100;
  background:transparent; border-bottom:1px solid transparent;
  transition:background-color .4s ease, border-color .4s ease; }
.nav.scrolled { background:var(--ink-2); border-bottom-color:var(--ink-3); }
.nav-inner { max-width:var(--container); height:100%; margin:0 auto; padding:0 var(--space-8);
  display:flex; align-items:center; gap:var(--space-4); }
.nav-logo { display:flex; align-items:center; gap:12px; }
.nav-logo-mark { font-family:var(--font-script); font-weight:700; font-size:46px; color:var(--white);
  line-height:.85; letter-spacing:-.04em; display:inline-block; transform:translateY(-2px); }
.nav-logo-mark .dot { color:var(--lavender); }
.nav-logo-text { display:flex; flex-direction:column; line-height:1.05;
  font-family:var(--font-display); font-weight:700; font-size:15px; color:var(--white); letter-spacing:-.01em; }
.nav-links { display:flex; align-items:center; gap:0; margin-left:auto; list-style:none;
  background:var(--white-08); border:1px solid var(--white-12); border-radius:var(--radius-pill); padding:4px; }
.nav-link { font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--white-80);
  padding:10px 18px; border-radius:var(--radius-pill); cursor:pointer; white-space:nowrap;
  display:inline-flex; align-items:baseline; gap:2px; transition:color .2s ease, background .2s ease; }
.nav-link:hover { background:var(--white-08); color:var(--white); }
.nav-link.active { color:var(--white); background:var(--white-08); }
.nav-link .plus { color:inherit; font-weight:400; font-size:14px; line-height:1; display:inline-block;
  transform-origin:center; transition:transform .35s cubic-bezier(.22,1,.36,1); }
.nav-link:hover .plus { transform:rotate(45deg); }
.nav-cta { font-family:var(--font-ui); font-size:13px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; white-space:nowrap; flex-shrink:0;
  color:var(--white); background:var(--lavender-ink); padding:10px 8px 10px 22px; border-radius:var(--radius-pill);
  border:none; cursor:pointer; display:inline-flex; align-items:center; gap:10px; margin-left:var(--space-3);
  transition:transform .2s ease, background .2s ease; }
.nav-cta:hover { background:#5a4d8a; transform:translateY(-1px); }
.nav-cta .arrow-circle { width:30px; height:30px; border-radius:50%; background:var(--white); color:var(--lavender-ink);
  display:inline-flex; align-items:center; justify-content:center; font-size:15px; font-weight:700;
  transition:transform .35s cubic-bezier(.22,1,.36,1); }
.nav-cta:hover .arrow-circle { transform:rotate(-45deg); }

/* ---- pill CTAs / tags ---- */
.pill-cta { display:inline-flex; align-items:center; gap:12px; padding:10px 6px 10px 24px; border-radius:var(--radius-pill);
  border:none; cursor:pointer; font-family:var(--font-ui); font-size:13px; font-weight:600; text-transform:uppercase;
  letter-spacing:.08em; transition:transform .2s ease, background .2s ease; }
.pill-cta .arrow-circle { width:34px; height:34px; border-radius:50%; display:inline-flex; align-items:center;
  justify-content:center; font-size:15px; font-weight:700; flex-shrink:0; transition:transform .35s cubic-bezier(.22,1,.36,1); }
.pill-cta:hover .arrow-circle { transform:rotate(-45deg); }
.pill-cta.primary { background:var(--lavender-ink); color:var(--white); }
.pill-cta.primary .arrow-circle { background:var(--white); color:var(--lavender-ink); }
.pill-cta.primary:hover { background:#5a4d8a; transform:translateY(-1px); }
.pill-cta.dark { background:var(--ink); color:var(--white); }
.pill-cta.dark .arrow-circle { background:var(--white); color:var(--ink); }
.pill-cta.dark:hover { background:#08131e; transform:translateY(-1px); }
.pill-cta.ghost { background:transparent; color:var(--white); border:1px solid var(--white-24); }
.pill-cta.ghost .arrow-circle { background:var(--white-12); color:var(--white); }
.pill-cta.ghost:hover { border-color:var(--white-40); }
.pill-tag { display:inline-flex; align-items:center; padding:8px 16px; border-radius:var(--radius-pill);
  border:1px solid var(--white-24); background:transparent; color:var(--white); font-family:var(--font-ui);
  font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.pill-tag.filled { background:var(--white); color:var(--ink); border-color:var(--white); }

/* ---- SUB-PAGE HERO — matches home hero exactly (full field + word-by-word build) ---- */
.subhero { position:relative; overflow:hidden; min-height:100vh; display:flex; align-items:center;
  padding-top:calc(var(--nav-h) + var(--space-8)); padding-bottom:var(--space-16); }
.subhero-bg { position:absolute; inset:0; z-index:1; pointer-events:none; }
.subhero-blob { position:absolute; border-radius:50%; will-change:transform; }
.sh-1 { width:58vw; height:58vw; top:-14%; right:-10%;
  background:radial-gradient(circle at 35% 35%,rgba(107,91,158,.85),rgba(107,91,158,0) 68%); filter:blur(70px);
  animation:drift1 26s ease-in-out infinite alternate; }
.sh-2 { width:42vw; height:42vw; top:30%; right:4%;
  background:radial-gradient(circle at 55% 45%,rgba(184,181,255,.55),rgba(184,181,255,0) 66%); filter:blur(80px);
  animation:drift2 34s ease-in-out infinite alternate; }
.sh-3 { width:36vw; height:36vw; bottom:-12%; right:26%;
  background:radial-gradient(circle at 50% 50%,rgba(216,214,255,.30),rgba(216,214,255,0) 65%); filter:blur(85px);
  animation:drift3 30s ease-in-out infinite alternate; }
.sh-4 { width:30vw; height:30vw; top:6%; left:38%;
  background:radial-gradient(circle at 50% 50%,rgba(107,91,158,.35),rgba(107,91,158,0) 65%); filter:blur(90px);
  animation:drift4 38s ease-in-out infinite alternate; }
.subhero-bg::after { content:''; position:absolute; inset:0;
  background:linear-gradient(90deg,var(--ink) 0%,rgba(13,27,42,.72) 26%,transparent 55%); }
@keyframes drift1 { from{transform:translate(0,0) scale(1);} to{transform:translate(-5vw,4vh) scale(1.12);} }
@keyframes drift2 { from{transform:translate(0,0) scale(1);} to{transform:translate(3vw,-5vh) scale(.92);} }
@keyframes drift3 { from{transform:translate(0,0) scale(1);} to{transform:translate(-4vw,-3vh) scale(1.10);} }
@keyframes drift4 { from{transform:translate(0,0) scale(1);} to{transform:translate(4vw,3vh) scale(1.08);} }
.subhero-inner { position:relative; z-index:2; width:100%; max-width:var(--container); margin:0 auto; padding:0 var(--space-8); }
.subhero-content { max-width:820px; padding-top:var(--space-12); }
.subhero-eyebrow { margin-bottom:var(--space-6); display:inline-flex; }
.subhero-h { font-family:var(--font-display); font-weight:700; font-size:clamp(52px,7.4vw,108px);
  line-height:.98; letter-spacing:-.01em; color:var(--white); margin-bottom:var(--space-8); }
.subhero-h em { font-style:italic; }
.subhero-h .word { display:inline-block; opacity:0; transform:translateY(24px); }
.subhero-sub { font-family:var(--font-body); font-size:18px; font-weight:600; color:var(--white-80);
  line-height:1.6; max-width:620px; margin-bottom:var(--space-8); }
.subhero-cta { display:inline-flex; }
.reveal { opacity:0; transform:translateY(24px); }

/* ---- MARQUEE (lifted from home) ---- */
.marquee { padding:var(--space-16) 0 var(--space-10); overflow:hidden; position:relative; }
.marquee-track { display:flex; align-items:center; gap:var(--space-10); white-space:nowrap;
  animation:marquee 34s linear infinite; width:max-content; }
.marquee-word { font-family:var(--font-display); font-weight:700; font-size:clamp(44px,6.4vw,96px);
  color:var(--white); letter-spacing:-.01em; line-height:1; }
.marquee-word.italic { font-style:italic; }
.marquee-word.muted { color:var(--white-40); }
.marquee-logo { color:var(--lavender); font-family:var(--font-script); font-weight:700;
  font-size:clamp(56px,8vw,108px); line-height:.9; }
@keyframes marquee { from{transform:translateX(0);} to{transform:translateX(-50%);} }

/* ---- editorial ---- */
.editorial { padding:var(--space-24) 0; position:relative; overflow:hidden; }
.editorial-grid { display:grid; grid-template-columns:1fr .9fr; gap:var(--space-16); align-items:center; }
.editorial-grid.reverse { grid-template-columns:.9fr 1fr; }
.editorial-tag { margin-bottom:var(--space-8); display:inline-flex; }
.editorial-h { font-family:var(--font-display); font-weight:700; font-size:clamp(42px,5.4vw,82px);
  line-height:1.0; letter-spacing:-.01em; margin-bottom:var(--space-8); color:var(--white); }
.editorial-h em { font-style:italic; }
.editorial-h .word { display:inline-block; opacity:0; transform:translateY(28px); }
.editorial-kicker { font-family:var(--font-display); font-weight:700; font-style:italic;
  font-size:clamp(22px,2.4vw,32px); color:var(--white); margin-bottom:var(--space-6); letter-spacing:-.01em; }
.editorial-body { font-family:var(--font-body); font-size:17px; font-weight:600; color:var(--white-80);
  line-height:1.7; max-width:540px; }
.editorial-body p + p { margin-top:var(--space-5); }
.editorial-link { margin-top:var(--space-8); display:inline-flex; }
.editorial-object { position:relative; height:520px; display:flex; align-items:center; justify-content:center; }
.editorial-object svg { width:100%; max-width:560px; height:auto; overflow:visible; }

/* ---- Continuum Ring (ARC visual, Option B) ---- */
.arc-ring { transform-origin:center; transform-box:fill-box; animation:arcSpin 46s linear infinite; }
@keyframes arcSpin { to { transform:rotate(360deg); } }
.arc-orbit { transform-origin:300px 260px; animation:arcSpin 18s linear infinite; }
.arc-svg-label { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; }
.arc-svg-name { font-family:var(--font-display); font-weight:700; font-size:17px; letter-spacing:-.01em; }

/* ---- STAT SURFACE (new: 35·35·30 / min-domain) ---- */
.statsurf { padding:var(--space-24) 0; text-align:center; }
.statsurf-num { font-family:var(--font-body); font-weight:800; letter-spacing:-.02em;
  font-size:clamp(64px,10vw,140px); color:var(--white); line-height:1; }
.statsurf-num .accent { color:var(--lavender); }
.statsurf-h { font-family:var(--font-display); font-weight:700; font-size:clamp(34px,4.4vw,64px);
  letter-spacing:-.01em; color:var(--white); margin:var(--space-6) 0 var(--space-6); }
.statsurf-h em { font-style:italic; }
.statsurf-body { font-family:var(--font-body); font-size:17px; font-weight:600; color:var(--white-80);
  line-height:1.7; max-width:720px; margin:0 auto; }

/* ---- NUMBERED SERVICE / PILLAR BLOCKS (new pattern) ---- */
.svc-block { display:grid; grid-template-columns:0.95fr 1.05fr; gap:var(--space-16); align-items:center;
  padding:var(--space-16) 0; border-top:1px solid var(--ink-3); }
.svc-block.reverse .svc-media { order:2; }
.svc-block.reverse .svc-copy { order:1; }
.svc-media { position:relative; border-radius:var(--radius-card); overflow:hidden; aspect-ratio:5/4; }
.svc-media .photo-wrap { position:absolute; inset:0; }
.svc-index { font-family:var(--font-body); font-weight:800; font-size:clamp(48px,6vw,96px);
  color:var(--white-12); line-height:1; letter-spacing:-.02em; margin-bottom:var(--space-4); }
.svc-title { font-family:var(--font-display); font-weight:700; font-size:clamp(30px,3.4vw,52px);
  line-height:1.02; letter-spacing:-.01em; color:var(--white); margin-bottom:var(--space-5); }
.svc-title em { font-style:italic; }
.svc-desc { font-family:var(--font-body); font-size:16px; font-weight:600; color:var(--white-80);
  line-height:1.7; max-width:520px; margin-bottom:var(--space-6); }
.svc-snapshot-label, .svc-tags-label { font-family:var(--font-ui); font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.08em; color:var(--lavender-soft); margin-bottom:var(--space-3); }
.svc-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:var(--space-6); }
.svc-tag { display:inline-block; padding:7px 14px; border-radius:var(--radius-pill); border:1px solid var(--white-24);
  background:transparent; color:var(--white); font-family:var(--font-ui); font-size:11px; font-weight:600;
  text-transform:uppercase; letter-spacing:.08em; }
.svc-line { font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--white-60);
  line-height:1.6; padding:6px 0 6px 18px; position:relative; }
.svc-line::before { content:''; position:absolute; left:0; top:14px; width:7px; height:7px; border-radius:50%;
  background:var(--lavender-ink); }

/* ---- PROCESS ACCORDION (new) ---- */
.process { margin-top:var(--space-6); border-top:1px solid var(--ink-3); }
.process-row { border-bottom:1px solid var(--ink-3); }
.process-head { width:100%; text-align:left; background:transparent; border:none; cursor:pointer;
  display:flex; align-items:center; gap:var(--space-4); padding:var(--space-5) 0; color:var(--white); }
.process-step-num { font-family:var(--font-ui); font-size:11px; font-weight:600; letter-spacing:.08em;
  color:var(--lavender); min-width:34px; }
.process-step-title { font-family:var(--font-display); font-weight:700; font-size:20px; letter-spacing:-.01em; flex:1; }
.process-toggle { font-size:20px; color:var(--white-60); transition:transform .35s cubic-bezier(.22,1,.36,1); }
.process-row.open .process-toggle { transform:rotate(45deg); color:var(--lavender); }
.process-body { max-height:0; overflow:hidden; transition:max-height .4s ease; }
.process-body-inner { padding:0 0 var(--space-5) 50px; font-family:var(--font-body); font-size:15px;
  font-weight:600; color:var(--white-60); line-height:1.7; }

/* ---- STAGE CONTINUUM / JOURNEY CARDS ---- */
.journey { padding:var(--space-16) 0 var(--space-24); }
.journey-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); }
.journey-lead { background:var(--lavender-ink); border-radius:var(--radius-card); padding:var(--space-16);
  display:flex; flex-direction:column; justify-content:space-between; min-height:500px; }
.journey-lead-top .pill-tag { background:transparent; border-color:var(--white-40); color:var(--white); margin-bottom:var(--space-8); }
.journey-lead-h { font-family:var(--font-display); font-weight:700; font-size:clamp(36px,4.2vw,64px);
  line-height:1.0; letter-spacing:-.01em; color:var(--white); margin-bottom:var(--space-6); }
.journey-lead-h em { font-style:italic; }
.journey-lead-body { font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--lavender-soft);
  line-height:1.7; max-width:420px; margin-bottom:var(--space-10); }
.journey-cards { display:flex; flex-direction:column; gap:var(--space-4); }
.journey-card { border-radius:var(--radius-card); padding:var(--space-10); flex:1; min-height:132px;
  display:flex; flex-direction:column; justify-content:space-between;
  background:var(--ink-2); color:var(--white); border:1px solid var(--ink-3);
  transition:background .45s ease, border-color .45s ease; }
.journey-card.filled { background:var(--lavender-ink); border-color:transparent; }
.journey-card-label { font-family:var(--font-ui); font-size:11px; font-weight:600; letter-spacing:.08em;
  text-transform:uppercase; color:var(--white-60); margin-bottom:var(--space-4); }
.journey-card.filled .journey-card-label { color:var(--lavender-soft); }
.journey-card-title { font-family:var(--font-display); font-weight:700; font-size:clamp(26px,3vw,42px);
  line-height:1.02; letter-spacing:-.01em; color:inherit; }
.journey-card-desc { font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--white-60);
  line-height:1.55; margin-top:var(--space-3); }
.journey-card.filled .journey-card-desc { color:var(--lavender-soft); }

/* five-stage ascending ladder (B5, 2026-08-27 — replaces flat continuum5/stage5 grid) */
.s5-ladder { position:relative; max-width:640px; margin:var(--space-12) auto 0; padding-left:34px; display:flex; flex-direction:column; gap:14px; }
.s5-ladder::before { content:''; position:absolute; left:5px; top:10px; bottom:10px; width:2px; background:var(--white-12); }
.s5-rail-draw { position:absolute; left:5px; top:10px; bottom:10px; width:2px; background:var(--lavender); transform-origin:bottom; transform:scaleY(0); border-radius:2px; }
.s5-rung { position:relative; display:flex; align-items:center; }
.s5-dot { position:absolute; left:-34px; width:12px; height:12px; border-radius:50%; background:var(--ink); border:2px solid var(--white-40); z-index:1; }
.s5-card { flex:1; background:var(--ink-2); border:1px solid var(--ink-3); border-radius:16px; padding:18px 24px;
  display:flex; align-items:center; gap:18px; }
.s5-num { font-family:var(--font-body); font-weight:800; font-size:18px; color:var(--white-40); min-width:26px; letter-spacing:-.02em; }
.s5-name { font-family:var(--font-display); font-weight:700; font-size:17px; color:var(--white); letter-spacing:-.01em; margin-bottom:2px; }
.s5-desc { font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--white-60); margin:0; }
.s5-rung.top .s5-dot { background:var(--lavender); border-color:var(--lavender); box-shadow:0 0 0 6px rgba(184,181,255,.20), 0 0 26px rgba(184,181,255,.5); }
.s5-rung.top .s5-card { border-color:var(--lavender-ink); box-shadow:0 0 34px rgba(184,181,255,.14); }
.s5-rung.top .s5-num, .s5-rung.top .s5-name { color:var(--lavender); }
.s5-caption { text-align:center; margin-top:22px; font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--white-60); }

/* ---- INSIGHTS ROWS (writing) ---- */
.rows { display:flex; flex-direction:column; }
.row-card { display:grid; grid-template-columns:200px 1fr auto; gap:var(--space-8); align-items:center;
  padding:var(--space-8) 0; border-top:1px solid var(--ink-3); transition:padding-left .3s ease; }
.row-card:last-child { border-bottom:1px solid var(--ink-3); }
.row-card:hover { padding-left:var(--space-3); }
.row-thumb { width:200px; aspect-ratio:16/10; border-radius:16px; overflow:hidden; }
.row-cover { width:200px; aspect-ratio:16/10; border-radius:16px; overflow:hidden;
  background:linear-gradient(145deg,var(--ink-3),var(--ink-2) 70%); display:flex; align-items:center; justify-content:center;
  padding:var(--space-4); text-align:center; }
.row-cover .cs { font-family:var(--font-body); font-weight:800; font-size:22px; color:var(--white); letter-spacing:-.02em; line-height:1.1; }
.row-cover .cs .dim { color:var(--white-40); }
.row-main { min-width:0; }
.row-kind { font-family:var(--font-ui); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--white-60); margin-bottom:var(--space-3); }
.row-title { font-family:var(--font-display); font-weight:700; font-size:clamp(22px,2.2vw,30px);
  line-height:1.2; letter-spacing:-.01em; color:var(--white); margin-bottom:var(--space-3); }
.row-excerpt { font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--white-60); line-height:1.6; max-width:640px; }
.row-date { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--white-40); white-space:nowrap; }
.row-read { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--white-80); display:inline-flex; align-items:center; gap:8px; transition:gap .25s ease, color .2s ease; white-space:nowrap; }
.row-card:hover .row-read { color:var(--white); gap:14px; }

/* ---- SUBSCRIBE / CONNECT BAND (new) ---- */
.band { padding:var(--space-24) 0; }
.band-inner { background:var(--lavender-ink); border-radius:var(--radius-card); padding:var(--space-20) var(--space-16);
  display:grid; grid-template-columns:1fr auto; gap:var(--space-12); align-items:center; }
.band-inner.center { grid-template-columns:1fr; text-align:center; justify-items:center; }
.band-eyebrow { margin-bottom:var(--space-5); display:inline-flex; }
.band-eyebrow.pill-tag { border-color:var(--white-40); color:var(--white); }
.band-h { font-family:var(--font-display); font-weight:700; font-size:clamp(34px,4vw,58px);
  line-height:1.02; letter-spacing:-.01em; color:var(--white); }
.band-h em { font-style:italic; }
.band-sub { font-family:var(--font-body); font-size:16px; font-weight:600; color:var(--lavender-soft);
  line-height:1.6; margin-top:var(--space-4); max-width:560px; }
.band-actions { display:flex; flex-wrap:wrap; gap:var(--space-4); }
/* .band-inner's second column is `auto`, which grid resolves at max-content —
   a wrapping row of 3+ pills therefore steals the headline's width. Stack the
   actions when a cluster carries more than two buttons. */
.band-actions.stack { flex-direction:column; align-items:stretch; }
.band-actions.stack .pill-cta { justify-content:space-between; }
.band .pill-cta.dark { background:var(--ink); }
.platform-pills { display:flex; flex-wrap:wrap; gap:var(--space-3); justify-content:center; margin-top:var(--space-8); }
.platform-pill { font-family:var(--font-ui); font-size:12px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--white); background:var(--ink); border-radius:var(--radius-pill); padding:12px 22px;
  display:inline-flex; align-items:center; gap:8px; transition:transform .2s ease; }
.platform-pill:hover { transform:translateY(-2px); }

/* ---- EPISODE CARDS (podcast) ---- */
.eps-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); }
.eps-card { background:var(--ink-2); border:1px solid var(--ink-3); border-radius:var(--radius-card); overflow:hidden;
  display:flex; flex-direction:column; transition:transform .4s cubic-bezier(.22,1,.36,1), border-color .3s ease; }
.eps-card:hover { transform:translateY(-4px); border-color:var(--lavender-ink); }
.eps-card:hover .photo-wrap img { transform:scale(1.05); }
.eps-thumb { position:relative; aspect-ratio:16/9; }
.eps-thumb .photo-wrap { position:absolute; inset:0; }
.eps-play { position:absolute; top:50%; left:50%; transform:translate(-50%,-50%); width:64px; height:64px; border-radius:50%;
  background:rgba(13,27,42,.65); border:1px solid var(--white-24); display:flex; align-items:center; justify-content:center;
  color:var(--white); font-size:22px; z-index:3; transition:background .25s ease, transform .25s ease; }
.eps-card:hover .eps-play { background:var(--lavender-ink); transform:translate(-50%,-50%) scale(1.06); }
.eps-body { padding:var(--space-6); display:flex; flex-direction:column; gap:var(--space-4); flex:1; }
.eps-kind { font-family:var(--font-ui); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--white-60); }
.eps-title { font-family:var(--font-display); font-weight:700; font-size:20px; line-height:1.2; letter-spacing:-.01em; color:var(--white); flex:1; }
.eps-guest { font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--white-60); }
.eps-link { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--white-80); display:inline-flex; align-items:center; gap:8px; transition:gap .25s ease; }
.eps-card:hover .eps-link { gap:14px; }
.eps-note { font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--white-60); line-height:1.7;
  text-align:center; max-width:720px; margin:var(--space-12) auto 0; }

/* ---- GUEST BAND + APPLICATION (podcast, 2026-08-31) ----
   Deliberately NOT the lavender .band used further down the same page:
   this one is an ink-2 panel with a lavender rail and an asymmetric split,
   so the two calls to action on podcast.html read as different moments
   rather than the same block twice. */
.guest-band { padding:var(--space-16) 0 var(--space-8); }
.guest-band-inner { position:relative; overflow:hidden;
  background:var(--ink-2); border:1px solid var(--ink-3); border-radius:var(--radius-card);
  padding:var(--space-12) var(--space-12) var(--space-12) var(--space-16);
  display:grid; grid-template-columns:minmax(0,1fr) auto; gap:var(--space-10);
  align-items:center; }
.guest-band-inner::before { content:''; position:absolute; left:0; top:0; bottom:0; width:4px;
  background:linear-gradient(180deg,var(--lavender) 0%,var(--lavender-ink) 100%); }
.guest-band-h { font-family:var(--font-display); font-weight:700; font-size:clamp(28px,3.2vw,44px);
  line-height:1.06; letter-spacing:-.01em; color:var(--white); margin-top:var(--space-5); }
.guest-band-h em { font-style:italic; color:var(--lavender); }
.guest-band-sub { font-family:var(--font-body); font-size:16px; font-weight:600; color:var(--white-80);
  line-height:1.6; margin-top:var(--space-4); max-width:60ch; }
.guest-band-cta { flex-shrink:0; }
.guest-band-cta .pill-cta { cursor:pointer; }

.guest { padding:var(--space-24) 0; scroll-margin-top:calc(var(--nav-h) + var(--space-6)); }
.guest-grid { display:grid; grid-template-columns:1fr .95fr; gap:var(--space-16); align-items:start; }
.guest-h { font-family:var(--font-display); font-weight:700; font-size:clamp(30px,3.6vw,50px);
  line-height:1.05; letter-spacing:-.01em; color:var(--white); }
.guest-h em { font-style:italic; color:var(--lavender); }
.guest-lead { font-family:var(--font-body); font-size:16px; font-weight:600; color:var(--white-80);
  line-height:1.7; margin-top:var(--space-6); max-width:56ch; }
.guest-list { list-style:none; margin-top:var(--space-8); display:flex; flex-direction:column; gap:var(--space-4); }
.guest-list li { position:relative; padding-left:22px; font-family:var(--font-body); font-size:15px;
  font-weight:600; color:var(--white-80); line-height:1.6; }
.guest-list li::before { content:''; position:absolute; left:0; top:11px; width:8px; height:1px; background:var(--lavender); }
.guest-fine { font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--white-60);
  line-height:1.6; margin-top:var(--space-8); }

.guest-card { background:var(--ink-2); border:1px solid var(--ink-3); border-radius:20px;
  padding:var(--space-10); }
.guest-card-h { font-family:var(--font-display); font-weight:700; font-size:21px; letter-spacing:-.01em;
  color:var(--white); margin-bottom:var(--space-2); }
.guest-card-note { font-family:var(--font-body); font-size:13.5px; font-weight:600; color:var(--white-60);
  line-height:1.6; margin-bottom:var(--space-6); }
.guest-card .contact-field input { min-height:48px; width:100%; }
.guest-card .contact-field textarea { min-height:132px; }
.guest-card .contact-field .field-hint { font-family:var(--font-body); font-size:12px; font-weight:600;
  color:var(--white-60); text-transform:none; letter-spacing:0; }
.guest-card .contact-submit { align-self:stretch; justify-content:space-between; }

/* ---- TEAM GRID + PERSON SLIDE-OVER (about) ---- */
.team-grid { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-5); }
.person-card { aspect-ratio:3/4; border-radius:20px; overflow:hidden; position:relative; cursor:pointer;
  transition:transform .4s cubic-bezier(.22,1,.36,1); }
.person-card img { width:100%; height:100%; object-fit:cover;
  filter:saturate(.85) brightness(.8) contrast(1.06);
  transition:transform .7s cubic-bezier(.22,1,.36,1); }
.person-card::after { content:''; position:absolute; inset:0; z-index:2; pointer-events:none;
  background:linear-gradient(180deg,transparent 40%,rgba(13,27,42,.5) 65%,rgba(13,27,42,.92)); }
.person-card:hover { transform:translateY(-6px); }
.person-card:hover img { transform:scale(1.06); }
.person-info { position:absolute; bottom:0; left:0; right:0; padding:var(--space-8); z-index:3; }
.person-role { font-family:var(--font-ui); font-size:10px; font-weight:600; letter-spacing:.08em; text-transform:uppercase;
  color:var(--white-60); margin-bottom:var(--space-2); }
.person-name { font-family:var(--font-display); font-weight:700; font-size:clamp(26px,2.4vw,36px); color:var(--white);
  letter-spacing:-.01em; line-height:1; margin-bottom:var(--space-3); }
.person-bio { font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--white-80); line-height:1.6; max-width:320px; }
.person-more { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--lavender-soft); margin-top:var(--space-4); display:inline-flex; align-items:center; gap:8px; }

.panel-scrim { position:fixed; inset:0; background:rgba(6,12,20,.6); z-index:200; opacity:0; pointer-events:none;
  transition:opacity .35s ease; }
.panel-scrim.open { opacity:1; pointer-events:auto; }
.slideover { visibility:hidden; position:fixed; top:0; right:0; bottom:0; width:min(520px,92vw); background:var(--ink-2);
  border-left:1px solid var(--ink-3); z-index:201; transform:translateX(100%); transition:transform .4s cubic-bezier(.22,1,.36,1);
  overflow-y:auto; padding:var(--space-16) var(--space-12); }
.slideover.open { visibility:visible; transform:translateX(0); }
.slideover-exit { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--white-60); background:transparent; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px; margin-bottom:var(--space-8);
  min-height:44px; padding:10px 12px; margin-left:-12px; }
.slideover-exit:hover { color:var(--white); }
.slideover-name { font-family:var(--font-display); font-weight:700; font-size:clamp(30px,3vw,42px); letter-spacing:-.01em; color:var(--white); margin-bottom:var(--space-3); }
.slideover-pos { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--lavender-soft); margin-bottom:var(--space-6); }
.slideover-tags { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:var(--space-8); }
.slideover-bio { font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--white-80); line-height:1.75; }
.slideover-bio p + p { margin-top:var(--space-4); }
.slideover-link { margin-top:var(--space-8); display:inline-flex; }

/* connect surface (about B4) */
.connect { padding:var(--space-16) 0 var(--space-24); }
/* Four ways in (LinkedIn / email / Substack / Calendly) — 2x2 rather than a
   3-up row with an orphan underneath. */
.connect-grid { display:grid; grid-template-columns:repeat(2,1fr); gap:var(--space-5); }
.connect-card { background:var(--ink-2); border:1px solid var(--ink-3); border-radius:var(--radius-card); padding:var(--space-10);
  display:flex; flex-direction:column; gap:var(--space-3); min-height:180px; justify-content:space-between;
  transition:transform .4s cubic-bezier(.22,1,.36,1), border-color .3s ease; }
.connect-card:hover { transform:translateY(-4px); border-color:var(--lavender-ink); }
.connect-kind { font-family:var(--font-ui); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--white-60); }
.connect-h { font-family:var(--font-display); font-weight:700; font-size:26px; letter-spacing:-.01em; color:var(--white); }
.connect-link { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--lavender-soft); display:inline-flex; align-items:center; gap:8px; flex-wrap:wrap; min-width:0; overflow-wrap:anywhere; }
.connect-card { min-width:0; }

/* ---- CONTACT OVERLAY (new, HY "Exit" pattern) ---- */
.contact-scrim { position:fixed; inset:0; background:rgba(6,12,20,.7); z-index:300; opacity:0; pointer-events:none; transition:opacity .35s ease; }
.contact-scrim.open { opacity:1; pointer-events:auto; }
.contact-modal { visibility:hidden; position:fixed; top:50%; left:50%; transform:translate(-50%,-46%); width:min(600px,92vw); max-height:88vh; overflow-y:auto;
  background:var(--ink-2); border:1px solid var(--ink-3); border-radius:var(--radius-card); z-index:301; padding:var(--space-16) var(--space-12);
  opacity:0; pointer-events:none; transition:opacity .35s ease, transform .35s cubic-bezier(.22,1,.36,1); }
.contact-modal.open { visibility:visible; opacity:1; pointer-events:auto; transform:translate(-50%,-50%); }
.contact-top { display:flex; justify-content:space-between; align-items:center; margin-bottom:var(--space-8); }
.contact-eyebrow { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--white-60); }
.contact-exit { font-family:var(--font-ui); font-size:11px; font-weight:600; text-transform:uppercase; letter-spacing:.08em;
  color:var(--white-60); background:transparent; border:none; cursor:pointer; display:inline-flex; align-items:center; gap:8px;
  min-height:44px; padding:10px 12px; margin:-10px -12px -10px 0; }
.contact-exit:hover { color:var(--white); }
.contact-h { font-family:var(--font-display); font-weight:700; font-size:clamp(28px,3vw,40px); letter-spacing:-.01em; color:var(--white); margin-bottom:var(--space-8); }
.contact-h em { font-style:italic; }
.contact-form { display:flex; flex-direction:column; gap:var(--space-4); }
.contact-field { display:flex; flex-direction:column; gap:6px; }
.contact-field label { font-family:var(--font-ui); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--white-60); }
.contact-field input, .contact-field textarea { font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--white);
  background:var(--ink); border:1px solid var(--ink-3); border-radius:12px; padding:12px 16px; }
.contact-field input:focus, .contact-field textarea:focus { outline:none; border-color:var(--lavender-ink); }
.contact-field input:focus-visible, .contact-field textarea:focus-visible { outline:2px solid var(--lavender); outline-offset:3px; border-color:var(--lavender-ink); }
/* WCAG AA against the --ink input fill; the default UA grey does not clear it. */
.contact-field input::placeholder, .contact-field textarea::placeholder { color:var(--white-60); opacity:1; }
.contact-field textarea { resize:vertical; min-height:96px; }
.contact-submit { margin-top:var(--space-3); align-self:flex-start; }
.contact-state { font-family:var(--font-body); font-size:14px; font-weight:600; margin-top:var(--space-4); display:none; }
.contact-state.ok { color:var(--lavender-soft); }
.contact-state.err { color:#E7A6A6; }
.contact-alt { font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--white-60); margin-top:var(--space-6); }
.contact-alt a:hover { color:var(--lavender-soft); }

/* Calendly primary path — booking sits above the form, the form is the quieter
   fallback. Two doors, one obviously first. */
.contact-book { margin-bottom:var(--space-6); }
.contact-book .pill-cta { width:100%; justify-content:space-between; }
.contact-book .pill-cta .arrow-circle { flex:none; }
.contact-book-note { font-family:var(--font-body); font-size:13px; font-weight:600; color:var(--white-60); margin-top:var(--space-3); }
.contact-div { display:flex; align-items:center; gap:var(--space-4); margin:var(--space-8) 0 var(--space-6); }
.contact-div::before, .contact-div::after { content:""; flex:1; height:1px; background:var(--ink-3); }
.contact-div span { font-family:var(--font-ui); font-size:10px; font-weight:600; text-transform:uppercase; letter-spacing:.08em; color:var(--white-40); white-space:nowrap; }
/* Honeypot — off-screen for humans, irresistible to bots. */
.contact-hp { position:absolute !important; width:1px; height:1px; padding:0; margin:-1px; overflow:hidden; clip:rect(0 0 0 0); clip-path:inset(50%); white-space:nowrap; border:0; }

/* ---- CTA CARD (cross-link, pre-footer) ---- */
.ctacard { padding:var(--space-16) 0 var(--space-24); }
.ctacard-inner { position:relative; overflow:hidden; border-radius:var(--radius-card); border:1px solid var(--ink-3);
  min-height:300px; display:flex; align-items:flex-end; padding:var(--space-16); }
.ctacard-bg { position:absolute; inset:0; z-index:1; }
.ctacard-bg .subhero-blob { position:absolute; }
.ctacard-bg::after { content:''; position:absolute; inset:0; background:linear-gradient(120deg,var(--ink) 10%,rgba(13,27,42,.4) 60%,transparent); }
.ctacard-content { position:relative; z-index:2; }
.ctacard-eyebrow { margin-bottom:var(--space-4); display:inline-flex; }
.ctacard-h { font-family:var(--font-display); font-weight:700; font-size:clamp(30px,3.6vw,52px); letter-spacing:-.01em; color:var(--white); margin-bottom:var(--space-4); }
.ctacard-h em { font-style:italic; }
.ctacard-sub { font-family:var(--font-body); font-size:15px; font-weight:600; color:var(--white-80); max-width:480px; margin-bottom:var(--space-6); }

/* ---- FOOTER ---- */
footer { background:var(--ink-2); border-top:1px solid var(--ink-3); padding:var(--space-24) 0 var(--space-10); margin-top:var(--space-24); }
.footer-top { display:grid; grid-template-columns:1.6fr 1fr 1fr 1fr; gap:var(--space-10); padding-bottom:var(--space-16); border-bottom:1px solid var(--ink-3); }
.footer-brand-block .nav-logo { margin-bottom:var(--space-6); }
.footer-tag { font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--white-80); line-height:1.7; max-width:360px; }
.footer-col-h { font-family:var(--font-ui); font-size:11px; font-weight:600; letter-spacing:.08em; text-transform:uppercase; color:var(--white-60); margin-bottom:var(--space-6); }
.footer-list { list-style:none; padding:0; }
.footer-list li { font-family:var(--font-body); font-size:14px; font-weight:600; color:var(--white-80); margin-bottom:var(--space-3); }
.footer-list a:hover { color:var(--lavender-soft); }
.footer-bottom { display:flex; justify-content:space-between; padding-top:var(--space-6); font-family:var(--font-body); font-size:12px; color:var(--white-60); }

/* ---- SERVICE FLAGSHIP DOORS (module 01, 2026-08-27) ---- */
.svc-doors { display:grid; grid-template-columns:1fr 1fr; gap:var(--space-4); margin:var(--space-6) 0; }
.svc-door { display:flex; flex-direction:column; gap:6px; background:var(--ink-2); border:1px solid var(--lavender-ink); border-radius:14px; padding:var(--space-5); transition:transform .3s cubic-bezier(.22,1,.36,1), border-color .25s ease; }
.svc-door:hover { transform:translateY(-3px); border-color:var(--lavender); }
.svc-door.amber { border-color:rgba(232,149,109,.5); }
.svc-door.amber:hover { border-color:#E8956D; }
.svc-door-for { font-family:var(--font-ui); font-size:10px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:var(--white-60); }
.svc-door-name { font-family:var(--font-display); font-weight:700; font-size:17px; color:var(--white); }
.svc-door-cta { font-family:var(--font-ui); font-size:11px; font-weight:700; letter-spacing:.08em; text-transform:uppercase; color:var(--lavender); margin-top:2px; }
.svc-door.amber .svc-door-cta { color:#E8956D; }
@media (max-width:640px) { .svc-doors { grid-template-columns:1fr; } }

/* ---- D2: full-bleed image band (pillar 3 / AI Governance, 2026-08-27) ---- */
.gov-band { position:relative; min-height:560px; display:flex; align-items:center; overflow:hidden; margin-top:var(--space-16); }
.gov-band-bg { position:absolute; top:-9%; bottom:-9%; left:0; right:0; background-size:cover; background-position:center; background-color:var(--ink-3); will-change:transform; }
.gov-band-scrim { position:absolute; inset:0; background:linear-gradient(90deg, rgba(13,27,42,.92) 0%, rgba(13,27,42,.75) 38%, rgba(13,27,42,.15) 62%, transparent 78%); }
.gov-band-inner { position:relative; z-index:2; max-width:var(--container); margin:0 auto; padding:var(--space-16) var(--space-8); width:100%; }
.gov-band-content { max-width:540px; }
.gov-band-content .svc-desc { max-width:480px; }

/* ---- RESPONSIVE ---- */
@media (max-width:1024px) {
  .nav-links { overflow-x:auto; -webkit-overflow-scrolling:touch; scrollbar-width:none; max-width:52vw;
    -webkit-mask-image:linear-gradient(90deg,#000 92%,transparent); mask-image:linear-gradient(90deg,#000 92%,transparent); }
  .nav-links::-webkit-scrollbar { display:none; }
  /* Perf on touch devices: solid nav instead of backdrop blur; calm blob blur + drift */
  .nav.scrolled { background:rgba(21,38,58,.94); backdrop-filter:none; -webkit-backdrop-filter:none; }
  .subhero-blob { animation:none; }
  .sh-1, .sh-2, .sh-3, .sh-4 { filter:blur(36px); }
  .nav-link { white-space:nowrap; padding:8px 10px; font-size:13px; }
  .editorial-grid, .editorial-grid.reverse, .svc-block, .svc-block.reverse, .journey-grid, .band-inner { grid-template-columns:1fr; gap:var(--space-8); }
  .svc-block.reverse .svc-media, .svc-block.reverse .svc-copy { order:0; }
  .editorial-object { height:360px; }
  .eps-grid, .connect-grid { grid-template-columns:1fr; }
  .guest-band-inner, .guest-grid { grid-template-columns:1fr; gap:var(--space-8); }
  .guest-band-inner { padding:var(--space-10) var(--space-8) var(--space-10) var(--space-10); }
  .guest-band-cta .pill-cta { width:100%; justify-content:space-between; }
  .band-inner.center, .band-inner { text-align:left; }
  .footer-top { grid-template-columns:1fr 1fr; gap:var(--space-8); }
  /* Touch-target comfort: text links get a taller hit area on touch layouts (visual size unchanged) */
  .footer-list a, .footer-bottom a { display:inline-block; padding:6px 0; margin:-6px 0; }
  .footer-list li { margin-bottom:var(--space-4); }
}
@media (max-width:640px) {
  :root { --nav-h:72px; }
  .container, .nav-inner, .subhero-inner { padding:0 var(--space-5); }
  /* Nav on small phones: free space for the links row — mark-only logo, slim CTA, links take the rest */
  .nav-logo-text { display:none; }
  .nav-cta { font-size:12px; padding:8px 6px 8px 14px; gap:6px; }
  .nav-cta .arrow-circle { width:24px; height:24px; font-size:12px; }
  .nav-links { max-width:none; flex:1 1 auto; min-width:0; justify-content:flex-start; }
  .row-card { grid-template-columns:1fr; gap:var(--space-4); }
  .row-thumb, .row-cover { width:100%; }
  .team-grid { grid-template-columns:1fr 1fr; }
  .footer-top { grid-template-columns:1fr; }
  .s5-ladder { padding-left:26px; }
  .s5-dot { left:-26px; }
  .s5-card { padding:14px 16px; gap:12px; }
  .s5-name { font-size:16px; }
  .s5-desc { font-size:12.5px; }
  .guest-band { padding:var(--space-12) 0 var(--space-6); }
  .guest-band-inner { padding:var(--space-8) var(--space-5) var(--space-8) var(--space-6); }
  .guest { padding:var(--space-16) 0; }
  .guest-card { padding:var(--space-6); }
  .gov-band { min-height:0; }
  .gov-band-scrim { background:rgba(13,27,42,.90); }
  .gov-band-inner { padding:var(--space-12) var(--space-5); }
  .gov-band-content { max-width:none; }
}
@media (prefers-reduced-motion:reduce) {
  * { transition:none !important; animation:none !important; }
  .reveal, .word { opacity:1 !important; transform:none !important; }
}

/* === APPLE REFINEMENT PASS (2026-08-16) === */
a:focus-visible, button:focus-visible, input:focus-visible, textarea:focus-visible, select:focus-visible {
  outline:2px solid var(--lavender); outline-offset:3px; border-radius:6px;
}
.nav.scrolled { background:rgba(21,38,58,.78); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px); }

/* === ARC PRODUCT ROUTER (hub) === */
.doors { display:grid; grid-template-columns:1fr 1fr; gap:24px; }
.door { background:var(--ink-2); border:1px solid var(--ink-3); border-radius:20px; padding:38px 34px; display:flex; flex-direction:column; transition:transform .25s ease, border-color .25s ease; }
.door:hover { transform:translateY(-4px); border-color:var(--lavender-ink); }
.door-for { font-family:'DM Sans',sans-serif; font-size:11px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; color:var(--lavender-soft); margin-bottom:14px; }
.door-h { font-family:'Outfit',sans-serif; font-size:26px; font-weight:700; letter-spacing:-.01em; margin-bottom:10px; }
.door-q { font-family:'Sora',sans-serif; font-size:15.5px; font-weight:600; color:rgba(255,255,255,.8); line-height:1.55; margin-bottom:18px; }
.door-proof { font-size:12.5px; color:rgba(255,255,255,.6); font-weight:500; letter-spacing:.02em; margin-bottom:24px; }
.door .pill-cta { margin-top:auto; align-self:flex-start; }
.door.alt { grid-column:1 / -1; flex-direction:row; align-items:center; gap:40px; border-style:dashed; border-color:rgba(184,181,255,.35); }
.door.alt:hover { border-color:var(--lavender); }
.door.alt .door-body { flex:1; }
.door.alt .pill-cta { margin-top:0; }
.door-note { font-size:12.5px; color:rgba(255,255,255,.55); margin-top:10px; max-width:420px; }
@media (max-width:900px) { .doors { grid-template-columns:1fr; } .door.alt { flex-direction:column; align-items:flex-start; gap:18px; } }

/* comparison strip */
.cmp { margin-top:56px; border:1px solid var(--ink-3); border-radius:16px; overflow:hidden; }
.cmp-row { display:grid; grid-template-columns:1.1fr 1fr 1fr 1fr; border-bottom:1px solid var(--ink-3); }
.cmp-row:last-child { border-bottom:none; }
.cmp-row.head { background:var(--ink-2); }
.cmp-cell { padding:16px 18px; font-size:13.5px; line-height:1.5; color:rgba(255,255,255,.75); }
.cmp-cell.key { font-family:'DM Sans',sans-serif; font-size:11px; font-weight:600; letter-spacing:.12em; text-transform:uppercase; color:rgba(255,255,255,.5); display:flex; align-items:center; }
.cmp-row.head .cmp-cell { font-family:'Outfit',sans-serif; font-weight:700; font-size:15px; color:var(--white); }
.cmp-route { font-size:14px; color:rgba(255,255,255,.65); margin-top:22px; max-width:760px; line-height:1.6; }
.cmp-route strong { color:var(--lavender-soft); font-weight:600; }
@media (max-width:900px) { .cmp { display:none; } .cmp-route { margin-top:34px; } }

/* === 2026-08-16: podcast thumbs keep native color (AJ) === */
.eps-card .photo-wrap img, .pod-thumb .photo-wrap img { filter:none; }
/* === NAV DROPDOWNS === */
.nav-item { position:relative; }
.nav-drop { position:absolute; top:calc(100% + 6px); left:50%; transform:translate(-50%,8px); min-width:250px;
  background:rgba(21,38,58,.96); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border:1px solid var(--ink-3); border-radius:14px; padding:10px; opacity:0; visibility:hidden;
  transition:opacity .25s ease, transform .25s ease, visibility .25s; z-index:120; box-shadow:0 24px 60px rgba(0,0,0,.4); }
.nav-item:hover .nav-drop, .nav-item:focus-within .nav-drop { opacity:1; visibility:visible; transform:translate(-50%,0); }
.nav-drop a { display:block; padding:10px 14px; border-radius:9px; font-family:var(--font-ui); font-size:12px;
  font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--white-60); text-decoration:none;
  transition:background .2s ease, color .2s ease; white-space:nowrap; }
.nav-drop a:hover { background:var(--ink-3); color:var(--white); }
.nav-drop .drop-note { display:block; padding:4px 14px 8px; font-family:var(--font-ui); font-size:9.5px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--white-40); }
@media (max-width:1024px) { .nav-drop { display:none; } }

/* ==========================================================================
   BATCH-19 (2026-08-28) — nav dropdown (mobile + a11y), hero identity,
   article grid, entity showcase, product exhibits, in-card CTAs, cross-sell
   ========================================================================== */

/* ---- E. Nav dropdown: mobile tap-expand panel (sits outside the scroll row) ---- */
.nav-mobile-drop { display:none; position:absolute; left:0; right:0; top:100%;
  background:rgba(21,38,58,.98); backdrop-filter:blur(14px); -webkit-backdrop-filter:blur(14px);
  border-top:1px solid var(--ink-3); border-bottom:1px solid var(--ink-3);
  padding:10px var(--space-5) 14px; z-index:130; box-shadow:0 24px 60px rgba(0,0,0,.45); }
.nav-mobile-drop.open { display:block; }
.nav-mobile-drop .drop-note { display:block; padding:4px 4px 8px; font-family:var(--font-ui); font-size:9.5px;
  letter-spacing:.08em; text-transform:uppercase; color:var(--white-40); }
.nav-mobile-drop a { display:block; padding:12px 8px; border-radius:9px; font-family:var(--font-ui); font-size:12.5px;
  font-weight:600; letter-spacing:.05em; text-transform:uppercase; color:var(--white-80); text-decoration:none; }
.nav-mobile-drop a:hover, .nav-mobile-drop a:focus-visible { background:var(--ink-3); color:var(--white); }
.nav { position:fixed; }
@media (min-width:1025px) { .nav-mobile-drop { display:none !important; } }

/* ---- H. Sub-page hero identity lockup (dark sub-pages) ---- */
.pill-tag.hero-id { background:var(--lavender-ink); border-color:var(--lavender-ink); color:var(--white);
  font-size:12.5px; font-weight:700; letter-spacing:.14em; padding:11px 22px; }

/* ---- H. Product-page hero identity lockup (readiness / governance / adoption) ---- */
.prod-id { display:flex; flex-direction:column; align-items:flex-start; gap:10px; margin-bottom:22px; }
.prod-id-pill { display:inline-flex; align-items:center; gap:9px; font-family:var(--font-ui); font-size:11.5px;
  font-weight:700; letter-spacing:.16em; text-transform:uppercase; color:var(--white);
  background:var(--lavender-ink); border:1px solid var(--lavender-ink); border-radius:var(--radius-pill); padding:9px 18px; }
.prod-id-name { font-family:var(--font-display); font-weight:700; letter-spacing:-.01em; line-height:1.05;
  font-size:clamp(23px,2.7vw,34px); color:var(--lavender-soft); }
.prod-id-for { font-family:var(--font-ui); font-size:11px; font-weight:600; letter-spacing:.13em;
  text-transform:uppercase; color:rgba(255,255,255,.6); line-height:1.5; max-width:520px; }

/* ---- A. Home article cards: no title overflow ---- */
.pract-title { display:-webkit-box; -webkit-line-clamp:4; -webkit-box-orient:vertical;
  overflow:hidden; overflow-wrap:anywhere; }
.pract-in { overflow:hidden; }

/* ---- A. Writing rows: long titles never overflow ---- */
.row-title { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; overflow-wrap:anywhere; }
.row-excerpt { display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.rows-earlier .row-card { padding:var(--space-6) 0; opacity:.82; transition:opacity .3s ease, padding-left .3s ease; }
.rows-earlier .row-card:hover { opacity:1; }
.rows-earlier .row-title { font-size:clamp(17px,1.5vw,21px); -webkit-line-clamp:2; }
.rows-earlier .row-cover { width:132px; border-radius:12px; }
.rows-earlier .row-card { grid-template-columns:132px 1fr auto; }
.rows-earlier .row-excerpt { font-size:13px; -webkit-line-clamp:2; }
.earlier-head { margin:var(--space-20) 0 var(--space-6); }
.earlier-head h2 { font-family:var(--font-display); font-weight:700; font-size:clamp(24px,2.4vw,32px);
  letter-spacing:-.01em; color:var(--white); margin-top:var(--space-4); }
.earlier-head p { font-family:var(--font-body); font-size:14.5px; font-weight:600; color:var(--white-60);
  margin-top:var(--space-3); max-width:640px; line-height:1.6; }
@media (max-width:640px) { .rows-earlier .row-card { grid-template-columns:1fr; } .rows-earlier .row-cover { width:100%; } }

/* ---- B. Home services grid: four cards ----
   All four cards share ONE treatment: full-bleed photography, dark scrim,
   large white title, ghost chips, pill CTA. The two flagships are marked by
   a coloured eyebrow badge and a small framed detail from the real product,
   not by a different card format. Four across is tight, so type, chips and
   the CTA all step down a size inside .four and step back up at 2-up. */
.svcprev-grid.four { grid-template-columns:repeat(4,1fr); }
.svcprev-grid.four > .svccard { min-width:0; }
.svcprev-grid.four .svccard-in { padding:var(--space-6); }
.svcprev-grid.four .svccard-title { font-size:clamp(20px,1.72vw,28px); max-width:none;
  overflow-wrap:break-word; word-break:normal; hyphens:auto; }
.svcprev-grid.four .svctag { font-size:9.5px; padding:5px 10px; letter-spacing:.06em; }
.svcprev-grid.four .svccard-tags { gap:5px; margin-bottom:var(--space-4); }
.svcprev-grid.four .svccard-cta { font-size:10px; letter-spacing:.045em; gap:6px;
  padding:9px 6px 9px 14px; line-height:1.2; }
.svcprev-grid.four .svccard-cta .arrow-circle { width:26px; height:26px; flex:none; font-size:12px; }
.svccard.flagship { outline:1px solid var(--lavender-ink); outline-offset:-1px; }
.svccard.flagship.amber { outline-color:rgba(232,149,109,.6); }
.svc-flag { display:inline-flex; margin-bottom:var(--space-3);
  font-family:var(--font-ui); font-size:9.5px; font-weight:700; letter-spacing:.13em; text-transform:uppercase;
  color:var(--white); background:var(--lavender-ink); border-radius:var(--radius-pill); padding:6px 12px; }
.svccard.amber .svc-flag { background:#B95410; }
/* One scrim for all four cards: dark band at the top so the badge and title
   always clear the photograph, the photo breathing through the middle, dark
   again under the chips and the CTA. Replaces the flat wash the flagship
   render backgrounds needed. */
.svcprev-grid.four .photo-wrap::after {
  background:linear-gradient(180deg,
    rgba(13,27,42,.62) 0%, rgba(13,27,42,.40) 26%, rgba(13,27,42,.28) 46%,
    rgba(13,27,42,.58) 68%, rgba(13,27,42,.86) 86%, rgba(13,27,42,.93) 100%); }
/* A directional wash into the top-left corner where the badge and title sit,
   so a bright photograph (a white wall, a lit screen) can never eat the type.
   Diagonal, not a flat overlay — the photo keeps its light lower down. */
.svcprev-grid.four .photo-wrap::before { mix-blend-mode:normal;
  background:linear-gradient(158deg,
    rgba(13,27,42,.46) 0%, rgba(13,27,42,.20) 36%, rgba(13,27,42,0) 60%); }

/* Product-UI hint — one cropped detail of the real render, framed like a
   piece of hardware sitting on the card. It is a flex sibling between the
   title block and the CTA block, so it can never land under either. */
.svc-inset { position:relative; display:block; flex:none; align-self:flex-end;
  width:min(40%,138px); aspect-ratio:16/11; margin:var(--space-3) 0;
  border-radius:10px; overflow:hidden; background:#0E1B2B;
  border:1px solid rgba(184,181,255,.62); box-shadow:0 14px 30px rgba(4,10,20,.55); }
.svccard.amber .svc-inset { border-color:rgba(232,149,109,.62); }
.svc-inset img { position:absolute; inset:0; width:100%; height:100%; object-fit:cover;
  object-position:var(--ins-pos,center); transform:scale(var(--ins-z,2));
  transform-origin:var(--ins-pos,center); filter:brightness(.8) saturate(.88) contrast(1.04); }
.svc-inset::after { content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(180deg,rgba(13,27,42,.10),rgba(13,27,42,.42));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.10); }

@media (max-width:1180px) {
  .svcprev-grid.four { grid-template-columns:repeat(2,1fr); }
  .svcprev-grid.four .svccard-in { padding:var(--space-8); }
  .svcprev-grid.four .svccard-title { font-size:clamp(24px,3vw,34px); }
  .svcprev-grid.four .svctag { font-size:11px; padding:6px 14px; letter-spacing:.08em; }
  .svcprev-grid.four .svccard-tags { gap:6px; margin-bottom:var(--space-5); }
  .svcprev-grid.four .svccard-cta { font-size:11.5px; letter-spacing:.07em; padding:12px 8px 12px 20px; }
  .svcprev-grid.four .svccard-cta .arrow-circle { width:30px; height:30px; font-size:14px; }
  .svc-inset { width:min(32%,164px); }
}
@media (max-width:640px) { .svcprev-grid.four { grid-template-columns:1fr; }
  .svc-inset { width:min(36%,180px); } }

/* ---- K. Entities showcase (both product pages) ---- */
.ent-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.ent-card { background:#15263A; border:1px solid #1E3554; border-radius:14px; padding:18px 20px;
  display:flex; flex-direction:column; gap:7px; min-width:0;
  transition:transform .35s cubic-bezier(.22,1,.36,1), border-color .3s ease; }
.ent-card:hover { transform:translateY(-4px); border-color:var(--lavender-ink); }
.ent-name { font-family:var(--font-display); font-weight:700; font-size:16px; line-height:1.25;
  color:#fff; letter-spacing:-.01em; overflow-wrap:anywhere; }
.ent-note { font-family:var(--font-body); font-size:12.5px; font-weight:600; line-height:1.5;
  color:rgba(255,255,255,.62); }
.ent-card.soon { border-style:dashed; border-color:rgba(232,149,109,.45); background:rgba(21,38,58,.55); }
.ent-card.soon .ent-name { color:rgba(255,255,255,.82); }
.ent-soon-tag { align-self:flex-start; margin-top:2px; font-family:var(--font-ui); font-size:9.5px;
  font-weight:700; letter-spacing:.13em; text-transform:uppercase; color:#E8956D;
  border:1px solid rgba(232,149,109,.5); border-radius:6px; padding:4px 8px; }
.ent-groups { display:flex; flex-direction:column; gap:26px; }
.ent-group-label { font-family:var(--font-ui); font-size:11px; font-weight:700; letter-spacing:.16em;
  text-transform:uppercase; color:rgba(255,255,255,.6); margin-bottom:14px; display:block; }
.ent-foot { font-family:var(--font-body); font-size:14.5px; font-weight:600; line-height:1.65;
  color:rgba(255,255,255,.72); max-width:760px; margin-top:26px; }
.ent-foot strong { color:#fff; }
@media (max-width:900px) { .ent-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .ent-grid { grid-template-columns:1fr; } }

/* ---- G. Product exhibit frames (real product renders) ---- */
.exhibit { background:#15263A; border:1px solid #1E3554; border-radius:16px; overflow:hidden;
  min-width:0; box-shadow:0 24px 60px rgba(0,0,0,.34); }
.exhibit-top { display:flex; align-items:center; justify-content:space-between; gap:10px; min-width:0;
  padding:11px 16px; border-bottom:1px solid #1E3554; background:rgba(13,27,42,.6); }
.exhibit-crumb { font-family:var(--font-body); font-size:12px; font-weight:600; color:#fff; min-width:0;
  overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.exhibit-crumb span { color:rgba(255,255,255,.6); font-weight:400; }
.exhibit-dots { display:inline-flex; gap:6px; flex:none; }
.exhibit-dots i { width:9px; height:9px; border-radius:50%; background:rgba(255,255,255,.18); display:block; }
.exhibit img { display:block; width:100%; height:auto; }
.exhibit-cap { font-family:var(--font-body); font-size:12.5px; font-weight:600; color:rgba(255,255,255,.6);
  padding:11px 16px; border-top:1px solid #1E3554; background:rgba(13,27,42,.6); line-height:1.5; }
.exhibit-pair { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:22px; margin-top:34px; }
@media (max-width:900px) { .exhibit-pair { grid-template-columns:1fr; } }

/* ---- I. In-card tier CTAs ---- */
.t-cta { margin-top:18px; display:flex; }
.t-cta .pill-cta { width:100%; justify-content:space-between; font-size:11.5px; padding:12px 8px 12px 20px; }
.t-cta .pill-cta .arrow-circle { flex:none; }

/* ---- J. Cross-sell band ---- */
.xsell { padding:0 0 var(--space-24); }
.xsell-inner { background:var(--lavender-ink); border-radius:var(--radius-card);
  padding:var(--space-16) var(--space-16); display:grid; grid-template-columns:1fr auto;
  gap:var(--space-10); align-items:center; }
.xsell-eyebrow { display:inline-flex; font-family:var(--font-ui); font-size:11px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:#fff; border:1px solid var(--white-40);
  border-radius:var(--radius-pill); padding:8px 16px; margin-bottom:var(--space-5); }
.xsell-h { font-family:var(--font-display); font-weight:700; font-size:clamp(28px,3.4vw,46px);
  line-height:1.05; letter-spacing:-.01em; color:#fff; }
.xsell-sub { font-family:var(--font-body); font-size:15.5px; font-weight:600; color:#EFEEFF;
  line-height:1.65; margin-top:var(--space-4); max-width:620px; }
.xsell .pill-cta.primary { background:var(--ink); color:#fff; white-space:nowrap; }
@media (max-width:900px) { .xsell-inner { grid-template-columns:1fr; padding:var(--space-10); }
  .xsell .pill-cta.primary { white-space:normal; } }

/* ---- M. Rulebooks / crosswalk panel (governance) ---- */
.rules-grid { display:grid; grid-template-columns:1.05fr .95fr; gap:var(--space-12); align-items:start; }
.rules-panel { background:#15263A; border:1px solid #1E3554; border-radius:18px; padding:26px 26px 28px; }
.rules-block + .rules-block { margin-top:26px; padding-top:24px; border-top:1px solid rgba(255,255,255,.10); }
.rules-block-label { display:block; font-family:var(--font-ui); font-size:10.5px; font-weight:700;
  letter-spacing:.16em; text-transform:uppercase; color:rgba(255,255,255,.78); margin-bottom:6px; }
.rules-block-note { font-family:var(--font-body); font-size:13px; font-weight:600; line-height:1.55;
  color:rgba(255,255,255,.6); margin-bottom:14px; }
.rules-chips { display:flex; flex-wrap:wrap; gap:9px; }
.rules-chips .chip { display:inline-block; font-family:var(--font-body); font-size:12.5px; font-weight:600;
  padding:8px 14px; border-radius:8px; background:rgba(255,255,255,.05); border:1px solid #1E3554;
  color:rgba(255,255,255,.78); }
.rules-chips .chip.req { border-color:rgba(184,181,255,.45); color:#D8D6FF; font-weight:700; }
.rules-chips .chip.setting { border-color:rgba(232,149,109,.45); color:#F0B694; }
@media (max-width:960px) { .rules-grid { grid-template-columns:1fr; gap:var(--space-8); } }

/* ---- G. Service module media slot that carries a framed product render ---- */
.svc-media.exhibit-slot { aspect-ratio:auto; overflow:visible; border-radius:0; min-width:0; }
.svc-media.exhibit-slot .exhibit { width:100%; }

/* ---- I. tier cards: CTA pinned to the bottom so the three/two line up ---- */
.tiers .tier { display:flex; flex-direction:column; }
.t-cta { margin-top:auto; padding-top:18px; }
.ent-grid.four { grid-template-columns:repeat(4,minmax(0,1fr)); }
@media (max-width:1100px) { .ent-grid.four { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px) { .ent-grid.four { grid-template-columns:1fr; } }

/* ==================================================================
   EXHIBIT CAROUSEL (2026-08-28) — one browser-style frame that cycles
   through several product renders instead of stacking them side by side.
   Reuses the .exhibit chrome (radii, borders, top bar, caption bar);
   only the image area, the arrows and the dot indicators are new.
   Behaviour lives in artha.js (initExhibitCarousels).
   ================================================================== */
.exhibit-carousel { margin:34px auto 0; max-width:980px; }
.exhibit-carousel .exhibit { width:100%; }
.exhibit-crumb .exh-crumb-main { color:#fff; font-weight:600; }
/* In a services module the carousel is the column, not a centred figure. */
.exhibit-slot .exhibit-carousel { margin:0; max-width:none; }

/* Segmented product toggle — same pill language as the nav tabs. Two plain
   buttons with aria-pressed; the carousel swaps its slide set beneath them. */
.exh-toggle { display:inline-flex; gap:4px; padding:4px; margin:0 0 14px;
  border-radius:var(--radius-pill); background:var(--white-08); border:1px solid var(--white-12); }
.exh-toggle-btn { appearance:none; -webkit-appearance:none; border:0; cursor:pointer; white-space:nowrap;
  padding:9px 18px; border-radius:var(--radius-pill); background:transparent;
  font-family:var(--font-ui); font-size:12.5px; font-weight:600; letter-spacing:.02em; color:var(--white-60);
  transition:background .3s cubic-bezier(.22,1,.36,1), color .3s cubic-bezier(.22,1,.36,1); }
.exh-toggle-btn:hover { color:var(--white); }
.exh-toggle-btn.is-on { background:var(--lavender-ink); color:var(--white); }
.exh-toggle-btn:focus-visible { outline:2px solid #E8956D; outline-offset:2px; }
.exh-slide[hidden] { display:none !important; }
@media (max-width:420px) {
  .exh-toggle { display:flex; width:100%; }
  .exh-toggle-btn { flex:1 1 0; padding:9px 6px; font-size:11.5px; text-align:center; }
}
@media (prefers-reduced-motion: reduce) { .exh-toggle-btn { transition:none; } }

/* Image area — fixed box so cycling never reflows the page.
   --exh-ar is set per carousel to the render that fits best;
   --exh-mat is the mat colour the other renders letterbox against. */
.exh-stage { position:relative; aspect-ratio:var(--exh-ar, 16/10);
  background:var(--exh-mat, #F8F9FD); overflow:hidden; touch-action:pan-y;
  transition:aspect-ratio .45s cubic-bezier(.22,1,.36,1); }
.exh-slide { position:absolute; inset:0; opacity:0; visibility:hidden; }
.exh-slide.is-active { opacity:1; visibility:visible; }
.exh-slide img { width:100%; height:100%; object-fit:contain; object-position:center center; display:block; }
/* No JS / no carousel init: slides stack in flow, nothing is hidden. */
.exhibit-carousel:not(.is-live) .exh-stage { aspect-ratio:auto; }
.exhibit-carousel:not(.is-live) .exh-slide { position:static; opacity:1; visibility:visible; }
.exhibit-carousel:not(.is-live) .exh-slide img { height:auto; }

/* Arrows — subtle, always present so they read as controls, lift on hover */
.exh-arrow { position:absolute; top:50%; transform:translateY(-50%); z-index:4;
  width:40px; height:40px; border-radius:50%; border:1px solid rgba(255,255,255,.28);
  background:rgba(13,27,42,.62); color:#fff; font-size:16px; line-height:1; cursor:pointer;
  display:flex; align-items:center; justify-content:center; padding:0;
  backdrop-filter:blur(6px); -webkit-backdrop-filter:blur(6px); opacity:.72;
  transition:opacity .25s ease, background .25s ease, border-color .25s ease; }
.exh-arrow:hover { opacity:1; background:rgba(13,27,42,.86); border-color:rgba(255,255,255,.5); }
.exh-arrow:focus-visible { outline:2px solid #E8956D; outline-offset:2px; opacity:1; }
.exh-arrow.prev { left:12px; }
.exh-arrow.next { right:12px; }

/* Caption bar carries the per-slide plain-English note plus the dots */
.exhibit-cap.exh-cap { display:flex; align-items:center; justify-content:space-between; gap:16px; }
.exh-cap-text { min-width:0; }
.exh-dots { display:inline-flex; align-items:center; gap:7px; flex:none; }
.exh-dot { width:8px; height:8px; padding:0; border-radius:50%; cursor:pointer;
  border:1px solid rgba(255,255,255,.34); background:transparent;
  transition:background .25s ease, border-color .25s ease, transform .25s ease; }
.exh-dot:hover { background:rgba(255,255,255,.45); transform:translateY(-1px); }
.exh-dot[aria-current="true"] { background:#E8956D; border-color:#E8956D; }
.exh-dot:focus-visible { outline:2px solid #E8956D; outline-offset:3px; }

@media (max-width:768px) {
  .exhibit-carousel { margin-top:26px; }
  .exh-arrow { width:34px; height:34px; font-size:14px; opacity:.85; }
  .exh-arrow.prev { left:8px; }
  .exh-arrow.next { right:8px; }
  .exhibit-cap.exh-cap { flex-direction:column; align-items:flex-start; gap:10px; }
}
@media (prefers-reduced-motion: reduce) {
  .exh-arrow, .exh-dot { transition:none; }
}
