/* Tokens: 02_DESIGN_SYSTEM.md — dark "Frequency" default, light "Pearl" alternate. No purple anywhere. */
:root{
  --bg:#F6F8F6; --bg-elev:#FFFFFF; --bg-sunken:#EDF2EE; --surface:#FFFFFF; --surface-2:#F1F5F2; --line:rgba(11,31,22,.11); --line-strong:rgba(11,31,22,.2);
  --text:#0B1F16; --muted:#4F6359; --faint:#6E8077;
  --primary:#1D6F41; --primary-hover:#165934; --on-primary:#FFFFFF;
  --energy:#2E8F86; --energy-ink:#1B6E66; --metal:#9C8662; --metal-ink:#76602F;
  --glass:rgba(255,255,255,.78); --glow:rgba(46,143,134,.22); --shadow:0 18px 50px -24px rgba(11,31,22,.35);
  --hero-a:#EAF3EE; --hero-b:#F6F8F6; --ring:rgba(29,111,65,.35);
  --accent:var(--energy); --accent-ink:var(--energy-ink); --accent-glow:var(--glow);
  --r-sm:6px; --r-md:10px; --r-lg:16px; --r-xl:24px; --r-2xl:32px;
  --e-out:cubic-bezier(.22,1,.36,1); --d-fast:.18s; --d-base:.32s; --d-slow:.6s;
  --font-d:Manrope,Inter,system-ui,sans-serif; --font-b:Inter,system-ui,-apple-system,"Segoe UI",sans-serif;
  --fs-micro:12px; --fs-small:14px; --fs-body:17px; --fs-lead:clamp(18px,1.4vw,21px); --fs-h4:18px; --fs-h3:clamp(20px,1.7vw,24px); --fs-h2:clamp(28px,3.4vw,46px); --fs-h1:clamp(36px,5.2vw,68px);
  --header-h:72px; --container:1240px; --gutter:clamp(18px,4vw,40px);
  color-scheme:light;
}
:root[data-theme="dark"]{
  --bg:#07120E; --bg-elev:#0B1813; --bg-sunken:#050D0A; --surface:#0E1F18; --surface-2:#12281F; --line:rgba(143,227,217,.13); --line-strong:rgba(143,227,217,.26);
  --text:#EAF2EE; --muted:#A3B8AD; --faint:#7F958A;
  --primary:#2FA866; --primary-hover:#38BF76; --on-primary:#04140C;
  --energy:#8FE3D9; --energy-ink:#8FE3D9; --metal:#D9C7A8; --metal-ink:#D9C7A8;
  --glass:rgba(11,24,19,.66); --glow:rgba(143,227,217,.28); --shadow:0 24px 60px -28px rgba(0,0,0,.8);
  --hero-a:#0B2118; --hero-b:#07120E; --ring:rgba(143,227,217,.4);
  color-scheme:dark;
}
@media (prefers-color-scheme:dark){ :root:not([data-theme]){ color-scheme:dark; } }
:root[data-side="business"]{ --accent:var(--metal); --accent-ink:var(--metal-ink); --accent-glow:color-mix(in srgb,var(--metal) 26%,transparent); }

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 56px)}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-b);font-size:var(--fs-body);line-height:1.62;-webkit-font-smoothing:antialiased;overflow-x:clip;text-rendering:optimizeLegibility}
h1,h2,h3,h4{font-family:var(--font-d);letter-spacing:-.022em;line-height:1.12;margin:0;text-wrap:balance;font-weight:700}
h1{font-size:var(--fs-h1);font-weight:800;letter-spacing:-.03em}
h2{font-size:var(--fs-h2)} h3{font-size:var(--fs-h3);line-height:1.2} h4{font-size:var(--fs-h4)}
p{margin:0}
img,svg,canvas,video{display:block;max-width:100%}
img{height:auto}
a{color:var(--accent-ink);text-underline-offset:3px;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
button{font:inherit;color:inherit}
ul,ol{margin:0;padding:0}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px;border-radius:4px}
::selection{background:color-mix(in srgb,var(--accent) 35%,transparent)}
.container{width:100%;max-width:calc(var(--container) + var(--gutter)*2);margin-inline:auto;padding-inline:var(--gutter)}
.container.narrow,.narrow{max-width:calc(780px + var(--gutter)*2)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.skip{position:absolute;left:12px;top:-60px;background:var(--primary);color:var(--on-primary);padding:10px 16px;border-radius:var(--r-md);z-index:200;text-decoration:none;font-weight:600}
.skip:focus{top:12px}
.hl{color:var(--accent-ink)}
.eyebrow{font-size:12.5px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--accent-ink);margin-bottom:14px}
.lead{font-size:var(--fs-lead);color:var(--muted);max-width:62ch;line-height:1.55}
.muted{color:var(--muted)} .small{font-size:var(--fs-small)} .micro{font-size:var(--fs-micro);color:var(--faint);margin-top:14px;line-height:1.5}
.num{font-variant-numeric:tabular-nums}
.ico{width:1.15em;height:1.15em;flex:none;stroke-width:1.75}
.tag{display:inline-block;font-size:11.5px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink);border:1px solid var(--line-strong);padding:3px 9px;border-radius:999px;margin-bottom:12px}
.tag--q{margin-left:6px;color:var(--muted)}
/* reveal */
.js [data-reveal]{opacity:0;transform:translateY(18px);transition:opacity .7s var(--e-out),transform .7s var(--e-out)}
.js [data-reveal].in{opacity:1;transform:none}
.rm [data-reveal]{opacity:1!important;transform:none!important;transition:none!important}
@media (prefers-reduced-motion:reduce){*{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important;scroll-behavior:auto!important}}
/* buttons */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;height:50px;padding:0 24px;border-radius:999px;font-weight:600;font-size:15px;text-decoration:none;border:1px solid transparent;cursor:pointer;transition:transform var(--d-base) var(--e-out),background var(--d-fast),border-color var(--d-fast),box-shadow var(--d-base);white-space:nowrap;line-height:1}
.btn-primary{background:var(--primary);color:var(--on-primary)} .btn-primary:hover{background:var(--primary-hover);transform:translateY(-1px);box-shadow:0 10px 30px -12px var(--primary)}
:root[data-side="business"] .btn-primary{background:var(--metal);color:#1b1608} :root[data-side="business"] .btn-primary:hover{background:color-mix(in srgb,var(--metal) 88%,#fff)}
.btn-ghost{background:transparent;color:var(--text);border-color:var(--line-strong)} .btn-ghost:hover{border-color:var(--accent);background:var(--accent-glow)}
.btn-text{background:none;color:var(--accent-ink);padding:0 6px;height:auto;min-height:44px} .btn-text:hover{text-decoration:underline}
.btn-sm{height:40px;padding:0 18px;font-size:14px}
.btn-row{display:flex;flex-wrap:wrap;gap:12px;margin-top:28px}
.btn[disabled]{opacity:.55;cursor:not-allowed}
.ic-btn{display:inline-grid;place-items:center;width:42px;height:42px;border-radius:999px;border:1px solid var(--line);background:transparent;cursor:pointer;color:var(--text);transition:background var(--d-fast),border-color var(--d-fast)}
.ic-btn:hover{background:var(--accent-glow);border-color:var(--accent)}
/* chips */
.chips{list-style:none;display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.chips li{padding:7px 14px;border-radius:999px;background:var(--glass);border:1px solid var(--line);font-size:13.5px;backdrop-filter:blur(8px)}
.chip{padding:8px 16px;border-radius:999px;border:1px solid var(--line-strong);background:transparent;font-size:14px;cursor:pointer}
.chip.on{background:var(--accent-glow);border-color:var(--accent);color:var(--accent-ink)}
/* confirm-note */
.confirm{display:inline-grid;place-items:center;vertical-align:middle;margin-left:6px;width:20px;height:20px;border:0;background:none;color:var(--faint);cursor:help;position:relative;padding:0}
.confirm .ico{width:14px;height:14px}
.confirm::after{content:attr(data-tip);position:absolute;left:50%;bottom:calc(100% + 8px);transform:translateX(-50%) translateY(4px);background:var(--bg-elev);color:var(--text);border:1px solid var(--line-strong);padding:8px 12px;border-radius:var(--r-md);font-size:12.5px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .15s,transform .15s;box-shadow:var(--shadow);z-index:30}
.confirm:hover::after,.confirm:focus-visible::after,.confirm.open::after{opacity:1;transform:translateX(-50%)}
.fn{font-size:.68em;vertical-align:super;line-height:0;margin-left:2px}
.fn a{color:var(--accent-ink);text-decoration:none;font-weight:700;padding:0 1px}
/* FX */
.rings{position:absolute;inset:0;pointer-events:none;overflow:visible;z-index:0}
.rings i{position:absolute;left:var(--ox);top:var(--oy);width:44%;aspect-ratio:1;border-radius:50%;border:1.5px solid var(--ring);transform:translate(-50%,-50%) scale(.3);opacity:0;animation:ring 6s var(--e-out) infinite}
.rings i:nth-child(2){animation-delay:1.5s}.rings i:nth-child(3){animation-delay:3s}.rings i:nth-child(4){animation-delay:4.5s}
.rings--soft i{border-width:1px;opacity:0}
@keyframes ring{0%{transform:translate(-50%,-50%) scale(.3);opacity:0}12%{opacity:.85}100%{transform:translate(-50%,-50%) scale(2.2);opacity:0}}
.leafgrid{position:absolute;inset:0;background-image:radial-gradient(circle at 1px 1px,var(--line) 1px,transparent 0);background-size:26px 26px;mask-image:radial-gradient(ellipse 70% 60% at 70% 40%,#000,transparent 75%);-webkit-mask-image:radial-gradient(ellipse 70% 60% at 70% 40%,#000,transparent 75%);opacity:.9}
.vignette{position:absolute;inset:0;background:radial-gradient(ellipse 60% 55% at 72% 42%,var(--accent-glow),transparent 70%),linear-gradient(180deg,var(--hero-a),var(--hero-b) 80%)}
.glow{position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(420px circle at var(--mx,50%) var(--my,0%),var(--accent-glow),transparent 60%);opacity:0;transition:opacity .3s}
*:hover>.glow{opacity:1}
@media (max-width:640px){.btn{white-space:normal;text-align:center;max-width:100%;height:auto;min-height:44px;padding-block:10px;line-height:1.25}}

/* ---------- HEADER + MEGA MENU ---------- */
.site-header{position:sticky;top:0;z-index:100;height:var(--header-h);background:color-mix(in srgb,var(--bg) 82%,transparent);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);border-bottom:1px solid var(--line)}
.hdr-in{height:100%;max-width:calc(1320px + var(--gutter)*2);margin:auto;padding-inline:var(--gutter);display:flex;align-items:center;gap:22px}
.logo{display:inline-flex;align-items:center;flex:none}
.logo img{height:34px;width:auto}
.logo-l{display:none} :root[data-theme="light"] .logo-d{display:none} :root[data-theme="light"] .logo-l{display:block}
.mega{flex:1;min-width:0;display:none}
.mega>ul{list-style:none;display:flex;gap:2px;justify-content:center;align-items:center}
.mi{position:static;display:flex;align-items:center}
.mi-link{padding:10px 6px 10px 12px;font-size:15px;font-weight:500;color:var(--text);text-decoration:none;border-radius:999px;white-space:nowrap}
.mi-link:hover,.mi.open .mi-link,.mi-link[aria-current]{color:var(--accent-ink)}
.mi-metal{color:var(--metal-ink)!important}
.mi-btn{display:grid;place-items:center;width:28px;height:36px;border:0;background:none;cursor:pointer;color:var(--muted);margin-right:2px;border-radius:999px}
.mi-btn .ico{width:15px;height:15px;transition:transform .25s var(--e-out)} .mi.open .mi-btn .ico{transform:rotate(180deg)}
.mp{position:absolute;left:0;right:0;top:100%;padding-top:10px;visibility:hidden;opacity:0;transform:translateY(-6px);transition:opacity .22s var(--e-out),transform .22s var(--e-out),visibility 0s .22s;pointer-events:none;z-index:5}
.mi.open .mp{visibility:visible;opacity:1;transform:none;pointer-events:auto;transition-delay:0s}
.mp-in{display:grid;grid-template-columns:repeat(var(--cols,3),minmax(0,1fr));gap:8px 36px;padding:30px;background:color-mix(in srgb,var(--bg-elev) 96%,transparent);border:1px solid var(--line-strong);border-radius:var(--r-xl);box-shadow:var(--shadow);max-width:1180px;margin-inline:auto;backdrop-filter:blur(22px)}
.mp[data-accent="metal"] .mc-h a,.mp[data-accent="metal"] .eyebrow{color:var(--metal-ink)}
#mp-products .mp-in{grid-template-columns:1.5fr 1fr 1.05fr} #mp-technology .mp-in{grid-template-columns:1fr 1fr 1.1fr} #mp-value .mp-in{grid-template-columns:1fr 1.1fr} #mp-opportunity .mp-in{grid-template-columns:1fr 1.25fr 1fr 1.1fr} #mp-stories .mp-in{grid-template-columns:1fr 1fr 1.1fr} #mp-blog .mp-in{grid-template-columns:1fr 1.2fr} #mp-resources .mp-in{grid-template-columns:1.2fr 1fr 1.05fr}
.mc-h{font-size:12px;font-weight:600;letter-spacing:.14em;text-transform:uppercase;color:var(--faint);margin-bottom:10px}
.mc-h a{color:inherit;text-decoration:none} .mc-h a:hover{color:var(--accent-ink)}
.mc ul{list-style:none;display:grid;gap:2px}
.mc--wide ul{grid-template-columns:1fr 1fr;column-gap:12px}
.mc li a{display:flex;align-items:center;gap:12px;padding:9px 12px;border-radius:var(--r-md);text-decoration:none;color:var(--text);transition:background .15s}
.mc li a:hover,.mc li a[aria-current]{background:var(--accent-glow)}
.mc li img{width:40px;height:40px;border-radius:8px;object-fit:cover;flex:none;background:var(--surface-2)}
.mc li b{display:block;font-weight:600;font-size:14.5px;line-height:1.25}
.mc li small{display:block;color:var(--muted);font-size:12.5px;line-height:1.35;margin-top:2px;display:-webkit-box;-webkit-line-clamp:var(--clamp,2);-webkit-box-orient:vertical;overflow:hidden}
#mp-products .mc li small{--clamp:1}
.mc--feat{min-width:0}
.mf{position:relative;height:100%;min-height:240px;padding:22px;border-radius:var(--r-lg);background:linear-gradient(160deg,var(--surface),var(--surface-2));border:1px solid var(--line);overflow:hidden;display:flex;flex-direction:column;gap:6px}
.mf .eyebrow{margin:0 0 2px} .mf h4{font-size:19px}
.mf p{color:var(--muted);font-size:14px} .mf .btn{margin-top:auto;align-self:flex-start}
.mf-art{position:relative;height:130px;margin:-6px -6px 4px;display:grid;place-items:center}
.mf-art img{position:relative;height:130px;width:auto;object-fit:contain;filter:drop-shadow(0 14px 18px rgba(0,0,0,.35))}
.mf-art .rings i{width:70%}
.mf-price{color:var(--text)!important;font-weight:700;font-size:20px!important}
.mf-nums{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:8px 0}
.mf-nums span{display:block;font-size:12px;color:var(--muted)} .mf-nums strong{font-size:22px;font-family:var(--font-d)}
.mf--posts ul{list-style:none;display:grid;gap:10px} .mf--posts a{color:var(--text);text-decoration:none;font-size:14px;font-weight:500;line-height:1.35} .mf--posts a:hover{color:var(--accent-ink)}
.hdr-util{display:flex;align-items:center;gap:10px;margin-left:auto}
.t-sun{display:none} :root[data-theme="light"] .t-sun{display:block} :root[data-theme="light"] .t-moon{display:none}
.hdr-shop{display:none}
@media (min-width:1180px){ .mega{display:block} .m-burger{display:none} .hdr-shop{display:inline-flex} .hdr-util{margin-left:0} }
@media (min-width:1180px) and (max-width:1320px){ .mi-link{font-size:14px;padding-left:9px} .hdr-in{gap:14px} }
/* mobile sheet */
.m-sheet{position:fixed;inset:var(--header-h) 0 0 0;background:var(--bg);overflow:auto;z-index:99;padding:12px var(--gutter) 120px;overscroll-behavior:contain}
.m-sheet[hidden]{display:none}
.m-top{display:flex;justify-content:space-between;align-items:center;padding:6px 0 12px;color:var(--muted);font-size:13px;letter-spacing:.12em;text-transform:uppercase}
.m-sec{border-bottom:1px solid var(--line)} .m-sec summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;padding:18px 2px;font-family:var(--font-d);font-size:22px;font-weight:700}
.m-sec summary::-webkit-details-marker{display:none} .m-sec[open] summary .ico{transform:rotate(180deg)}
.m-sec ul{list-style:none;padding:0 0 14px;display:grid} .m-sec li a{display:block;padding:11px 4px;text-decoration:none;font-size:16.5px;color:var(--muted)} .m-sec li a b{color:var(--accent-ink)}
.m-actions{display:grid;gap:10px;margin-top:24px}
body.menu-open{overflow:hidden}
/* ---------- FOOTER ---------- */
.site-footer{margin-top:0;background:var(--bg-sunken);border-top:1px solid var(--line);padding:64px 0 110px;font-size:15px}
.f-top{display:grid;gap:36px;grid-template-columns:1fr;padding-bottom:44px;border-bottom:1px solid var(--line)}
@media (min-width:900px){.f-top{grid-template-columns:1.1fr 1fr;gap:64px}}
.f-brand img{height:36px;width:auto;margin-bottom:14px} .f-brand p+p{margin-top:8px}
.f-cols{display:grid;grid-template-columns:repeat(2,1fr);gap:34px 24px;padding:44px 0}
@media (min-width:820px){.f-cols{grid-template-columns:repeat(6,1fr)}}
.fc-h{font-family:var(--font-d);font-weight:700;margin-bottom:12px;font-size:15px} .fc-h a{color:var(--text);text-decoration:none}
.fc ul{list-style:none;display:grid;gap:9px} .fc li a{color:var(--muted);text-decoration:none;font-size:14px;line-height:1.35} .fc li a:hover{color:var(--accent-ink)}
.f-legal{display:grid;gap:8px;font-size:var(--fs-micro);color:var(--faint);line-height:1.55;max-width:920px;border-top:1px solid var(--line);padding-top:28px}
.f-links{display:flex;flex-wrap:wrap;gap:6px 18px;margin-top:6px} .f-links a{color:var(--muted)}
.f-social{display:flex;gap:14px;margin-top:12px}
/* footnotes */
.footnotes{padding:28px 0 36px;border-top:1px solid var(--line);margin-top:0}
.fn-list{list-style:none;display:grid;gap:7px;max-width:880px;font-size:var(--fs-micro);color:var(--faint);line-height:1.55}
.fn-list sup{color:var(--accent-ink);font-weight:700;margin-right:4px}
.fn-extra{max-width:880px;font-size:var(--fs-micro);color:var(--faint);margin-top:10px}
/* ---------- DOCK ---------- */
.dock{position:fixed;left:50%;bottom:calc(12px + env(safe-area-inset-bottom,0px));transform:translateX(-50%);z-index:90;display:flex;gap:2px;padding:6px;border-radius:999px;background:var(--glass);backdrop-filter:blur(18px);border:1px solid var(--line-strong);box-shadow:var(--shadow);transition:transform .35s var(--e-out)}
.dock.hide{transform:translate(-50%,140%)}
.dock-i{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:68px;padding:8px 10px;border:0;background:none;border-radius:999px;color:var(--text);text-decoration:none;font-size:12px;cursor:pointer}
.dock-i:hover{background:var(--accent-glow)} .dock-i .ico{width:20px;height:20px}
@media (min-width:1024px){.dock{display:none}.site-footer{padding-bottom:64px}}
.toast{position:fixed;left:50%;bottom:90px;transform:translate(-50%,20px);background:var(--bg-elev);border:1px solid var(--line-strong);padding:12px 18px;border-radius:var(--r-md);box-shadow:var(--shadow);font-size:14px;opacity:0;pointer-events:none;transition:.3s var(--e-out);z-index:300;max-width:90vw}
.toast.show{opacity:1;transform:translate(-50%,0)}
/* ---------- DIALOGS ---------- */
dialog{border:1px solid var(--line-strong);background:var(--bg-elev);color:var(--text);border-radius:var(--r-xl);padding:0;box-shadow:var(--shadow);max-width:min(560px,94vw);width:100%}
dialog::backdrop{background:rgba(3,10,7,.62);backdrop-filter:blur(4px)}
.lead-dialog{overflow:visible} .dlg-x{position:absolute;right:12px;top:12px;z-index:3}
.dlg-body{padding:30px 28px 26px;max-height:88vh;overflow:auto}
.palette{max-width:min(640px,94vw);margin-top:12vh}
.pal-in{padding:10px}
.pal-search{display:flex;align-items:center;gap:12px;padding:12px 14px;border-bottom:1px solid var(--line)} .pal-search input{flex:1;border:0;outline:0;background:none;color:var(--text);font-size:17px}
.pal-list{list-style:none;max-height:52vh;overflow:auto;padding:8px 4px} .pal-list a{display:flex;justify-content:space-between;gap:12px;padding:11px 12px;border-radius:var(--r-md);color:var(--text);text-decoration:none} .pal-list a small{color:var(--muted)} .pal-list li[aria-selected="true"] a,.pal-list a:hover{background:var(--accent-glow)}
.pal-hint{padding:8px 14px 6px}

.page{min-height:60vh}
.sec{padding-block:clamp(52px,7vw,96px);position:relative}
.sec.tone-sunken{background:var(--bg-sunken)} .sec.tone-elev{background:var(--bg-elev)}
.sec.tone-glow{background:radial-gradient(ellipse 70% 80% at 50% 0%,var(--accent-glow),transparent 70%),var(--bg-sunken)}
.sh{max-width:760px;margin-bottom:clamp(34px,4.5vw,60px)} .sh--center{margin-inline:auto;text-align:center} .sh--center .lead{margin-inline:auto}
.sh h2{margin-bottom:16px}
/* hero */
.hero{position:relative;overflow:hidden;padding-block:clamp(46px,7vw,96px) clamp(54px,8vw,110px);isolation:isolate}
.hero-bg{position:absolute;inset:0;z-index:-1}
.hero-photo{position:absolute;inset:0;opacity:.35} .hero-photo img{width:100%;height:100%;object-fit:cover}
.hero-grid{display:grid;gap:40px;align-items:center}
@media (min-width:960px){.hero-grid{grid-template-columns:1.05fr .95fr;gap:56px}.hero-grid--solo{grid-template-columns:minmax(0,820px)}}
.hero h1{margin-bottom:22px} .hero .lead{margin-bottom:6px}
.hero-price{display:flex;align-items:baseline;gap:12px;margin-top:26px;color:var(--muted)} .hero-price strong{font-family:var(--font-d);font-size:clamp(26px,3vw,34px);color:var(--text)}
.hero-note{margin-top:16px;font-size:var(--fs-small);color:var(--muted)}
.hero-media{position:relative;aspect-ratio:1/1;max-width:560px;margin-inline:auto;width:100%;display:grid;place-items:center;transform-style:preserve-3d}
.hero-media img{border-radius:var(--r-xl);position:relative;z-index:1;width:92%;height:auto;object-fit:contain;filter:drop-shadow(0 40px 50px rgba(0,0,0,.45));will-change:transform}
.hero-glow{position:absolute;left:50%;bottom:6%;width:78%;height:22%;transform:translateX(-50%);background:radial-gradient(closest-side,var(--accent-glow),transparent);filter:blur(18px);opacity:.9}
.hero-media .rings{inset:-10%}
/* page header (simple pages) */
.phead{position:relative;overflow:hidden;padding-block:clamp(36px,5vw,70px) clamp(40px,6vw,84px);isolation:isolate;border-bottom:1px solid var(--line)}
.ph-bg{position:absolute;inset:0;z-index:-1}
.ph-inner{display:grid;gap:30px}
@media (min-width:960px){.ph-inner:has(.ph-media){grid-template-columns:1.2fr .8fr;align-items:center}.ph-inner>.crumbs{grid-column:1/-1}}
.ph-media img{max-height:380px;width:auto;margin-inline:auto;filter:drop-shadow(0 30px 40px rgba(0,0,0,.4))}
.crumbs ol{list-style:none;display:flex;flex-wrap:wrap;gap:6px;font-size:13px;color:var(--faint);margin-bottom:6px} .crumbs li+li::before{content:"›";margin-right:6px;color:var(--faint)} .crumbs a{color:var(--muted);text-decoration:none} .crumbs a:hover{color:var(--accent-ink)}
.ph-copy h1{margin-bottom:18px}
/* local nav */
.localnav{position:sticky;top:var(--header-h);z-index:60;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(14px);border-bottom:1px solid var(--line)}
.ln-in{display:flex;align-items:center;gap:18px;height:54px}
.ln-name{font-family:var(--font-d);font-weight:700;display:none} @media (min-width:1024px){.ln-name{display:block}}
.localnav ul{list-style:none;display:flex;gap:4px;overflow-x:auto;scrollbar-width:none;flex:1;mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent);-webkit-mask-image:linear-gradient(90deg,transparent,#000 14px,#000 calc(100% - 14px),transparent)}
.localnav ul::-webkit-scrollbar{display:none}
.localnav li a{display:block;padding:8px 14px;border-radius:999px;color:var(--muted);text-decoration:none;font-size:14px;white-space:nowrap} .localnav li a:hover,.localnav li a.on{color:var(--accent-ink);background:var(--accent-glow)}
.ln-end{display:flex;align-items:center;gap:12px;flex:none}
/* bento */
.bento{display:grid;grid-template-columns:repeat(6,1fr);gap:16px}
.bento-card{position:relative;overflow:hidden;border-radius:var(--r-xl);padding:28px;background:linear-gradient(160deg,var(--surface),var(--surface-2));border:1px solid var(--line);display:flex;flex-direction:column;gap:10px;min-height:200px;grid-column:span 6}
.bento-card h3{font-size:clamp(19px,1.6vw,23px)} .bento-card p{color:var(--muted);font-size:15.5px}
.bento-ico{display:inline-grid;place-items:center;width:46px;height:46px;border-radius:14px;background:var(--accent-glow);color:var(--accent-ink);margin-bottom:6px} .bento-ico .ico{width:22px;height:22px}
.bento-img{position:relative;flex:1;min-height:180px;display:grid;place-items:center} .bento-img img{max-height:260px;width:auto;object-fit:contain;position:relative;z-index:1}
@media (min-width:820px){.bento-card.span-sm{grid-column:span 3}.bento-card.span-lg{grid-column:span 6}}
@media (min-width:1024px){.bento{grid-template-columns:repeat(6,1fr)}.bento-card.span-sm{grid-column:span 2}.bento-card.span-lg{grid-column:span 4}.bento-card.span-md{grid-column:span 3}}
/* steps */
.steps{display:grid;gap:24px}
.steps-visual{display:none}
.step{padding:26px;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface)} .step h3{margin:6px 0 8px} .step p{color:var(--muted)} .step-n{color:var(--accent-ink);font-weight:700;font-size:13px;letter-spacing:.12em}
.step-vis-m{margin-top:16px;border-radius:var(--r-lg);overflow:hidden;background:var(--bg-sunken);aspect-ratio:16/10;display:grid;place-items:center} .step-vis-m img{max-height:100%;width:auto;object-fit:contain}
.sv-ico{display:grid;place-items:center;gap:10px;color:var(--accent-ink)} .sv-ico .ico{width:64px;height:64px;stroke-width:1.25}
@media (min-width:1024px){
 .steps{grid-template-columns:1fr 1fr;gap:56px;align-items:start}
 .steps-list{display:grid;gap:0} .step{min-height:56vh;display:flex;flex-direction:column;justify-content:center;border:0;background:none;padding:20px 0;opacity:.38;transition:opacity .4s} .step.on{opacity:1} .step-vis-m{display:none}
 .steps-visual{display:block;position:sticky;top:calc(var(--header-h) + 60px);height:min(64vh,560px);border-radius:var(--r-2xl);background:linear-gradient(160deg,var(--surface),var(--bg-sunken));border:1px solid var(--line);overflow:hidden}
 .sv{position:absolute;inset:0;display:grid;place-items:center;opacity:0;transform:scale(.96);transition:opacity .5s var(--e-out),transform .5s var(--e-out)} .sv.on{opacity:1;transform:none} .sv img{max-height:80%;max-width:80%;object-fit:contain;position:relative;z-index:1}
}
/* cards */
.cards{display:grid;gap:18px;grid-template-columns:1fr}
@media (min-width:640px){.cards.cols-2,.cards.cols-3,.cards.cols-4{grid-template-columns:repeat(2,1fr)}}
@media (min-width:960px){.cards.cols-3{grid-template-columns:repeat(3,1fr)}.cards.cols-4{grid-template-columns:repeat(4,1fr)}.cards.cols-2{grid-template-columns:repeat(2,1fr)}}
.card{position:relative;display:flex;flex-direction:column;border-radius:var(--r-xl);background:linear-gradient(165deg,var(--surface),var(--surface-2));border:1px solid var(--line);overflow:hidden;color:var(--text);text-decoration:none;transition:transform .35s var(--e-out),border-color .25s,box-shadow .35s}
.card--link:hover{transform:translateY(-4px);border-color:var(--accent);box-shadow:var(--shadow)}
.card-img{position:relative;aspect-ratio:4/3;display:grid;place-items:center;background:radial-gradient(ellipse at 50% 80%,var(--accent-glow),transparent 70%);overflow:hidden} .card-img img{max-height:88%;width:auto;max-width:88%;object-fit:contain;position:relative;z-index:1;filter:drop-shadow(0 18px 20px rgba(0,0,0,.3))}
.card-img .rings i{width:60%}
.card-body{padding:24px 24px 26px;display:flex;flex-direction:column;gap:8px;flex:1} .card h3{font-size:clamp(19px,1.5vw,22px)} .card p{color:var(--muted);font-size:15px}
.card-ico{display:inline-grid;place-items:center;width:44px;height:44px;margin:24px 0 0 24px;border-radius:13px;background:var(--accent-glow);color:var(--accent-ink)} .card-ico .ico{width:21px;height:21px}
.card-meta{color:var(--text)!important;font-weight:600;font-size:16px!important}
.card-cta{margin-top:auto;padding-top:10px;display:inline-flex;align-items:center;gap:8px;color:var(--accent-ink);font-weight:600;font-size:14.5px} .card-cta .ico{width:16px;transition:transform .25s} .card--link:hover .card-cta .ico{transform:translateX(4px)}
.cards.dense .card-body{padding:18px 20px 20px} .cards.dense h3{font-size:17px}
/* split */
.split{display:grid;gap:36px;align-items:center} @media (min-width:900px){.split{grid-template-columns:1fr 1fr;gap:64px}.split--rev .split-media{order:-1}}
.split-media{position:relative}.split-media.framed{border-radius:var(--r-2xl);overflow:hidden;border:1px solid var(--line)} .split-media img{width:100%;height:auto}
.split-media .cap{padding:10px 14px;font-size:13px;color:var(--muted)}
.split-copy .sh{margin-bottom:22px}
.ticks{list-style:none;display:grid;gap:12px;margin-top:20px} .ticks li{display:flex;gap:12px;align-items:flex-start} .ticks .ico{color:var(--accent-ink);margin-top:.28em;width:1.1em}
/* stats */
.stats{display:grid;gap:14px;grid-template-columns:repeat(2,1fr)} @media (min-width:900px){.stats.cols-3{grid-template-columns:repeat(3,1fr)}.stats.cols-4{grid-template-columns:repeat(4,1fr)}.stats.cols-2{grid-template-columns:repeat(2,1fr)}}
.stat{padding:26px;border-radius:var(--r-xl);border:1px solid var(--line);background:var(--surface)} .stat strong{display:block;font-family:var(--font-d);font-size:clamp(30px,4vw,48px);letter-spacing:-.03em;line-height:1.05;color:var(--accent-ink)} .stat span{display:block;margin-top:8px;color:var(--text);font-weight:500} .stat small{display:block;color:var(--muted);margin-top:4px;font-size:13.5px}
/* tables */
.table-wrap{overflow-x:auto;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface)}
table{border-collapse:collapse;width:100%;font-size:15px} caption{text-align:left;padding:18px 22px;font-family:var(--font-d);font-weight:700;font-size:17px}
th,td{padding:14px 22px;text-align:left;border-top:1px solid var(--line);vertical-align:top} thead th{background:var(--bg-sunken);font-size:13px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);border-top:0;white-space:nowrap}
tbody th{font-weight:600} td.end,th.end{text-align:right} tr.hl-row td,tr.hl-row th{background:var(--accent-glow)} tr.hl-row th:first-child{box-shadow:inset 3px 0 var(--accent)}
tbody tr[hidden]{display:none}
/* accordion */
.acc{display:grid;gap:10px;max-width:860px}
.acc-item{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden} .acc-item summary{list-style:none;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:18px 22px;font-weight:600;font-family:var(--font-d);font-size:17px}
.acc-item summary::-webkit-details-marker{display:none} .acc-item summary .ico{transition:transform .3s var(--e-out);color:var(--accent-ink)} .acc-item[open] summary .ico{transform:rotate(45deg)}
.acc-body{padding:0 22px 22px;color:var(--muted)} .acc-body ol{padding-left:22px;margin:10px 0;display:grid;gap:6px}
.acc-safe{margin-top:18px;max-width:860px;font-size:14px} .acc-safe summary{font-size:15px;padding:14px 18px}
/* videos */
.vids{display:grid;gap:20px;grid-template-columns:1fr} @media (min-width:640px){.vids{grid-template-columns:repeat(2,1fr)}} @media (min-width:960px){.vids.cols-3{grid-template-columns:repeat(3,1fr)}.vids.cols-4{grid-template-columns:repeat(4,1fr)}.vids.cols-2{grid-template-columns:repeat(2,1fr)}.vids.cols-1{grid-template-columns:1fr}}
.vid{margin:0;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:var(--surface)}
.vid-btn{position:relative;display:block;width:100%;aspect-ratio:16/9;border:0;padding:0;cursor:pointer;background:linear-gradient(135deg,var(--surface-2),var(--bg-sunken));overflow:hidden}
.vid-thumb{position:absolute;inset:0;background-size:cover;background-position:center} .vid-thumb img{width:100%;height:100%;object-fit:cover}
.vid-play{position:absolute;inset:0;display:grid;place-items:center} .vid-play .ico{width:56px;height:56px;padding:16px;border-radius:50%;background:rgba(7,18,14,.7);color:#EAF2EE;backdrop-filter:blur(8px);transition:transform .3s var(--e-out),background .2s;stroke-width:2} .vid-btn:hover .vid-play .ico{transform:scale(1.1);background:var(--primary)}
.vid-dur{position:absolute;right:10px;bottom:10px;background:rgba(7,18,14,.78);color:#EAF2EE;font-size:12px;padding:3px 8px;border-radius:6px}
.vid figcaption{padding:14px 16px 16px;display:grid;gap:4px} .vid .t{font-weight:600;font-size:15px;line-height:1.3} .vid .m{font-size:12.5px;color:var(--muted)} .vid .yt{font-size:13px}
.vid iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
/* quotes / timeline / kv / facts / callout */
.quotes{display:grid;gap:18px} @media (min-width:900px){.quotes{grid-template-columns:repeat(3,1fr)}}
.quote{margin:0;padding:28px;border-radius:var(--r-xl);border:1px solid var(--line);background:var(--surface)} .quote blockquote{margin:0 0 18px;font-family:var(--font-d);font-size:19px;line-height:1.4;font-weight:500} .quote figcaption{font-size:14px;color:var(--muted);display:grid;gap:2px} .quote strong{color:var(--text)}
.timeline{list-style:none;position:relative;display:grid;gap:26px;padding-left:26px;max-width:820px} .timeline::before{content:"";position:absolute;left:5px;top:6px;bottom:6px;width:2px;background:linear-gradient(var(--accent),transparent)}
.timeline li{position:relative;display:grid;gap:4px} .timeline li::before{content:"";position:absolute;left:-26px;top:9px;width:12px;height:12px;border-radius:50%;background:var(--bg);border:2px solid var(--accent)} .tl-when{font-weight:700;color:var(--accent-ink);font-size:13px;letter-spacing:.1em;text-transform:uppercase} .timeline h3{font-size:20px} .timeline p{color:var(--muted)}
.kv{display:grid;gap:0;max-width:820px;border:1px solid var(--line);border-radius:var(--r-xl);overflow:hidden;background:var(--surface)} .kv>div{display:grid;gap:4px;padding:16px 22px;border-top:1px solid var(--line)} .kv>div:first-child{border-top:0} .kv dt{font-size:13px;color:var(--muted);letter-spacing:.04em;text-transform:uppercase} .kv dd{margin:0;font-weight:500}
@media (min-width:700px){.kv>div{grid-template-columns:240px 1fr;gap:20px}}
.facts{list-style:none;display:grid;gap:18px;grid-template-columns:1fr} @media (min-width:700px){.facts{grid-template-columns:repeat(3,1fr)}} .facts li{display:grid;gap:6px;padding:22px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface)} .facts .ico{color:var(--accent-ink);width:26px;height:26px} .facts span{color:var(--muted);font-size:14.5px}
.callout{display:flex;gap:14px;padding:18px 20px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--accent);margin:22px 0;color:var(--muted);font-size:15.5px} .callout .ico{color:var(--accent-ink);margin-top:3px} .callout strong{color:var(--text);display:block;margin-bottom:4px}
.gallery{display:grid;gap:14px;grid-template-columns:1fr 1fr} @media (min-width:900px){.gallery.cols-3{grid-template-columns:repeat(3,1fr)}.gallery.cols-4{grid-template-columns:repeat(4,1fr)}} .gallery figure{margin:0;border-radius:var(--r-lg);overflow:hidden;border:1px solid var(--line);background:var(--surface)} .gallery img{width:100%;aspect-ratio:4/3;object-fit:cover} .gallery figcaption{padding:10px 14px;font-size:13px;color:var(--muted)}
/* buy */
.buy{display:grid;gap:30px;padding:clamp(22px,4vw,44px);border-radius:var(--r-2xl);border:1px solid var(--line-strong);background:linear-gradient(160deg,var(--surface),var(--bg-sunken));overflow:hidden} @media (min-width:860px){.buy{grid-template-columns:.9fr 1.1fr;align-items:center}}
.buy-media{position:relative;display:grid;place-items:center;min-height:260px} .buy-media img{position:relative;max-height:320px;width:auto;object-fit:contain;filter:drop-shadow(0 26px 30px rgba(0,0,0,.35))}
.buy-copy{display:grid;gap:14px;align-content:center} .buy-price{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap} .buy-price strong{font-family:var(--font-d);font-size:clamp(32px,4vw,46px)} .buy-price span{color:var(--muted)}
/* specs */
.specs{display:grid;gap:26px} @media (min-width:900px){.specs{grid-template-columns:1.5fr 1fr;align-items:start}}
.spec-list{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);overflow:hidden} .spec-list>div{display:grid;gap:4px;padding:15px 22px;border-top:1px solid var(--line)} .spec-list>div:first-child{border-top:0} .spec-list dt{font-size:13px;color:var(--muted);text-transform:uppercase;letter-spacing:.05em} .spec-list dd{margin:0;font-weight:500}
@media (min-width:640px){.spec-list>div{grid-template-columns:200px 1fr;gap:20px}}
.spec-box{padding:24px;border-radius:var(--r-xl);border:1px solid var(--line);background:var(--surface)} .spec-box h3{font-size:18px;margin-bottom:6px}
/* CTA band */
.sec--cta{padding-block:clamp(40px,6vw,80px)}
.cta-band{position:relative;overflow:hidden;border-radius:var(--r-2xl);padding:clamp(34px,6vw,80px);text-align:center;background:radial-gradient(ellipse 70% 90% at 50% 120%,var(--accent-glow),transparent 70%),linear-gradient(160deg,var(--surface),var(--bg-sunken));border:1px solid var(--line-strong);isolation:isolate}
.cta-band .rings{inset:0;z-index:-1} .cta-band .rings i{width:50%;--ox:50%;--oy:60%}
.cta-copy{max-width:640px;margin-inline:auto} .cta-copy h2{margin-bottom:14px} .cta-copy p:not(.eyebrow){color:var(--muted);font-size:var(--fs-lead)} .cta-copy .btn-row{justify-content:center}
/* research */
.res-filter{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:22px}
.res-list{list-style:none;display:grid;gap:14px} .res{padding:22px 24px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);display:grid;gap:6px} .res[hidden]{display:none} .res-top{display:flex;gap:6px;align-items:center;flex-wrap:wrap} .res h3{font-size:18px}
/* wallet / worked / dcard */
.wallet-bar{display:flex;height:60px;border-radius:999px;overflow:hidden;border:1px solid var(--line-strong)} .wallet-bar span{display:flex;align-items:center;justify-content:center;gap:6px;font-size:14px} .w-cash{background:var(--accent-glow)} .w-pts{background:var(--surface-2);color:var(--muted)}
.worked{padding:clamp(22px,3vw,34px);border-radius:var(--r-xl);border:1px solid var(--line-strong);background:linear-gradient(160deg,var(--surface),var(--surface-2));max-width:760px;position:relative}
.badge{display:inline-block;font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-ink);background:var(--accent-glow);padding:4px 10px;border-radius:999px;margin-bottom:12px}
.w-steps{list-style:none;margin:16px 0;display:grid} .w-steps li{display:flex;justify-content:space-between;gap:18px;padding:12px 0;border-bottom:1px dashed var(--line-strong)} .w-steps b{font-weight:600}
.w-result{display:flex;justify-content:space-between;align-items:baseline;padding:16px 0 8px;border-top:1px solid var(--accent)} .w-result b{font-family:var(--font-d);font-size:30px;color:var(--accent-ink)}
.dcard{display:flex;gap:20px;align-items:center;padding:22px;border-radius:var(--r-xl);border:1px solid var(--line);background:var(--surface)} .dcard--full{align-items:flex-start;gap:28px;padding:30px}
.dc-photo,.dc-initials{width:72px;height:72px;border-radius:50%;flex:none;object-fit:cover} .dcard--full .dc-photo,.dcard--full .dc-initials{width:120px;height:120px} .dc-initials{display:grid;place-items:center;background:var(--accent-glow);color:var(--accent-ink);font-family:var(--font-d);font-weight:800;font-size:26px}
.dc-body h3{font-size:20px} .dc-body .btn-row{margin-top:14px}
@media (max-width:640px){.dcard--full{flex-direction:column}}
.mk-tools{margin-bottom:16px;max-width:420px}
.sm-grid{display:grid;gap:30px;grid-template-columns:1fr} @media (min-width:800px){.sm-grid{grid-template-columns:repeat(3,1fr)}} .sm-col h2{font-size:20px;margin-bottom:12px} .sm-col ul{list-style:none;display:grid;gap:8px} .sm-col ul ul{padding-left:16px;margin-top:8px;font-size:14px}
/* prose (blog + text pages) */
.prose{max-width:720px;font-size:18px;line-height:1.72} .prose--wide{max-width:900px}
.prose>*+*{margin-top:1.15em} .prose h2{font-size:clamp(26px,3vw,34px);margin-top:2em} .prose h3{font-size:22px;margin-top:1.6em} .prose h2+*,.prose h3+*{margin-top:.7em}
.prose ul,.prose ol{padding-left:1.3em;display:grid;gap:.5em} .prose li::marker{color:var(--accent-ink)}
.prose blockquote{margin-inline:0;padding:6px 0 6px 22px;border-inline-start:3px solid var(--accent);font-family:var(--font-d);font-size:1.15em;color:var(--text)}
.prose hr{border:0;border-top:1px solid var(--line);margin-block:2.2em}
.prose .fig{margin:1.8em 0} .prose .fig img{border-radius:var(--r-lg);border:1px solid var(--line)} .prose figcaption{font-size:13.5px;color:var(--muted);margin-top:8px}
.prose .table-wrap{margin-block:1.4em;font-size:15px}
.prose p,.prose li{color:color-mix(in srgb,var(--text) 88%,var(--muted))}

