/* DPDP Ready by Mirav Labs — shared styles */
/* Palette "Signal": cool white base, near-black ink, raspberry accent, indigo secondary, geometric sans. */
:root{
  --ink:#0a0a12; --ink-2:#2f3040; --muted:#686a7d; --line:#e6e7ee; --line-2:#d2d4de;
  --paper:#f8f9fc; --card:#ffffff; --alt:#f1f2f7; --tint:#fff1f6;
  --accent:#e0115f; --accent-2:#b80d4e; --accent-ink:#ffffff; --accent-soft:#ffe8f0;
  --indigo:#4338ca; --indigo-soft:#ecebff;
  --grad:linear-gradient(90deg,#e0115f 0%,#8b2fd8 55%,#4338ca 100%);
  --warn:#a86a05; --warn-soft:#fff4d6; --risk:#c81e3a; --risk-soft:#fde8ec;
  --hero:#ffffff; --hero-ink:#0a0a12; --hero-muted:#5f6173; --hero-line:#eceef4;
  --dk:#0a0a12; --dk-2:#15151f; --dk-line:#262736; --dk-ink:#f5f5f8; --dk-muted:#9c9db0; --dk-acc:#ff4f8b;
  --serif:"Space Grotesk",Inter,system-ui,sans-serif;
  --sans:"Inter",system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;
  --mono:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,monospace;
  --r:10px; --shadow:0 1px 2px rgba(10,10,18,.05),0 10px 30px rgba(10,10,18,.06);
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --ink:#f4f4f8; --ink-2:#c9cad6; --muted:#9496a8; --line:#23242e; --line-2:#323442;
    --paper:#0b0b10; --card:#13141b; --alt:#101117; --tint:#1e0f17;
    --accent:#ff4f8b; --accent-2:#ff77a6; --accent-ink:#1a0610; --accent-soft:#2a0f1b;
    --indigo:#8b85ff; --indigo-soft:#1c1a3a;
    --warn:#e9b44c; --warn-soft:#2a2110; --risk:#ff6b81; --risk-soft:#2e1218;
    --hero:#0b0b10; --hero-ink:#f4f4f8; --hero-muted:#9496a8; --hero-line:#1c1d26;
    --dk:#050508; --dk-2:#101018; --dk-line:#22232f;
    --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.3);
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --ink:#f4f4f8; --ink-2:#c9cad6; --muted:#9496a8; --line:#23242e; --line-2:#323442;
  --paper:#0b0b10; --card:#13141b; --alt:#101117; --tint:#1e0f17;
  --accent:#ff4f8b; --accent-2:#ff77a6; --accent-ink:#1a0610; --accent-soft:#2a0f1b;
  --indigo:#8b85ff; --indigo-soft:#1c1a3a;
  --warn:#e9b44c; --warn-soft:#2a2110; --risk:#ff6b81; --risk-soft:#2e1218;
  --hero:#0b0b10; --hero-ink:#f4f4f8; --hero-muted:#9496a8; --hero-line:#1c1d26;
  --dk:#050508; --dk-2:#101018; --dk-line:#22232f;
  --shadow:0 1px 2px rgba(0,0,0,.4),0 10px 30px rgba(0,0,0,.3);
  color-scheme:dark;
}

*{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.62 var(--sans);
  -webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;overflow-x:hidden}
img,svg{max-width:100%;display:block}
a{color:var(--accent);text-underline-offset:3px}
a:hover{color:var(--accent-2)}
h1,h2,h3{font-family:var(--serif);font-weight:600;letter-spacing:-.035em;line-height:1.06;margin:0 0 .5em}
h1{font-size:clamp(2.3rem,5.6vw,4.1rem)}
h2{font-size:clamp(1.8rem,3.6vw,2.7rem)}
h3{font-size:1.32rem;line-height:1.25}
h4{font:600 .78rem/1.3 var(--sans);letter-spacing:.09em;text-transform:uppercase;color:var(--muted);margin:0 0 .7em}
p{margin:0 0 1em}
em.acc{font-style:normal;color:var(--accent)}
.wrap{max-width:1160px;margin:0 auto;padding:0 24px}
.narrow{max-width:780px}
.eyebrow{display:inline-flex;align-items:center;gap:.55em;font:600 .76rem/1 var(--sans);letter-spacing:.11em;
  text-transform:uppercase;color:var(--accent);margin-bottom:1.1rem}
.eyebrow::before{content:"";width:22px;height:1.5px;background:currentColor}
.lede{font-size:1.16rem;color:var(--ink-2);max-width:62ch}
.muted{color:var(--muted)}
.small{font-size:.88rem}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}

/* nav */
.nav{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--paper) 88%,transparent);
  backdrop-filter:saturate(1.4) blur(10px);-webkit-backdrop-filter:saturate(1.4) blur(10px);border-bottom:1px solid var(--line)}
.nav .wrap{display:flex;align-items:center;gap:28px;height:64px}
.brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ink);font-weight:650;letter-spacing:-.01em}
.brand .mark{width:30px;height:30px;border-radius:8px;background:var(--accent);display:grid;place-items:center}
.brand .mark svg{width:18px;height:18px}
.brand small{display:block;font-weight:500;color:var(--muted);font-size:.72rem;letter-spacing:.02em;margin-top:-2px}
.nav ul{display:flex;gap:22px;list-style:none;margin:0 0 0 auto;padding:0}
.nav ul a{color:var(--ink-2);text-decoration:none;font-size:.93rem;font-weight:500}
.nav ul a:hover,.nav ul a[aria-current]{color:var(--accent)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5em;padding:.78em 1.25em;border-radius:8px;
  font:600 .95rem/1.1 var(--sans);text-decoration:none;cursor:pointer;border:1px solid transparent;transition:.15s}
.btn-p{background:var(--accent);color:var(--accent-ink)}
.btn-p:hover{background:var(--accent-2);color:var(--accent-ink)}
.btn-g{border-color:var(--line-2);color:var(--ink);background:transparent}
.btn-g:hover{border-color:var(--accent);color:var(--accent)}
.btn-lg{padding:1em 1.5em;font-size:1.02rem}
.nav .btn{padding:.6em 1em;font-size:.88rem}
.menu-t{display:none;margin-left:auto;background:none;border:0;color:var(--ink);padding:8px;cursor:pointer}
@media (max-width:900px){
  .nav ul{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;gap:0;background:var(--paper);
    border-bottom:1px solid var(--line);padding:8px 16px 16px}
  .nav ul.open{display:flex}
  .nav ul a{display:block;padding:12px 4px;border-bottom:1px solid var(--line)}
  .menu-t{display:block}
  .nav .wrap>.btn{display:none}
}

/* hero */
.hero{background:var(--hero);color:var(--hero-ink);position:relative;overflow:hidden;padding:88px 0 96px}
.hero::before{content:"";position:absolute;inset:0;background:
  radial-gradient(900px 460px at 88% -10%,rgba(224,17,95,.11),transparent 62%),
  radial-gradient(760px 420px at -10% 110%,rgba(67,56,202,.10),transparent 60%);pointer-events:none}
