/* theme tokens: generated by fdkit.design from [design.theme] */
:root{--ds-brand:#1e3a8a;--ds-brand-strong:#172d6c;--ds-brand-ink:#152961;--ds-brand-soft:#e8ebf3;--ds-brand-tint:#f6f7fa;--ds-brand-line:#c7cee2;--ds-accent:#b45309;--ds-accent-ink:#aa4f09;--ds-accent-soft:#f6eae1;--ds-on-brand:#ffffff;--ds-font-body:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ds-font-head:system-ui,-apple-system,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif;--ds-radius:8px;--ds-radius-lg:14px}
/* fdkit design system ds1 (T-042). Plain CSS, no build step. Theme tokens (--ds-brand etc.) are prepended by
   fdkit.design from [design.theme]; everything below uses tokens only, so one site = a few variables. */
:root{--ds-ink:#0f172a;--ds-ink-2:#334155;--ds-muted:#475569;--ds-line:#e2e8f0;--ds-line-2:#cbd5e1;--ds-bg:#fff;--ds-bg-alt:#f8fafc;
--ds-ok:#15803d;--ds-ok-soft:#dcfce7;--ds-warn:#a16207;--ds-warn-soft:#fef9c3;--ds-err:#b91c1c;--ds-err-soft:#fee2e2;
--ds-s1:4px;--ds-s2:8px;--ds-s3:12px;--ds-s4:16px;--ds-s5:24px;--ds-s6:32px;--ds-s7:48px;--ds-s8:72px;
--ds-t-xs:.8125rem;--ds-t-sm:.9375rem;--ds-t-md:1.0625rem;--ds-t-lg:1.25rem;--ds-t-xl:1.625rem;--ds-t-2xl:clamp(1.9rem,1.2rem + 2.6vw,3rem);
--ds-shadow:0 1px 2px rgba(15,23,42,.06),0 4px 16px rgba(15,23,42,.06);--ds-shadow-lg:0 10px 40px rgba(15,23,42,.14);
--ds-max:1160px;--ds-focus:0 0 0 3px #fff,0 0 0 5px var(--ds-brand)}
*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:80px}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
body{margin:0;font:400 1rem/1.6 var(--ds-font-body);color:var(--ds-ink);background:var(--ds-bg);text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--ds-font-head);line-height:1.2;letter-spacing:-.015em;color:var(--ds-ink);margin:0 0 var(--ds-s3)}
h1{font-size:var(--ds-t-2xl);font-weight:750}h2{font-size:var(--ds-t-xl);font-weight:700}h3{font-size:var(--ds-t-lg);font-weight:650}h4{font-size:1rem}
p{margin:0 0 var(--ds-s4)}a{color:var(--ds-brand);text-underline-offset:2px}a:hover{color:var(--ds-brand-strong)}
:focus-visible{outline:none;box-shadow:var(--ds-focus);border-radius:4px}
img,svg{max-width:100%;height:auto}code{font-size:.875em;word-break:break-all}
.ds-skip{position:absolute;left:-9999px;top:8px;z-index:100;background:var(--ds-ink);color:#fff;padding:8px 14px;border-radius:6px}.ds-skip:focus{left:8px;color:#fff}
.ds-container{max-width:var(--ds-max);margin:0 auto;padding:0 var(--ds-s5)}
@media(max-width:640px){.ds-container{padding:0 var(--ds-s4)}}
.note,.ds-muted{color:var(--ds-muted);font-size:var(--ds-t-sm)}
.ds-visually-hidden{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
/* header + nav */
.ds-header{position:sticky;top:0;z-index:50;background:rgba(255,255,255,.92);backdrop-filter:saturate(1.4) blur(8px);border-bottom:1px solid var(--ds-line)}
.ds-header .ds-container{display:flex;align-items:center;gap:var(--ds-s5);min-height:64px}
.ds-brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--ds-ink);font-weight:750;font-family:var(--ds-font-head);font-size:1.0625rem;letter-spacing:-.01em}
.ds-brand:hover{color:var(--ds-ink)}
.ds-mark{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:9px;background:var(--ds-brand);color:#fff;font-size:.8rem;font-weight:800;letter-spacing:0}
.ds-nav{display:flex;align-items:center;gap:var(--ds-s1);margin-left:auto}
.ds-nav a{color:var(--ds-ink-2);text-decoration:none;font-size:var(--ds-t-sm);font-weight:550;padding:8px 10px;border-radius:6px}
.ds-nav a:hover{background:var(--ds-bg-alt);color:var(--ds-ink)}
.ds-nav .ds-btn{margin-left:var(--ds-s2);color:#fff}
.ds-menu{display:none;margin-left:auto}
.ds-menu summary{list-style:none;cursor:pointer;padding:8px 12px;border:1px solid var(--ds-line-2);border-radius:8px;font-weight:600;font-size:var(--ds-t-sm)}
.ds-menu summary::-webkit-details-marker{display:none}
.ds-menu[open] .ds-menu-panel{position:absolute;left:0;right:0;top:64px;background:#fff;border-bottom:1px solid var(--ds-line);box-shadow:var(--ds-shadow-lg);padding:var(--ds-s3) var(--ds-s4) var(--ds-s4);display:grid;gap:2px}
.ds-menu-panel a{display:block;padding:12px;text-decoration:none;color:var(--ds-ink);font-weight:600;border-radius:8px}
.ds-menu-panel a:hover{background:var(--ds-bg-alt)}
.ds-menu-panel .ds-btn{color:#fff;margin-top:var(--ds-s2);text-align:center}
@media(max-width:860px){.ds-nav{display:none}.ds-menu{display:block}}
/* buttons */
.ds-btn,button,input[type=submit]{display:inline-flex;align-items:center;justify-content:center;gap:8px;font:600 var(--ds-t-sm)/1.2 var(--ds-font-body);padding:12px 20px;min-height:44px;border-radius:var(--ds-radius);border:1px solid transparent;background:var(--ds-brand);color:var(--ds-on-brand);text-decoration:none;cursor:pointer;transition:background .15s,box-shadow .15s,transform .05s}
.ds-btn:hover,button:hover{background:var(--ds-brand-strong);color:#fff}.ds-btn:active,button:active{transform:translateY(1px)}
.ds-btn--lg{padding:14px 24px;font-size:1rem;min-height:50px}
.ds-btn--ghost{background:#fff;color:var(--ds-ink);border-color:var(--ds-line-2)}.ds-btn--ghost:hover{background:var(--ds-bg-alt);color:var(--ds-ink)}
.ds-btn--sm{padding:8px 14px;min-height:36px}
.ds-btn--block{width:100%}
/* pills, badges */
.ds-pill{display:inline-flex;align-items:center;gap:8px;padding:4px 12px;border-radius:999px;background:var(--ds-accent-soft);color:var(--ds-accent-ink);font-size:var(--ds-t-xs);font-weight:650;letter-spacing:.01em}
.ds-pill::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.ds-badge{display:inline-block;padding:2px 8px;border-radius:6px;font-size:.75rem;font-weight:650;background:var(--ds-bg-alt);color:var(--ds-ink-2);border:1px solid var(--ds-line)}
.ds-badge--brand{background:var(--ds-brand-soft);color:var(--ds-brand-ink);border-color:var(--ds-brand-line)}
.ds-badge--warn{background:var(--ds-warn-soft);color:#713f12;border-color:#fde68a}
.ds-badge--err{background:var(--ds-err-soft);color:#7f1d1d;border-color:#fecaca}
.ds-eyebrow{font-size:var(--ds-t-xs);font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:var(--ds-brand);margin:0 0 var(--ds-s3)}
/* sections */
.ds-section{padding:var(--ds-s8) 0}.ds-section--alt{background:var(--ds-bg-alt);border-block:1px solid var(--ds-line)}
.ds-section--tint{background:var(--ds-brand-tint)}
.ds-section-head{max-width:720px;margin:0 0 var(--ds-s6)}.ds-section-head--center{margin-inline:auto;text-align:center}
.ds-section-head p{color:var(--ds-muted);font-size:var(--ds-t-md)}
@media(max-width:640px){.ds-section{padding:var(--ds-s7) 0}}
/* hero */
.ds-hero{padding:var(--ds-s8) 0 var(--ds-s7);background:radial-gradient(1200px 400px at 85% -10%,var(--ds-brand-soft),transparent 70%),linear-gradient(var(--ds-brand-tint),#fff 70%)}
.ds-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:var(--ds-s7);align-items:center}
.ds-hero-grid>*,.ds-layout>*,.ds-cta>*,.ds-trust>*{min-width:0}
.ds-hero h1{margin:var(--ds-s4) 0}
.ds-lead{font-size:var(--ds-t-md);color:var(--ds-ink-2);max-width:56ch}
.ds-cta-row{display:flex;flex-wrap:wrap;gap:var(--ds-s3);margin:var(--ds-s5) 0 var(--ds-s4)}
.ds-checks{list-style:none;padding:0;margin:var(--ds-s4) 0;display:grid;gap:8px}
.ds-checks li{position:relative;padding-left:28px;color:var(--ds-ink-2)}
.ds-checks li::before{content:"";position:absolute;left:0;top:.3em;width:18px;height:18px;border-radius:50%;background:var(--ds-accent-soft)}
.ds-checks li::after{content:"";position:absolute;left:6px;top:calc(.3em + 4px);width:5px;height:9px;border:solid var(--ds-accent-ink);border-width:0 2px 2px 0;transform:rotate(45deg)}
.ds-proof{font-size:var(--ds-t-sm);color:var(--ds-muted);border-top:1px solid var(--ds-line);padding-top:var(--ds-s3);margin-top:var(--ds-s4)}
@media(max-width:960px){.ds-hero-grid{grid-template-columns:minmax(0,1fr);gap:var(--ds-s6)}.ds-hero{padding-top:var(--ds-s7)}}
/* product preview / sample */
.ds-preview{background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow-lg);overflow:hidden}
.ds-preview-bar{display:flex;align-items:center;gap:10px;padding:10px 14px;border-bottom:1px solid var(--ds-line);background:var(--ds-bg-alt);font-size:var(--ds-t-xs);color:var(--ds-muted)}
.ds-dots{display:flex;gap:5px}.ds-dots i{width:9px;height:9px;border-radius:50%;background:var(--ds-line-2)}
.ds-preview-body{padding:var(--ds-s4)}
.ds-preview-title{font-weight:700;font-size:var(--ds-t-sm);margin:0 0 4px}
.ds-preview .ds-table{font-size:var(--ds-t-xs)}.ds-preview .ds-table th,.ds-preview .ds-table td{padding:8px 10px}.ds-preview .ds-table th{letter-spacing:.02em}
.ds-preview-foot{display:flex;justify-content:space-between;gap:var(--ds-s3);flex-wrap:wrap;padding:10px 14px;border-top:1px solid var(--ds-line);font-size:var(--ds-t-xs);color:var(--ds-muted)}
.ds-alert-item{display:grid;gap:2px;padding:12px 0;border-top:1px solid var(--ds-line)}.ds-alert-item:first-child{border-top:0}
.ds-alert-item b{font-size:var(--ds-t-sm)}.ds-alert-item span{font-size:var(--ds-t-xs);color:var(--ds-muted)}
.ds-mail-head{display:grid;gap:2px;padding-bottom:var(--ds-s3);border-bottom:1px solid var(--ds-line);margin-bottom:4px;font-size:var(--ds-t-xs);color:var(--ds-muted)}
.ds-mail-head strong{color:var(--ds-ink);font-size:var(--ds-t-sm)}
/* stats strip */
.ds-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:var(--ds-s4)}
.ds-stat{background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:var(--ds-s4) var(--ds-s5)}
.ds-stat b{display:block;font-family:var(--ds-font-head);font-size:1.75rem;line-height:1.15;letter-spacing:-.02em;color:var(--ds-ink);font-variant-numeric:tabular-nums}
.ds-stat span{display:block;color:var(--ds-muted);font-size:var(--ds-t-sm)}
.ds-stat small{display:block;color:var(--ds-muted);font-size:var(--ds-t-xs);margin-top:4px}
.ds-stat b.small{font-size:1.2rem}
/* cards / grids */
.ds-grid{display:grid;gap:var(--ds-s5)}.ds-grid--3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}.ds-grid--2{grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}
.ds-card{background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);padding:var(--ds-s5)}
.ds-card h3{font-size:1.0625rem;margin-bottom:var(--ds-s2)}.ds-card p{color:var(--ds-muted);margin:0;font-size:var(--ds-t-sm)}
.ds-step-n{display:inline-grid;place-items:center;width:32px;height:32px;border-radius:50%;background:var(--ds-brand-soft);color:var(--ds-brand-ink);font-weight:750;margin-bottom:var(--ds-s3)}
/* tables */
.ds-table-wrap{overflow-x:auto;border:1px solid var(--ds-line);border-radius:var(--ds-radius);background:#fff;-webkit-overflow-scrolling:touch}
.ds-table,main table{width:100%;border-collapse:collapse;font-size:var(--ds-t-sm);font-variant-numeric:tabular-nums}
.ds-table th,.ds-table td,main table th,main table td{padding:10px 12px;text-align:left;vertical-align:top;border-bottom:1px solid var(--ds-line)}
.ds-table thead th,main table thead th{background:var(--ds-bg-alt);font-size:var(--ds-t-xs);text-transform:uppercase;letter-spacing:.04em;color:var(--ds-muted);font-weight:700;white-space:nowrap;position:sticky;top:0}
.ds-table tbody tr:hover,main table tbody tr:hover{background:var(--ds-brand-tint)}
.ds-table tbody tr:last-child td,main table tbody tr:last-child td{border-bottom:0}
td.n,th.n{text-align:right}
.ds-table-tools{display:flex;flex-wrap:wrap;align-items:center;gap:var(--ds-s3);margin:0 0 var(--ds-s3)}
.ds-table-tools input{max-width:320px;min-height:40px}
.ds-table-tools output{font-size:var(--ds-t-xs);color:var(--ds-muted)}
th button.ds-sort{all:unset;cursor:pointer;display:inline-flex;gap:4px;align-items:center}
th button.ds-sort:focus-visible{box-shadow:var(--ds-focus)}
th[aria-sort=ascending] .ds-sort::after{content:"▲";font-size:.6rem}th[aria-sort=descending] .ds-sort::after{content:"▼";font-size:.6rem}
/* forms */
form label{display:block;margin:var(--ds-s3) 0 6px;font-weight:600;font-size:var(--ds-t-sm);color:var(--ds-ink)}
input,select,textarea{font:inherit;font-size:1rem;width:100%;min-height:46px;padding:10px 12px;border:1px solid var(--ds-line-2);border-radius:var(--ds-radius);background:#fff;color:var(--ds-ink)}
input:focus,select:focus,textarea:focus{outline:none;border-color:var(--ds-brand);box-shadow:0 0 0 3px var(--ds-brand-soft)}
input:user-invalid,select:user-invalid{border-color:var(--ds-err)}
fieldset{border:0;padding:0;margin:var(--ds-s3) 0}legend{font-weight:600;font-size:var(--ds-t-sm);margin-bottom:6px}
fieldset label{font-weight:500;display:flex;gap:10px;align-items:flex-start;margin:6px 0}
fieldset input{width:auto;min-height:auto;margin-top:4px;accent-color:var(--ds-brand)}
.ds-tiers label{border:1px solid var(--ds-line-2);border-radius:var(--ds-radius);padding:12px 14px;background:#fff;cursor:pointer}
.ds-tiers label:has(input:checked){border-color:var(--ds-brand);background:var(--ds-brand-tint);box-shadow:0 0 0 1px var(--ds-brand)}
.hp{position:absolute;left:-9999px}
form button[type=submit]{margin-top:var(--ds-s4);width:100%}
.ds-form-note{font-size:var(--ds-t-xs);color:var(--ds-muted);margin-top:var(--ds-s3)}
/* waitlist / CTA block */
.ds-cta{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--ds-s5);background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);box-shadow:var(--ds-shadow);padding:var(--ds-s6);margin:var(--ds-s6) 0}
.ds-cta-main h2{font-size:1.375rem}.ds-cta-main{border-right:1px solid var(--ds-line);padding-right:var(--ds-s5)}
.ds-cta-side h3{font-size:1.0625rem}
.ds-cta--single{grid-template-columns:1fr}.ds-cta--single .ds-cta-main{border:0;padding:0}
@media(max-width:860px){.ds-cta{grid-template-columns:1fr;padding:var(--ds-s5)}.ds-cta-main{border-right:0;border-bottom:1px solid var(--ds-line);padding:0 0 var(--ds-s5)}}
/* pricing */
.ds-plans{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:var(--ds-s5);align-items:stretch}
.ds-plan{position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);padding:var(--ds-s6) var(--ds-s5)}
.ds-plan--hi{border:2px solid var(--ds-brand);box-shadow:var(--ds-shadow-lg)}
.ds-plan-flag{position:absolute;top:-12px;left:var(--ds-s5);background:var(--ds-brand);color:#fff;font-size:.75rem;font-weight:700;padding:3px 10px;border-radius:999px}
.ds-plan h3{font-size:1.0625rem;margin:0}
.ds-price{font-family:var(--ds-font-head);font-size:2.25rem;font-weight:750;letter-spacing:-.02em;margin:var(--ds-s3) 0 0;line-height:1.1}
.ds-price small{font-size:var(--ds-t-sm);font-weight:500;color:var(--ds-muted);letter-spacing:0}
.ds-plan p{color:var(--ds-muted);font-size:var(--ds-t-sm)}
.ds-plan .ds-checks{flex:1;font-size:var(--ds-t-sm)}
.ds-pricing-note{text-align:center;color:var(--ds-muted);font-size:var(--ds-t-sm);margin-top:var(--ds-s5)}
/* trust / source */
.ds-trust{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:var(--ds-s6);align-items:start}
.ds-source{background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius-lg);padding:var(--ds-s5)}
.ds-source dl{display:grid;grid-template-columns:auto 1fr;gap:10px var(--ds-s4);margin:0;font-size:var(--ds-t-sm)}
.ds-source dt{color:var(--ds-muted);font-weight:600}.ds-source dd{margin:0}
.ds-trust-strip{display:flex;flex-wrap:wrap;gap:var(--ds-s2) var(--ds-s5);font-size:var(--ds-t-sm);color:var(--ds-ink-2);padding:var(--ds-s4) 0}
.ds-trust-strip span{display:inline-flex;gap:8px;align-items:center}.ds-trust-strip span::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--ds-accent)}
@media(max-width:860px){.ds-trust{grid-template-columns:1fr}}
/* FAQ */
.ds-faq{max-width:820px}
.ds-faq details{border-bottom:1px solid var(--ds-line);padding:var(--ds-s2) 0}
.ds-faq summary{cursor:pointer;font-weight:650;padding:var(--ds-s3) 0;list-style:none;display:flex;justify-content:space-between;gap:var(--ds-s4)}
.ds-faq summary::-webkit-details-marker{display:none}.ds-faq summary::after{content:"+";font-size:1.25rem;color:var(--ds-muted)}
.ds-faq details[open] summary::after{content:"–"}.ds-faq details p{color:var(--ds-ink-2)}
/* browse / link lists */
ul.cols{columns:3 220px;column-gap:var(--ds-s6);padding:0;list-style:none;margin:0 0 var(--ds-s4)}
ul.cols li{break-inside:avoid;padding:5px 0;border-bottom:1px dashed var(--ds-line)}
ul.cols a{text-decoration:none;font-weight:550}ul.cols a:hover{text-decoration:underline}
.ds-browse details summary{cursor:pointer;font-weight:600;color:var(--ds-brand);margin:var(--ds-s2) 0 var(--ds-s4)}
.ds-inline-links a{display:inline-block;margin:0 6px 6px 0;padding:4px 10px;border:1px solid var(--ds-line);border-radius:999px;text-decoration:none;font-size:var(--ds-t-sm);background:#fff}
.ds-inline-links a:hover{border-color:var(--ds-brand)}
.ds-see-all{margin:var(--ds-s2) 0 var(--ds-s5);font-weight:600}
.ds-see-all--main{margin-top:var(--ds-s5)}
.ds-browse-jump a{display:inline-block;margin:0 14px 6px 0;font-weight:600}
/* page (detail/list/static) */
.ds-page-head{background:linear-gradient(var(--ds-brand-tint),#fff);border-bottom:1px solid var(--ds-line);padding:var(--ds-s6) 0 var(--ds-s5)}
.ds-page-head h1{font-size:clamp(1.6rem,1.2rem + 1.6vw,2.25rem)}
.ds-page-head .ds-lead p{margin-bottom:var(--ds-s3)}
.crumbs{font-size:var(--ds-t-xs);color:var(--ds-muted);margin-bottom:var(--ds-s3)}.crumbs a{color:var(--ds-muted)}
.ds-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:var(--ds-s6);padding:var(--ds-s6) 0 var(--ds-s7)}
.ds-layout--single{grid-template-columns:minmax(0,1fr)}
.ds-aside{position:sticky;top:84px;align-self:start;display:grid;gap:var(--ds-s4)}
.ds-aside .ds-card{padding:var(--ds-s5)}.ds-aside h2{font-size:1.0625rem}
@media(max-width:960px){.ds-layout{grid-template-columns:minmax(0,1fr)}.ds-aside{position:static;order:-1}}
.sec{margin:var(--ds-s6) 0}.sec h2{font-size:1.25rem}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(170px,1fr));gap:var(--ds-s3);margin:var(--ds-s5) 0}
.card{background:#fff;border:1px solid var(--ds-line);border-radius:var(--ds-radius);padding:var(--ds-s4);font-size:var(--ds-t-sm);color:var(--ds-muted)}
.card b{display:block;font-family:var(--ds-font-head);font-size:1.5rem;color:var(--ds-ink);margin-top:4px;font-variant-numeric:tabular-nums}.card b.small{font-size:1.1rem}
.ds-prose{max-width:760px;padding:var(--ds-s6) 0 var(--ds-s7)}.ds-prose h1{font-size:2rem}.ds-prose h2{margin-top:var(--ds-s6)}
/* states: loading / empty / error */
.ds-state{display:grid;justify-items:center;text-align:center;gap:var(--ds-s2);padding:var(--ds-s6) var(--ds-s4);border:1px dashed var(--ds-line-2);border-radius:var(--ds-radius);color:var(--ds-muted);background:var(--ds-bg-alt)}
.ds-state strong{color:var(--ds-ink)}
.ds-state--error{border-style:solid;border-color:#fecaca;background:var(--ds-err-soft);color:#7f1d1d}.ds-state--error strong{color:#7f1d1d}
.ds-state--success{border-style:solid;border-color:#bbf7d0;background:var(--ds-ok-soft);color:#14532d}
.ds-skeleton{display:block;height:12px;border-radius:6px;background:linear-gradient(90deg,var(--ds-line) 25%,var(--ds-bg-alt) 50%,var(--ds-line) 75%);background-size:200% 100%;animation:ds-shimmer 1.2s infinite}
.ds-spinner{width:22px;height:22px;border-radius:50%;border:3px solid var(--ds-line);border-top-color:var(--ds-brand);animation:ds-spin .8s linear infinite}
@keyframes ds-shimmer{to{background-position:-200% 0}}@keyframes ds-spin{to{transform:rotate(360deg)}}
/* final CTA band */
.ds-band{background:var(--ds-brand-strong);color:#fff;border-radius:var(--ds-radius-lg);padding:var(--ds-s7) var(--ds-s6);display:flex;flex-wrap:wrap;gap:var(--ds-s5);align-items:center;justify-content:space-between}
.ds-band h2{color:#fff;margin:0 0 6px}.ds-band p{margin:0;color:#e2e8f0}
.ds-band .ds-btn{background:#fff;color:var(--ds-brand-strong)}.ds-band .ds-btn:hover{background:var(--ds-brand-soft);color:var(--ds-brand-strong)}
/* footer */
.ds-footer{background:#0b1220;color:#cbd5e1;padding:var(--ds-s7) 0 var(--ds-s5);margin-top:var(--ds-s7);font-size:var(--ds-t-sm)}
.ds-footer a{color:#e2e8f0;text-decoration:none}.ds-footer a:hover{color:#fff;text-decoration:underline}
.ds-footer-grid{display:grid;grid-template-columns:1.4fr repeat(3,1fr);gap:var(--ds-s6)}
.ds-footer h2{color:#fff;font-size:var(--ds-t-sm);text-transform:uppercase;letter-spacing:.06em;margin-bottom:var(--ds-s3)}
.ds-footer ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}
.ds-footer .ds-brand{color:#fff}.ds-footer-legal{border-top:1px solid #1e293b;margin-top:var(--ds-s6);padding-top:var(--ds-s4);font-size:var(--ds-t-xs);color:#94a3b8}
.ds-footer-legal p{margin:0 0 var(--ds-s2)}.ds-footer-legal a{color:#cbd5e1;text-decoration:underline}
@media(max-width:860px){.ds-footer-grid{grid-template-columns:1fr 1fr}}@media(max-width:520px){.ds-footer-grid{grid-template-columns:1fr}}
@media print{.ds-header,.ds-footer,.ds-aside,.ds-cta,.ds-band{display:none}}
.ds-hero .ds-eyebrow{margin-top:var(--ds-s4)}
.ds-why{margin-top:var(--ds-s6)}.ds-why h3{margin-bottom:var(--ds-s2)}.ds-why p{color:var(--ds-ink-2)}
.ds-audience-head{margin-top:var(--ds-s7)}
.ds-section--stats{padding:var(--ds-s6) 0}
.ds-aside .ds-pill{margin-bottom:var(--ds-s3);font-size:var(--ds-t-xs)}
.ds-layout .ds-stats{grid-template-columns:repeat(auto-fit,minmax(150px,1fr))}
/* ---------- tool layer for Olsen data sites: components ds1 lacks (uses --ds-* tokens only) ---------- */
.stack>*+*{margin-top:var(--ds-s5)}
.pt-tight{padding-top:var(--ds-s5)}.pt-0{padding-top:0}.mt-4{margin-top:var(--ds-s4)}.mw-22{max-width:22rem}
.tk-crumbs{padding-top:var(--ds-s3)}.crumbs a{color:var(--ds-ink-2)}
ul.ds-stats{list-style:none;padding:0;margin:0}
.up{color:var(--ds-ok);font-weight:650}.down{color:var(--ds-err);font-weight:650}
.ds-footer p a,.ds-prose a,.tk-callout a,.ds-source a{text-decoration:underline}
/* calculator */
.calc{display:grid;gap:var(--ds-s3)}.calc h2{font-size:var(--ds-t-lg);margin:0}
.calc form label,.calc label{margin-top:0}
.ds-field label{margin:0 0 6px}
.calc__row{display:grid;gap:var(--ds-s3);grid-template-columns:repeat(auto-fit,minmax(190px,1fr))}
.calc__out,.calc__res{font-variant-numeric:tabular-nums}
.calc__big{font-family:var(--ds-font-head);font-size:var(--ds-t-xl);font-weight:750;color:var(--ds-ink);line-height:1.2;display:block}
.calc__mid{font-size:var(--ds-t-lg);font-weight:700;color:var(--ds-ink);margin-bottom:var(--ds-s3)}
.tk-k{display:block;font-size:var(--ds-t-sm);color:var(--ds-muted);font-weight:600;margin:0}
.calc button[type=submit]{width:100%}
/* callout (notices, disclaimers) */
.tk-callout{border:1px solid var(--ds-brand-line);border-left:4px solid var(--ds-brand);background:var(--ds-brand-tint);border-radius:var(--ds-radius);padding:var(--ds-s4) var(--ds-s5);color:var(--ds-ink-2)}
.tk-callout p:last-child{margin-bottom:0}
/* sources list */
.cite{font-size:var(--ds-t-xs);color:var(--ds-muted)}
.sources{font-size:var(--ds-t-sm);padding-left:1.2em}.sources li{margin-bottom:var(--ds-s2)}
.ds-source>div>p:last-child{margin-bottom:0}
.ds-table caption{text-align:left;font-weight:650;padding:var(--ds-s3) var(--ds-s4);color:var(--ds-ink);caption-side:top}
/* stacked table on narrow screens: <table class="ds-table ds-table--stack"> with td[data-label] */
@media(max-width:640px){.ds-table--stack thead{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
.ds-table--stack,.ds-table--stack tbody,.ds-table--stack tr,.ds-table--stack td{display:block;width:100%}
.ds-table--stack tr{border-bottom:1px solid var(--ds-line);padding:var(--ds-s2) 0}
.ds-table--stack td{border:0;padding:4px 12px;display:flex;justify-content:space-between;gap:var(--ds-s3);text-align:right}
.ds-table--stack td::before{content:attr(data-label);font-weight:600;color:var(--ds-muted);text-align:left}
.ds-table-wrap:has(.ds-table--stack){overflow-x:visible}}
/* ad slots: the hidden attribute removes them while ads are off in config */
.ad-slot[hidden]{display:none!important}
.ad-slot{display:block;margin:var(--ds-s6) auto;max-width:var(--ds-max);min-height:120px;border:1px dashed var(--ds-line-2);border-radius:var(--ds-radius);background:var(--ds-bg-alt);text-align:center;padding:var(--ds-s2)}
.ad-slot__label{display:block;font-size:var(--ds-t-xs);color:var(--ds-muted);text-transform:uppercase;letter-spacing:.08em}
@media(max-width:560px){.ds-stats{grid-template-columns:1fr 1fr;gap:var(--ds-s3)}.ds-stat{padding:var(--ds-s3)}.ds-stat b{font-size:1.3rem}}