/* ---------- LEAD FORMS ---------- */
.lform{display:grid;gap:18px;padding:clamp(22px,3vw,34px);border-radius:var(--r-xl);border:1px solid var(--line-strong);background:linear-gradient(165deg,var(--surface),var(--surface-2));position:relative}
.lform--inline,.lform--modal{padding:0;border:0;background:none}
.lead-head h3{font-size:clamp(21px,2vw,26px);margin-bottom:6px} .lead-head p{color:var(--muted);font-size:15.5px}
.lead-fields{display:grid;gap:14px;grid-template-columns:1fr} @media (min-width:640px){.lform:not(.lform--modal):not(.lform--inline) .lead-fields{grid-template-columns:1fr 1fr}.lform .f-wide{grid-column:1/-1}}
.f{display:grid;gap:6px;font-size:14px} .f>span,.f legend{font-weight:600;color:var(--text);font-size:13.5px} .f em{font-weight:400;color:var(--faint);font-style:normal}
input[type=text],input[type=email],input[type=tel],input[type=search],input[type=number],select,textarea{width:100%;min-height:48px;padding:12px 14px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--bg-elev);color:var(--text);font:inherit;font-size:16px;transition:border-color .15s,box-shadow .15s}
textarea{min-height:110px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:0;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#E5604D}
.f-choice{border:0;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:10px} .f-choice legend{width:100%;margin-bottom:8px}
.chip-radio input{position:absolute;opacity:0} .chip-radio span{display:inline-block;padding:11px 18px;border-radius:999px;border:1px solid var(--line-strong);cursor:pointer;font-weight:500;font-size:14.5px} .chip-radio input:checked+span{background:var(--accent-glow);border-color:var(--accent);color:var(--accent-ink)} .chip-radio input:focus-visible+span{outline:2px solid var(--accent);outline-offset:2px}
.lead-consent{display:flex;gap:12px;align-items:flex-start;font-size:13.5px;color:var(--muted);line-height:1.5} .lead-consent input{margin-top:3px;width:18px;height:18px;accent-color:var(--primary);flex:none}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.lead-actions{display:flex;flex-wrap:wrap;gap:14px;align-items:center} .lead-micro{font-size:12px;color:var(--faint);max-width:34ch}
.lead-status{min-height:0;font-size:14.5px} .lead-status:not(:empty){padding:14px 16px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface)} .lead-status.ok{border-color:var(--accent)} .lead-status.err{border-color:#E5604D}
.lead.sending .btn{opacity:.7;pointer-events:none}
.lead.done .lead-fields,.lead.done .lead-consent,.lead.done .lead-actions{display:none}
.lead-band{display:grid;gap:30px;align-items:center;padding:clamp(24px,5vw,56px);border-radius:var(--r-2xl);border:1px solid var(--line-strong);background:radial-gradient(ellipse 60% 80% at 0% 0%,var(--accent-glow),transparent 70%),linear-gradient(160deg,var(--surface),var(--bg-sunken))} @media (min-width:960px){.lead-band{grid-template-columns:1fr 1fr;gap:56px}}
.lead-band .lform{background:var(--bg-elev)} .lb-copy h2{margin-bottom:12px} .lb-copy>p:not(.eyebrow){color:var(--muted);font-size:var(--fs-lead)}
.sec--leadform{padding-block:clamp(40px,6vw,90px)}
.inline-lead{margin:2.4em 0;padding:24px;border-radius:var(--r-xl);border:1px solid var(--line-strong);background:linear-gradient(165deg,var(--surface),var(--surface-2))}
.lform--inline .lead-fields{grid-template-columns:1fr} .lform--inline .lead-actions{margin-top:2px}
.inline-lead .lead-head h3{font-size:20px}
/* sticky lead bar + exit */
.leadbar{position:fixed;left:0;right:0;bottom:0;z-index:80;transform:translateY(110%);transition:transform .5s var(--e-out);padding:12px var(--gutter) calc(12px + env(safe-area-inset-bottom,0px));background:color-mix(in srgb,var(--bg-elev) 94%,transparent);backdrop-filter:blur(16px);border-top:1px solid var(--line-strong)}
.leadbar.show{transform:none} .lb-in{max-width:1100px;margin:auto;display:flex;gap:14px;align-items:center;flex-wrap:wrap} .lb-in p{flex:1;min-width:220px;font-weight:600;font-size:15px} .lb-in p small{display:block;font-weight:400;color:var(--muted)}
.lb-in form{display:flex;gap:8px;flex:1;min-width:260px} .lb-in input{min-height:44px}
.leadbar .lb-x{flex:none}
@media (max-width:1023px){.leadbar{bottom:78px}}
.wa-float{position:fixed;right:18px;bottom:22px;z-index:85;display:none}
/* thank you / misc */
.thanks{max-width:640px;margin-inline:auto;text-align:center;display:grid;gap:18px;justify-items:center}

/* ---------- TOOLS (interactive) ---------- */
.tool{position:relative;border-radius:var(--r-2xl);border:1px solid var(--line-strong);background:linear-gradient(165deg,var(--surface),var(--surface-2));padding:clamp(20px,3vw,40px);overflow:hidden}
.tool-fallback{color:var(--muted);font-size:15px} .tool.ready>.tool-fallback{display:none}
.t-grid{display:grid;gap:26px} @media (min-width:900px){.t-grid.two{grid-template-columns:1fr 1fr;gap:44px}.t-grid.side{grid-template-columns:340px 1fr}}
.t-title{font-family:var(--font-d);font-weight:700;font-size:20px;margin-bottom:12px}
.t-row{display:grid;gap:6px;margin-bottom:16px}
.t-row label,.t-row .lab{font-size:13.5px;font-weight:600;display:flex;justify-content:space-between;gap:10px;align-items:baseline} .t-row output{font-variant-numeric:tabular-nums;color:var(--accent-ink);font-weight:700}
input[type=range]{-webkit-appearance:none;appearance:none;width:100%;height:28px;background:transparent;padding:0;min-height:0;border:0}
input[type=range]::-webkit-slider-runnable-track{height:6px;border-radius:999px;background:linear-gradient(90deg,var(--accent) var(--p,50%),var(--line-strong) var(--p,50%))}
input[type=range]::-moz-range-track{height:6px;border-radius:999px;background:var(--line-strong)} input[type=range]::-moz-range-progress{height:6px;border-radius:999px;background:var(--accent)}
input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:22px;height:22px;border-radius:50%;background:var(--bg-elev);border:3px solid var(--accent);margin-top:-8px;box-shadow:0 2px 8px rgba(0,0,0,.3)}
input[type=range]::-moz-range-thumb{width:18px;height:18px;border-radius:50%;background:var(--bg-elev);border:3px solid var(--accent)}
.t-out{display:grid;gap:12px;grid-template-columns:repeat(2,1fr)} .t-stat{padding:18px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line)} .t-stat b{display:block;font-family:var(--font-d);font-size:clamp(22px,2.6vw,32px);color:var(--accent-ink);font-variant-numeric:tabular-nums;line-height:1.1} .t-stat span{font-size:13px;color:var(--muted)}
.t-note{font-size:13px;color:var(--faint);margin-top:12px}
.t-seg{display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--bg-sunken);border:1px solid var(--line)} .t-seg button{border:0;background:none;padding:8px 16px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:500;color:var(--muted)} .t-seg button[aria-pressed=true]{background:var(--accent-glow);color:var(--accent-ink)}
/* quiz */
.qz-bar{height:6px;border-radius:999px;background:var(--line);overflow:hidden;margin-bottom:22px} .qz-bar i{display:block;height:100%;background:var(--accent);width:0;transition:width .4s var(--e-out)}
.qz-q{font-family:var(--font-d);font-size:clamp(22px,2.6vw,30px);font-weight:700;margin-bottom:18px}
.qz-opts{display:grid;gap:10px} .qz-opt{text-align:start;padding:16px 18px;border-radius:var(--r-lg);border:1px solid var(--line-strong);background:var(--bg-elev);cursor:pointer;font-size:16.5px;transition:border-color .15s,background .15s,transform .2s} .qz-opt:hover{border-color:var(--accent);transform:translateX(3px)} .qz-opt[aria-pressed=true]{border-color:var(--accent);background:var(--accent-glow)}
.qz-nav{display:flex;justify-content:space-between;margin-top:20px}
.qz-res{display:grid;gap:22px} @media (min-width:800px){.qz-res{grid-template-columns:.8fr 1.2fr;align-items:center}} .qz-res img{max-height:280px;width:auto;margin-inline:auto;filter:drop-shadow(0 24px 30px rgba(0,0,0,.35))}
/* compare */
.cmp{overflow-x:auto} .cmp table{min-width:560px} .cmp .diff{box-shadow:inset 2px 0 var(--accent)}
.cmp select{min-height:44px}
/* safety */
.sc-list{display:grid;gap:8px} .sc-row{display:flex;gap:12px;align-items:center;padding:12px 16px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-elev);cursor:pointer} .sc-row input{width:20px;height:20px;accent-color:var(--primary)} 
.sc-res{margin-top:18px;padding:18px 20px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--accent)}
/* tree / svg */
.svgbox{width:100%;overflow:auto;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line)} .svgbox svg{min-width:640px;width:100%;height:auto}
.ev-list{list-style:none;display:grid;gap:8px;font-size:14.5px} .ev-list li{padding:10px 14px;border-radius:var(--r-md);background:var(--bg-sunken);border:1px solid var(--line)}
.bar-h{display:grid;gap:10px} .bar-h .r{display:grid;grid-template-columns:150px 1fr 80px;gap:10px;align-items:center;font-size:14px} .bar-h .tr{height:14px;border-radius:999px;background:var(--line);overflow:hidden} .bar-h .tr i{display:block;height:100%;background:var(--accent);border-radius:999px}
/* scrub */
.scrub{position:relative;height:300vh} .scrub-stick{position:sticky;top:0;height:100vh;overflow:hidden;background:#06100c;display:grid;place-items:center} .scrub canvas{width:100%;height:100%;object-fit:contain} .scrub-cap{position:absolute;left:var(--gutter);bottom:12vh;max-width:420px;padding:20px 22px;border-radius:var(--r-lg);background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--line-strong);color:var(--text)}
/* closer look */
.cl-stage{position:relative;aspect-ratio:16/9;border-radius:var(--r-2xl);overflow:hidden;background:radial-gradient(ellipse at 50% 60%,var(--accent-glow),var(--bg-sunken))} .cl-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;transition:transform .9s var(--e-out),opacity .5s} 
.cl-cap{position:absolute;left:18px;bottom:18px;max-width:420px;padding:18px 20px;border-radius:var(--r-lg);background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--line-strong)} @media (max-width:820px){.cl-stage{aspect-ratio:4/5}.cl-cap{position:static;max-width:none;margin-top:12px}}
.cl-pills{display:flex;gap:8px;overflow-x:auto;margin-top:16px;padding-bottom:4px} .cl-pills button{flex:none}