.hero .grid-bg{position:absolute;inset:0;opacity:.9;pointer-events:none;
  background-image:linear-gradient(var(--hero-line) 1px,transparent 1px),linear-gradient(90deg,var(--hero-line) 1px,transparent 1px);
  background-size:48px 48px;mask-image:linear-gradient(180deg,#000,transparent 85%)}
.hero .wrap{position:relative;display:grid;grid-template-columns:1.25fr .9fr;gap:56px;align-items:center}
.hero .eyebrow{color:var(--accent)}
.hero h1{color:var(--hero-ink)}
.hero h1 em,.g-hero h1 em,.cs-hero h1 em{font-style:normal;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.hero .lede{color:var(--ink-2)}
.hero .btn-g{color:var(--ink);border-color:var(--line-2);background:var(--card)}
.hero .btn-g:hover{border-color:var(--accent);color:var(--accent)}
.cta-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.trust{display:flex;flex-wrap:wrap;gap:8px 22px;margin-top:30px;color:var(--hero-muted);font-size:.88rem}
.trust span{display:inline-flex;align-items:center;gap:8px}
.trust svg{width:16px;height:16px;color:var(--accent)}
.clock{background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02));border:1px solid var(--line);
  border-radius:12px;padding:26px;backdrop-filter:blur(6px)}
.clock h4{color:var(--muted)}
.clock .big{display:flex;gap:10px;margin:10px 0 18px}
.clock .u{flex:1;background:rgba(0,0,0,.25);border:1px solid var(--line);border-radius:12px;padding:12px 6px;text-align:center}
.clock .u b{display:block;font:500 2.2rem/1 var(--serif);color:#fff;font-variant-numeric:tabular-nums}
.clock .u i{font-style:normal;font-size:.7rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.tl{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.tl li{display:grid;grid-template-columns:110px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);font-size:.9rem;color:var(--ink-2)}
.tl li b{color:#fff;font-weight:600;font-size:.84rem}
.tl li .st{display:inline-block;font-size:.68rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase;padding:2px 7px;border-radius:99px;margin-left:6px;vertical-align:1px}
.st.live{background:var(--accent-soft);color:var(--accent)}.st.next{background:var(--warn-soft);color:var(--warn)}
@media (max-width:960px){.hero .wrap{grid-template-columns:1fr;gap:40px}.hero{padding:64px 0 72px}}

/* sections */
section{padding:96px 0}
section.alt{background:var(--alt);border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
section.tint{background:var(--tint)}
.sec-h{max-width:760px;margin-bottom:48px}
.sec-h.c{margin-left:auto;margin-right:auto;text-align:center}
.sec-h.c .eyebrow::before{display:none}
@media (max-width:700px){section{padding:68px 0}.wrap{padding:0 16px}}

.grid{display:grid;gap:20px}
.g2{grid-template-columns:repeat(2,1fr)}.g3{grid-template-columns:repeat(3,1fr)}.g4{grid-template-columns:repeat(4,1fr)}
@media (max-width:960px){.g3,.g4{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){.g2,.g3,.g4{grid-template-columns:1fr}}
.card{background:var(--card);border:1px solid var(--line);border-radius:var(--r);padding:26px;box-shadow:var(--shadow)}
section.alt .card{box-shadow:none;background:var(--paper)}
.card p:last-child{margin-bottom:0}
.ic{width:40px;height:40px;border-radius:10px;background:var(--accent-soft);color:var(--accent);display:grid;place-items:center;margin-bottom:16px}
.ic svg{width:21px;height:21px}
.tag{display:inline-block;font:600 .7rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:5px 8px;border-radius:6px;
  background:var(--accent-soft);color:var(--accent)}
.tag.w{background:var(--warn-soft);color:var(--warn)}.tag.r{background:var(--risk-soft);color:var(--risk)}
.rule{font:500 .78rem/1 var(--mono);color:var(--muted)}

/* stats */
.stats{display:grid;grid-template-columns:repeat(4,1fr);gap:0;border:1px solid var(--line);border-radius:var(--r);background:var(--card);overflow:hidden}
.stats>div{padding:26px 24px;border-right:1px solid var(--line)}
.stats>div:last-child{border-right:0}
.stats b{display:block;font:500 2.5rem/1 var(--serif);color:var(--ink);letter-spacing:-.02em;margin-bottom:8px}
.stats span{font-size:.9rem;color:var(--muted)}
@media (max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}.stats>div:nth-child(2){border-right:0}.stats>div:nth-child(-n+2){border-bottom:1px solid var(--line)}}

/* obligation map */
.ob{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.ob .card{padding:22px}
.ob h3{font-size:1.12rem;margin:.6em 0 .4em}
.ob p{font-size:.93rem;color:var(--ink-2)}
@media (max-width:960px){.ob{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.ob{grid-template-columns:1fr}}

/* penalty table */
.pen{width:100%;border-collapse:collapse;background:var(--card);border:1px solid var(--line);border-radius:var(--r);overflow:hidden}
.pen th,.pen td{text-align:left;padding:15px 18px;border-bottom:1px solid var(--line);vertical-align:top}
.pen th{font:600 .76rem/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
.pen td:last-child{white-space:nowrap;font:500 1.15rem/1.2 var(--serif);color:var(--risk);text-align:right}
.pen tr:last-child td{border-bottom:0}
@media (max-width:600px){.pen td,.pen th{padding:12px}.pen td:last-child{font-size:1rem}}

/* services */
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;align-items:stretch}
.svc .card{display:flex;flex-direction:column;padding:30px}
.svc .card.hl{border:1.5px solid var(--accent);position:relative}
.svc .card.hl::before{content:"Most chosen";position:absolute;top:-12px;left:26px;background:var(--accent);color:var(--accent-ink);
  font:700 .7rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:6px 10px;border-radius:99px}
.svc .dur{font:500 .86rem/1 var(--sans);color:var(--muted);margin:-.2em 0 1.1em}
.svc ul{list-style:none;padding:0;margin:0 0 24px;flex:1}
.svc li{position:relative;padding:7px 0 7px 26px;font-size:.94rem;border-bottom:1px dashed var(--line)}
.svc li::before{content:"";position:absolute;left:2px;top:13px;width:12px;height:7px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.svc .out{font-size:.88rem;background:var(--paper);border-radius:10px;padding:12px 14px;margin-bottom:20px;color:var(--ink-2)}
.svc .out b{color:var(--ink)}
@media (max-width:960px){.svc{grid-template-columns:1fr}}

/* process */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:0;counter-reset:s;position:relative}
.steps>div{padding:0 22px 0 0;position:relative}
.steps>div::before{counter-increment:s;content:counter(s,decimal-leading-zero);display:grid;place-items:center;width:46px;height:46px;border-radius:50%;
  border:1.5px solid var(--accent);color:var(--accent);font:500 1.05rem/1 var(--serif);background:var(--paper);position:relative;z-index:1;margin-bottom:18px}
section.alt .steps>div::before{background:var(--card)}
.steps>div::after{content:"";position:absolute;top:23px;left:46px;right:0;height:1.5px;background:var(--line-2)}
.steps>div:last-child::after{display:none}
.steps .wk{font:600 .74rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}
.steps h3{font-size:1.2rem;margin:.4em 0 .4em}
.steps p{font-size:.93rem;color:var(--ink-2)}
@media (max-width:900px){.steps{grid-template-columns:1fr 1fr;gap:34px 0}.steps>div:nth-child(2)::after{display:none}}
@media (max-width:560px){.steps{grid-template-columns:1fr}.steps>div::after{display:none}}

/* split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:56px;align-items:center}
@media (max-width:900px){.split{grid-template-columns:1fr;gap:36px}}
.checks{list-style:none;padding:0;margin:0}
.checks li{display:flex;gap:12px;padding:10px 0;border-bottom:1px solid var(--line)}
.checks li svg{flex:0 0 20px;width:20px;height:20px;color:var(--accent);margin-top:3px}
.checks b{display:block}

/* case teaser */
.case{display:grid;grid-template-columns:1.1fr 1fr;border-radius:14px;overflow:hidden;border:1px solid var(--line);background:var(--card);box-shadow:var(--shadow)}
.case .l{padding:44px;background:var(--dk) radial-gradient(500px 260px at 100% 0,rgba(224,17,95,.35),transparent 60%);color:var(--dk-ink)}
.case .l h3{font-size:1.9rem;color:#fff}
.case .l p{color:#c9cad6}
.case .l .eyebrow{color:var(--dk-acc)}
.case .r{padding:36px;display:grid;grid-template-columns:1fr 1fr;gap:26px 22px;align-content:center}
.case .r b{display:block;font:500 2.2rem/1 var(--serif);color:var(--accent);margin-bottom:6px}
.case .r span{font-size:.88rem;color:var(--muted)}
@media (max-width:900px){.case{grid-template-columns:1fr}.case .l,.case .r{padding:28px}}

/* quiz */
.quiz{display:grid;grid-template-columns:1.3fr 1fr;gap:28px;align-items:start}
.q{display:flex;justify-content:space-between;align-items:center;gap:16px;padding:14px 0;border-bottom:1px solid var(--line)}
.q p{margin:0;font-size:.96rem}
.q .rule{display:block;margin-top:4px}
.yn{display:flex;flex:0 0 auto;border:1px solid var(--line-2);border-radius:9px;overflow:hidden}
.yn button{border:0;background:transparent;color:var(--ink-2);padding:8px 14px;font:600 .84rem/1 var(--sans);cursor:pointer}
.yn button+button{border-left:1px solid var(--line-2)}
.yn button[aria-pressed="true"].y{background:var(--accent);color:var(--accent-ink)}
.yn button[aria-pressed="true"].n{background:var(--risk);color:#fff}
.score{position:sticky;top:88px}
.meter{height:10px;border-radius:99px;background:var(--line);overflow:hidden;margin:14px 0 6px}
.meter i{display:block;height:100%;width:0;background:var(--accent);transition:width .35s,background .35s}
.score .num{font:500 3.3rem/1 var(--serif)}
.gaps{list-style:none;margin:16px 0 0;padding:0;font-size:.9rem}
.gaps li{padding:9px 0 9px 22px;position:relative;border-top:1px solid var(--line)}
.gaps li::before{content:"";position:absolute;left:3px;top:16px;width:8px;height:8px;border-radius:50%;background:var(--risk)}
@media (max-width:900px){.quiz{grid-template-columns:1fr}.score{position:static}}
@media (max-width:480px){.q{flex-direction:column;align-items:flex-start}}

/* faq */
.faq details{border-bottom:1px solid var(--line);padding:4px 0}
.faq summary{cursor:pointer;list-style:none;padding:18px 36px 18px 0;font:500 1.12rem/1.35 var(--serif);position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:14px;font:300 1.6rem/1 var(--sans);color:var(--accent);transition:transform .2s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq details>div{padding:0 0 20px;color:var(--ink-2)}

/* contact */
.contact{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}
@media (max-width:900px){.contact{grid-template-columns:1fr}}
form .row{display:grid;grid-template-columns:1fr 1fr;gap:14px}
@media (max-width:560px){form .row{grid-template-columns:1fr}}
label{display:block;font-size:.84rem;font-weight:600;color:var(--ink-2);margin:0 0 6px}
.f{margin-bottom:14px}
input,select,textarea{width:100%;font:inherit;font-size:.96rem;padding:.75em .85em;border:1px solid var(--line-2);border-radius:10px;
  background:var(--paper);color:var(--ink)}
input:focus,select:focus,textarea:focus{outline:2px solid color-mix(in srgb,var(--accent) 40%,transparent);border-color:var(--accent)}
textarea{min-height:96px;resize:vertical}
.consent{display:flex;gap:10px;align-items:flex-start;font-size:.84rem;color:var(--muted);margin:6px 0 18px}
.consent input{width:18px;height:18px;margin-top:2px;flex:0 0 18px}
.form-msg{display:none;margin-top:14px;padding:14px 16px;border-radius:10px;font-size:.93rem}
.form-msg.ok{display:block;background:var(--accent-soft);color:var(--ink)}
.form-msg.err{display:block;background:var(--risk-soft);color:var(--risk)}

/* footer */
footer{background:var(--dk);color:var(--dk-muted);padding:56px 0 32px;font-size:.9rem}
footer .cols{display:grid;grid-template-columns:1.5fr repeat(5,1fr);gap:24px}
footer .cols a{font-size:.86rem}
footer h4{color:var(--dk-muted)}
footer a{color:#d6d7e0;text-decoration:none;display:block;padding:3px 0}
footer a:hover{color:var(--dk-acc)}
footer .brand{color:#fff}
footer .base{border-top:1px solid var(--dk-line);margin-top:40px;padding-top:22px;display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap;font-size:.8rem}
@media (max-width:1000px){footer .cols{grid-template-columns:1fr 1fr 1fr}}
@media (max-width:600px){footer .cols{grid-template-columns:1fr 1fr}footer .cols>div:first-child{grid-column:1/-1}}

/* case study page */
.cs-hero{padding:72px 0 56px;background:var(--hero);border-bottom:1px solid var(--line);color:var(--hero-ink);position:relative;overflow:hidden}
.cs-hero::before{content:"";position:absolute;inset:0;background:radial-gradient(800px 380px at 90% 0,rgba(224,17,95,.10),transparent 60%),radial-gradient(600px 300px at 0 100%,rgba(67,56,202,.08),transparent 60%)}
.cs-hero .wrap{position:relative}
.cs-hero h1{color:var(--ink);max-width:20ch;font-size:clamp(2.1rem,5vw,3.5rem)}
.cs-hero .lede{color:var(--ink-2)}
.cs-hero .eyebrow{color:var(--accent)}
.crumb{font-size:.84rem;color:var(--hero-muted);margin-bottom:22px}
.crumb a{color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin-top:40px;border:1px solid var(--line);border-radius:10px;overflow:hidden;background:var(--card)}
.facts div{padding:18px;border-right:1px solid var(--line)}
.facts div:last-child{border-right:0}
.facts h4{color:var(--muted);margin-bottom:.4em}
.facts p{margin:0;color:var(--ink);font-size:.95rem}
@media (max-width:900px){.facts{grid-template-columns:1fr 1fr}.facts div{border-bottom:1px solid var(--line)}}
.cs{display:grid;grid-template-columns:230px 1fr;gap:56px;align-items:start}
.toc{position:sticky;top:88px;font-size:.88rem}
.toc a{display:block;color:var(--muted);text-decoration:none;padding:6px 0 6px 14px;border-left:2px solid var(--line)}
.toc a:hover,.toc a.on{color:var(--accent);border-left-color:var(--accent)}
@media (max-width:960px){.cs{grid-template-columns:1fr}.toc{display:none}}
.prose{max-width:760px;min-width:0}
.cs>*,.split>*,.contact>*,.quiz>*{min-width:0}
.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);margin-top:0;padding-top:20px}
.prose h3{margin-top:1.6em}
.prose>section{padding:0 0 56px;margin:0 0 8px;border-bottom:1px solid var(--line);scroll-margin-top:80px}
.prose>section:last-child{border-bottom:0}
.prose ul.b{padding-left:1.2em}.prose ul.b li{margin-bottom:.5em}
.pull{font:500 1.4rem/1.4 var(--serif);border-left:3px solid var(--accent);padding:4px 0 4px 22px;margin:28px 0;color:var(--ink)}
.tbl{width:100%;border-collapse:collapse;font-size:.92rem;margin:20px 0;background:var(--card);border:1px solid var(--line);border-radius:12px;overflow:hidden}
.tbl th,.tbl td{padding:11px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.tbl th{font:600 .72rem/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted);background:var(--paper)}
.tbl tr:last-child td{border-bottom:0}
.tbl td.n{font-variant-numeric:tabular-nums;white-space:nowrap}
.tbl .good{color:var(--accent);font-weight:600}.tbl .bad{color:var(--risk);font-weight:600}
.scroll-x{overflow-x:auto;-webkit-overflow-scrolling:touch}
.callout{background:var(--card);border:1px solid var(--line);border-left:4px solid var(--accent);border-radius:12px;padding:20px 22px;margin:24px 0}
.callout.w{border-left-color:var(--warn)}
.callout h4{margin-bottom:.5em}
.callout p:last-child{margin:0}
.finding{display:grid;grid-template-columns:auto 1fr;gap:14px;padding:16px 0;border-bottom:1px solid var(--line)}
.finding .sev{font:700 .68rem/1 var(--sans);letter-spacing:.06em;text-transform:uppercase;padding:6px 8px;border-radius:6px;height:fit-content;min-width:64px;text-align:center}
.sev.h{background:var(--risk-soft);color:var(--risk)}.sev.m{background:var(--warn-soft);color:var(--warn)}.sev.l{background:var(--accent-soft);color:var(--accent)}
.finding b{display:block;margin-bottom:2px}
.finding p{margin:0;font-size:.93rem;color:var(--ink-2)}
.gantt{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:20px;margin:22px 0;font-size:.82rem}
.gantt .gr{display:grid;grid-template-columns:170px 1fr;gap:10px;align-items:center;padding:5px 0}
.gantt .bar{position:relative;height:22px;background:repeating-linear-gradient(90deg,transparent 0 calc(6.25% - 1px),var(--line) calc(6.25% - 1px) 6.25%)}
.gantt .bar i{position:absolute;top:3px;bottom:3px;border-radius:5px;background:var(--accent)}
.gantt .bar i.b{background:var(--indigo)}.gantt .bar i.c{background:var(--warn)}.gantt .bar i.d{background:#8b2fd8}
.gantt .hd{color:var(--muted);font-size:.72rem;display:flex;justify-content:space-between}
@media (max-width:600px){.gantt .gr{grid-template-columns:110px 1fr}}
figure{margin:28px 0}
figure.dia{background:var(--card);border:1px solid var(--line);border-radius:10px;padding:22px}
figcaption{font-size:.84rem;color:var(--muted);margin-top:12px}
.dia svg text{font-family:var(--sans)}
.note{font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:20px}
.kv{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:24px 0}
.kv div{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px}
.kv b{display:block;font:500 1.9rem/1 var(--serif);color:var(--accent);margin-bottom:6px}
.kv span{font-size:.85rem;color:var(--muted)}
@media (max-width:640px){.kv{grid-template-columns:1fr 1fr}}

.reveal{opacity:0;transform:translateY(14px);transition:opacity .6s ease,transform .6s ease}
.reveal.in{opacity:1;transform:none}
@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}
.sticky-cta{display:none}
@media (max-width:700px){
  .sticky-cta{display:flex;position:fixed;left:12px;right:12px;bottom:12px;z-index:60;box-shadow:0 8px 30px rgba(0,0,0,.25)}
  body{padding-bottom:72px}
}

/* ---------- v2: motion, guides, infographics ---------- */
.progress{position:fixed;top:0;left:0;right:0;height:3px;z-index:70;pointer-events:none}
.progress i{display:block;height:100%;background:var(--grad);transform:scaleX(0);transform-origin:0 50%}
.nav{transition:box-shadow .2s}
.nav.scrolled{box-shadow:0 6px 24px rgba(10,10,18,.07)}
.h-sm{font-size:1.5rem}
html:not(.js) .reveal{opacity:1;transform:none}

/* guide hero */
.g-hero{background:var(--hero);color:var(--hero-ink);border-bottom:1px solid var(--line);padding:56px 0 52px;position:relative;overflow:hidden}
.g-bg{position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(700px 320px at 88% -20%,rgba(224,17,95,.12),transparent 60%),
  radial-gradient(500px 260px at 0% 120%,rgba(67,56,202,.10),transparent 60%)}
.g-bg::after{content:"";position:absolute;inset:0;opacity:.9;
  background-image:linear-gradient(var(--hero-line) 1px,transparent 1px),linear-gradient(90deg,var(--hero-line) 1px,transparent 1px);
  background-size:44px 44px;mask-image:linear-gradient(180deg,#000,transparent 90%)}
.g-hero .wrap{position:relative}
.g-hero h1{color:var(--ink);font-size:clamp(2rem,4.6vw,3.3rem);max-width:22ch;margin-bottom:.45em}

.crumb{font-size:.84rem;color:var(--hero-muted);margin-bottom:20px}
.crumb a{color:var(--muted);text-decoration:none}.crumb a:hover{color:var(--accent)}
.crumb span{opacity:.5;margin:0 4px}
.g-meta{display:flex;flex-wrap:wrap;gap:6px 18px;font-size:.86rem;color:var(--hero-muted)}
.g-meta span+span::before{content:"";display:inline-block;width:4px;height:4px;border-radius:50%;background:var(--line-2);margin-right:18px;vertical-align:middle}
.g-grid{display:grid;grid-template-columns:240px minmax(0,1fr);gap:56px;padding-top:48px;padding-bottom:72px;align-items:start}
.g-toc{position:sticky;top:84px;font-size:.86rem;max-height:calc(100vh - 100px);overflow:auto}
.g-toc>a{display:block;color:var(--muted);text-decoration:none;padding:6px 0 6px 14px;border-left:2px solid var(--line);line-height:1.35}
.g-toc>a:hover,.g-toc>a.on{color:var(--accent);border-left-color:var(--accent)}
.g-toc-cta{margin-top:22px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:16px}
.g-toc-cta b{display:block;font-size:.92rem;margin-bottom:4px}.g-toc-cta p{font-size:.82rem;color:var(--muted);margin-bottom:12px}
.g-toc-cta .btn{width:100%;font-size:.84rem;padding:.65em .8em}
@media (max-width:1000px){.g-grid{grid-template-columns:1fr;gap:0}.g-toc{display:none}}
.g-body{max-width:780px;min-width:0;font-size:1.04rem}
.g-body h2{font-size:clamp(1.55rem,2.8vw,2.05rem);margin:2.1em 0 .6em;scroll-margin-top:84px}
.g-body h3{font-size:1.22rem;margin:1.7em 0 .5em}
.g-body ul,.g-body ol{padding-left:1.25em}.g-body li{margin-bottom:.45em}
.g-body p,.g-body li{color:var(--ink-2)}
.g-body strong{color:var(--ink)}
.answer{position:relative;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:22px 24px 20px;margin:0 0 22px;box-shadow:var(--shadow)}
.answer::before{content:"";position:absolute;left:0;top:14px;bottom:14px;width:4px;border-radius:0 4px 4px 0;background:var(--accent)}
.answer-k{display:inline-block;font:700 .7rem/1 var(--sans);letter-spacing:.1em;text-transform:uppercase;color:var(--accent);margin-bottom:10px}
.answer p{font-size:1.1rem;color:var(--ink);margin:0;line-height:1.55}
.takeaways{background:var(--tint);border-radius:10px;padding:20px 24px;margin:0 0 8px}
.takeaways ul{list-style:none;padding:0;margin:0}
.takeaways li{position:relative;padding:6px 0 6px 28px;margin:0;color:var(--ink)}
.takeaways li::before{content:"";position:absolute;left:2px;top:12px;width:13px;height:7px;border-left:2px solid var(--accent);border-bottom:2px solid var(--accent);transform:rotate(-45deg)}
.g-faq{margin-top:2.4em}
.g-cta{display:flex;gap:24px;align-items:center;justify-content:space-between;background:var(--dk);color:var(--dk-ink);border-radius:12px;padding:30px 32px;margin:48px 0 36px;position:relative;overflow:hidden}
.g-cta::before{content:"";position:absolute;inset:0;background:radial-gradient(500px 220px at 100% 0,rgba(224,17,95,.4),transparent 60%),radial-gradient(400px 200px at 0 100%,rgba(67,56,202,.35),transparent 60%)}
.g-cta>*{position:relative}.g-cta h3{color:#fff;margin:0 0 .3em}.g-cta p{color:#c9cad6;margin:0;font-size:.95rem}
.g-cta .btn{flex:0 0 auto}
@media (max-width:700px){.g-cta{flex-direction:column;align-items:flex-start;padding:24px}}
.rgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
@media (max-width:760px){.rgrid{grid-template-columns:1fr}}
.rcard{display:flex;flex-direction:column;gap:8px;background:var(--card);border:1px solid var(--line);border-radius:12px;padding:18px;text-decoration:none;color:var(--ink);transition:transform .2s,border-color .2s,box-shadow .2s}
.rcard:hover{transform:translateY(-3px);border-color:var(--accent);box-shadow:var(--shadow);color:var(--ink)}
.rcard b{font:500 1.08rem/1.3 var(--serif)}.rcard span:last-child{font-size:.85rem;color:var(--muted)}
.rcard .tag{align-self:flex-start}
.g-note{font-size:.82rem;color:var(--muted);border-top:1px solid var(--line);padding-top:16px;margin-top:28px}
.g-body .tbl{font-size:.9rem}
.g-body figure{margin:30px 0}
.src{font-size:.8rem;color:var(--muted)}

/* responsive "stacked" tables */
@media (max-width:640px){
  table.rt thead{display:none}
  table.rt,table.rt tbody,table.rt tr,table.rt td{display:block;width:100%}
  table.rt tr{border-bottom:1px solid var(--line);padding:8px 0}
  table.rt td{border:0;padding:6px 14px}
  table.rt td::before{content:attr(data-l);display:block;font:600 .68rem/1.4 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
}

/* hub */
.hub-hero{padding:72px 0 56px}
.hub-c{padding:44px 0 0}
.hub-h{display:flex;align-items:baseline;justify-content:space-between;border-bottom:1px solid var(--line);padding-bottom:12px;margin-bottom:22px}
.hub-h h2{font-size:1.7rem;margin:0}.hub-h span{color:var(--muted);font-size:.86rem}
.hgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media (max-width:960px){.hgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:600px){.hgrid{grid-template-columns:1fr}}
.hcard{display:flex;flex-direction:column;gap:10px;background:var(--card);border:1px solid var(--line);border-radius:10px;padding:22px;text-decoration:none;color:var(--ink);
  transition:transform .25s,border-color .25s,box-shadow .25s;position:relative;overflow:hidden}
.hcard::after{content:"";position:absolute;left:0;right:0;top:0;height:3px;background:var(--grad);transform:scaleX(0);transform-origin:0;transition:transform .35s}
.hcard:hover{transform:translateY(-4px);border-color:var(--line-2);box-shadow:var(--shadow);color:var(--ink)}
.hcard:hover::after{transform:scaleX(1)}
.hcard b{font:500 1.2rem/1.25 var(--serif)}.hcard span{font-size:.9rem;color:var(--muted);flex:1}
.hcard i{font-style:normal;font-size:.86rem;font-weight:600;color:var(--accent)}

/* ---------- infographics ---------- */
.vz{background:var(--card);border:1px solid var(--line);border-radius:12px;padding:24px;margin:30px 0;box-shadow:var(--shadow);position:relative}
.vz-h{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-bottom:16px;flex-wrap:wrap}
.vz-h b{font:500 1.15rem/1.3 var(--serif)}
.vz-h span{font-size:.78rem;color:var(--muted)}
.vz figcaption,.vz .cap{font-size:.82rem;color:var(--muted);margin-top:14px}
.vz svg text{font-family:var(--sans)}
.vz.dark{background:var(--dk);border-color:var(--dk-line);color:var(--hero-ink)}
.vz.dark .vz-h b{color:#fff}

/* draw-on lines */
.viz .draw{stroke-dasharray:var(--len,600);stroke-dashoffset:var(--len,600);transition:stroke-dashoffset 1.6s cubic-bezier(.4,0,.2,1)}
.viz.on .draw{stroke-dashoffset:0}
.viz .pop{opacity:0;transform:translateY(8px) scale(.97);transition:opacity .5s,transform .5s}
.viz.on .pop{opacity:1;transform:none}
.viz.on .pop:nth-child(2){transition-delay:.12s}.viz.on .pop:nth-child(3){transition-delay:.24s}.viz.on .pop:nth-child(4){transition-delay:.36s}
.viz.on .pop:nth-child(5){transition-delay:.48s}.viz.on .pop:nth-child(6){transition-delay:.6s}.viz.on .pop:nth-child(7){transition-delay:.72s}
.viz.on .pop:nth-child(8){transition-delay:.84s}.viz.on .pop:nth-child(9){transition-delay:.96s}
.flow{stroke-dasharray:5 7;animation:flow 1.2s linear infinite}
@keyframes flow{to{stroke-dashoffset:-24}}
.pulse{animation:pulse 2.4s ease-out infinite;transform-box:fill-box;transform-origin:center}
@keyframes pulse{0%{opacity:.55;transform:scale(1)}100%{opacity:0;transform:scale(2.4)}}

/* bars (penalties etc.) */
.bars{display:grid;gap:12px}
.bar-r{display:grid;grid-template-columns:minmax(0,1fr) 92px;gap:6px 14px;align-items:center}
.bar-r .lbl{font-size:.9rem;color:var(--ink-2);grid-column:1/-1}
.bar-r .trk{height:14px;border-radius:99px;background:var(--paper);overflow:hidden}
.bar-r .trk i{display:block;height:100%;width:0;border-radius:99px;background:linear-gradient(90deg,#ff6b8f,var(--risk));transition:width 1.4s cubic-bezier(.2,.8,.2,1)}
.viz.on .bar-r .trk i{width:var(--w)}
.bar-r .amt{font:500 1.1rem/1 var(--serif);color:var(--risk);text-align:right;font-variant-numeric:tabular-nums}
.bar-r:nth-child(2) i{transition-delay:.12s}.bar-r:nth-child(3) i{transition-delay:.24s}.bar-r:nth-child(4) i{transition-delay:.36s}.bar-r:nth-child(5) i{transition-delay:.48s}.bar-r:nth-child(6) i{transition-delay:.6s}

/* timeline */
.tline{position:relative;padding:8px 0 4px}
.tline .rail{position:relative;height:8px;border-radius:99px;background:var(--line);margin:56px 8px 0}
.tline .rail i{position:absolute;left:0;top:0;bottom:0;border-radius:99px;background:var(--grad);width:0;transition:width 1.6s}
.tline .now{position:absolute;top:-40px;transform:translateX(-50%);font:700 .68rem/1 var(--sans);letter-spacing:.08em;text-transform:uppercase;background:var(--accent);color:var(--accent-ink);padding:6px 9px;border-radius:99px;white-space:nowrap;transition:left 1.6s}
.tline .now::after{content:"";position:absolute;left:50%;bottom:-14px;width:2px;height:14px;background:var(--accent)}
.tline .dot{position:absolute;top:50%;width:18px;height:18px;margin:-9px 0 0 -9px;border-radius:50%;background:var(--card);border:3px solid var(--accent)}
.tline .dot.fut{border-color:var(--warn)}
.tl-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin-top:22px}
.tl-cards>div{border-top:3px solid var(--accent);padding-top:12px}
.tl-cards>div.fut{border-color:var(--warn)}
.tl-cards b{display:block;font:500 1.15rem/1.2 var(--serif);margin-bottom:4px}
.tl-cards p{font-size:.88rem;color:var(--ink-2);margin:0}
@media (max-width:640px){.tl-cards{grid-template-columns:1fr}}

/* step flows */
.steps-f{display:grid;grid-template-columns:repeat(var(--n,5),1fr);gap:10px;position:relative;counter-reset:f}
.steps-f>div{position:relative;border:1px solid var(--line);border-radius:12px;padding:14px 12px 12px;background:var(--paper);transition:border-color .3s,background .3s,transform .3s,box-shadow .3s}
.steps-f>div::before{counter-increment:f;content:counter(f);display:grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--line);color:var(--ink-2);font:700 .78rem/1 var(--sans);margin-bottom:10px;transition:background .3s,color .3s}
.steps-f b{display:block;font-size:.92rem;margin-bottom:4px}
.steps-f p{font-size:.8rem;color:var(--muted);margin:0;line-height:1.45}
.steps-f>div.done::before{background:var(--accent-soft);color:var(--accent)}
.steps-f>div.act{border-color:var(--accent);background:var(--card);transform:translateY(-4px);box-shadow:0 10px 26px rgba(224,17,95,.15)}
.steps-f>div.act::before{background:var(--accent);color:var(--accent-ink)}
@media (max-width:760px){.steps-f{grid-template-columns:1fr 1fr}}
@media (max-width:420px){.steps-f{grid-template-columns:1fr}}
.cyc-cap{margin-top:14px;font-size:.84rem;color:var(--muted);min-height:1.4em}
.cyc-cap b{color:var(--accent)}

/* clock */
.clock72{display:grid;grid-template-columns:240px 1fr;gap:28px;align-items:center}
.clock72 svg{width:240px;height:240px}
.clock72 .ms{list-style:none;margin:0;padding:0}
.clock72 .ms li{display:grid;grid-template-columns:62px 1fr;gap:12px;padding:12px 0;border-bottom:1px solid var(--line);opacity:.45;transition:opacity .4s}
.clock72 .ms li.lit{opacity:1}
.clock72 .ms b{font:500 1.1rem/1.2 var(--serif);color:var(--warn)}
.clock72 .ms li.lit b{color:var(--accent)}
.clock72 .ms span{font-size:.9rem;color:var(--ink-2)}
@media (max-width:640px){.clock72{grid-template-columns:1fr;justify-items:center}.clock72 .ms{width:100%}}

/* compare matrix */
.cmp{width:100%;border-collapse:separate;border-spacing:0;font-size:.9rem}
.cmp th,.cmp td{padding:12px 14px;border-bottom:1px solid var(--line);text-align:left;vertical-align:top}
.cmp thead th{font:600 .74rem/1.2 var(--sans);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.cmp tbody th{font-weight:600;color:var(--ink);width:24%}
.cmp td.hl{background:var(--accent-soft)}

/* layered stack */
.stack{display:grid;gap:8px}
.stack>div{display:grid;grid-template-columns:44px 1fr auto;gap:14px;align-items:center;border:1px solid var(--line);border-radius:12px;padding:12px 14px;background:var(--paper)}
.stack .si{width:44px;height:44px;border-radius:10px;display:grid;place-items:center;background:var(--accent-soft);color:var(--accent)}
.stack .si svg{width:22px;height:22px}
.stack b{display:block;font-size:.95rem}.stack p{margin:0;font-size:.84rem;color:var(--muted)}
.stack .rule{white-space:nowrap}
@media (max-width:520px){.stack>div{grid-template-columns:44px 1fr}.stack .rule{grid-column:2}}

/* two-column split infographic */
.duo{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.duo>div{border-radius:10px;padding:20px;border:1px solid var(--line);background:var(--paper)}
.duo>div.a{border-top:4px solid var(--accent)}.duo>div.b{border-top:4px solid var(--indigo)}
.duo h4{margin-bottom:.6em}.duo ul{margin:0;padding-left:1.1em;font-size:.9rem}
@media (max-width:640px){.duo{grid-template-columns:1fr}}

/* stat chips */
.chips{display:grid;grid-template-columns:repeat(var(--n,4),1fr);gap:12px}
.chips>div{background:var(--paper);border:1px solid var(--line);border-radius:12px;padding:16px}
.chips b{display:block;font:500 1.9rem/1 var(--serif);color:var(--accent);margin-bottom:6px;font-variant-numeric:tabular-nums}
.chips span{font-size:.82rem;color:var(--muted)}
@media (max-width:700px){.chips{grid-template-columns:1fr 1fr}}

/* tabs */
[role=tablist]{display:flex;flex-wrap:wrap;gap:6px;margin-bottom:16px}
[role=tab]{border:1px solid var(--line-2);background:transparent;color:var(--ink-2);border-radius:99px;padding:8px 14px;font:600 .84rem/1 var(--sans);cursor:pointer}
[role=tab][aria-selected=true]{background:var(--ink);color:var(--paper);border-color:var(--ink)}

/* penalty explorer */
.pen-x{display:grid;grid-template-columns:1fr 1.1fr;gap:24px;align-items:center}
.pen-x .opts{display:grid;gap:8px}
.pen-x button{text-align:left;border:1px solid var(--line-2);background:var(--paper);color:var(--ink);border-radius:10px;padding:11px 14px;font:500 .9rem/1.35 var(--sans);cursor:pointer;transition:.2s}
.pen-x button[aria-pressed=true]{border-color:var(--risk);background:var(--risk-soft);color:var(--ink)}
.pen-x .val{font:500 clamp(2.4rem,5vw,3.6rem)/1 var(--serif);color:var(--risk);font-variant-numeric:tabular-nums}
.pen-x .trk{height:16px;border-radius:99px;background:var(--paper);border:1px solid var(--line);overflow:hidden;margin:16px 0 10px}
.pen-x .trk i{display:block;height:100%;background:linear-gradient(90deg,#ff6b8f,var(--risk));transition:width .6s cubic-bezier(.2,.8,.2,1)}
@media (max-width:760px){.pen-x{grid-template-columns:1fr}}

/* hero flow */
.hero-viz svg{width:100%;height:auto;overflow:visible}
.hero-viz .spin{transform-origin:300px 230px;animation:spin 40s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}
.hero-viz .mod{animation:modp 6s ease-in-out infinite;animation-delay:var(--d)}
@keyframes modp{0%,100%{opacity:.75}12%{opacity:1}}
.hero-viz .mod rect{transition:filter .3s}
.hero-viz .src-n rect{animation:srcp 4s ease-in-out infinite}
.hero-viz .src-n:nth-child(2) rect{animation-delay:.6s}.hero-viz .src-n:nth-child(3) rect{animation-delay:1.2s}
.hero-viz .src-n:nth-child(4) rect{animation-delay:1.8s}.hero-viz .src-n:nth-child(5) rect{animation-delay:2.4s}.hero-viz .src-n:nth-child(6) rect{animation-delay:3s}
@keyframes srcp{0%,100%{stroke:var(--line-2)}50%{stroke:var(--accent)}}
@media (prefers-reduced-motion:reduce){.hero-viz *{animation:none!important}.hero-viz animateMotion{display:none}}

/* ---------- v2 home ---------- */
.eyebrow{font-family:var(--mono);font-weight:500;letter-spacing:.08em;font-size:.74rem}
h2 .dim,h1 .dim{color:var(--muted)}
.hero h2 .dim{color:var(--muted)}
.paper-bg{background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px);background-size:28px 28px;background-position:-1px -1px}
.vz-h span.fig,.fig{font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:.7rem;color:var(--muted)}
.hero2{padding:72px 0 0}
.hero2 .wrap:first-of-type{grid-template-columns:1.05fr 1fr;gap:40px}
.hero2 h1{font-size:clamp(2.3rem,5vw,3.75rem)}
.hero-viz{max-width:560px;justify-self:end;width:100%}
@media (max-width:960px){.hero-viz{justify-self:center;max-width:460px}}
.cdbar{display:grid;grid-template-columns:1.2fr auto 1fr;gap:28px;align-items:center;margin-top:56px;padding:20px 0 24px;border-top:1px solid var(--line)}
.cd-l{display:flex;flex-direction:column;gap:4px;font-size:.92rem}
.cd-l b{color:var(--ink);display:flex;align-items:center;gap:10px}
.muted-h{color:var(--hero-muted);font-size:.84rem;padding-left:20px}
.live-dot{position:relative;width:10px;height:10px;border-radius:50%;background:var(--accent);display:inline-block;margin-right:10px;vertical-align:1px}
.live-dot::after{content:"";position:absolute;inset:0;border-radius:50%;background:var(--accent);animation:pulse 2s ease-out infinite}
.cd-l b .live-dot{margin-right:0}
.cd-n{display:flex;gap:8px}
.cd-n div{min-width:64px;text-align:center;background:var(--card);border:1px solid var(--line);border-radius:8px;padding:8px 6px}
.cd-n b{display:block;font:600 1.6rem/1 var(--serif);color:var(--ink);font-variant-numeric:tabular-nums}
.cd-n i{font-style:normal;font:500 .62rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.cd-p{display:grid;grid-template-columns:1fr auto;gap:6px 12px;align-items:center;font-size:.8rem;color:var(--hero-muted)}
.cd-p span{grid-column:1/-1;font-family:var(--mono);letter-spacing:.06em;text-transform:uppercase;font-size:.68rem}
.cd-trk{height:6px;border-radius:99px;background:var(--line);overflow:hidden}
.cd-trk i{display:block;height:100%;background:var(--grad)}
.cd-p b{color:var(--ink);font-variant-numeric:tabular-nums}
@media (max-width:960px){.cdbar{grid-template-columns:1fr;gap:16px}.muted-h{padding-left:0}}
@media (max-width:420px){.cd-n div{min-width:0;flex:1}}

.sectors{padding:22px 0;border-bottom:1px solid var(--line);background:var(--card)}
.sectors .wrap{display:flex;align-items:center;gap:22px;flex-wrap:wrap}
.sectors span{font:500 .72rem/1.3 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--muted)}
.sectors ul{display:flex;flex-wrap:wrap;gap:8px;list-style:none;margin:0;padding:0}
.sectors li{border:1px solid var(--line);border-radius:99px;padding:6px 13px;font-size:.86rem;font-weight:500;color:var(--ink-2);background:var(--paper)}

.ob2{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border:1px solid var(--line);border-radius:12px;overflow:hidden;background:var(--card)}
.ob-c{position:relative;padding:28px 26px 24px;border-right:1px solid var(--line);border-bottom:1px solid var(--line);text-decoration:none;color:var(--ink);transition:background .25s}
.ob-c:nth-child(3n){border-right:0}.ob-c:nth-last-child(-n+3){border-bottom:0}
.ob-c:hover{background:var(--tint);color:var(--ink)}
.ob-i{position:absolute;right:22px;top:22px;font:500 .74rem/1 var(--mono);color:var(--line-2)}
.ob-c h3{font-size:1.18rem;margin:.55em 0 .4em}
.ob-c p{font-size:.92rem;color:var(--ink-2);margin-bottom:14px}
.ob-c i{font-style:normal;font-size:.84rem;font-weight:600;color:var(--accent);opacity:0;transform:translateX(-6px);transition:.25s;display:inline-block}
.ob-c:hover i{opacity:1;transform:none}
@media (hover:none){.ob-c i{opacity:1;transform:none}}
@media (max-width:960px){.ob2{grid-template-columns:1fr 1fr}.ob-c:nth-child(3n){border-right:1px solid var(--line)}.ob-c:nth-child(2n){border-right:0}.ob-c:nth-last-child(-n+3){border-bottom:1px solid var(--line)}.ob-c:last-child{border-bottom:0}}
@media (max-width:600px){.ob2{grid-template-columns:1fr}.ob-c{border-right:0!important;border-bottom:1px solid var(--line)!important}.ob-c:last-child{border-bottom:0!important}}

.pen-out{padding:6px 4px}
.dark-s{background:var(--dk) radial-gradient(800px 360px at 100% 0,rgba(224,17,95,.18),transparent 60%);color:var(--dk-ink)}
.dark-s h2{color:#fff}.dark-s .eyebrow{color:var(--dk-acc)}
.proc{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:20px;padding-top:30px}
.proc-rail{position:absolute;left:0;right:0;top:0;height:2px;background:var(--dk-line)}
.proc-rail i{position:absolute;left:0;top:0;bottom:0;width:0;background:var(--grad);transition:width 2.4s cubic-bezier(.4,0,.2,1)}
.proc.on .proc-rail i{width:100%}
.proc-s{position:relative;background:rgba(255,255,255,.03);border:1px solid var(--dk-line);border-radius:10px;padding:22px}
.proc-s::before{content:"";position:absolute;top:-36px;left:22px;width:12px;height:12px;border-radius:50%;background:var(--dk);border:2px solid var(--dk-acc)}
.proc-s .wk{font:500 .7rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--dk-acc)}
.proc-s h3{color:#fff;margin:.5em 0 .4em}
.proc-s p{font-size:.9rem;color:var(--dk-muted)}
.proc-s ul{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:6px}
.proc-s li{font:500 .72rem/1 var(--mono);color:#d6d7e0;border:1px solid var(--dk-line);border-radius:6px;padding:5px 7px}
@media (max-width:900px){.proc{grid-template-columns:1fr 1fr}.proc-rail{display:none}.proc-s::before{display:none}}
@media (max-width:560px){.proc{grid-template-columns:1fr}}

.evp-h{padding:16px 20px;border-bottom:1px solid var(--line);display:flex;justify-content:space-between;align-items:center}
.evp-l{padding:6px 20px 12px}
.evp-l li{transition:background .2s}
.ring-w{position:relative;width:150px;height:150px;margin:6px auto 10px}
.ring-w svg{width:150px;height:150px}
.ring-fg{transition:stroke-dashoffset .6s cubic-bezier(.2,.8,.2,1),stroke .3s}
.ring-w .num{position:absolute;inset:0;display:grid;place-items:center;font:500 2.4rem/1 var(--serif)}
.score .lbl{text-align:center}

/* consent demo */
.cdemo{display:grid;grid-template-columns:1fr 1.05fr;gap:40px;align-items:center}
@media (max-width:900px){.cdemo{grid-template-columns:1fr}}
.cn{background:var(--card);border:1px solid var(--line);border-radius:12px;box-shadow:0 24px 60px rgba(10,10,18,.12);overflow:hidden}
.cn-top{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--line);background:var(--paper);font:500 .74rem/1 var(--mono);color:var(--muted)}
.cn-top i{width:9px;height:9px;border-radius:50%;background:var(--line-2)}
.cn-b{padding:20px 20px 18px}
.cn-b h4{color:var(--ink);font:600 1rem/1.3 var(--sans);text-transform:none;letter-spacing:0;margin-bottom:4px}
.cn-b>p{font-size:.84rem;color:var(--muted);margin-bottom:12px}
.cn-row{display:grid;grid-template-columns:1fr auto;gap:4px 14px;align-items:center;padding:11px 0;border-top:1px solid var(--line)}
.cn-row b{font-size:.9rem}.cn-row span{grid-column:1;font-size:.78rem;color:var(--muted)}
.cn-row .sw{grid-row:1/3;grid-column:2}
.sw{position:relative;width:42px;height:24px;border-radius:99px;background:var(--line-2);border:0;cursor:pointer;transition:background .2s}
.sw::after{content:"";position:absolute;top:3px;left:3px;width:18px;height:18px;border-radius:50%;background:#fff;transition:transform .2s;box-shadow:0 1px 3px rgba(0,0,0,.2)}
.sw[aria-checked=true]{background:var(--accent)}.sw[aria-checked=true]::after{transform:translateX(18px)}
.sw[disabled]{opacity:.6;cursor:not-allowed}
.cn-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:14px}
.cn-btns .btn{padding:.7em;font-size:.88rem}
.cn-foot{font-size:.74rem;color:var(--muted);margin-top:12px}
.cn-log{margin-top:16px;background:var(--dk);border-radius:10px;padding:14px 16px;font:500 .74rem/1.6 var(--mono);color:var(--dk-acc);min-height:120px;max-height:170px;overflow:auto}
.cn-log div{opacity:0;animation:logIn .35s forwards}
.cn-log em{color:var(--dk-muted);font-style:normal}
@keyframes logIn{to{opacity:1}}
.hero2 .wrap.cdw{display:block}
.hero2{padding-bottom:4px}
.g-meta a.md-l{color:var(--muted);text-decoration:none;font-family:var(--mono);font-size:.76rem;border:1px solid var(--line-2);border-radius:6px;padding:3px 7px}
.g-meta a.md-l:hover{color:var(--accent);border-color:var(--accent)}
.dl-card{display:flex;gap:12px;align-items:center;border:1px dashed var(--line-2);border-radius:12px;padding:12px;text-decoration:none;color:var(--ink);font-size:.8rem;margin-top:22px;transition:border-color .2s,background .2s}
.dl-card:hover{border-color:var(--accent);background:var(--accent-soft);color:var(--ink)}
.dl-card b{display:block;font-size:.9rem}
.dl-card span:last-child{color:var(--muted);line-height:1.35}.dl-card span:last-child b{color:var(--ink)}
.dl-i{flex:0 0 44px;height:52px;border-radius:6px;background:#1d6f42;color:#fff;display:grid;place-items:end center;padding-bottom:7px;font:700 .62rem/1 var(--mono);position:relative}
.dl-i::before{content:"";position:absolute;top:0;right:0;border-width:0 10px 10px 0;border-style:solid;border-color:var(--paper) var(--paper) #145232 #145232}
.gantt.viz .bar i{transform:scaleX(0);transform-origin:0 50%;transition:transform 1s cubic-bezier(.2,.8,.2,1)}
.gantt.viz.on .bar i{transform:scaleX(1)}
.gantt.viz .gr:nth-child(3) i{transition-delay:.1s}.gantt.viz .gr:nth-child(4) i{transition-delay:.2s}.gantt.viz .gr:nth-child(5) i{transition-delay:.3s}
.gantt.viz .gr:nth-child(6) i{transition-delay:.4s}.gantt.viz .gr:nth-child(7) i{transition-delay:.5s}.gantt.viz .gr:nth-child(8) i{transition-delay:.6s}
.gantt.viz .gr:nth-child(9) i{transition-delay:.7s}.gantt.viz .gr:nth-child(10) i{transition-delay:.8s}.gantt.viz .gr:nth-child(11) i{transition-delay:.9s}
.dia.viz path[marker-end]{stroke-dasharray:4 5;animation:flow 1.4s linear infinite}
.hcard .tag{align-self:flex-start}
.g-toc>a.dl-card{display:flex;border:1px dashed var(--line-2);border-radius:10px;padding:12px;color:var(--ink);line-height:1.35}
.g-toc>a.dl-card:hover{border-color:var(--accent);background:var(--accent-soft)}