/* ---------- toolsA: finder, compare, bundle, closelook, country (tokens only; light + dark) ---------- */
.tool--compare,.tool--bundle{overflow:visible}
.tool--finder.fd-compact{padding:clamp(18px,2.4vw,28px)}
.tool--finder,.tool--compare,.tool--bundle,.tool--closelook,.tool--country{--tap:44px}

/* ===== finder ===== */
@keyframes fdIn{from{opacity:0;transform:translateX(24px)}to{opacity:1;transform:none}}
@keyframes fdInBack{from{opacity:0;transform:translateX(-24px)}to{opacity:1;transform:none}}
@keyframes fdFade{from{opacity:0}to{opacity:1}}
.fd-in{animation:fdIn .22s var(--e-out) both}.fd-in-back{animation:fdInBack .22s var(--e-out) both}.fd-fade{animation:fdFade .15s linear both}
@media (prefers-reduced-motion:reduce){.fd-in,.fd-in-back{animation:fdFade .15s linear both!important}}
.fd-card:not(.fd-card--res){max-width:760px;margin-inline:auto}
.fd-prog{margin-bottom:22px}.fd-prog .qz-bar{margin-bottom:8px;height:4px;background:var(--bg-sunken)}.fd-prog .qz-bar i{border-radius:999px}
.fd-q{outline:0}.fd-q:focus-visible,.fd-name:focus-visible{outline:2px solid var(--accent);outline-offset:6px;border-radius:6px}
.fd-opts{grid-template-columns:1fr}@media (min-width:820px){.fd-opts{grid-template-columns:1fr 1fr}}
.fd-opt{display:flex;align-items:center;justify-content:space-between;gap:12px;min-height:64px;border-width:1px;transition:border-color .15s,background .15s,transform .2s}
.fd-opt[aria-checked=true]{border-color:var(--accent);box-shadow:inset 0 0 0 1px var(--accent);background:var(--accent-glow)}
.fd-opt:hover{transform:none;border-color:var(--accent)}
.fd-tick{width:20px;height:20px;color:var(--accent-ink);opacity:0;stroke-width:2.4}.fd-opt[aria-checked=true] .fd-tick{opacity:1}
.fd-nav{align-items:center}.fd-nav .btn[hidden]{display:none}.fd-nav{justify-content:space-between}
.fd-nav:has(.btn[hidden]){justify-content:flex-end}

.fd-res{gap:clamp(20px,3vw,40px)}
@media (min-width:800px){.fd-res{grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);align-items:start}}
.fd-media{position:relative;aspect-ratio:1/1;max-width:420px;width:100%;margin-inline:auto;border-radius:var(--r-xl);overflow:hidden;background:radial-gradient(ellipse 70% 60% at 50% 55%,var(--accent-glow),var(--bg-sunken));border:1px solid var(--line);animation:fdScale .42s var(--e-out) both}
@keyframes fdScale{from{opacity:0;transform:scale(.96)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:reduce){.fd-media{animation:none}}
.fd-media img{position:relative;z-index:1;width:100%;height:100%;max-height:none;object-fit:contain;filter:none}
.fd-media .rings{z-index:0}
.fd-name{font-size:var(--fs-h2);outline:0;margin-bottom:10px}
.fd-line{color:var(--muted);font-size:var(--fs-lead);line-height:1.5;max-width:46ch}
.fd-price{font-family:var(--font-d);font-weight:700;font-size:clamp(26px,3vw,34px);color:var(--metal-ink);margin-top:14px;font-variant-numeric:tabular-nums}
.fd-price-n{font-family:var(--font-b);font-size:13px;font-weight:500;color:var(--faint);margin-left:4px}
.fd-facts{margin-top:16px}
.fd-why{margin-top:22px}.fd-why h4{margin-bottom:8px}.fd-why ul{list-style:none;display:grid;gap:6px;font-size:15px}
.fd-why li{padding-inline-start:16px;position:relative}.fd-why li::before{content:"";position:absolute;inset-inline-start:0;top:.62em;width:6px;height:6px;border-radius:50%;background:var(--accent)}
.fd-btns{margin-top:24px;align-items:center}
.fd-safe{margin-top:16px;color:var(--muted)}.fd-safe summary{cursor:pointer;min-height:var(--tap);display:flex;align-items:center;width:fit-content;color:var(--muted);text-decoration:underline;text-underline-offset:3px}
.fd-safe summary:hover{color:var(--text)}.fd-safe-body{display:grid;gap:10px;padding:6px 0 4px;max-width:62ch}.fd-safe-body ol{padding-inline-start:1.3em;display:grid;gap:3px}
.fd-send{margin-top:4px}
.fd-runners{margin-top:clamp(22px,3vw,34px);padding-top:22px;border-top:1px solid var(--line)}
.fd-runners h4{margin-bottom:12px}
.fd-rlist{list-style:none;display:grid;gap:10px}@media (min-width:640px){.fd-rlist{grid-template-columns:1fr 1fr}}
.fd-rtile{display:flex;align-items:center;gap:14px;min-height:var(--tap);padding:10px 14px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--bg-elev);text-decoration:none;color:var(--text);transition:border-color .15s}
.fd-rtile:hover{border-color:var(--accent)}.fd-rtile img{width:64px;height:64px;object-fit:contain;border-radius:var(--r-md);background:var(--bg-sunken);flex:none}
.fd-rtile span{display:grid;gap:2px}.fd-rtile small{color:var(--muted)}
.fd-cmp{display:inline-block;margin-top:12px}
.fd-form{margin-top:0}.fd-form.open{margin-top:clamp(22px,3vw,32px);padding-top:22px;border-top:1px solid var(--line);max-width:560px}
.fd-micro{margin-top:18px}
/* compact teaser */
.fd-mini{display:grid;gap:18px}@media (min-width:900px){.fd-mini{grid-template-columns:minmax(0,.8fr) minmax(0,1.4fr) auto;align-items:center;gap:32px}}
.fd-mini-head h3{margin-bottom:6px}.fd-mini-head .eyebrow{margin-bottom:8px}
.fd-mini-qt{font-weight:600;margin-bottom:10px}
.fd-mini-opts{display:flex;flex-wrap:wrap;gap:8px}.fd-chip{min-height:var(--tap);transition:border-color .15s,background .15s}.fd-chip:hover{border-color:var(--accent);background:var(--accent-glow)}
.fd-mini-cta{justify-self:start}

/* ===== compare ===== */
.cmp-top{display:flex;flex-wrap:wrap;gap:14px 24px;align-items:center;justify-content:space-between;margin-bottom:18px}
.cmp-chips{display:flex;flex-wrap:wrap;gap:8px 12px;align-items:center;min-width:0}
.cmp-chiprow{display:flex;flex-wrap:wrap;gap:8px}.cmp-chiprow .chip{min-height:var(--tap)}
.cmp-mnote{display:none;margin:0;width:100%}
.cmp-switchlbl{display:inline-flex;align-items:center;gap:10px;min-height:var(--tap);cursor:pointer;font-size:14.5px;font-weight:500;margin-inline-start:auto;position:relative}
.cmp-switchlbl input{position:absolute;opacity:0;width:44px;height:28px;margin:0;cursor:pointer}
.cmp-sw{width:44px;height:26px;border-radius:999px;background:var(--line-strong);position:relative;transition:background .2s;flex:none}
.cmp-sw i{position:absolute;top:3px;inset-inline-start:3px;width:20px;height:20px;border-radius:50%;background:var(--bg-elev);box-shadow:0 1px 4px rgba(0,0,0,.35);transition:transform .2s var(--e-out)}
.cmp-switchlbl input:checked+.cmp-sw{background:var(--accent)}.cmp-switchlbl input:checked+.cmp-sw i{transform:translateX(18px)}
.cmp-switchlbl input:focus-visible+.cmp-sw{outline:2px solid var(--accent);outline-offset:3px}

.cmp-desk{display:none}.cmp-mob{display:block}
@media (min-width:820px){.cmp-desk{display:block}.cmp-mob{display:none}}
@media (max-width:819px){.cmp-chips .cmp-chiprow{flex-wrap:nowrap;overflow-x:auto;scroll-snap-type:x proximity;padding-bottom:6px;max-width:100%;-webkit-overflow-scrolling:touch}.cmp-chiprow .chip{flex:none;scroll-snap-align:start}.cmp-mnote{display:block}.cmp-chips{width:100%}}
.cmp-table{width:100%;table-layout:fixed;border-collapse:separate;border-spacing:0;font-size:15px;border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface)}
.cmp-table caption{font-family:var(--font-b);font-weight:400;font-size:var(--fs-small);color:var(--muted);padding:0 4px 12px;text-align:start;caption-side:top}
.cmp-table th,.cmp-table td{padding:14px 18px;text-align:start;border-top:1px solid var(--line);vertical-align:top;word-wrap:break-word;overflow-wrap:anywhere}
.cmp-table thead th,.cmp-table thead td{border-top:0;background:var(--surface-2);text-transform:none;letter-spacing:0;font-size:inherit;color:var(--text);white-space:normal;vertical-align:top;position:sticky;top:calc(var(--header-h) + 6px);z-index:3}
.cmp-table thead td.cmp-corner,.cmp-table tbody th{width:160px}
@media (min-width:1024px){.cmp-table thead td.cmp-corner,.cmp-table tbody th{width:220px}}
.cmp-table thead tr>:first-child{border-top-left-radius:calc(var(--r-xl) - 1px)}.cmp-table thead tr>:last-child{border-top-right-radius:calc(var(--r-xl) - 1px)}
.cmp-table tbody tr:last-child>*{border-bottom-left-radius:0}
.cmp-table td{color:var(--text)}
.cmp-table tbody th{font-weight:600;color:var(--muted);font-size:13.5px;letter-spacing:.02em;background:var(--surface)}
.cmp-table td.diff{box-shadow:inset 2px 0 var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.cmp-table tbody td{animation:fdFade .22s linear both}
@media (prefers-reduced-motion:reduce){.cmp-table tbody td{animation:none}}
.cmp-head{display:grid;gap:6px;position:relative;justify-items:start}
.cmp-img{width:72px;height:72px;border-radius:var(--r-lg);background:radial-gradient(ellipse 70% 60% at 50% 60%,var(--accent-glow),var(--bg-sunken));overflow:hidden;border:1px solid var(--line);flex:none}
.cmp-img img{width:100%;height:100%;object-fit:contain}
.cmp-sel{display:block;width:100%}.cmp-sel select{min-height:var(--tap);font-weight:600;font-size:15px;padding-block:8px}
.cmp-hprice{font-family:var(--font-d);font-weight:700;font-size:var(--fs-h4);font-variant-numeric:tabular-nums;margin:0;color:var(--metal-ink)}
.cmp-see{display:inline-flex;align-items:center;min-height:var(--tap)}
.cmp-rm{position:absolute;top:-6px;inset-inline-end:-6px;width:var(--tap);height:var(--tap)}
.cmp-empty-col{background:transparent!important}
.cmp-empty{display:grid;place-items:center;min-height:150px;border:1.5px dashed var(--line-strong);border-radius:var(--r-lg)}
.cmp-pad{background:transparent}
.cmp-price{font-variant-numeric:tabular-nums;font-size:17px}
.cmp-dash{color:var(--faint)}
.cmp-lines{display:grid;gap:3px}.cmp-line{display:block}
.cmp-more summary{cursor:pointer;color:var(--accent-ink);font-size:13.5px;min-height:var(--tap);display:flex;align-items:center}.cmp-more[open] summary{display:none}
.cmp-none{padding:14px 18px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--bg-sunken);color:var(--muted);margin-bottom:12px;font-size:15px}
.cmp-links{display:flex;flex-wrap:wrap;gap:6px 24px;margin-top:18px}.cmp-links a{display:inline-flex;align-items:center;min-height:var(--tap)}
/* mobile stacked cards */
.cmp-switch{position:sticky;top:calc(var(--header-h) + 6px);z-index:4;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:10px;margin:0 -2px 14px;border-radius:var(--r-lg);background:color-mix(in srgb,var(--bg-elev) 94%,transparent);backdrop-filter:blur(12px);border:1px solid var(--line-strong)}
.cmp-switch select{font-size:15px}
.cmp-card{border:1px solid var(--line);border-radius:var(--r-xl);background:var(--surface);margin-bottom:14px;overflow:hidden}
.cmp-card-head{display:flex;gap:16px;align-items:center;padding:16px 18px;background:var(--surface-2)}.cmp-card-head h3{font-size:20px;margin-bottom:2px}.cmp-card-head .cmp-img{width:84px;height:84px}
.cmp-dl{margin:0}.cmp-dr{padding:12px 18px;border-top:1px solid var(--line);display:grid;gap:3px;border-inline-start:2px solid transparent}
.cmp-dr.diff{border-inline-start-color:var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent)}
.cmp-dr dt{font-size:12.5px;font-weight:600;color:var(--muted);letter-spacing:.04em;text-transform:uppercase}.cmp-dr dd{margin:0;font-size:15.5px}
.cmp-vid{width:min(960px,94vw);padding:0;border:0;border-radius:var(--r-xl);background:#000;overflow:visible}
.cmp-vid::backdrop{background:rgba(0,0,0,.7)}
.cmp-vid-body{aspect-ratio:16/9;border-radius:var(--r-xl);overflow:hidden}.cmp-vid iframe{width:100%;height:100%;border:0}
.cmp-vid-x{position:absolute;top:-52px;inset-inline-end:0;background:var(--bg-elev)}

/* ===== bundle ===== */
.bb-grid{display:grid;gap:clamp(22px,3vw,40px);align-items:start}
@media (min-width:1024px){.bb-grid{grid-template-columns:minmax(0,1fr) 380px}.bb-sum{position:sticky;top:calc(var(--header-h) + 24px)}}
.bb-group+.bb-group{margin-top:26px}.bb-gh{font-size:var(--fs-h4);margin-bottom:10px;font-family:var(--font-d)}
.bb-ul{list-style:none;display:grid;gap:10px}
.bb-row{display:grid;grid-template-columns:56px minmax(0,1fr) auto auto;gap:6px 16px;align-items:center;padding:10px 14px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--bg-elev)}
.bb-row.off{opacity:.6}
.bb-thumb{width:56px;height:56px;border-radius:var(--r-md);background:var(--bg-sunken);overflow:hidden}.bb-thumb img{width:100%;height:100%;object-fit:contain}
.bb-name{display:grid;gap:2px;min-width:0}.bb-name a{color:var(--text);text-decoration-color:var(--line-strong)}.bb-name a:hover{color:var(--accent-ink)}
.bb-unit{font-weight:600;font-size:15px;white-space:nowrap}
.bb-step{display:inline-flex;align-items:center;gap:6px}.bb-step .ic-btn{width:var(--tap);height:var(--tap)}.bb-step .ic-btn[disabled]{opacity:.4;cursor:not-allowed}
.bb-step input{width:56px;min-height:var(--tap);padding:6px;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield;appearance:textfield}
.bb-step input::-webkit-outer-spin-button,.bb-step input::-webkit-inner-spin-button{-webkit-appearance:none;margin:0}
@media (max-width:639px){.bb-row{grid-template-columns:56px minmax(0,1fr) auto}.bb-unit{grid-column:3;grid-row:1;align-self:start}.bb-step{grid-column:2/-1;grid-row:2;justify-self:start}.bb-name{grid-column:2}}
.bb-sum{padding:clamp(18px,2.4vw,26px);border-radius:var(--r-xl);border:1px solid var(--line-strong);background:var(--surface);outline:0;display:grid;gap:14px}
.bb-sum:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.bb-ctry select{min-height:var(--tap)}
.bb-empty{font-size:15px;margin:0}
.bb-lines{list-style:none;display:grid;gap:8px;font-size:15px}.bb-lines li{display:flex;justify-content:space-between;gap:12px;padding-bottom:8px;border-bottom:1px solid var(--line)}.bb-lines:empty{display:none}
.bb-tot{display:flex;justify-content:space-between;align-items:baseline;gap:12px;margin-top:10px;font-weight:600}
.bb-total{font-family:var(--font-d);font-size:var(--fs-h3);font-variant-numeric:tabular-nums;color:var(--metal-ink)}
.bb-btns{display:grid;gap:10px}.bb-btns .btn{white-space:normal;text-align:center;height:auto;min-height:50px;padding-block:12px;line-height:1.25}.bb-btns .btn-text{min-height:var(--tap)}
.bb-btns .is-off{opacity:.5;pointer-events:none}
.bb-bar{position:sticky;bottom:88px;z-index:20;display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:16px;padding:10px 12px 10px 18px;border-radius:999px;background:color-mix(in srgb,var(--bg-elev) 94%,transparent);backdrop-filter:blur(14px);border:1px solid var(--line-strong);box-shadow:var(--shadow);font-weight:600;font-size:14.5px}
.bb-bar[hidden]{display:none}@media (min-width:1024px){.bb-bar{display:none}}

/* ===== closer look ===== */
.clv{display:grid;gap:clamp(18px,3vw,40px);align-items:center}
@media (min-width:900px){.clv{grid-template-columns:minmax(0,1.2fr) minmax(0,1fr)}}
.clv-stage{position:relative;aspect-ratio:1/1;width:100%;max-width:640px;margin-inline:auto;border-radius:var(--r-2xl);overflow:hidden;background:radial-gradient(ellipse 70% 60% at 50% 58%,var(--accent-glow),var(--bg-sunken));border:1px solid var(--line)}
.clv-zoom{position:absolute;inset:0;transform:scale(var(--z,1));transition:transform .9s var(--e-out)}
.clv-zoom img{width:100%;height:100%;object-fit:contain;user-select:none}
.clv-dot{position:absolute;width:var(--tap);height:var(--tap);display:grid;place-items:center;padding:0;border:0;background:none;cursor:pointer;transform:translate(-50%,-50%) scale(calc(1/var(--z,1)));transition:transform .9s var(--e-out)}
.clv-dot i{position:relative;display:block;width:16px;height:16px;border-radius:50%;background:var(--accent);border:2.5px solid #fff;box-shadow:0 0 0 1px rgba(0,0,0,.25),0 2px 10px rgba(0,0,0,.35);transition:transform .2s var(--e-out)}
.clv-dot i::after{content:"";position:absolute;inset:-9px;border-radius:50%;border:1.5px solid var(--accent);opacity:0}
.clv-dot.on i{transform:scale(1.25)}
.clv-dot.on i::after{animation:clvPulse 2.4s var(--e-out) infinite}
@keyframes clvPulse{0%{transform:scale(.6);opacity:.9}100%{transform:scale(1.8);opacity:0}}
@media (prefers-reduced-motion:reduce){.clv-dot.on i::after{animation:none;opacity:.55}.clv-zoom,.clv-dot{transition:none}}
.clv-dot:hover i{transform:scale(1.25)}
.clv-dot:focus-visible{outline:0}.clv-dot:focus-visible i{outline:2px solid var(--text);outline-offset:4px}
.clv-pop{position:absolute;z-index:5;max-width:210px;display:grid;gap:2px;padding:10px 14px;border-radius:var(--r-md);background:var(--glass);backdrop-filter:blur(14px);border:1px solid var(--line-strong);box-shadow:var(--shadow);font-size:13.5px;line-height:1.35;pointer-events:none;opacity:0;visibility:hidden;transform:translate(var(--tx,-50%),var(--ty,28px));transition:opacity .22s .35s,visibility 0s .6s}
.clv-pop.show{opacity:1;visibility:visible;transition:opacity .22s .3s,visibility 0s}
.clv-pop b{font-size:13px;letter-spacing:.02em}.clv-pop span{color:var(--muted)}
.clv-pop[data-h=l]{--tx:calc(-100% - 26px);--ty:-50%}.clv-pop[data-h=r]{--tx:26px;--ty:-50%}
.clv-pop[data-h=c]{--tx:-50%}.clv-pop[data-h=c][data-v=d]{--ty:30px}.clv-pop[data-h=c][data-v=u]{--ty:calc(-100% - 30px)}
@media (prefers-reduced-motion:reduce){.clv-pop,.clv-pop.show{transition:none}}
@media (max-width:480px){.clv-pop{max-width:160px;font-size:12.5px;padding:8px 10px}}
.clv-side{display:grid;gap:14px;align-content:start}
.clv-title{font-size:var(--fs-h3)}.clv-text{font-family:var(--font-d);font-weight:700;font-size:clamp(24px,3vw,36px);line-height:1.15;color:var(--accent-ink);letter-spacing:-.02em}
.clv-info{display:grid;gap:8px;min-height:104px}
.clv-ctl{display:flex;gap:10px}.clv-ctl .ic-btn{width:var(--tap);height:var(--tap)}
.clv-pills{display:flex;flex-wrap:wrap;gap:8px}.clv-pill{min-height:var(--tap)}
@media (max-width:899px){.clv-pills{flex-wrap:nowrap;overflow-x:auto;padding-bottom:4px}.clv-pill{flex:none}}
.clv-count{margin:0}

/* ===== country picker ===== */
.cty{display:grid;gap:clamp(20px,3vw,40px);align-items:start}
@media (min-width:900px){.cty{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}}
.cty-list{margin-top:12px;max-height:440px;overflow:auto;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-elev);scroll-behavior:auto}
.cty-gh{position:sticky;top:0;z-index:1;margin:0;padding:8px 16px;font-size:11.5px;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:var(--bg-sunken);border-bottom:1px solid var(--line)}
.cty-opt{display:flex;align-items:center;gap:10px;min-height:var(--tap);padding:8px 16px;cursor:pointer;border-bottom:1px solid var(--line);border-inline-start:3px solid transparent}
.cty-opt:hover{background:var(--accent-glow)}.cty-opt[aria-selected=true]{border-inline-start-color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,transparent);font-weight:600}
.cty-opt:focus-visible{outline:2px solid var(--accent);outline-offset:-2px;border-radius:0}
.cty-n{flex:1;min-width:0}.cty-t{color:var(--muted);font-size:12.5px;font-weight:400;white-space:nowrap}.cty-tick{width:18px;height:18px;color:var(--accent-ink);stroke-width:2.4;flex:none}
.cty-empty{padding:18px}
.cty-detail{padding:clamp(18px,2.6vw,30px);border-radius:var(--r-xl);border:1px solid var(--line-strong);background:linear-gradient(165deg,var(--bg-elev),var(--bg-sunken))}
.cty-h{font-size:var(--fs-h2);margin-bottom:8px}.cty-type{margin:0 0 10px}.cty-type .tag{margin:0}
.cty-copy{color:var(--muted);font-size:var(--fs-lead);max-width:48ch;line-height:1.5}
.cty-dl{margin:18px 0 0;display:grid}.cty-r{display:grid;grid-template-columns:150px 1fr;gap:12px;padding:11px 0;border-top:1px solid var(--line);font-size:15px}.cty-r dt{color:var(--muted);font-weight:600;font-size:13.5px}.cty-r dd{margin:0}
@media (max-width:480px){.cty-r{grid-template-columns:1fr;gap:2px}}
.cty-cta{margin-top:22px}.cty-cta .btn{white-space:normal;height:auto;min-height:50px;padding-block:12px;text-align:center}

/* ---------- toolsB: cps (I-04), market (I-05), frequency (I-06), safety (I-07) ---------- */
/* shared */
.tb-lab{display:block;font-size:13px;font-weight:600;color:var(--muted);margin-bottom:6px}
.tb-sub{display:block;margin-top:6px}
.tb-hint{display:block;font-size:12.5px;font-weight:400;color:var(--faint);line-height:1.4}
.tb-pair label{align-items:baseline;flex-wrap:wrap}
.tb-pair-ctl{display:grid;grid-template-columns:1fr auto;gap:14px;align-items:center}
.tb-numwrap{display:flex;align-items:center;gap:8px}
.tb-num{width:84px!important;min-height:44px!important;padding:8px 10px!important;text-align:center;font-variant-numeric:tabular-nums;-moz-appearance:textfield}
.tb-unit{font-size:13px;color:var(--muted);font-weight:600;min-width:2ch}
.tb-money{display:flex;align-items:stretch}
.tb-cur{display:inline-flex;align-items:center;padding:0 14px;border:1px solid var(--line-strong);border-inline-end:0;border-radius:var(--r-md) 0 0 var(--r-md);background:var(--bg-sunken);color:var(--muted);font-size:14px;font-weight:600}
.tb-money input{border-radius:0 var(--r-md) var(--r-md) 0;font-variant-numeric:tabular-nums}
.tb-price{margin-top:2px}
.t-stat .tb-lab{margin-bottom:8px}
.t-stat b{overflow-wrap:anywhere}

/* ---- cps ---- */
.cps.t-grid.side{grid-template-columns:1fr}
@media (min-width:900px){.cps.t-grid.side{grid-template-columns:340px minmax(0,1fr);gap:40px;align-items:start}}
.cps--compact.t-grid.side{gap:28px}
@media (min-width:900px){.cps--compact.t-grid.side{grid-template-columns:minmax(0,340px) minmax(0,1fr);align-items:center}}
.cps-out{display:grid;gap:22px;min-width:0}
.cps-res{display:grid;gap:18px;min-width:0}
.cps-empty{padding:22px;border-radius:var(--r-lg);border:1px dashed var(--line-strong);color:var(--muted)}
.cps-more{margin-top:0}
.cps-tbl{border-radius:var(--r-lg)} .cps-tbl table{font-size:14.5px} .cps-tbl th,.cps-tbl td{padding:11px 16px} .cps-tbl caption{font-size:15px;padding:14px 16px;color:var(--muted);font-weight:600}
.cps-ct{margin-bottom:6px}
.cps-chart{min-width:0}
.cps-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 8px;padding:0;font-size:13px;color:var(--muted)}
.cps-legend li{display:inline-flex;align-items:center;gap:8px}
.cps-svgwrap{border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line);padding:6px 4px 0;overflow:hidden;touch-action:pan-y}
.cps-svgwrap:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.cps-svg{width:100%;height:auto;overflow:visible}
.cps-tx{fill:var(--muted);font:500 11.5px Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums}
.cps-gl{stroke:var(--line);stroke-width:1} .cps-axis{stroke:var(--line-strong);stroke-width:1}
.cps-line{stroke-width:2.25;stroke-linecap:round;stroke-linejoin:round}
.cps-l-clinic{stroke:var(--muted)} .cps-l-device{stroke:var(--accent);stroke-width:2.75} .cps-l-bemer{stroke:var(--metal-ink);stroke-dasharray:7 5}
.cps-dot{stroke:var(--bg-elev);stroke-width:2} .cps-dot.cps-l-clinic{fill:var(--muted)} .cps-dot.cps-l-device{fill:var(--accent)} .cps-dot.cps-l-bemer{fill:var(--metal-ink)}
.cps-be{stroke:var(--text);stroke-opacity:.55;stroke-width:1.25;stroke-dasharray:2 4} .cps-be-t{fill:var(--text);font-weight:600}
.cps-cur{stroke:var(--text);stroke-opacity:.35;stroke-width:1}
.cps-tip rect{fill:var(--surface);stroke:var(--line-strong)} .cps-tip text{fill:var(--text);font:500 12px Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums} .cps-tip .cps-tip-h{font-weight:700;fill:var(--accent-ink)}
.cps-hit{cursor:crosshair}
.cps-note{margin-top:16px}.cps-d6{margin-top:6px}

/* ---- market ---- */
.mc{display:grid;gap:22px}
.mc-top{display:grid;gap:26px}
@media (min-width:1024px){.mc-top{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);align-items:start;gap:36px}}
.mc--compact{gap:16px}
.mc-chart{min-width:0;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line);padding:6px 6px 0;overflow:hidden}
.mc-svg{width:100%;height:auto}
.mc-tx{fill:var(--muted);font:500 11.5px Inter,system-ui,sans-serif} .mc-usd{fill:var(--faint)}
.mc-gl{stroke:var(--line);stroke-width:1}
.mc-lab{fill:var(--text);font:600 13px Inter,system-ui,sans-serif}
.mc-bar{fill:var(--muted);fill-opacity:.35}
.mc-val{fill:var(--text);font:600 12px Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums}
.mc-sub{fill:var(--muted);font:500 12px Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums}
.mc-mk{stroke:var(--accent);stroke-width:2;stroke-dasharray:none} .mc-mk-dot{fill:var(--accent)}
.mc-mk-t{fill:var(--accent-ink);font:700 12px Inter,system-ui,sans-serif;font-variant-numeric:tabular-nums}
.mc-diff{border-radius:var(--r-lg)} .mc-diff table{font-size:14px} .mc-diff th,.mc-diff td{padding:10px 14px} .mc-diff caption{font-size:14.5px;padding:12px 14px;color:var(--muted);font-weight:600} .mc-diff thead th{white-space:normal;letter-spacing:.03em}
.mc-hr{border:0;border-top:1px solid var(--line);margin:6px 0}
.mc-ctl{display:grid;gap:14px}
.mc-chips{display:flex;flex-wrap:wrap;gap:8px}
.mc-chips .chip{min-height:44px;padding-inline:18px}
.mc-ctl2{display:flex;flex-wrap:wrap;gap:12px 28px;align-items:end}
.mc-sortrow{margin:0;min-width:220px}
.mc-extra{display:inline-flex;gap:10px;align-items:center;min-height:44px;font-size:14.5px;cursor:pointer;color:var(--muted)} .mc-extra input{width:20px;height:20px;accent-color:var(--primary)}
.mc-count{min-height:1.5em}
.mc-tablewrap{border-radius:var(--r-lg)}
.mc-table{font-size:14.5px;min-width:900px}
.mc-table th,.mc-table td{padding:12px 14px}
.mc-table tbody th{font-weight:600;min-width:170px}
.mc-table td.end,.mc-table th.end{text-align:right;white-space:nowrap}
.mc-oly th,.mc-oly td{background:var(--accent-glow)} .mc-oly th:first-child{box-shadow:inset 3px 0 var(--accent)}
.mc-th{all:unset;cursor:pointer;display:inline-flex;align-items:center;gap:6px;min-height:32px;font:inherit;letter-spacing:inherit;text-transform:inherit;color:inherit;border-radius:4px}
.mc-th:hover{color:var(--text)} .mc-th:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.mc-arrow::after{content:"";display:inline-block;width:0;height:0;border-inline:4px solid transparent;border-top:5px solid currentColor;opacity:.25;transform:translateY(1px)}
th[aria-sort=ascending] .mc-arrow::after{border-top:0;border-bottom:5px solid currentColor;opacity:1} th[aria-sort=descending] .mc-arrow::after{opacity:1}
.mc-sub2{color:var(--faint);font-size:12.5px}
.mc-dated{display:inline-block;margin-inline-start:8px;padding:1px 8px;border-radius:999px;border:1px solid var(--line-strong);color:var(--muted);font-size:11.5px;font-weight:600;white-space:nowrap}
.mc-more-d summary{cursor:pointer;list-style:none;color:var(--muted)} .mc-more-d summary::-webkit-details-marker{display:none} .mc-more-d summary:hover{color:var(--text)} .mc-more-d[open] summary{display:none} .mc-more-d span{display:block;color:var(--muted)}
.mc-prnote{margin-top:16px}.mc-d6{margin-top:6px}
@media (max-width:719px){
  .mc-tablewrap{border:0;background:none;overflow:visible}
  .mc-table{min-width:0;display:block} .mc-table thead,.mc-table caption{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0)}
  .mc-table tbody{display:grid;gap:12px}
  .mc-table tr{display:grid;gap:2px;padding:14px 16px;border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface)}
  .mc-table th,.mc-table td{display:grid;grid-template-columns:104px 1fr;gap:10px;padding:5px 0;border:0;background:none!important;box-shadow:none!important;text-align:left!important;white-space:normal!important}
  .mc-table tbody th{min-width:0;font-size:16px} .mc-table td::before,.mc-table tbody th::before{content:attr(data-label);color:var(--faint);font-size:12px;font-weight:600;letter-spacing:.04em;text-transform:uppercase;padding-top:2px}
  .mc-table tr.mc-oly{border-color:var(--accent);box-shadow:inset 3px 0 var(--accent)}
}

/* ---- frequency ---- */
.fq{display:grid;gap:22px}
.fq-main{display:grid;gap:26px}
@media (min-width:900px){.fq--full .fq-main{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:34px;align-items:start}.fq--pulse .fq-main{grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);gap:34px;align-items:start}}
.fq-left,.fq-right{display:grid;gap:18px;min-width:0;align-content:start}
.fq-stage{position:relative;border-radius:var(--r-xl);overflow:hidden;border:1px solid var(--line);background:radial-gradient(ellipse 60% 70% at 50% 52%,var(--accent-glow),transparent 72%),var(--bg-sunken)}
.fq-cv{width:100%;display:block}
.fq-cv--stage{height:clamp(230px,34vw,300px)} .fq-cv--wave{height:118px}
.fq-badge{position:absolute;top:12px;left:12px;padding:5px 11px;border-radius:999px;background:var(--glass);backdrop-filter:blur(8px);border:1px solid var(--line-strong);font-size:12px;font-weight:600;color:var(--muted)}
.fq-wavebox{border-radius:var(--r-lg);border:1px solid var(--line);background:var(--bg-sunken);padding:4px 0 8px;overflow:hidden}
.fq-wavecap{display:flex;justify-content:space-between;gap:10px;padding:0 12px;font-size:12px;color:var(--faint)} .fq-wavelab{color:var(--muted)}
.fq-ctl{display:grid;gap:4px}
.fq-btns{display:flex;gap:10px;flex-wrap:wrap;margin-top:6px}
.fq-ctl .t-seg button{min-height:44px;padding-inline:18px}
.fq-read{padding:20px 22px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line)}
.fq-big{display:block;font-family:var(--font-d);font-size:clamp(36px,4.4vw,52px);line-height:1;color:var(--accent-ink);margin-bottom:10px}
.fq-l1{font-weight:600} .fq-l2{color:var(--text)} .fq-l3{margin-top:10px;font-size:13px;color:var(--muted)}
.fq-bandnote{font-size:14px;color:var(--muted);padding-inline-start:14px;border-inline-start:2px solid var(--accent)}
.fq-gloss dl{display:grid;gap:12px;margin:0} .fq-gloss dt{font-weight:700;font-size:14.5px} .fq-gloss dd{margin:2px 0 0;font-size:14px;color:var(--muted)}
.fq-cap{margin-top:0}
/* ruler */
.fq-rulerbox{display:grid;gap:14px}
.fq-ruler{position:relative}
.fq-ri{position:relative;height:222px}
.fq-track{position:absolute;left:0;right:0;top:104px;height:20px;border-radius:999px;background:var(--line)}
.fq-seg{position:absolute;top:104px;height:20px;left:calc(var(--a)*1%);width:calc((var(--b) - var(--a))*1%);min-width:8px;border-radius:999px;background:color-mix(in srgb,var(--muted) 38%,transparent);cursor:pointer;transition:background var(--d-fast),box-shadow var(--d-fast)}
.fq-seg.on{background:var(--accent);box-shadow:0 0 0 4px var(--accent-glow),0 0 22px var(--accent-glow)}
.fq-tick{position:absolute;top:80px;left:calc(var(--c)*1%);transform:translateX(-50%);font-size:12px;font-weight:600;color:var(--faint);font-variant-numeric:tabular-nums;white-space:nowrap}
.fq-tick[data-end="1"]{transform:translateX(-100%)} .fq-tick[data-end="0"]{transform:none}
.fq-lead{position:absolute;left:calc(var(--c)*1%);width:1px;background:var(--line-strong);top:124px;height:14px}
.fq-lead[data-row="2"]{height:42px}
.fq-lab{all:unset;box-sizing:border-box;position:absolute;left:calc(var(--c)*1%);transform:translateX(-50%);cursor:pointer;padding:6px 10px;border-radius:var(--r-sm);font-size:13px;font-weight:600;color:var(--muted);text-align:center;white-space:nowrap;line-height:1.25;min-height:30px;transition:color var(--d-fast),background var(--d-fast)}
.fq-lab[data-row="1"]{top:138px} .fq-lab[data-row="2"]{top:166px}
.fq-lab[data-align="start"]{left:0;transform:none;text-align:left} .fq-lab[data-align="end"]{left:auto;right:0;transform:none;text-align:right}
.fq-lab:hover{color:var(--text)} .fq-lab.on{color:var(--accent-ink);background:var(--accent-glow)}
.fq-lab:focus-visible{outline:2px solid var(--accent);outline-offset:1px}
.fq-lab-short{display:none} .fq-narrowh .fq-lab-full{display:none} .fq-narrowh .fq-lab-short{display:inline}
.fq-oly{position:absolute;top:50px;height:12px;left:calc(var(--a)*1%);width:calc((var(--b) - var(--a))*1%);border:2px solid var(--accent);border-bottom:0;border-radius:6px 6px 0 0;opacity:.9}
.fq-oly::after{content:"";position:absolute;left:50%;bottom:100%;height:0;width:0}
.fq-oly-t{position:absolute;top:0;right:0;max-width:min(330px,60%);text-align:right;font-size:13px;line-height:1.35;color:var(--text);font-weight:500}
.fq-pin{position:absolute;top:98px;left:calc(var(--c,6.7)*1%);width:3px;height:32px;margin-left:-1px;border-radius:2px;background:var(--text);opacity:.8;pointer-events:none}
.fq-detail{padding:16px 20px;border-radius:var(--r-lg);background:var(--surface);border:1px solid var(--line);border-inline-start:3px solid var(--accent);min-height:96px}
.fq-dh{display:flex;flex-wrap:wrap;gap:4px 14px;align-items:baseline;margin-bottom:4px} .fq-dh strong{font-family:var(--font-d);font-size:18px} .fq-dr{color:var(--accent-ink);font-weight:600;font-size:14px;font-variant-numeric:tabular-nums}
.fq-detail p{font-size:14.5px;color:var(--muted)} .fq-detail .fq-dh{color:var(--text)} .fq-doly{margin-top:6px;color:var(--text)!important}
/* vertical ruler (<820) */
@media (max-width:819px){
  .fq-ri{height:540px}
  .fq-track{left:84px;right:auto;top:0;bottom:0;width:20px;height:auto}
  .fq-seg{left:84px;width:20px;top:calc(var(--a)*1%);height:calc((var(--b) - var(--a))*1%);min-height:8px;min-width:0}
  .fq-tick{left:0;top:calc(var(--c)*1%);width:74px;text-align:right;transform:translateY(-50%)!important}
  .fq-tick[data-end="1"]{top:calc(var(--c)*1% - 8px)} .fq-tick[data-end="0"]{top:8px}
  .fq-lead{display:none}
  .fq-lab,.fq-lab[data-row]{left:108px;right:auto;top:calc(var(--c)*1%);transform:translateY(-50%);width:96px;padding-inline:6px;white-space:normal;text-align:left;min-height:44px;display:flex;align-items:center}
  .fq-lab[data-align="start"]{top:calc(var(--c)*1% + 14px)} .fq-lab[data-align="end"]{top:calc(var(--c)*1% - 6px);right:auto;left:108px}
  .fq-lab-full{display:inline!important} .fq-lab-short{display:none!important}
  .fq-oly{left:208px;right:auto;top:calc(var(--a)*1%);width:12px;height:calc((var(--b) - var(--a))*1%);border:2px solid var(--accent);border-left:0;border-radius:0 6px 6px 0}
  .fq-oly-t{left:228px;right:0;max-width:none;text-align:left;top:calc(var(--a)*1% + (var(--b) - var(--a))*.5% );transform:translateY(-50%);font-size:12px;line-height:1.3}
  .fq-pin{top:calc(var(--c,6.7)*1%);left:80px;width:28px;height:3px;margin:-1px 0 0}
}

/* ---- safety ---- */
.sf{max-width:880px;margin-inline:auto;display:grid;gap:16px}
.sf-intro{max-width:62ch}
.sf-set{border:0;margin:0;padding:0;min-width:0}
.sf-lead{font-weight:600;font-size:16.5px;padding:0;margin-bottom:12px;line-height:1.45}
.sf-list{gap:0;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--bg-elev)}
.sf-row{position:relative;min-height:52px;border:0;border-radius:0;border-top:1px solid var(--line);background:transparent;justify-content:space-between;gap:16px;padding:10px 18px;transition:background var(--d-fast)}
.sf-row:first-child{border-top:0}
.sf-row:hover{background:var(--surface-2)} .sf-row.on{background:var(--accent-glow)}
.sf-text{flex:1;min-width:0;font-size:16px;line-height:1.4}
.sf-sw{position:absolute;inset:0;width:100%!important;height:100%!important;opacity:0;margin:0;cursor:pointer;z-index:1}
.sf-sw:disabled{cursor:not-allowed}
.sf-track{flex:none;position:relative;width:46px;height:26px;border-radius:999px;background:var(--line-strong);transition:background var(--d-fast)}
.sf-track i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--bg-elev);box-shadow:0 1px 4px rgba(0,0,0,.35);transition:transform var(--d-fast) var(--e-out)}
.sf-sw:checked+.sf-track{background:var(--accent)} .sf-sw:checked+.sf-track i{transform:translateX(20px)}
.sf-sw:focus-visible+.sf-track{outline:2px solid var(--accent);outline-offset:3px}
.sf-row.is-disabled{opacity:.5;cursor:not-allowed}
.sf-none{justify-content:flex-start;background:var(--surface-2);font-weight:600} .sf-none input{width:22px;height:22px;flex:none;accent-color:var(--primary);cursor:pointer;margin:0}
.sf-foot{display:flex;justify-content:flex-start;min-height:0}
.sf-clear{min-height:44px}
.sf-res{display:flex;gap:16px;align-items:flex-start;margin-top:0;padding:20px 22px}
.sf-ico{flex:none;color:var(--accent-ink);margin-top:3px}
.sf-res-body{display:grid;gap:8px;min-width:0}
.sf-res-h{font-size:clamp(18px,1.6vw,21px);line-height:1.3}
.sf-res p{color:var(--muted);font-size:15.5px}
.sf-matched-l{font-weight:600;color:var(--text)!important;margin-top:4px}
.sf-matched{display:grid;gap:4px;padding-inline-start:22px;color:var(--text);font-size:15.5px}
.sf-actions{margin-top:8px}
.sf--compact .sf-list{display:grid}
@media (min-width:900px){.sf--compact .sf-list{grid-template-columns:1fr 1fr}.sf--compact .sf-row:nth-child(2){border-top:0}.sf--compact .sf-row:nth-child(even){border-inline-start:1px solid var(--line)}}
.sf--compact .sf-row{min-height:46px;padding-block:8px}.sf--compact .sf-text{font-size:14.5px}
.sf-clear[hidden]{display:none}
.mc-top>*,.mc>*,.fq-main>*{min-width:0}
.mc-lab,.mc-sub,.mc-val{paint-order:stroke;stroke:var(--bg-sunken);stroke-width:3px;stroke-linejoin:round}
.mc-mk-t{paint-order:stroke;stroke:var(--bg-sunken);stroke-width:3px}
@media (max-width:719px){.mc-diff th,.mc-diff td{padding:9px 8px;font-size:13px}.mc-diff th:first-child{padding-left:12px}}

/* ---------- toolsC: tree, mechanics, rank, practitioner, join ---------- */
/* shared bits */
.tc-pair-row{margin-bottom:14px} .tc-pair-row>label{align-items:flex-end} .tc-hint{display:block;font-weight:400;color:var(--muted);font-size:12.5px}
.tc-pair-ctl{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:14px;align-items:center}
.tc-numwrap{display:flex;align-items:center;gap:6px} .tc-num{width:108px!important;min-height:44px!important;padding:8px 10px!important;text-align:right;font-variant-numeric:tabular-nums}
.tc-unit{font-size:13px;color:var(--muted);min-width:2ch}
.tc-sel select{min-height:48px}
.tc-hyp{display:inline-block;font-size:12.5px;font-weight:600;letter-spacing:.02em;color:var(--accent-ink);border:1px solid var(--line-strong);border-radius:999px;padding:5px 14px;margin:0;line-height:1.3}
.tc-d9{max-width:62ch;margin-top:12px}
.tc-switch{display:flex!important;align-items:center;gap:12px;cursor:pointer;min-height:44px;font-weight:600;justify-content:flex-start!important}
.tc-switch input{position:absolute;opacity:0;width:44px;height:28px}
.tc-track{width:44px;height:26px;border-radius:999px;background:var(--line-strong);position:relative;flex:none;transition:background .2s}
.tc-track i{position:absolute;top:3px;left:3px;width:20px;height:20px;border-radius:50%;background:var(--bg-elev);box-shadow:0 1px 4px rgba(0,0,0,.35);transition:transform .2s var(--e-out)}
.tc-switch input:checked+.tc-track{background:var(--accent)} .tc-switch input:checked+.tc-track i{transform:translateX(18px)}
.tc-switch input:focus-visible+.tc-track{outline:2px solid var(--accent);outline-offset:3px}
.tc-toggle{display:flex;align-items:center;gap:4px;flex-wrap:wrap}
.tc-conf{width:44px;height:44px;margin-left:0} .tc-conf .ico{width:16px;height:16px}
.tool .confirm.tc-conf::after{left:0;transform:translateY(4px);white-space:normal;width:max-content;max-width:min(300px,72vw);line-height:1.4}
.tool .confirm.tc-conf:hover::after,.tool .confirm.tc-conf:focus-visible::after,.tool .confirm.tc-conf.open::after{transform:none}
.sr.tc-live{position:absolute}
.tc-res{display:grid;gap:16px;align-content:start}
.tc-res-head{display:flex;flex-wrap:wrap;gap:10px 16px;align-items:center;justify-content:space-between} .tc-res-head .t-title{margin:0}
.tc-res-body{display:grid;gap:16px}
.tc-stats{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px} @media(min-width:1100px){.tc-stats.four{grid-template-columns:repeat(4,minmax(0,1fr))}}
.tc-stat{padding:16px 18px} .tc-stat b{font-size:clamp(22px,2.2vw,30px)} .tc-stat small{display:block;color:var(--faint);font-size:12px;margin-top:2px}
.tc-stat.is-focus{border-inline-start:3px solid var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--bg-sunken))}
.tc-steps{list-style:none;display:grid;gap:0;counter-reset:st;border:1px solid var(--line);border-radius:var(--r-lg);overflow:hidden;background:var(--bg-sunken)}
.tc-steps li{display:flex;justify-content:space-between;gap:16px;align-items:baseline;padding:12px 16px;border-top:1px dashed var(--line)} .tc-steps li:first-child{border-top:0}
.tc-steps li.is-strong{background:var(--accent-glow)} .tc-steps li.is-focus{box-shadow:inset 3px 0 var(--accent)}
.tc-st-t{display:grid;gap:2px;min-width:0} .tc-st-l{font-weight:600;font-size:14.5px} .tc-st-f{font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.tc-st-v{font-size:15.5px;text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums;color:var(--accent-ink)}
@media(max-width:560px){.tc-steps li{flex-direction:column;gap:4px}.tc-st-v{text-align:left;white-space:normal}}
.tc-wallet{display:flex;gap:6px;height:64px} .tc-wallet>div{display:flex;flex-direction:column;justify-content:center;padding:0 16px;border-radius:var(--r-lg);min-width:0} .tc-wallet span{font-size:12.5px;color:var(--muted);white-space:nowrap}
.tc-wallet b{font-size:17px;font-variant-numeric:tabular-nums} .tc-w-cash{background:var(--accent-glow);border:1px solid var(--accent)} .tc-w-pts{background:var(--bg-sunken);border:1px solid var(--line-strong)}
@media(max-width:560px){.tc-wallet{height:auto;min-height:56px;flex-wrap:wrap}.tc-wallet>div{flex:1 1 140px!important;padding:10px 14px}}
.tc-ctl-row{display:grid;gap:4px 24px} @media(min-width:760px){.tc-ctl-row{grid-template-columns:repeat(auto-fit,minmax(230px,1fr));align-items:end}}
.tc-btn-row{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:6px} .tc-btn-row .btn{gap:8px}
/* tree */
.tc-tree{display:grid;gap:18px}
.tc-presets{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:12px} .tc-presets .chip{min-height:44px}
.tc-presets .chip[aria-pressed=true]{background:var(--accent-glow);border-color:var(--accent);color:var(--accent-ink)}
.tc-tree-grid{display:grid;gap:22px;align-items:start} @media(min-width:1024px){.tc-tree-grid{grid-template-columns:minmax(0,1fr) 340px}.tc-side{position:sticky;top:96px}}
.tc-stage{min-width:0;display:grid;gap:10px}
.tc-zoom{display:flex;gap:8px;align-items:center;justify-content:flex-end} .tc-zoom .ic-btn{width:44px;height:44px}
.tc-box{overflow:auto;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line);min-height:300px;max-height:min(78vh,760px);text-align:center;touch-action:pan-x pan-y;scrollbar-width:thin}
.tc-box.is-scene{overflow:hidden;height:var(--tc-h,360px);max-height:none} @media(max-width:819px){.tc-box.is-scene{height:var(--tc-hm,300px)}}
.tc-svg{display:inline-block;max-width:none;min-width:0;vertical-align:top;font-family:var(--font-b)}
.tc-box.is-scene .tc-svg{display:block}
.tc-svg text{fill:var(--text);font-size:11px;pointer-events:none}
.tc-lvl{fill:var(--faint)!important;font-size:10.5px!important;letter-spacing:.04em}
.tc-edge{stroke:var(--line-strong);stroke-width:1.2} .tc-edge.is-on{stroke:var(--accent);stroke-width:1.6}
.tc-gsband{fill:var(--accent);opacity:.05} .tc-gsline{stroke:var(--accent);stroke-width:1.2;stroke-dasharray:6 5;opacity:.7} .tc-gstext{fill:var(--accent-ink)!important;font-size:10.5px!important;font-weight:600;paint-order:stroke;stroke:var(--bg-sunken);stroke-width:4px;stroke-linejoin:round}
.tc-node{cursor:pointer;outline:none} .tc-node circle{transition:stroke-width .15s,fill .2s}
.tc-node:focus-visible circle{stroke:var(--accent);stroke-width:3.5;filter:drop-shadow(0 0 5px var(--accent))}
.tc-node.is-empty circle{fill:var(--bg-elev);stroke:var(--line-strong);stroke-width:1.2;stroke-dasharray:3 3}
.tc-node.is-empty:hover circle{stroke:var(--accent)}
.tc-node.is-next circle{stroke:var(--accent);stroke-width:1.8;stroke-dasharray:4 3}
.tc-node.is-full{cursor:default}
.tc-node.tc-l.is-full circle{fill:color-mix(in srgb,var(--accent) 22%,var(--surface));stroke:var(--accent);stroke-width:1.8}
.tc-node.tc-r.is-full circle{fill:color-mix(in srgb,var(--text) 10%,var(--surface));stroke:var(--muted);stroke-width:1.8}
.tc-nl{font-weight:700;font-size:11px!important} .tc-nv{fill:var(--muted)!important;font-size:9.5px!important;font-variant-numeric:tabular-nums} .tc-plus{fill:var(--accent-ink)!important;font-size:15px!important;font-weight:700}
.tc-you circle{fill:var(--surface);stroke:var(--accent);stroke-width:2.5} .tc-you text{font-weight:700;font-size:13px!important}
.tc-link{stroke:var(--accent);stroke-width:2;opacity:.55;stroke-dasharray:2 5;stroke-linecap:round}
.tc-ring{fill:none;stroke:var(--accent);stroke-width:2.2;opacity:.9}
.tc-ptag{fill:var(--accent-ink)!important;font-weight:700;font-size:10.5px!important}
@keyframes tc-drop{from{opacity:0;transform:translateY(-14px)}to{opacity:1;transform:none}}
.tc-node.is-new{animation:tc-drop .5s var(--e-out)}
.tc-evline{min-height:1.4em;color:var(--muted);padding-inline:2px} .tc-scene-foot{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center}
.tc-scene-foot .micro{margin:0;flex:1 1 280px}
.tc-side{display:grid;gap:12px;align-content:start} .tc-side>.tc-hyp{justify-self:start}
.tc-panel{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--surface);overflow:hidden}
.tc-panel summary{list-style:none;display:flex;align-items:center;gap:6px;cursor:pointer;min-height:48px;padding:10px 16px;font-family:var(--font-d);font-weight:700;font-size:17px}
.tc-panel summary::-webkit-details-marker{display:none} .tc-panel summary .ico{margin-left:auto;transition:transform .25s} .tc-panel[open] summary .ico{transform:rotate(180deg)}
.tc-count{font-weight:500;color:var(--muted);font-size:14px}
.tc-panel>.tc-events,.tc-panel>.tc-lv{margin:0 14px 14px} @media(min-width:1024px){.tc-panel[open]{max-height:min(70vh,640px);overflow:auto}}
.tc-events li{font-size:13.5px;line-height:1.45}
.tc-lvt{width:100%;font-size:13px;border-collapse:collapse} .tc-lvt th,.tc-lvt td{padding:6px 8px;border-top:1px solid var(--line);text-align:left} .tc-lvt th.end,.tc-lvt td.end{text-align:right}
.tc-day[hidden]{display:none}
.tc-day{padding:18px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);display:grid;gap:14px}
.tc-day-t{font-family:var(--font-d);font-size:17px;margin:0}
.tc-legbars{display:grid;gap:10px} .tc-legbar{display:grid;grid-template-columns:76px minmax(0,1fr) auto;gap:12px;align-items:center;font-size:14px}
.tc-lb-track{height:18px;border-radius:999px;background:var(--line);overflow:hidden;position:relative} .tc-legbar-in{height:100%;display:flex;transition:width .5s var(--e-out)}
.tc-seg-m,.tc-seg-c{display:block;height:100%;transition:width .9s var(--e-out)} .tc-seg-m{background:var(--accent)} .tc-seg-c{background:repeating-linear-gradient(45deg,var(--line-strong) 0 6px,transparent 6px 12px)}
.tc-kv{display:grid;gap:0;grid-template-columns:1fr} @media(min-width:640px){.tc-kv{grid-template-columns:1fr 1fr;column-gap:28px}}
.tc-kv>div{display:flex;justify-content:space-between;gap:12px;padding:8px 0;border-top:1px dashed var(--line);font-size:14px} .tc-kv dt{color:var(--muted)} .tc-kv dd{font-weight:600;text-align:right}
.tc-day-empty{color:var(--muted)}

.tc-tree.is-scene .tc-tree-grid{grid-template-columns:minmax(0,1fr)} .tc-tree.is-scene .tc-ctl-row{grid-template-columns:repeat(auto-fit,minmax(200px,320px))}
/* mechanics */
.tc-mx{display:grid;gap:22px}
.tc-mx-bar{padding:18px 20px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line)} .tc-mx-bar .t-row{margin-bottom:6px}
.tc-startup{margin:10px 0 0;font-size:15px} .tc-startup b{font-size:17px;color:var(--accent-ink)} .tc-startup .tc-st-f{margin-left:4px}
.tc-mx-grid{display:grid;gap:26px;align-items:start} @media(min-width:960px){.tc-mx-grid{grid-template-columns:minmax(300px,380px) minmax(0,1fr);gap:36px}.tc-mx-in{position:sticky;top:96px}}
.tc-inputs{display:grid;gap:2px;align-content:start} .tc-inputs>.t-title{display:flex;align-items:center;gap:2px}
.tc-more{margin:4px 0 12px;border-radius:var(--r-md);border:1px solid var(--line);padding:0 14px;background:var(--bg-elev)} .tc-more summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;font-size:14px;list-style:none} .tc-more summary::-webkit-details-marker{display:none} .tc-more[open] summary{margin-bottom:6px}
.tc-diagram,.tc-chart{border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line);padding:12px}
.tc-svg2{width:100%;height:auto;display:block;font-family:var(--font-b)}
.tc-svg2 text{fill:var(--text);font-size:12px}
.tc-d-t1{font-weight:700;font-size:14px!important;font-variant-numeric:tabular-nums} .tc-d-t2{fill:var(--muted)!important;font-size:12px!important;font-variant-numeric:tabular-nums}
.tc-d-edge{stroke:var(--accent);stroke-width:1.6} .tc-d-pair{stroke:var(--accent);stroke-width:2;stroke-dasharray:3 6;stroke-linecap:round;opacity:.7}
.tc-d-pill{fill:var(--bg-elev);stroke:var(--line-strong)} .tc-d-pill.is-tier{stroke:var(--accent);stroke-width:1.5}
.tc-d-node circle{fill:var(--surface);stroke:var(--line-strong);stroke-width:1.5} .tc-d-node.is-you circle{stroke:var(--accent);stroke-width:2.4}
.tc-d-node.is-l circle{fill:color-mix(in srgb,var(--accent) 16%,var(--surface));stroke:var(--accent)} .tc-d-node.is-r circle{fill:color-mix(in srgb,var(--text) 8%,var(--surface));stroke:var(--muted)}
.tc-grid{stroke:var(--line);stroke-width:1} .tc-axis{fill:var(--faint)!important;font-size:10.5px!important;font-variant-numeric:tabular-nums} .tc-axis.is-cap{fill:var(--accent-ink)!important}
.tc-capline{stroke:var(--accent);stroke-width:1.2;stroke-dasharray:4 5;opacity:.7}
.tc-area{fill:var(--accent);opacity:.16} .tc-line-paid{fill:none;stroke:var(--accent);stroke-width:2.4;stroke-linejoin:round;stroke-linecap:round} .tc-line-fl{fill:none;stroke:var(--muted);stroke-width:2;stroke-dasharray:6 5;stroke-linecap:round}
.tc-legend{display:flex;flex-wrap:wrap;gap:6px 20px;font-size:13px;color:var(--muted);padding:4px 6px 0} .tc-legend span{display:inline-flex;align-items:center;gap:8px} .tc-legend span::before{content:"";width:22px;height:0;border-top:3px solid var(--accent)} .tc-legend .is-fl::before{border-top:2px dashed var(--muted)}
/* rank strip + timeline */
.tc-ranks{list-style:none;display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:8px;overflow-x:auto;padding:2px 2px 6px}
@media(max-width:820px){.tc-ranks{grid-template-columns:repeat(7,minmax(104px,1fr))}}
.tc-ranks li{display:grid;gap:2px;justify-items:center;text-align:center;padding:12px 6px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-sunken);position:relative}
.tc-ranks li.is-reached{background:var(--accent-glow);border-color:var(--accent)} .tc-ranks li.is-next{border-style:dashed;border-color:var(--accent)}
.tc-rk-id{font-family:var(--font-d);font-weight:700;font-size:18px} .tc-rk-n{font-size:11.5px;color:var(--muted);line-height:1.25} .tc-rk-pv{font-size:12.5px;font-weight:600} .tc-rk-s{font-size:11.5px;color:var(--accent-ink);font-weight:600}
/* coaching */
.tc-gens{list-style:none;display:grid;gap:8px;margin-top:6px}
.tc-gen{display:grid;grid-template-columns:44px minmax(0,1fr) auto;grid-template-areas:"n l i" "n v v";gap:4px 12px;align-items:center;padding:10px 12px;border-radius:var(--r-md);border:1px solid var(--line);background:var(--bg-elev)}
.tc-gen.is-locked{opacity:.66;background:var(--bg-sunken)} .tc-gen.is-locked .tc-num{pointer-events:none}
.tc-g-n{grid-area:n;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;border:1.5px solid var(--accent);font-weight:700;font-family:var(--font-d)}
.tc-gen.is-locked .tc-g-n{border-style:dashed;border-color:var(--line-strong)}
.tc-g-l{grid-area:l;font-size:13.5px;font-weight:600;display:grid;gap:0} .tc-gen .tc-num{grid-area:i}
.tc-num-wide{width:116px!important} .tc-g-v{grid-area:v;font-size:15px;text-align:right;color:var(--accent-ink);min-height:20px}
.tc-lock{display:inline-flex;align-items:center;gap:6px;color:var(--muted);font-weight:500;font-size:13px;white-space:normal;text-align:left}
/* team meter */
.tc-meter-wrap{display:grid;gap:10px;padding:16px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line)}
.tc-flow{display:grid;grid-template-columns:1fr auto 1fr;gap:10px;align-items:center;font-size:13.5px} .tc-fl-n{padding:8px 12px;border-radius:var(--r-md);border:1px solid var(--line-strong);background:var(--surface);text-align:center;font-weight:600} .tc-fl-n.is-you{border-color:var(--accent);background:var(--accent-glow)} .tc-fl-a{color:var(--accent-ink);font-weight:700}
.tc-meter{height:20px;border-radius:999px;background:var(--line);overflow:hidden} .tc-meter i{display:block;height:100%;background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 70%,#fff));border-radius:999px;transition:width .5s var(--e-out)}
.tc-meter-l{display:flex;justify-content:space-between;gap:10px;flex-wrap:wrap;font-size:13px;color:var(--muted)} .tc-meter-l b{color:var(--text)}

.tc-toggle{flex-wrap:nowrap} .tc-toggle .tc-switch{flex:1 1 auto;min-width:0}
/* rank journey */
.tc-rank{display:grid;gap:28px;align-items:start} @media(min-width:1024px){.tc-rank{grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);gap:44px}.tc-rank-read{position:sticky;top:96px}}
.tc-rank-read{display:grid;gap:22px} @media(max-width:1023px){.tc-rank-read{order:-1}}
.tc-timeline{list-style:none;display:grid;gap:0}
.tc-timeline>li{position:relative;display:grid;grid-template-columns:44px minmax(0,1fr);gap:16px;padding-bottom:28px}
.tc-timeline>li:last-child{padding-bottom:0}
.tc-timeline>li::before{content:"";position:absolute;left:21px;top:44px;bottom:0;width:2px;background:linear-gradient(var(--accent) var(--fill,0%),var(--line-strong) var(--fill,0%));transition:background .3s}
.tc-timeline>li:last-child::before{display:none}
.tc-tl-n{position:relative;z-index:1;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:var(--bg-sunken);border:2px solid var(--line-strong);font-family:var(--font-d);font-weight:700;font-size:14px;transition:background .3s,border-color .3s}
.tc-tl-n.is-0{font-size:12px;color:var(--muted)} .tc-tl-n.is-top{box-shadow:0 0 0 4px color-mix(in srgb,var(--metal) 22%,transparent)}
.is-reached>.tc-tl-n{background:var(--accent);border-color:var(--accent);color:#1b1608} .is-next>.tc-tl-n{border-color:var(--accent);border-style:dashed}
.tc-tl-b{display:grid;gap:3px;align-content:start;padding:6px 0 0} .tc-tl-b h4{font-family:var(--font-d);font-size:19px;margin:0} .tc-tl-b p{margin:0;font-size:14.5px} .tc-tl-b .btn{justify-self:start;margin-top:8px}
.is-here>.tc-tl-b{padding:12px 14px;border-radius:var(--r-lg);border:1px solid var(--accent);background:var(--accent-glow)}
.tc-here{justify-self:start;font-size:11.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;color:var(--accent-ink)}
/* practitioner */
.tc-bigstat{display:grid;gap:4px;padding:22px 24px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line);border-inline-start:3px solid var(--accent)} .tc-bigstat b{font-family:var(--font-d);font-size:clamp(40px,5vw,64px);line-height:1;color:var(--accent-ink)} .tc-bigstat span{color:var(--muted);font-size:14px}
.tc-math{margin:0 0 12px;font-size:15px}
/* join wizard */
.tc-wz{display:grid;gap:16px} .tc-wz-main{display:grid;gap:16px;align-items:start} @media(min-width:1024px){.tc-wz-main{grid-template-columns:260px minmax(0,1fr);gap:28px}.tc-wz-main .tc-sum{position:sticky;top:96px}}
.tc-sum{border:1px solid var(--line);border-radius:var(--r-lg);background:var(--bg-sunken);padding:0 16px} .tc-sum>summary{display:flex;justify-content:space-between;align-items:center;min-height:48px;cursor:pointer;font-weight:600;list-style:none} .tc-sum>summary::-webkit-details-marker{display:none} .tc-sum[open]>summary svg{transform:rotate(180deg)}
.tc-sum-list{display:grid;gap:10px;padding:0 0 16px;margin:0} .tc-sum-list dt{font-size:12px;color:var(--muted);text-transform:uppercase;letter-spacing:.06em} .tc-sum-list dd{margin:0;font-weight:600;overflow-wrap:anywhere}
@media(min-width:1024px){.tc-sum>summary{pointer-events:none}.tc-sum>summary svg{display:none}}
.tc-wz-card{display:grid;gap:18px;padding:clamp(18px,3vw,32px);border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface)}
.tc-stepper{display:none;list-style:none;gap:8px;margin:0;padding:0} @media(min-width:640px){.tc-stepper{display:grid;grid-template-columns:repeat(4,1fr)}.tc-wz-mob{display:none}}
.tc-stepper li{min-width:0} .tc-sp-b{display:flex;align-items:center;gap:10px;min-height:44px;background:none;border:0;padding:0;color:var(--muted);font:inherit;font-size:14px;text-align:left} button.tc-sp-b{cursor:pointer;color:var(--text)}
.tc-sp-n{flex:none;display:grid;place-items:center;width:32px;height:32px;border-radius:50%;border:2px solid var(--line-strong);font-weight:700;font-size:13px} .tc-sp-n svg{width:16px;height:16px}
.is-cur .tc-sp-b{color:var(--text);font-weight:600} .is-cur .tc-sp-n{border-color:var(--accent);background:var(--accent);color:#1b1608} .is-done .tc-sp-n{border-color:var(--accent);color:var(--accent-ink)}
.tc-wz-mob{display:grid;gap:6px}@media(min-width:640px){.tc-wz-mob{display:none}} .tc-prog{height:6px;border-radius:99px;background:var(--line);overflow:hidden} .tc-prog i{display:block;height:100%;background:var(--accent);transition:width .3s}
.tc-wz-h{font-family:var(--font-d);font-size:clamp(22px,3vw,30px);margin:0;outline:none}
.tc-wz-body{display:grid;gap:16px} .tc-wz-body.is-in{animation:tcIn .25s var(--e-out)} @keyframes tcIn{from{opacity:0;transform:translateY(6px)}}
@media(prefers-reduced-motion:reduce){.tc-wz-body.is-in{animation:none}.tc-prog i{transition:none}}
.tc-rcs{display:grid;gap:12px} .tc-rcs.three{grid-template-columns:repeat(auto-fit,minmax(230px,1fr))} .tc-rcs.devices{grid-template-columns:repeat(auto-fill,minmax(220px,1fr))} .tc-rcs.pkgs{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.tc-rc{position:relative;display:flex;cursor:pointer;border:1.5px solid var(--line-strong);border-radius:var(--r-lg);background:var(--surface-2,var(--surface));padding:16px;min-height:44px;transition:border-color .15s,background .15s} .tc-rc:hover{border-color:var(--accent)}
.tc-rc input{position:absolute;opacity:0;inset:0;width:100%;height:100%;margin:0;cursor:pointer} .tc-rc:has(input:checked),.tc-rc.is-on{border-color:var(--accent);background:var(--accent-glow);box-shadow:0 0 0 1px var(--accent)} .tc-rc:has(input:focus-visible){outline:3px solid var(--accent);outline-offset:2px}
.tc-rc-in{display:grid;gap:6px;align-content:start;width:100%;pointer-events:none} .tc-rc-in a{pointer-events:auto;position:relative;z-index:1} .tc-rc-in small{color:var(--muted);font-size:13.5px;line-height:1.4} .tc-rc-ic{color:var(--accent-ink)} .tc-rc-ic svg{width:26px;height:26px}
.tc-dev img{width:100%;height:auto;aspect-ratio:4/3;max-height:170px;object-fit:contain;border-radius:var(--r-md);background:var(--bg-sunken)} .tc-price{font-family:var(--font-d);font-weight:700;font-size:18px;color:var(--accent-ink)} .tc-det{min-height:44px;display:inline-flex;align-items:center}
.tc-pk-h{display:flex;justify-content:space-between;align-items:baseline;gap:8px;font-size:18px}
.tc-pkkv{display:grid;grid-template-columns:1fr;gap:6px;margin:6px 0 0;font-size:13.5px} .tc-pkkv>div{display:flex;justify-content:space-between;gap:12px;border-top:1px solid var(--line);padding-top:6px} .tc-pkkv dt{color:var(--muted)} .tc-pkkv dd{margin:0;text-align:right;font-weight:600;display:inline-flex;gap:6px;align-items:center;justify-content:flex-end;flex-wrap:wrap}
.tc-panel2{padding:14px 16px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line)} .tc-panel2 p{margin:0 0 8px} .tc-links{margin:0;padding-left:18px}
.tc-info{display:grid;gap:10px;padding:16px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line)} .tc-info p{display:flex;gap:10px;margin:0;align-items:flex-start} .tc-info svg,.tc-lines svg{flex:none;width:18px;height:18px;margin-top:3px;color:var(--accent-ink)}
.tc-sel{max-width:420px} .tc-err{color:var(--bad,#e5736a);font-weight:600;margin:0;outline:none}
.tc-small-d{border:1px solid var(--line);border-radius:var(--r-md);padding:0 14px} .tc-small-d>summary{min-height:44px;display:flex;align-items:center;cursor:pointer;font-size:14px;color:var(--muted)} .tc-d5{padding-left:20px;display:grid;gap:6px;font-size:14px}
.tc-review{display:grid;gap:0;margin:0} .tc-review>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 12px;padding:10px 0;border-bottom:1px solid var(--line);align-items:center} .tc-review dt{grid-column:1;font-size:12px;text-transform:uppercase;letter-spacing:.06em;color:var(--muted)} .tc-review dd{grid-column:1;margin:0;font-weight:600} .tc-review .btn{grid-column:2;grid-row:1/3}
.tc-lines{list-style:none;display:grid;gap:10px;margin:0;padding:0;font-size:14.5px} .tc-lines li{display:flex;gap:10px;align-items:flex-start}
.tc-small-print{display:grid;gap:8px} .tc-small-print summary{cursor:pointer;min-height:44px;display:flex;align-items:center}
.tc-go{display:grid;gap:12px;padding:20px;border-radius:var(--r-lg);border:1px solid var(--accent);background:var(--bg-sunken)} .tc-go-t{font-family:var(--font-d);font-size:22px;margin:0}
.btn-row{display:flex;flex-wrap:wrap;gap:10px;align-items:center}
.tc-wz-foot{display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap} .tc-wz-foot [hidden]{display:none} .tc-wz-foot .btn.is-off{opacity:.55}
.tc-priv{display:flex;gap:8px;align-items:flex-start;margin:0} .tc-priv svg{width:16px;height:16px;flex:none;margin-top:3px}
.tc-tl-start .tc-tl-b b{font-family:var(--font-d);font-size:19px}

/* ---------- toolsD: scrub (P01 chapter), report (R03), planner + fit (P34). Tokens only; works in dark + light. ---------- */

/* shared bits */
.dd-row .dd-suffix{font-style:normal;font-weight:400;color:var(--muted)}
.dd-pair{display:grid;grid-template-columns:minmax(0,1fr) 96px;gap:14px;align-items:center}
.dd-pair input[type=number]{min-height:44px;text-align:end;font-variant-numeric:tabular-nums;padding-inline:10px}
.dd-hint{font-size:13px;line-height:1.5;color:var(--muted);margin-top:4px}
.dd-check{grid-template-columns:1fr auto;align-items:center}
.dd-checklabel{display:flex!important;justify-content:flex-start!important;align-items:center;gap:12px;min-height:44px;cursor:pointer}
.dd-checklabel input{width:20px;height:20px;accent-color:var(--primary);flex:none}
.dd-btnrow{margin-top:8px}
.dd-label{display:inline-block;font-size:12px;font-weight:600;letter-spacing:.08em;text-transform:uppercase;color:var(--muted);margin-bottom:14px}
.dd-label--hyp{padding:8px 14px;border-radius:var(--r-md);background:var(--bg-sunken);border:1px solid var(--line);border-inline-start:3px solid var(--accent);letter-spacing:.04em;text-transform:none;font-size:13.5px;color:var(--text);line-height:1.4}
.dd-prompt{padding:18px 20px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px dashed var(--line-strong);color:var(--muted)}
.dd-results[hidden]{display:none}
.dd-report .t-out{margin-bottom:6px}
.dd-report .t-stat small,.dd-planner .dd-rrow small{display:block;font-size:12.5px;color:var(--muted);margin-top:4px;line-height:1.4}
.dd-diff{list-style:none;display:grid;gap:6px;margin:16px 0 4px;font-size:15px}
.dd-diff li{padding:10px 14px;border-radius:var(--r-md);background:var(--bg-sunken);border:1px solid var(--line)}
.dd-diff strong{font-variant-numeric:tabular-nums}
.dd-notes{margin-top:8px}
.dd-lead{margin-top:28px;padding-top:26px;border-top:1px solid var(--line);max-width:640px}

/* chart */
.dd-chartbox{margin-top:20px;border-radius:var(--r-lg);background:var(--bg-sunken);border:1px solid var(--line);padding:8px 6px 2px}
.dd-chart{display:block;width:100%;height:auto;overflow:visible}
.dd-chart text{font-family:var(--font-b);font-size:12px;fill:var(--muted);font-variant-numeric:tabular-nums}
.dd-chart .dd-axt{font-size:12px}
.dd-chart .dd-lbl{font-size:12.5px;font-weight:600;fill:var(--text)}
.dd-chart .dd-lbl.dd-s1{fill:var(--accent-ink)}
.dd-chart .dd-lbl.dd-s2{fill:var(--muted)}
.dd-grid{stroke:var(--line);stroke-width:1}
.dd-zero{stroke:var(--line-strong);stroke-width:1.5}
.dd-line{fill:none;stroke-width:2.6;stroke-linejoin:round;stroke-linecap:round}
polyline.dd-s1{stroke:var(--accent)} polyline.dd-s2{stroke:var(--muted);stroke-width:2}
.dd-mark{fill:var(--bg-elev);stroke:var(--accent);stroke-width:2.5}
.dd-legend{list-style:none;display:flex;flex-wrap:wrap;gap:6px 20px;margin:12px 2px 0;font-size:13px;color:var(--muted)}
.dd-legend li{display:inline-flex;align-items:center;gap:8px}
.dd-sw{display:inline-block;width:22px;height:0;border-top:3px solid var(--accent);border-radius:2px}
.dd-sw.dd-s2{border-top:2px dashed var(--muted)}
.dd-details{margin-top:16px}
.dd-details summary{cursor:pointer;min-height:44px;display:flex;align-items:center;font-weight:600;font-size:14.5px;color:var(--accent-ink)}
.dd-details table{min-width:420px}

/* planner result list */
.dd-rlist{border-top:1px solid var(--line)}
.dd-rrow{display:flex;justify-content:space-between;align-items:baseline;gap:16px;padding:13px 4px;border-bottom:1px solid var(--line)}
.dd-rrow>div span{font-weight:600;font-size:15px}
.dd-rrow b{font-family:var(--font-d);font-size:19px;font-variant-numeric:tabular-nums;white-space:nowrap;color:var(--text)}
.dd-rrow--sub>div span{font-weight:500;color:var(--text)}
.dd-rrow--sub b{font-size:17px}
.dd-rrow--big{margin-top:10px;padding:18px 16px;border:1px solid var(--line-strong);border-inline-start:3px solid var(--accent);border-radius:var(--r-lg);background:var(--bg-sunken)}
.dd-rrow--big>div span{font-size:16px}
.dd-rrow--big b{font-size:clamp(26px,3vw,36px);color:var(--text)}

/* fit */
.dd-fit{max-width:760px}
.dd-q{border:0;margin:0;padding:16px 0;border-top:1px solid var(--line)}
.dd-q legend{padding:0 0 12px;font-weight:600;font-size:16.5px;display:flex;gap:12px;align-items:baseline;line-height:1.4}
.dd-qn{flex:none;display:inline-grid;place-items:center;width:26px;height:26px;border-radius:50%;background:var(--bg-sunken);border:1px solid var(--line-strong);font-size:12.5px;font-weight:700;color:var(--muted)}
.dd-choices{display:flex;flex-wrap:wrap;gap:8px;margin-inline-start:38px}
.dd-choices .chip-radio{position:relative}
.dd-choices .chip-radio span{min-height:44px;display:inline-flex;align-items:center}
.dd-choices input:focus-visible+span{border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-glow)}
.dd-fit-status{margin:14px 0 0;min-height:20px}
.dd-fit-card{margin-top:18px}
.dd-fit-main{font-family:var(--font-d);font-size:var(--fs-h3);font-weight:600;line-height:1.35;margin:0 0 10px}
.dd-fit-notes{display:grid;gap:6px;margin:0 0 12px;padding-inline-start:20px;color:var(--text);font-size:15px}

/* ---------- scrub chapter ---------- */
.tool.tool--scrub{padding:0;border:0;border-radius:0;background:none;overflow:visible}
.dd-sc.scrub{--dd-top:calc(var(--header-h) + 12px);--dd-stage:calc(100vh - var(--dd-top) - 14px);--dd-len:300vh;position:relative;height:calc(var(--dd-stage) + var(--dd-len))}
@supports (height:100svh){.dd-sc.scrub{--dd-stage:calc(100svh - var(--dd-top) - 14px);--dd-len:300svh}}
.dd-sc .scrub-stick{top:var(--dd-top);height:var(--dd-stage);border-radius:var(--r-2xl);border:1px solid var(--line-strong);background:#050a0d;display:block;isolation:isolate;box-shadow:var(--shadow)}
/* the stage is a dark screen in both themes: scope the dark tokens so captions stay legible in Pearl too */
.dd-sc-stick{--text:#EAF2EE;--muted:#B4C7BD;--glass:rgba(8,20,15,.76);--line-strong:rgba(143,227,217,.3);--accent:#8FE3D9;--accent-ink:#8FE3D9;color:var(--text)}
.dd-sc-frame{position:absolute;inset:0;overflow:hidden}
.dd-canvas{display:block;width:100%;height:100%;background:#050a0d}
.dd-vig{position:absolute;inset:0;pointer-events:none;background:linear-gradient(180deg,rgba(3,7,9,.28) 0%,transparent 22%,transparent 52%,rgba(3,7,9,.66) 100%)}
.dd-beats{list-style:none;margin:0;padding:0;position:absolute;inset:0;pointer-events:none;z-index:2}
.dd-beat.scrub-cap{position:absolute;margin:0;left:clamp(16px,3vw,44px);right:auto;bottom:clamp(22px,7vh,64px);max-width:min(400px,42%);opacity:0;will-change:opacity,transform;color:var(--text)}
.dd-beat.scrub-cap:nth-child(even){left:auto;right:clamp(16px,3vw,44px)}
.dd-beat h3{font-size:var(--fs-h3);margin:0 0 6px;line-height:1.2}
.dd-beat p{margin:0;font-size:15.5px;line-height:1.5;color:var(--muted)}
.dd-load{position:absolute;z-index:3;top:16px;right:16px;display:flex;align-items:center;gap:10px;padding:7px 12px;border-radius:999px;background:rgba(5,10,13,.66);border:1px solid rgba(143,227,217,.22);color:#cfe3dc;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase;backdrop-filter:blur(8px);transition:opacity .5s .5s}
.dd-load.done{opacity:0;pointer-events:none}
.dd-load-track{width:64px;height:3px;border-radius:3px;background:rgba(255,255,255,.18);overflow:hidden} .dd-load-track i{display:block;height:100%;width:0;background:#8FE3D9;transition:width .25s linear}
.dd-hint-scroll{position:absolute;z-index:3;left:50%;bottom:14px;transform:translateX(-50%);display:grid;justify-items:center;gap:6px;color:#cfe3dc;font-size:11.5px;letter-spacing:.14em;text-transform:uppercase;font-weight:600;transition:opacity .4s}
.dd-hint-scroll i{display:block;width:1px;height:26px;background:linear-gradient(#8FE3D9,transparent);animation:dd-drop 1.6s var(--e-out) infinite}
.dd-hint-scroll.gone{opacity:0}
@keyframes dd-drop{0%{transform:scaleY(0);transform-origin:top}55%{transform:scaleY(1);transform-origin:top}56%{transform-origin:bottom}100%{transform:scaleY(0);transform-origin:bottom}}
.dd-meter{position:absolute;z-index:3;left:0;right:0;bottom:0;height:3px;background:rgba(255,255,255,.1)}
.dd-meter-fill{display:block;height:100%;background:var(--accent);transform:scaleX(0);transform-origin:left}

@media (max-width:819.98px){
  .dd-sc.scrub{--dd-stage:min(calc(100vh - var(--dd-top) - 14px),560px)}
  @supports (height:100svh){.dd-sc.scrub{--dd-stage:min(calc(100svh - var(--dd-top) - 14px),560px)}}
  .dd-sc .scrub-stick{display:flex;flex-direction:column;justify-content:center;align-items:stretch;gap:18px;border-radius:var(--r-xl)}
  .dd-sc .dd-sc-frame{position:relative;inset:auto;flex:none;aspect-ratio:16/9;width:100%}
  .dd-sc .dd-beats{position:relative;inset:auto;flex:none;height:178px}
  .dd-beat.scrub-cap,.dd-beat.scrub-cap:nth-child(even){left:12px;right:12px;top:0;bottom:auto;max-width:none}
  .dd-hint-scroll{bottom:10px}
  .dd-load{top:10px;right:10px}
  .dd-choices{margin-inline-start:0}
}

/* static fallback: reduced motion / data saver / no frames */
.dd-sc.scrub.dd-sc--static{height:auto}
.dd-sc--static .dd-sc-frame{position:relative;inset:auto;aspect-ratio:16/9;border-radius:var(--r-2xl);background:#050a0d;border:1px solid var(--line-strong);box-shadow:var(--shadow)}
.dd-poster{display:block;width:100%;height:100%;object-fit:contain}
.dd-beats.dd-beats--stack{position:static;inset:auto;height:auto;display:grid;gap:14px;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));margin-top:18px;pointer-events:auto}
.dd-beats--stack .dd-beat.scrub-cap,.dd-beats--stack .dd-beat.scrub-cap:nth-child(even){position:static;opacity:1!important;transform:none!important;max-width:none;left:auto;right:auto}

@media (prefers-reduced-motion:reduce){
  .dd-hint-scroll i{animation:none}
  .dd-load,.dd-load-track i{transition:none}
}
@media (max-width:639.98px){.dd-report .t-out{grid-template-columns:1fr}.dd-rrow{gap:10px}.dd-rrow b{font-size:17px}}

/* =====================================================================================================
   58-v3-tools.css  —  Home v3 design language for the 18 tools, lead forms, lead modal, Ctrl+K palette, toast.
   Loads after 40/50/55 and BEFORE fe.css (Tailwind preflight, unlayered): preflight's `[type=button]{background:transparent}`
   has (0,1,0) and wins ties by order, so button/surface rules here use an `html` prefix (0,1,1+) on purpose.
   Tokens only (--bg --surface --text --muted --faint --line --accent …) => light + dark both work.
   ===================================================================================================== */

/* ---------- 0. local scale ---------- */
.oly-tool-sec,.oly-stage,.tool,dialog,.lform,.toast{
  --v3-r:24px; --v3-r-sm:16px; --v3-pill:999px; --v3-tap:44px;
  --v3-sunk:color-mix(in srgb,var(--bg-sunken) 72%,transparent);
  --v3-glass2:color-mix(in srgb,var(--surface) 55%,transparent);
  --v3-edge:color-mix(in srgb,var(--text) 9%,transparent);
  --v3-ease:cubic-bezier(.19,1,.22,1);
}
html:not(.dark):not([data-theme=dark]) .oly-stage{ --v3-sunk:color-mix(in srgb,var(--bg-sunken) 85%,#fff); }

/* ---------- 1. the stage (instrument panel) ---------- */
.oly-stage{position:relative;isolation:isolate}
.oly-stage-glow{position:absolute;inset:-1px;z-index:0;pointer-events:none;border-radius:inherit;
  background:radial-gradient(ellipse 55% 45% at 100% 0%,var(--accent-glow),transparent 70%),radial-gradient(ellipse 40% 40% at 0% 100%,color-mix(in srgb,var(--primary) 16%,transparent),transparent 70%);opacity:.8}
.oly-stage-bar{position:relative;z-index:2;display:flex;align-items:center;gap:10px;padding:clamp(14px,1.8vw,20px) clamp(18px,3vw,40px) 0;font-size:11.5px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:var(--muted)}
.oly-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 0 var(--accent-glow);animation:olyPing 2.6s var(--v3-ease) infinite}
@keyframes olyPing{0%{box-shadow:0 0 0 0 var(--accent-glow)}70%,100%{box-shadow:0 0 0 10px transparent}}
.oly-stage-body{position:relative;z-index:1;padding:clamp(16px,2.4vw,28px) clamp(18px,3vw,40px) clamp(20px,3vw,40px)}
/* the legacy `.tool` frame is replaced by the stage: neutralise it */
.oly-stage .oly-tool.tool,.oly-stage .tool{border:0;background:none;padding:0;border-radius:0;overflow:visible;box-shadow:none}
.oly-stage .tool.tool--compare,.oly-stage .tool.tool--bundle{overflow:visible}
.tool--finder.fd-compact{padding:0}
.oly-tool-sec .eyebrow{color:var(--accent)}
.oly-fns .fn,.oly-tool-sec .micro .fn{color:var(--accent-ink)}
@media (max-width:640px){.oly-stage{border-radius:22px!important}.oly-stage-body{padding-inline:16px}.oly-stage-bar{padding-inline:16px}}

/* number bump (set by tool.tsx on text change of a big numeral) */
@keyframes olyBump{0%{transform:translateY(4px);opacity:.35;filter:blur(2px)}100%{transform:none;opacity:1;filter:none}}
.oly-bump{animation:olyBump .38s var(--v3-ease) both}
@media (prefers-reduced-motion:reduce){.oly-bump,.oly-dot{animation:none}}

/* ---------- 2. type inside tools ---------- */
.oly-tool h2,.oly-tool h3,.oly-tool h4{font-family:var(--font-d);font-weight:800;letter-spacing:-.025em;color:var(--text)}
.oly-tool h3{font-size:clamp(20px,1.8vw,26px);line-height:1.15}
.oly-tool h4{font-size:17px;line-height:1.25}
.oly-tool .t-title,.t-title{font-family:var(--font-d);font-weight:800;font-size:clamp(20px,1.9vw,26px);letter-spacing:-.03em;line-height:1.1;margin-bottom:16px;color:var(--text)}
.oly-tool p{margin:0}
.oly-tool .small{font-size:14px}.oly-tool .micro{font-size:12.5px;color:var(--faint);margin-top:12px;line-height:1.55}
.oly-tool .num,.oly-tool output,.oly-tool .t-stat b{font-variant-numeric:tabular-nums}
.oly-tool a:not(.btn){color:var(--accent-ink);text-underline-offset:3px}

/* ---------- 3. form controls ---------- */
.t-row{gap:8px;margin-bottom:20px}
.t-row label,.t-row .lab,.tb-lab,.dd-label,.f>span,.f legend{font-size:12.5px;font-weight:700;letter-spacing:.04em;color:var(--muted)}
.t-row output{font-family:var(--font-d);font-size:15px;font-weight:800;color:var(--accent-ink)}
html .tool input[type=text],html .tool input[type=email],html .tool input[type=tel],html .tool input[type=search],html .tool input[type=number],html .tool select,html .tool textarea,
html .lform input[type=text],html .lform input[type=email],html .lform input[type=tel],html .lform select,html .lform textarea,
html dialog input[type=text],html dialog input[type=email],html dialog input[type=tel],html dialog select,html dialog textarea{
  min-height:48px;padding:12px 16px;border-radius:14px;border:1px solid var(--line-strong);background:var(--v3-sunk);color:var(--text);font:inherit;font-size:16px;
  transition:border-color .2s,box-shadow .25s,background .2s}
html .tool input:hover,html .tool select:hover,html .tool textarea:hover,html .lform input:hover,html .lform select:hover,html .lform textarea:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line-strong))}
html .tool input:focus,html .tool select:focus,html .tool textarea:focus,html .lform input:focus,html .lform select:focus,html .lform textarea:focus{
  outline:0;border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow);background:var(--v3-sunk)}
html .tool select,html .lform select{appearance:none;-webkit-appearance:none;padding-right:42px;cursor:pointer;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='14' height='9' viewBox='0 0 14 9' fill='none' stroke='%238FA79B' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M1 1.5l6 6 6-6'/%3E%3C/svg%3E");
  background-repeat:no-repeat;background-position:right 16px center}
html .tool select option,html .lform select option{background:var(--bg-elev);color:var(--text)}
input[aria-invalid=true],select[aria-invalid=true],textarea[aria-invalid=true]{border-color:#E5604D!important;box-shadow:0 0 0 4px rgba(229,96,77,.18)!important}
input::placeholder,textarea::placeholder{color:var(--faint);opacity:.85}
.tool :focus-visible,.lform :focus-visible,dialog :focus-visible{outline:2px solid var(--accent);outline-offset:3px}
input[type=checkbox]{accent-color:var(--primary)}

/* thin glowing range */
html .tool input[type=range],html .lform input[type=range]{height:32px;min-height:0;border:0;padding:0;background:transparent;box-shadow:none}
html .tool input[type=range]::-webkit-slider-runnable-track{height:5px;border-radius:999px;background:linear-gradient(90deg,var(--accent) var(--p,50%),color-mix(in srgb,var(--text) 14%,transparent) var(--p,50%));box-shadow:0 0 14px -2px var(--accent-glow)}
html .tool input[type=range]::-moz-range-track{height:5px;border-radius:999px;background:color-mix(in srgb,var(--text) 14%,transparent)}
html .tool input[type=range]::-moz-range-progress{height:5px;border-radius:999px;background:var(--accent);box-shadow:0 0 14px -2px var(--accent-glow)}
html .tool input[type=range]::-webkit-slider-thumb{-webkit-appearance:none;width:24px;height:24px;margin-top:-9.5px;border-radius:50%;background:var(--bg-elev);border:3px solid var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.35),0 0 0 0 var(--accent-glow);transition:box-shadow .25s,transform .2s}
html .tool input[type=range]::-moz-range-thumb{width:20px;height:20px;border-radius:50%;background:var(--bg-elev);border:3px solid var(--accent);box-shadow:0 2px 10px rgba(0,0,0,.35)}
html .tool input[type=range]:hover::-webkit-slider-thumb,html .tool input[type=range]:focus-visible::-webkit-slider-thumb{box-shadow:0 2px 10px rgba(0,0,0,.35),0 0 0 8px var(--accent-glow)}
html .tool input[type=range]:active::-webkit-slider-thumb{transform:scale(1.12)}
html .tool input[type=range]:focus-visible{outline:0}

/* ---------- 4. buttons (pill) ---------- */
html .btn,html .tool .btn,html .lform .btn,html dialog .btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:48px;height:auto;padding:0 26px;border-radius:999px;font-weight:700;font-size:15px;letter-spacing:-.005em;border:1px solid transparent;cursor:pointer;text-decoration:none;
  transition:transform .3s var(--v3-ease),box-shadow .3s,background .2s,border-color .2s,color .2s}
html .btn:active{transform:scale(.97)}
html .btn-primary,html .tool .btn-primary,html .lform .btn-primary,html dialog .btn-primary{background:var(--primary);color:var(--on-primary);box-shadow:0 10px 28px -12px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,.18)}
html .btn-primary:hover{background:var(--primary-hover);transform:translateY(-2px);box-shadow:0 16px 34px -12px var(--accent-glow),inset 0 1px 0 rgba(255,255,255,.2)}
html .btn-ghost,html .tool .btn-ghost,html .lform .btn-ghost{background:var(--v3-glass2);color:var(--text);border-color:var(--line-strong);backdrop-filter:blur(8px)}
html .btn-ghost:hover{border-color:var(--accent);background:var(--accent-glow);transform:translateY(-1px)}
html .btn-text,html .tool .btn-text{background:none;border:0;color:var(--accent-ink);padding:0 6px;min-height:44px;height:auto;box-shadow:none;font-weight:700}
html .btn-text:hover{text-decoration:underline;text-underline-offset:4px;transform:none;background:none}
html .btn-sm,html .tool .btn-sm{min-height:44px;padding:0 20px;font-size:14px}
html .btn[disabled],html .btn.is-off{opacity:.45;cursor:not-allowed;transform:none;box-shadow:none}
html .ic-btn,html .tool .ic-btn{width:44px;height:44px;border-radius:50%;border:1px solid var(--line-strong);background:var(--v3-glass2);color:var(--text);backdrop-filter:blur(8px);transition:transform .25s var(--v3-ease),background .2s,border-color .2s}
html .ic-btn:hover{background:var(--accent-glow);border-color:var(--accent);transform:translateY(-1px)}
html .ic-btn:active{transform:scale(.94)}
html .ic-btn[disabled]{opacity:.4}
html[data-side="business"] .btn-primary{background:var(--metal);color:#1b1608}

/* ---------- 5. segmented controls / chips (pill, accent on) ---------- */
html .t-seg,html .tc-seg-m,html .tc-seg-c{width:fit-content;max-width:100%;justify-self:start;display:inline-flex;gap:4px;padding:4px;border-radius:999px;background:var(--v3-sunk);border:1px solid var(--line);flex-wrap:wrap}
html .t-seg button,html .tc-seg-m button,html .tc-seg-c button {border:0;background:transparent;min-height:44px;padding:0 18px;border-radius:999px;cursor:pointer;font-size:14px;font-weight:600;color:var(--muted);transition:background .25s,color .25s,box-shadow .25s}
html .t-seg button:hover,html .tc-seg-m button:hover,html .tc-seg-c button:hover{color:var(--text)}
html .t-seg button[aria-pressed=true],html .t-seg button[aria-checked=true],html .tc-seg-m button[aria-pressed=true],html .tc-seg-m button[aria-checked=true],html .tc-seg-c button[aria-pressed=true],html .tc-seg-c button[aria-checked=true],html .tc-seg-m button.on,html .tc-seg-c button.on{background:var(--primary);color:var(--on-primary);box-shadow:0 6px 18px -8px var(--accent-glow)}
html .chip,html .tool .chip{display:inline-flex;align-items:center;min-height:44px;padding:0 18px;border-radius:999px;border:1px solid var(--line-strong);background:var(--v3-glass2);color:var(--text);font-size:14px;font-weight:600;cursor:pointer;backdrop-filter:blur(6px);transition:transform .25s var(--v3-ease),border-color .2s,background .2s,color .2s}
html .chip:hover{border-color:var(--accent);transform:translateY(-1px)}
html .chip.on,html .chip[aria-pressed=true],html .chip[aria-checked=true]{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:0 8px 22px -10px var(--accent-glow)}
html .chip-radio span{display:inline-flex;align-items:center;min-height:44px;padding:0 20px;border-radius:999px;border:1px solid var(--line-strong);background:var(--v3-glass2);font-weight:600;font-size:14.5px;cursor:pointer;transition:all .25s var(--v3-ease)}
html .chip-radio span:hover{border-color:var(--accent)}
html .chip-radio input:checked+span{background:var(--primary);color:var(--on-primary);border-color:transparent;box-shadow:0 8px 22px -10px var(--accent-glow)}
.tag{display:inline-flex;align-items:center;padding:3px 10px;border-radius:999px;border:1px solid var(--line-strong);font-size:11.5px;font-weight:700;letter-spacing:.06em;text-transform:uppercase;color:var(--accent-ink)}

/* ---------- 6. result tiles / big numerals ---------- */
.t-out{gap:14px}
.t-stat{position:relative;padding:clamp(18px,2vw,26px);border-radius:var(--v3-r);background:var(--v3-sunk);border:1px solid var(--line);overflow:hidden;transition:border-color .3s,transform .4s var(--v3-ease)}
.t-stat::before{content:"";position:absolute;inset:0;background:radial-gradient(ellipse 80% 70% at 100% 0%,var(--accent-glow),transparent 70%);opacity:.0;transition:opacity .4s;pointer-events:none}
.t-stat:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line));transform:translateY(-2px)}
.t-stat:hover::before{opacity:.7}
.t-stat,.tc-bigstat{container-type:inline-size}
.t-stat b,.tc-bigstat b{display:block;font-family:var(--font-d);font-weight:800;font-size:clamp(26px,3.2vw,44px);font-size:clamp(24px,13cqi,52px);line-height:1;letter-spacing:-.045em;color:var(--accent-ink);margin:6px 0 8px;font-variant-numeric:tabular-nums;white-space:nowrap}
.fd-price{font-family:var(--font-d);font-weight:800;font-size:clamp(34px,4.2vw,58px);letter-spacing:-.045em;line-height:1;color:var(--accent-ink);margin-top:16px}
.fd-price .fd-price-n{font-family:var(--font-b);font-size:13px;font-weight:500;letter-spacing:0;color:var(--faint);margin-left:8px}
.tc-bigstat{position:relative;padding:clamp(18px,2vw,26px);border-radius:var(--v3-r);background:var(--v3-sunk);border:1px solid var(--line);border-inline-start:1px solid var(--line);gap:4px}
.tc-bigstat span{color:var(--muted);font-size:13px}
.t-stat span,.t-stat small{font-size:13px;color:var(--muted);line-height:1.45}
.t-stat .tb-lab{font-size:12px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted)}
.t-note,.dd-hint,.tb-hint,.tc-hint{font-size:13px;color:var(--faint);line-height:1.5}

/* panels inside tools */
.cps-empty,.dd-prompt{border-radius:var(--v3-r);border:1px dashed var(--line-strong);background:var(--v3-sunk)}
.sc-res{border-radius:var(--v3-r);background:var(--v3-sunk);border:1px solid var(--line);border-inline-start:4px solid var(--accent)}
.svgbox{border-radius:var(--v3-r);background:var(--v3-sunk);border:1px solid var(--line)}
.ev-list li{border-radius:14px;background:var(--v3-sunk);border:1px solid var(--line)}

/* ---------- 7. quiz / option cards ---------- */
.qz-bar{height:5px;border-radius:999px;background:color-mix(in srgb,var(--text) 10%,transparent)}
.qz-bar i{background:linear-gradient(90deg,var(--primary),var(--accent));box-shadow:0 0 14px var(--accent-glow);border-radius:999px}
.qz-q{font-family:var(--font-d);font-weight:800;letter-spacing:-.035em;line-height:1.05;font-size:clamp(26px,3.4vw,46px);margin-bottom:24px}
html .qz-opt{border-radius:20px;border:1px solid var(--line-strong);background:var(--v3-glass2);padding:18px 22px;font-size:17px;font-weight:600;color:var(--text);backdrop-filter:blur(6px);
  transition:border-color .25s,background .25s,transform .35s var(--v3-ease),box-shadow .3s}
html .qz-opt:hover{border-color:var(--accent);transform:translateY(-2px);box-shadow:0 14px 30px -18px var(--accent-glow)}
html .qz-opt[aria-pressed=true],html .qz-opt[aria-checked=true]{border-color:var(--accent);background:var(--accent-glow);box-shadow:inset 0 0 0 1px var(--accent),0 14px 30px -16px var(--accent-glow)}
.qz-nav{margin-top:26px;gap:12px;align-items:center}

/* ---------- 8. tables ---------- */
.table-wrap{border-radius:var(--v3-r);border:1px solid var(--line);background:var(--v3-sunk);overflow-x:auto}
.oly-tool table{border-collapse:separate;border-spacing:0;width:100%}
.oly-tool table caption{caption-side:top;text-align:start;padding:16px 20px;font-family:var(--font-d);font-weight:800;font-size:16px;color:var(--text)}
.oly-tool table th,.oly-tool table td{padding:12px 16px;text-align:start;border-bottom:1px solid var(--line);font-size:14.5px;vertical-align:top}
.oly-tool table thead th{font-size:11.5px;font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--muted);background:color-mix(in srgb,var(--text) 4%,transparent);white-space:nowrap}
.oly-tool table th.end,.oly-tool table td.end{text-align:end;font-variant-numeric:tabular-nums}
.oly-tool table tbody tr{transition:background .2s}
.oly-tool table tbody tr:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.oly-tool table tbody tr:last-child>*{border-bottom:0}

/* ---------- 9. lead forms (page forms, inline, modal, footer) ---------- */
.lform{border-radius:28px;border:1px solid var(--line-strong);background:linear-gradient(165deg,var(--v3-glass2),var(--v3-sunk));backdrop-filter:blur(14px);box-shadow:var(--shadow);gap:20px;padding:clamp(22px,3.2vw,40px)}
.lform--inline,.lform--modal{background:none;border:0;box-shadow:none;backdrop-filter:none;padding:0}
.lead-head h3{font-family:var(--font-d);font-weight:800;font-size:clamp(24px,2.6vw,34px);letter-spacing:-.035em;line-height:1.05;margin:0 0 8px;color:var(--text)}
.lead-head p{color:var(--muted);font-size:15.5px;line-height:1.55;margin:0}
.lead-head .eyebrow{margin-bottom:8px;display:block}
.lead-fields{gap:16px}
.f{gap:8px}
.f em{color:var(--faint)}
.f-choice{gap:10px}
.lead-consent{align-items:flex-start;font-size:13px;line-height:1.55;color:var(--muted);padding:14px 16px;border-radius:16px;background:var(--v3-sunk);border:1px solid var(--line)}
html .lead-consent input{width:20px;height:20px;margin-top:1px;accent-color:var(--primary);flex:none;min-height:0;padding:0}
.lead-actions{gap:16px}
.lead-micro{font-size:12px;color:var(--faint)}
.lead-status:not(:empty){padding:16px 18px;border-radius:16px;border:1px solid var(--line-strong);background:var(--v3-sunk);font-size:14.5px;line-height:1.5;animation:olyBump .4s var(--v3-ease) both}
.lead-status.ok{border-color:var(--accent);background:var(--accent-glow)}
.lead-status.err{border-color:#E5604D;background:rgba(229,96,77,.1)}
.lead.sending .btn,.lform.sending .btn{opacity:.6;pointer-events:none}
.lform.sending .btn .lbl::after{content:"…"}
.lead-band{border-radius:32px;border:1px solid var(--line-strong);background:radial-gradient(ellipse 60% 80% at 0% 0%,var(--accent-glow),transparent 70%),linear-gradient(160deg,var(--v3-glass2),var(--v3-sunk))}
.lead-band .lform{background:var(--v3-glass2)}

/* footer newsletter: always dark, whatever the page theme */
.oly-on-dark{--text:#EAF2EE;--muted:#A9BDB2;--faint:#7F958A;--bg:#07120E;--bg-elev:#0B1813;--bg-sunken:#050D0A;--surface:#0E1F18;--surface-2:#12281F;--line:rgba(143,227,217,.14);--line-strong:rgba(143,227,217,.28);
  --accent:#8FE3D9;--accent-ink:#8FE3D9;--accent-glow:rgba(143,227,217,.26);--primary:#2FA866;--primary-hover:#38BF76;--on-primary:#04140C;--v3-sunk:rgba(255,255,255,.04);--v3-glass2:rgba(255,255,255,.05);color:#EAF2EE;color-scheme:dark}
.oly-on-dark .lform{padding:0}
.oly-on-dark .lead-head h3{font-size:clamp(20px,1.8vw,24px)}
.oly-on-dark .lead-head p{font-size:14px}
.oly-on-dark .lead-fields{grid-template-columns:1fr}
.oly-on-dark .lead-consent{background:rgba(255,255,255,.03)}
.oly-on-dark .lead-actions{flex-direction:column;align-items:flex-start}

/* ---------- 10. lead modal ---------- */
html dialog.lead-dialog{border:1px solid var(--line-strong);border-radius:30px;background:linear-gradient(170deg,var(--bg-elev),var(--bg-sunken));max-width:min(580px,94vw);box-shadow:0 40px 100px -30px rgba(0,0,0,.7),0 0 0 1px rgba(255,255,255,.03) inset;overflow:visible;color:var(--text)}
dialog.lead-dialog::before{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;background:radial-gradient(ellipse 70% 50% at 100% 0%,var(--accent-glow),transparent 70%);opacity:.7}
dialog.lead-dialog[open]{animation:olyDlg .5s var(--v3-ease) both}
dialog.lead-dialog[open]::backdrop,dialog.palette[open]::backdrop{animation:olyFade .35s ease both}
@keyframes olyDlg{from{opacity:0;transform:translateY(22px) scale(.97)}to{opacity:1;transform:none}}
@keyframes olyFade{from{opacity:0}to{opacity:1}}
dialog::backdrop{background:rgba(3,10,7,.66);backdrop-filter:blur(10px) saturate(1.1)}
dialog.lead-dialog .dlg-body{position:relative;padding:clamp(28px,4vw,44px) clamp(22px,4vw,40px) clamp(24px,3vw,34px)}
dialog.lead-dialog .dlg-x{right:14px;top:14px}
dialog.lead-dialog .lform{gap:18px}
dialog.lead-dialog .lead-fields{grid-template-columns:1fr}
@media (min-width:560px){dialog.lead-dialog .lead-fields .f:not(.f-wide){}}
@media (prefers-reduced-motion:reduce){dialog.lead-dialog[open],dialog::backdrop{animation:none}}
dialog.lead-dialog .lead-head h3{padding-right:36px}

/* ---------- 11. Ctrl+K palette ---------- */
html dialog.palette{border:1px solid var(--line-strong);border-radius:28px;background:linear-gradient(170deg,var(--bg-elev),var(--bg-sunken));max-width:min(680px,94vw);margin-top:12vh;box-shadow:0 40px 100px -30px rgba(0,0,0,.75);overflow:hidden;color:var(--text)}
dialog.palette[open]{animation:olyDlg .4s var(--v3-ease) both}
.palette .pal-in{padding:10px 10px 6px}
.palette .pal-search{display:flex;align-items:center;gap:14px;padding:6px 16px;border:1px solid var(--line-strong);border-radius:999px;background:var(--v3-sunk);min-height:56px;transition:border-color .2s,box-shadow .25s}
.palette .pal-search:focus-within{border-color:var(--accent);box-shadow:0 0 0 4px var(--accent-glow)}
.palette .pal-search .ico{width:20px;height:20px;color:var(--accent-ink);flex:none}
html .palette .pal-search input{flex:1;min-height:44px;border:0!important;box-shadow:none!important;background:transparent!important;padding:0;font-size:17px;font-weight:500;border-radius:0}
.palette .pal-search input::-webkit-search-cancel-button{-webkit-appearance:none}
.palette .pal-list{padding:10px 2px 6px;gap:2px;display:grid}
.palette .pal-list li{list-style:none}
.palette .pal-list a{display:flex;justify-content:space-between;align-items:baseline;gap:14px;padding:13px 16px;border-radius:16px;font-weight:600;font-size:15.5px;border:1px solid transparent;transition:background .15s,border-color .15s,transform .2s var(--v3-ease)}
.palette .pal-list a small{font-size:11.5px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--faint)}
.palette .pal-list li[aria-selected="true"] a,.palette .pal-list a:hover{background:var(--accent-glow);border-color:color-mix(in srgb,var(--accent) 45%,transparent);transform:translateX(3px)}
.palette .pal-list li[aria-selected="true"] a small{color:var(--accent-ink)}
.palette .pal-hint{padding:10px 18px 12px;font-size:12px;color:var(--faint);border-top:1px solid var(--line);margin:4px 0 0}

/* ---------- 12. toast ---------- */
html .toast{background:var(--glass);backdrop-filter:blur(18px) saturate(1.2);-webkit-backdrop-filter:blur(18px) saturate(1.2);border:1px solid var(--line-strong);border-radius:999px;padding:13px 22px;box-shadow:var(--shadow),0 0 0 1px rgba(255,255,255,.03) inset;font-size:14.5px;font-weight:600;color:var(--text);text-align:center}
html .toast::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--accent);margin-right:10px;vertical-align:1px;box-shadow:0 0 10px var(--accent)}

/* ---------- 13. sticky lead bar ---------- */
html .leadbar{border-top:1px solid var(--line-strong);background:color-mix(in srgb,var(--bg-elev) 82%,transparent);backdrop-filter:blur(22px) saturate(1.2);-webkit-backdrop-filter:blur(22px) saturate(1.2)}
.leadbar .lb-in p{font-family:var(--font-d);font-weight:800;letter-spacing:-.02em}
.leadbar .lb-in p small{font-family:var(--font-b);font-weight:400}

/* ---------- 14. market views (presentation only) ---------- */
.mkv-hero .mc-diffcol,.mkv-hero .mc-hr,.mkv-hero .mc-ctl,.mkv-hero .mc-sortrow,.mkv-hero .mc-count,.mkv-hero .mc-tablewrap,.mkv-hero .mc-more{display:none}
.mkv-hero .mc-top{grid-template-columns:1fr}
.mkv-glance .mc-chartcol,.mkv-glance .mc-hr,.mkv-glance .mc-ctl,.mkv-glance .mc-sortrow,.mkv-glance .mc-count,.mkv-glance .mc-tablewrap{display:none}
.mkv-glance .mc-top{grid-template-columns:1fr}
.mkv-rent .mc-diffcol,.mkv-rent .mc-hr,.mkv-rent .mc-ctl,.mkv-rent .mc-sortrow,.mkv-rent .mc-count,.mkv-rent .mc-tablewrap{display:none}
.mkv-rent .mc-top{grid-template-columns:1fr}

/* ---------- 15. checkboxes, fit self-check ---------- */
html .tool input[type=checkbox]:not([role=switch]),html .lform input[type=checkbox],html dialog input[type=checkbox]{appearance:none;-webkit-appearance:none;flex:none;width:22px;height:22px;min-height:0;padding:0;border-radius:7px;border:1.5px solid var(--line-strong);background-color:var(--v3-sunk);cursor:pointer;display:inline-block;vertical-align:middle;transition:background .2s,border-color .2s,box-shadow .2s;position:relative}
html .tool input[type=checkbox]:not([role=switch]):hover,html .lform input[type=checkbox]:hover{border-color:var(--accent)}
html .tool input[type=checkbox]:not([role=switch]):checked,html .lform input[type=checkbox]:checked,html dialog input[type=checkbox]:checked{background-color:var(--primary);border-color:var(--primary);background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%23fff' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E");background-size:78% 78%;background-position:center;background-repeat:no-repeat}
html .tool input[type=checkbox]:not([role=switch]):focus-visible,html .lform input[type=checkbox]:focus-visible{outline:0;box-shadow:0 0 0 4px var(--accent-glow);border-color:var(--accent)}
.oly-on-dark input[type=checkbox]:checked{background-color:#2FA866;border-color:#2FA866}

.dd-fit{max-width:none;display:grid;gap:12px}
@media (min-width:900px){.dd-fit{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 16px}}
.dd-fit>*{min-width:0}
.dd-fit>:not(.dd-q){grid-column:1/-1}
html .dd-q{border:1px solid var(--line);border-radius:22px;background:var(--v3-sunk);padding:18px 20px;margin:0;transition:border-color .3s,background .3s,transform .4s var(--v3-ease)}
.dd-q::after{content:"";display:block;clear:both}
.dd-q legend{float:left;width:100%;padding:0 0 14px;font-size:16.5px;font-weight:600;color:var(--text);letter-spacing:-.005em}
.dd-qn{width:28px;height:28px;background:var(--v3-glass2);font-family:var(--font-d);color:var(--accent-ink);border-color:color-mix(in srgb,var(--accent) 40%,var(--line-strong))}
.dd-choices{clear:both;margin-inline-start:40px;gap:8px}
.dd-q:has(input:checked){border-color:color-mix(in srgb,var(--accent) 50%,var(--line));background:linear-gradient(135deg,var(--accent-glow),var(--v3-sunk) 70%)}
.dd-q:has(input:checked) .dd-qn{background:var(--accent);color:var(--bg);border-color:transparent}
.dd-fit-status{margin:6px 0 0}
.dd-fit-main{font-family:var(--font-d);font-weight:800;letter-spacing:-.03em;font-size:clamp(22px,2.4vw,32px);line-height:1.15}
html .palette .pal-search input:focus,html .palette .pal-search input:focus-visible{outline:0!important;box-shadow:none!important}

/* switches (safety, tree, compare) */
.sf-track,.tc-track,.cmp-sw{background:color-mix(in srgb,var(--text) 16%,transparent);transition:background .25s,box-shadow .25s}
.sf-sw:checked+.sf-track,.tc-switch input:checked+.tc-track{background:var(--accent);box-shadow:0 0 16px -2px var(--accent-glow)}
.sf-row{transition:background .25s}
.sf-list{border-radius:var(--v3-r);overflow:hidden;border:1px solid var(--line);background:var(--v3-sunk)}

/* sticky children (bundle summary, tree panel…) need a clip, not a scroll container */
html .oly-stage{overflow:clip}
html .tool .tb-money input[type=number],html .tool .tb-money input[type=text]{border-radius:0 14px 14px 0}
.tb-cur,.tc-cur{border-radius:14px 0 0 14px;background:var(--v3-sunk);border-color:var(--line-strong)}
html .tool input[type=number]{-moz-appearance:textfield}
.tool input[type=number]::-webkit-inner-spin-button,.tool input[type=number]::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}
@media (max-width:640px){
  .dd-choices{margin-inline-start:0;display:grid;grid-template-columns:repeat(3,1fr)}
  .dd-choices .chip-radio span{width:100%;justify-content:center;padding:0 8px}
  html .dd-q{padding:16px}
}
.mkv-hero .mc>.t-title,.mkv-glance .mc>.t-title,.mkv-rent .mc>.t-title{display:none}
.mc>.t-title{margin-top:8px}
html dialog.cmp-vid{border-radius:28px;box-shadow:0 40px 100px -30px rgba(0,0,0,.8);max-width:none}

.post-head{padding-block:clamp(34px,5vw,70px) 26px;border-bottom:1px solid var(--line);background:linear-gradient(180deg,var(--hero-a),var(--bg))}
.post-head h1{font-size:clamp(32px,4.4vw,54px);margin:8px 0 16px;max-width:20ch} .post-head .lead{max-width:60ch}
.byline{margin-top:16px}
.post-body{padding-block:38px 56px;display:grid;gap:30px}
.toc{padding:20px 22px;border-radius:var(--r-lg);border:1px solid var(--line);background:var(--surface);max-width:720px} .toc ol{list-style:none;counter-reset:t;display:grid;gap:8px;margin-top:6px} .toc li{counter-increment:t;display:flex;gap:10px} .toc li::before{content:counter(t,decimal-leading-zero);color:var(--accent-ink);font-weight:700;font-size:13px;margin-top:3px} .toc a{color:var(--text);text-decoration:none;font-size:15.5px} .toc a:hover{color:var(--accent-ink)}
.author{max-width:720px;margin-top:20px}
.posts .card-body{min-height:210px}
.post-body>*{min-width:0;max-width:100%} .prose{min-width:0} .prose table{max-width:none}
