/* the two typefaces, served from this site (SIL Open Font License 1.1; texts in assets/fonts/) */
@font-face{font-family:'Archivo';font-style:normal;font-weight:100 900;font-stretch:62% 125%;font-display:swap;src:url(/assets/fonts/archivo-5.3.0-latin-wdth-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
@font-face{font-family:'JetBrains Mono';font-style:normal;font-weight:100 800;font-display:swap;src:url(/assets/fonts/jetbrains-mono-5.3.0-latin-wght-normal.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;}
/* fallback-faces:start (site_build/fontmetrics.py writes this block) */
@font-face{font-family:'Archivo Fallback';font-style:normal;font-weight:100 599;src:local('Arial');size-adjust:98.38%;ascent-override:89.25%;descent-override:21.35%;line-gap-override:0.00%;}
@font-face{font-family:'Archivo Fallback';font-style:normal;font-weight:600 900;src:local('Arial Bold'),local('Arial-BoldMT');size-adjust:98.69%;ascent-override:88.96%;descent-override:21.28%;line-gap-override:0.00%;}
@font-face{font-family:'Archivo Fallback';font-style:normal;font-weight:600 900;font-stretch:112%;src:local('Arial Bold'),local('Arial-BoldMT');size-adjust:110.86%;ascent-override:79.20%;descent-override:18.94%;line-gap-override:0.00%;}
@font-face{font-family:'JetBrains Mono Fallback';font-style:normal;font-weight:100 599;src:local('Courier New');size-adjust:100.12%;ascent-override:101.88%;descent-override:29.97%;line-gap-override:0.00%;}
@font-face{font-family:'JetBrains Mono Fallback';font-style:normal;font-weight:600 900;src:local('Courier New Bold'),local('CourierNewPS-BoldMT');size-adjust:100.04%;ascent-override:101.96%;descent-override:29.99%;line-gap-override:0.00%;}
/* fallback-faces:end */
/* ==========================================================================
   seb.css  --  Secure Environment Basics landing styles
   1. legacy rules carried over from the original inline <style>
   2. components (curated names, extracted from repeated inline styles)
   3. migrated one-offs (m-<section>-<n>) -- promote to components as each
      section is redesigned; delete when the element is rewritten
   ========================================================================== */

/* ---- 1. tokens + base ---- */
:root{
  /* colour -- DESIGN_SYSTEM.md (locked): one accent hue, severity by shade */
  --bg:#171717; --bg-2:#121212; --surface:#1a1a1a; --surface-2:#1e1e1e; --surface-hover:#262626;
  --border:#333333; --border-soft:#292929; --border-hair:#262626;
  --text:#f2f2f0; --text-2:#c4c4c4; --text-dim:#9c9c9c; --text-faint:#939393; --text-vfaint:#8c8c8c;   /* 4.5:1 or better on every surface (was #8a8a8a / #6b6b6b / #555555) */
  --accent:#d97757; --accent-hover:#cc6a48; --accent-light:#e8967a; --accent-lighter:#f0b39c;
  --accent-dark-border:#4a2c1f; --accent-rgb:217,119,87;
  --sev-low:#6b6b6b; --sev-med:#cf9478; --sev-high:#d97757; --sev-crit:#a8481f;
  /* type */
  --font-heading:'Archivo','Archivo Fallback',system-ui,sans-serif; --font-mono:'JetBrains Mono','JetBrains Mono Fallback',ui-monospace,'SF Mono',monospace;
  --fs-micro:10px; --fs-label:11px; --fs-mono:12px; --fs-ui:13px; --fs-sm:14px; --fs-body:15px;
  --fs-lead:1rem; --fs-h4:1.05rem; --fs-h3:1.15rem; --fs-price:1.9rem;
  --fs-h2-sm:clamp(1.5rem,2.6vw,2.1rem); --fs-stat:clamp(1.9rem,3.6vw,2.7rem); --fs-stat-xl:clamp(2.4rem,5vw,3.6rem);
  --fs-h2:clamp(1.6rem,3vw,2.4rem); --fs-h2-xl:clamp(1.8rem,3.6vw,2.8rem); --fs-h1:clamp(2rem,4.2vw,3.35rem);
  --ls-display:-0.02em; --ls-head:-0.015em; --ls-mono:0.06em; --ls-label:0.1em; --ls-wide:0.14em; --ls-brand:0.035em;
  /* space: 4px grid */
  --sp-1:4px; --sp-2:8px; --sp-3:12px; --sp-4:16px; --sp-5:20px; --sp-6:24px; --sp-8:32px; --sp-10:40px; --sp-12:48px; --sp-16:64px;
  /* layout */
  --gutter:clamp(16px,4vw,40px); --maxw:1240px; --header-h:111px;
  --ease-out:cubic-bezier(.2,.7,.2,1);
  --wd-display:112%;
}
@media (max-width:719px){:root{--header-h:57px;}}
*{box-sizing:border-box;}
html{background:var(--bg);color-scheme:dark;scrollbar-color:#4d4d4d var(--bg-2);scroll-padding-top:calc(var(--header-h) + 8px);}   /* a dark page gets dark scrollbars and form controls, not a white strip down the edge */
@media (prefers-reduced-motion:no-preference){html{scroll-behavior:smooth;}}
body{margin:0;overflow-x:hidden;background:var(--bg);color:var(--text);font-family:var(--font-heading);-webkit-font-smoothing:antialiased;}
a{color:var(--accent);text-decoration:none;}
a:not([class]):hover{color:var(--accent-light);}
input,button,textarea{font-family:inherit;}
input{min-width:0;}
#prompt-input{width:0;}              /* flex:1 grows it; a 0 base lets the row shrink on 360px screens */
#sandbox-grid>*{min-width:0;}
button{cursor:pointer;}
::selection{background:rgba(var(--accent-rgb),0.35);}
:focus-visible{outline:2px solid var(--accent);outline-offset:2px;}
h1,h2,h3{text-wrap:balance;}
h1,h2{font-stretch:var(--wd-display);}   /* Archivo's width axis: a wider, more deliberate display face */
p{text-wrap:pretty;}
.mono{font-family:var(--font-mono);}
@keyframes caret{0%,49%{opacity:1;}50%,100%{opacity:0;}}
.caret{animation:caret 1s step-end infinite;}

/* site-wide brand texture (same hex tile as email/social) */
.section-texture{position:relative;}
.section-texture::before{content:'';position:absolute;inset:0;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='49' viewBox='0 0 28 49'%3E%3Cg fill-rule='evenodd'%3E%3Cg fill='%23d97757' fill-opacity='1'%3E%3Cpath d='M13.99 9.25l13 7.5v15l-13 7.5L1 31.75v-15l12.99-7.5zM3 17.9v12.7l10.99 6.34 11-6.35V17.9l-11-6.34L3 17.9zM0 15l12.98-7.5V0h-2v6.35L0 12.69v2.3zm0 18.5L12.98 41v8h-2v-6.85L0 35.81v-2.3zM15 0v7.5L27.99 15H28v-2.31h-.01L17 6.35V0h-2zm0 49v-8l12.99-7.5H28v2.31h-.01L17 42.15V49h-2z'/%3E%3C/g%3E%3C/g%3E%3C/svg%3E");background-repeat:repeat;opacity:0.055;pointer-events:none;z-index:0;}
.section-texture>*{position:relative;z-index:1;}

/* hero glow: static fallback behind the dithered field (no loop, no blur) */
#hero-glow{position:absolute;top:-180px;right:6%;width:720px;height:720px;border-radius:50%;
  background:radial-gradient(circle,rgba(217,119,87,0.16) 0%,rgba(217,119,87,0.05) 42%,transparent 70%);pointer-events:none;}
.hero.has-field #hero-glow{display:none;}
.hero.has-field::before{opacity:0;}              /* one hex scale at a time: the field replaces the fine texture */
.hero-grid canvas{position:absolute;inset:0;display:block;width:100%;height:100%;image-rendering:pixelated;}

/* corner watermark mark (monochrome) */
.seb-watermark{position:fixed;left:16px;bottom:14px;width:104px;height:104px;pointer-events:none;z-index:3;color:#f2f2f0;opacity:0.085;}
.seb-watermark svg{width:100%;height:100%;display:block;}
@media(max-width:720px){.seb-watermark{width:72px;height:72px;opacity:0.075;left:10px;bottom:10px;}}

.price-count{font-variant-numeric:tabular-nums;}

@media (prefers-reduced-motion:reduce){
  .caret{animation:none;}
}

/* ---- 2. components ---- */
.t-2{color:var(--text-2);}
.t-vfaint{color:var(--text-vfaint);}
.shrink-0{flex-shrink:0;}
.rel{position:relative;}
.t-accent{color:var(--accent);}
.unit{font-size:0.4em;}
.stat__track{margin-top:12px;height:4px;background:var(--border-soft);}
.sec{border-top:2px solid var(--border);}
.eyebrow{font-size:var(--fs-label);letter-spacing:var(--ls-wide);}
.h2{margin:14px 0 0;font-family:var(--font-heading);font-size:var(--fs-h2);line-height:1.1;letter-spacing:var(--ls-head);color:var(--text);}
.mw-760{max-width:760px;}
.lede{margin:14px 0 0;font-size:var(--fs-lead);line-height:1.65;color:var(--text-dim);}
.mw-620{max-width:620px;}
.sec--alt{background:var(--surface-2);}
.wrap{max-width:1240px;margin:0 auto;padding:clamp(40px,6vw,80px) clamp(16px,4vw,40px);}
.mw-720{max-width:720px;}
.mw-640{max-width:640px;}
.panel{border:2px solid var(--border);background:var(--surface);}
.panel--top{margin-top:32px;}
.t-accent-light{color:var(--accent-light);}
.grid-1{display:grid;grid-template-columns:1fr;}
.label{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-vfaint);}
.disclosure{padding:12px 16px;border-top:2px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-mono);color:var(--text-dim);line-height:1.7;}
.mw-660{max-width:660px;}
.col{display:flex;flex-direction:column;}
.mw-800{max-width:800px;}
.fig{padding:clamp(20px,2.6vw,28px);border-right:2px solid var(--border);}
.fig__num{font-size:var(--fs-stat);font-weight:700;line-height:1;color:var(--accent);}
.fig__text{margin:12px 0 0;font-size:var(--fs-sm);line-height:1.55;color:var(--text-2);}
.fig__src{margin-top:10px;font-family:var(--font-mono);font-size:var(--fs-micro);color:var(--text-dim);letter-spacing:var(--ls-mono);}
.json-hit{background:rgba(var(--accent-rgb),0.14);border-left:2px solid var(--accent);padding-left:8px;margin-left:-10px;color:var(--accent-light);}
.bullet{display:flex;gap:10px;font-size:var(--fs-sm);line-height:1.5;color:var(--text-2);}
.step__num{font-size:var(--fs-label);color:var(--accent);letter-spacing:var(--ls-label);}
.step__title{margin:12px 0 0;font-family:var(--font-heading);font-size:var(--fs-h4);color:var(--text);}
.step__text{margin:10px 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--text-dim);}
.step{padding:24px clamp(16px,2vw,26px);border-right:2px solid var(--border);}
.plan{border-right:2px solid var(--border);display:flex;flex-direction:column;}
.plan__rule{height:3px;background:var(--border-soft);}
.plan__body{padding:clamp(20px,2.4vw,26px);display:flex;flex-direction:column;flex-grow:1;}
.plan__name{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-2);}
.plan__price{margin-top:14px;font-size:var(--fs-price);font-weight:700;color:var(--text);}
.plan__eta{margin-top:6px;font-size:var(--fs-label);color:var(--text-dim);}
.plan__text{margin:16px 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--text-dim);flex-grow:1;}
.prose{margin:14px 0 0;font-size:var(--fs-body);line-height:1.7;color:var(--text-2);}
.proof{display:flex;gap:14px;padding:16px 0;border-bottom:1px solid var(--border-soft);}
.proof__num{font-size:var(--fs-micro);color:var(--accent);flex-shrink:0;width:20px;}
.proof__text{margin:0;font-size:var(--fs-body);line-height:1.6;color:var(--text-2);}
.sec--clip{position:relative;overflow:hidden;}
.grid-bg{position:absolute;inset:0;background-image:linear-gradient(rgba(243,242,242,0.025) 1px,transparent 1px),linear-gradient(90deg,rgba(243,242,242,0.025) 1px,transparent 1px);background-size:56px 56px;pointer-events:none;}
.wrap-xl{position:relative;max-width:1240px;margin:0 auto;padding:clamp(48px,7vw,96px) clamp(16px,4vw,40px);}
.h2-xl{margin:14px 0 0;font-family:var(--font-heading);font-size:var(--fs-h2-xl);line-height:1.08;letter-spacing:var(--ls-display);color:var(--text);max-width:640px;}
.field__label{display:block;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);margin-bottom:6px;}
.field__input{width:100%;background:var(--bg);border:2px solid var(--border);outline:none;padding:14px 16px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-sm);}
.field__input:focus-visible{border-color:var(--accent);outline:2px solid var(--accent);outline-offset:2px;}
.t-dim{color:var(--text-dim);}

/* ---- header ---- */
.progress{position:fixed;top:0;left:0;height:2px;background:var(--accent);z-index:60;width:0;}
.site-header{position:sticky;top:0;z-index:50;background:var(--bg);}
.statusbar{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:6px var(--gutter);background:var(--bg-2);border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-mono);color:var(--text-faint);}
.statusbar__l{display:flex;align-items:center;gap:8px;}
.statusbar__dot{display:block;width:6px;height:6px;background:var(--accent);}
.statusbar__r{display:flex;align-items:center;gap:clamp(10px,2vw,22px);}
.nav{display:flex;align-items:stretch;justify-content:space-between;gap:20px;background:var(--bg);border-bottom:2px solid var(--border);}
.nav__brand{display:flex;align-items:center;gap:16px;padding:12px var(--gutter);border-right:2px solid var(--border);min-width:0;}
.nav__mark{flex-shrink:0;}
.nav__lockup{display:flex;flex-direction:column;gap:8px;line-height:1;padding:2px 0;}
.nav__name{font-family:var(--font-heading);font-size:clamp(12px,1.15vw,14px);font-weight:800;letter-spacing:var(--ls-brand);color:var(--text);white-space:nowrap;}
.nav__tag{font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:500;letter-spacing:var(--ls-wide);color:var(--accent);white-space:nowrap;}
.nav__links{flex-shrink:0;display:flex;align-items:center;gap:clamp(12px,2.6vw,28px);padding:0 var(--gutter);font-family:var(--font-mono);font-size:var(--fs-mono);letter-spacing:var(--ls-label);}
.nav-link{color:var(--text-2);}
.nav-link:hover{color:var(--text);}
.btn-cta{position:relative;display:inline-flex;white-space:nowrap;flex-shrink:0;align-items:center;gap:9px;padding:8px 14px;background:var(--accent);color:var(--bg);font-weight:700;letter-spacing:var(--ls-mono);}
.btn-cta:hover{background:var(--accent-hover);color:var(--bg);}
.btn-cta__text{display:flex;flex-direction:column;line-height:1.15;text-align:left;}
.btn-cta__main{font-size:var(--fs-mono);letter-spacing:var(--ls-label);}
.btn-cta__sub{font-size:var(--fs-micro);letter-spacing:var(--ls-label);font-weight:500;}
@keyframes btnLive{0%,100%{opacity:1;transform:scale(1);}50%{opacity:0.35;transform:scale(0.72);}}
.btn-live{width:7px;height:7px;background:var(--bg);display:inline-block;flex-shrink:0;animation:btnLive 1.6s ease-in-out infinite;}
@media (prefers-reduced-motion:reduce){.btn-live{animation:none;}}
.nav__menu{display:none;align-items:center;gap:10px;align-self:stretch;margin-left:4px;padding:0 var(--gutter) 0 16px;background:none;border:0;border-left:2px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;letter-spacing:var(--ls-label);}
.nav__menu-icon{display:block;width:18px;height:2px;background:currentColor;box-shadow:0 -6px 0 currentColor,0 6px 0 currentColor;}

@media (max-width:999px){
  .statusbar__r span:nth-child(n+2){display:none;}
}
@media (max-width:1279px){
  .nav__links{gap:12px;padding:0 0 0 12px;}
  .nav-link{display:none;}
  .nav__menu{display:flex;}
}
@media (max-width:719px){
  .statusbar{display:none;}
  .nav{gap:8px;}
  .nav__brand{gap:10px;padding:8px 0 8px var(--gutter);border-right:0;}
  .nav__mark{width:38px;height:38px;}
  .nav__tag{display:none;}
  .nav__name{font-size:var(--fs-label);line-height:1.15;white-space:normal;}
  .nav__name span{display:block;}
  .nav__links{gap:8px;padding:0 0 0 8px;}
  .btn-cta{padding:9px 10px;}
  .btn-cta__main{font-size:var(--fs-label);}
  .btn-cta__sub,.btn-cta .btn-live,.btn-cta svg{display:none;}
  .nav__menu{margin-left:0;padding:0 var(--gutter) 0 12px;}
  .nav__menu-label{display:none;}
}
@media (max-width:389px){
  .nav__brand{gap:8px;}
  .nav__mark{width:34px;height:34px;}
  .nav__name{font-size:var(--fs-micro);}
}

/* ---- full-screen menu (native <dialog>: focus trap + Esc for free) ---- */
.menu{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:0;border:0;background:var(--bg);color:var(--text);overflow:auto;}
html:has(.menu[open]){overflow:hidden;}
.menu__head{position:sticky;top:0;display:flex;align-items:center;justify-content:space-between;padding:0 0 0 var(--gutter);min-height:57px;background:var(--bg);border-bottom:2px solid var(--border);}
.menu__brand{font-family:var(--font-heading);font-size:var(--fs-mono);font-weight:800;letter-spacing:var(--ls-brand);}
.menu__close{align-self:stretch;padding:0 var(--gutter) 0 18px;background:none;border:0;border-left:2px solid var(--border);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-label);font-weight:700;letter-spacing:var(--ls-label);}
.menu__list{list-style:none;margin:0;padding:0;}
.menu__list a{display:flex;align-items:baseline;gap:16px;padding:16px var(--gutter);border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-sm);letter-spacing:var(--ls-label);color:var(--text-2);}
.menu__list a:hover,.menu__list a:focus-visible{background:var(--surface-hover);color:var(--text);}
.menu__num{min-width:22px;font-size:var(--fs-label);color:var(--accent);}
.menu__cta{width:calc(100% - 2 * var(--gutter));margin:var(--sp-6) var(--gutter) var(--sp-4);}
.menu__more{display:flex;flex-direction:column;gap:12px;padding:0 var(--gutter) var(--sp-8);font-family:var(--font-mono);font-size:var(--fs-mono);}
.menu__more a{color:var(--text-dim);}

/* ---- buttons ---- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:15px 26px;border:2px solid transparent;background:transparent;font-family:var(--font-mono);font-size:var(--fs-ui);font-weight:700;letter-spacing:var(--ls-label);line-height:1;color:var(--text);}
.btn--primary{background:var(--accent);border-color:var(--accent);color:var(--bg);}
.btn--primary:hover{background:var(--accent-hover);border-color:var(--accent-hover);color:var(--bg);}
.btn--ghost{border-color:var(--border);color:var(--text);background:var(--bg);}
.btn--ghost:hover{border-color:var(--text-dim);}

/* ---- hero ---- */
.hero{position:relative;}
.hero__stage{position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:center;padding:clamp(40px,7vw,90px) 0;}
.hero-grid{position:absolute;inset:0;pointer-events:none;}
.hero__wrap{position:relative;width:100%;max-width:var(--maxw);margin:0 auto;padding:0 var(--gutter);}
.hero__grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));gap:clamp(28px,4vw,56px);align-items:center;}
.kicker{display:flex;align-items:center;gap:10px;font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-wide);color:var(--accent);}
.kicker__rule{display:block;width:22px;height:2px;background:var(--accent);}
.hero__h1{margin:18px 0 0;font-family:var(--font-heading);font-size:var(--fs-h1);line-height:1.06;letter-spacing:var(--ls-display);color:var(--text);}
.hero__h1 .line{display:block;}
.hero__h1 .claim{position:relative;display:inline-block;color:var(--text-dim);transition:color .3s var(--ease-out);}
.hero__h1 .claim::after{content:"";position:absolute;left:-1%;right:-1%;top:56%;height:.09em;background:var(--accent);transform-origin:left center;transition:transform .2s var(--ease-out);}
.hero__lede{margin:20px 0 0;max-width:520px;font-size:clamp(1rem,1.4vw,1.14rem);line-height:1.6;color:var(--text-2);}
.hero__cta{display:flex;flex-wrap:wrap;margin-top:30px;}
@media (max-width:519px){.hero__cta{flex-direction:column;}.hero__cta .btn{width:100%;}}
.hero-scan{position:absolute;left:0;right:0;top:0;height:2px;z-index:2;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent 0,var(--accent) 10%,var(--accent) 90%,transparent 100%);box-shadow:0 0 28px 3px rgba(var(--accent-rgb),0.5);}
.stat{border:2px solid var(--border);background:var(--surface);transition:opacity .5s var(--ease-out);}
.stat__head{display:flex;align-items:center;justify-content:space-between;padding:10px 16px;border-bottom:2px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.stat__grid{display:grid;grid-template-columns:1fr 1fr;}
.stat__cell{padding:clamp(18px,2.4vw,26px);}
.stat__cell--a{border-right:2px solid var(--border);}
.stat__num{font-size:var(--fs-stat-xl);font-weight:700;line-height:1;color:var(--accent);}
.stat__cell--b .stat__num{color:var(--text-dim);}
.stat__text{margin-top:12px;font-size:var(--fs-ui);line-height:1.5;color:var(--text-2);}
.stat__cell--b .stat__text{color:var(--text-dim);}
.stat__fill{height:100%;width:var(--w);background:var(--accent);transform-origin:left center;transition:transform .9s var(--ease-out);}
.stat__fill--a{--w:58%;}
.stat__fill--b{--w:34%;background:var(--text-dim);}
.stat__src{padding:11px 16px;border-top:2px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-mono);color:var(--text-dim);line-height:1.6;}
/* intro state: until the sweep reaches each element (JS adds .is-struck / .is-lit) */
@media (prefers-reduced-motion:no-preference){
  .hero:not(.is-struck) .claim{color:var(--text);}
  .hero:not(.is-struck) .claim::after{transform:scaleX(0);}
  .hero:not(.is-lit) .stat{opacity:0.4;}
  .hero:not(.is-lit) .stat__fill{transform:scaleX(0);}
}
@media (prefers-reduced-motion:reduce){.hero-scan{display:none;}}

/* ---- scan demo: one sweep per run, replacing the old always-on page sweep ---- */
.scan-sweep{position:absolute;left:0;right:0;top:0;height:2px;z-index:2;pointer-events:none;opacity:0;background:linear-gradient(90deg,transparent 0,var(--accent) 12%,var(--accent) 88%,transparent 100%);box-shadow:0 0 18px 2px rgba(var(--accent-rgb),0.4);}
@keyframes scanPass{0%{top:0;opacity:0;}8%{opacity:1;}92%{opacity:1;}100%{top:100%;opacity:0;}}
@media (prefers-reduced-motion:no-preference){.is-scanning .scan-sweep{animation:scanPass 2.6s linear 1 both;}}

/* ---- headline stream: words arrive behind a block cursor (first visit per session) ----
   Pure CSS: each word has a delay (--d) and a cursor window (--g). hero.js adds html.no-intro on repeat
   visits; reduced motion and no-JS simply show the finished headline. */
.hero__h1 .w{position:relative;}
@media (prefers-reduced-motion:no-preference){
  /* hidden until hero.js starts the stream (html.intro-go, once the web font is ready); the 1.5s delay is a safety net: a slow font or script can never keep the headline hidden longer than that */
  html:not(.no-intro) .hero__h1 .w{opacity:0;animation:wIn .12s ease-out 1.5s forwards;}
  html:not(.no-intro) .hero__h1 .rebut .w{color:var(--accent);animation:wIn .12s ease-out 1.5s forwards,wSettle .6s ease-out 1.7s forwards;}
  html.intro-go:not(.no-intro) .hero__h1 .w{animation:wIn .12s ease-out var(--d) forwards;}
  html.intro-go:not(.no-intro) .hero__h1 .rebut .w{animation:wIn .12s ease-out var(--d) forwards,wSettle .6s ease-out calc(var(--d) + .45s) forwards;}
  html.intro-go:not(.no-intro) .hero__h1 .w::after{content:"";position:absolute;left:100%;top:.14em;width:.46em;height:.76em;margin-left:.05em;background:var(--accent);opacity:0;pointer-events:none;animation:wCur var(--g) steps(1,end) var(--d) forwards;}
  html.intro-go:not(.no-intro) .hero__h1 .w9::after{animation-name:wCurEnd;}
}
@keyframes wIn{from{opacity:0;}to{opacity:1;}}
@keyframes wCur{0%{opacity:1;}100%{opacity:0;}}
@keyframes wCurEnd{0%{opacity:1;}20%{opacity:0;}40%{opacity:1;}60%{opacity:0;}80%{opacity:1;}100%{opacity:0;}}
@keyframes wSettle{from{color:var(--accent);}to{color:var(--text);}}
.w1{--d:150ms;--g:70ms;}.w2{--d:220ms;--g:70ms;}.w3{--d:290ms;--g:70ms;}.w4{--d:360ms;--g:70ms;}.w5{--d:430ms;--g:70ms;}
.w6{--d:500ms;--g:220ms;}.w7{--d:720ms;--g:90ms;}.w8{--d:810ms;--g:90ms;}.w9{--d:900ms;--g:1700ms;}

/* ---- simulated trace (SIMULATED label is part of the component, not a caption) ---- */
.trace{margin-top:var(--sp-6);border:2px solid var(--border);background:#0f0f10;}
.trace__head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;background:#1b1b1d;border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.trace__title{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.trace__title b{margin-left:6px;font-weight:500;letter-spacing:var(--ls-mono);color:var(--text-2);}
.trace__badge{flex:none;padding:1px 6px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),0.1);letter-spacing:var(--ls-wide);color:var(--accent-light);white-space:nowrap;}
.trace__rows{height:calc(24px * 7 + 22px + 12px);padding:8px 12px 4px;overflow:hidden;font-family:var(--font-mono);font-size:var(--fs-label);}
.tr{display:grid;grid-template-columns:minmax(0,1.3fr) 62px minmax(0,1fr) 42px;align-items:center;column-gap:10px;height:24px;max-height:24px;overflow:hidden;transition:max-height .25s ease,opacity .25s ease;}
.tr.is-pending{display:none;}
.tr.is-collapsed{max-height:0;opacity:0;}
.tr--more{display:block;height:22px;max-height:22px;line-height:22px;letter-spacing:var(--ls-mono);color:var(--text-faint);}
.tr--more.is-hidden{max-height:0;opacity:0;}
.tr__name{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--text-2);}
.tr--root .tr__name{font-weight:700;color:var(--text);}
.tr__st{font-size:var(--fs-micro);letter-spacing:var(--ls-label);opacity:0;transition:opacity .2s;}
.tr__dur{text-align:right;color:var(--text-faint);opacity:0;transition:opacity .2s;}
.tr.is-done .tr__st,.tr.is-done .tr__dur{opacity:1;}
.tr__lane{position:relative;height:100%;border-left:1px solid var(--border-hair);}
.tr__bar{position:absolute;top:8px;height:8px;left:var(--a);width:var(--w);background:var(--text-faint);transform-origin:left center;}
.tr--blocked .tr__bar{background:var(--accent);}      .tr--blocked .tr__st{color:var(--accent);}
.tr--found .tr__bar{background:var(--accent-lighter);} .tr--found .tr__st{color:var(--accent-lighter);}
.tr--allowed .tr__bar{background:var(--text-dim);}     .tr--allowed .tr__st{color:var(--text-dim);}
.tr--scan .tr__st{color:var(--text-faint);}
.tr--root .tr__bar{top:10px;height:4px;background:var(--accent-dark-border);}
.tr--root .tr__dur{opacity:0;}
.tr--root.is-done .tr__dur{opacity:1;}
.trace__foot{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:8px 12px;border-top:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--text-dim);}
.trace__sum{min-width:0;}
.trace__replay{flex:none;min-height:24px;padding:3px 8px;background:none;border:1px solid var(--border);font:inherit;letter-spacing:var(--ls-label);color:var(--text-2);}
.trace__replay:hover{border-color:var(--text-dim);color:var(--text);}
@media (max-width:519px){
  .tr{grid-template-columns:minmax(0,1.5fr) 56px minmax(0,1fr);column-gap:8px;}
  .tr__dur{display:none;}
  .trace__head,.trace__foot{padding-left:10px;padding-right:10px;}
  .trace__rows{padding-left:10px;padding-right:10px;}
}

/* ---- buttons are keys: a hard 3px shadow, pressed on :active (no blur, no loop) ---- */
.btn,.btn-cta{--key:#8c4630;box-shadow:0 3px 0 var(--key);translate:var(--mx,0px) var(--my,0px);transition:transform .08s ease,box-shadow .08s ease,background-color .12s ease,border-color .12s ease,translate .14s ease-out;}
.btn:hover,.btn-cta:hover{transform:translateY(-1px);box-shadow:0 4px 0 var(--key);}
.btn:active,.btn-cta:active{transform:translateY(3px);box-shadow:0 0 0 var(--key);}
.btn--ghost{--key:#2b2b2b;}
.btn--sm{padding:12px 18px;font-size:var(--fs-label);}
.plan__cta{margin-top:20px;}
@media (prefers-reduced-motion:reduce){.btn,.btn-cta{transition:none;translate:none;}}

/* ---- scroll-driven "scan in": content is uncovered top to bottom behind a 2px orange edge ----
   Browsers without scroll-driven animations (and reduced motion) just show the content. */
@keyframes rvClip{from{clip-path:inset(0 0 100% 0);}to{clip-path:inset(-48px);}}
@keyframes rvEdge{0%{transform:translateY(-9px);opacity:0;}5%{opacity:1;}90%{opacity:1;}100%{transform:translateY(calc(100% + 39px));opacity:0;}}
@supports (animation-timeline:view()){
  @media (prefers-reduced-motion:no-preference){
    .scan-in.scan-in--lg{--rv-end:44%;}
    .scan-in{--rv-end:32%;position:relative;view-timeline:--rv block;animation:rvClip linear both;animation-timeline:--rv;animation-range:entry 0% cover var(--rv-end);}
    .scan-in::after{content:"";position:absolute;inset:0;z-index:5;pointer-events:none;background:linear-gradient(var(--accent),var(--accent)) 0 7px/100% 2px no-repeat,linear-gradient(rgba(var(--accent-rgb),0),rgba(var(--accent-rgb),.3) 50%,rgba(var(--accent-rgb),0)) 0 0/100% 16px no-repeat;animation:rvEdge linear both;animation-timeline:--rv;animation-range:entry 0% cover var(--rv-end);}
  }
}

/* ---- decrypt overlay (fx.js): the label's own text is transparent while the glyph overlay animates ---- */
.is-dx{position:relative;color:transparent !important;}
.dx{position:absolute;left:0;top:0;white-space:nowrap;pointer-events:none;-webkit-user-select:none;user-select:none;}

/* ---- visually hidden text for screen readers ---- */
.sr-only{position:absolute;width:1px;height:1px;margin:-1px;padding:0;border:0;overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;}

/* ---- section eyebrow (static; the old looping sheen is retired) ---- */
.eyebrow{color:var(--accent);}

/* ==== Stage 3: demos as AI tooling ============================================================ */

/* ---- attack-surface map: walkthrough ---- */
.map__head{max-width:1240px;margin:0 auto;padding:clamp(40px,6vw,72px) var(--gutter) 0;}
.map__sticky{position:relative;padding:24px 0 40px;}
/* The pinned layout is in the stylesheet, not only in seb.js. The script pins the hero (a 150vh runway, a sticky stage) and the map (300vh) when it
   runs, and it is the last tag in <body>: when the browser paints before it has run, the page used to be drawn unpinned and then jumped by hundreds of
   pixels (layout shift 0.23 at 1440x900, 0.26 at 1920x1080, 0.53 at 800x900 with the script held back). The same geometry here makes the first paint
   the pinned page. The hero sizes are where its content fits under the header, which is what seb.js checks (the content is 648 px tall from 1200 px
   wide and up to 676 px below that, plus the 112 px header); seb.js still decides, and corrects the screens this misjudges. Only with scripting on:
   without it nothing would advance the hero or the map. min-height, not height, so a stage whose content turns out taller is never clipped. */
@media screen and (min-width:760px) and (min-height:520px) and (scripting:enabled){
  #map-track{height:300vh;}
  #map-sticky{position:sticky;top:var(--header-h);height:calc(100vh - var(--header-h));display:flex;align-items:center;overflow:hidden;padding:0;}
}
@media screen and (min-width:1200px) and (min-height:760px) and (scripting:enabled), screen and (min-width:760px) and (max-width:1199.98px) and (min-height:788px) and (scripting:enabled){
  #top{height:150vh;}
  #hero-stage{position:sticky;top:var(--header-h);min-height:calc(100vh - var(--header-h));padding:0;}
}
.map__inner{width:100%;max-width:1240px;margin:0 auto;padding:0 var(--gutter);}
.map__top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:12px;}
.map__pos{font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--text-vfaint);}
.seg{display:inline-flex;border:1px solid var(--border);}
.seg__b{padding:8px 15px;border:0;background:transparent;color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:700;letter-spacing:var(--ls-label);}
.seg__b:not(.is-on):hover{background:var(--surface-hover);color:var(--text);}
.seg__b.is-on{background:var(--accent);color:var(--bg);}

.map__grid{position:relative;display:grid;grid-template-columns:1fr;gap:clamp(20px,3vw,40px);align-items:start;}
.map__grid.is-wide{grid-template-columns:minmax(230px,.8fr) 1.6fr;}
.map__grid[hidden],.mx[hidden]{display:none;}
.map__path,.map__panel{border:2px solid var(--border);background:var(--surface);}
.map__path{display:flex;flex-direction:column;}
.map__bar{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:2px 10px;min-height:36px;padding:6px 14px;border-bottom:2px solid var(--border);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.map__note{color:var(--accent-light);}

.map__list{--row-h:38px;--sx:21.5px;position:relative;}
.map__list::before{content:"";position:absolute;top:calc(var(--row-h) / 2);bottom:calc(var(--row-h) / 2);right:calc(var(--sx) - .5px);width:1px;background:var(--border);}
.mn{--sv:var(--sev-med);position:relative;display:flex;align-items:center;gap:12px;height:var(--row-h);padding:0 14px;cursor:pointer;border-bottom:1px solid var(--border-hair);border-left:2px solid transparent;}
.mn:last-of-type{border-bottom:0;}
.mn[data-sev="CRIT"],.mx__table tr[data-sev="CRIT"],.mx__key[data-sev="CRIT"]{--sv:var(--sev-crit);}
.mn[data-sev="HIGH"],.mx__table tr[data-sev="HIGH"],.mx__key[data-sev="HIGH"]{--sv:var(--sev-high);}
.mn[data-sev="LOW"],.mx__table tr[data-sev="LOW"],.mx__key[data-sev="LOW"]{--sv:var(--sev-low);}
.mn.is-on{background:var(--surface-hover);border-left-color:var(--accent);}
.mn__num{flex:none;width:16px;font-size:var(--fs-micro);color:var(--text-vfaint);}
.mn.is-on .mn__num{color:var(--accent);}
.mn__sev{flex:none;width:8px;height:8px;background:var(--border-soft);}
.mn.is-on .mn__sev{background:var(--sv);}
.mn__name{flex:1;min-width:0;font-size:var(--fs-label);letter-spacing:var(--ls-mono);color:var(--text-2);}
.mn.is-on .mn__name{font-weight:700;color:var(--text);}
.mn__dot{position:relative;z-index:2;flex:none;width:9px;height:9px;margin-right:3px;border:1px solid var(--border);background:var(--surface);}
.mn.is-past .mn__dot{background:var(--text-faint);border-color:var(--text-faint);}
.mn.is-on .mn__dot{background:var(--accent);border-color:var(--accent);}

/* packets: grey ones stream down the request path while the map is on screen; the orange one is fired by JS */
.pkt{position:absolute;left:0;top:0;z-index:4;width:7px;height:7px;background:var(--accent);pointer-events:none;}
.pkt--amb{left:calc(100% - var(--sx) - 2.5px);top:calc(var(--row-h) / 2 - 2.5px);width:5px;height:5px;background:var(--text-faint);opacity:0;
  animation:pktDown 4.8s linear infinite;animation-delay:calc(var(--k, 0) * -1.6s);animation-play-state:paused;}
.pkt--amb:nth-of-type(2){--k:1;}
.pkt--amb:nth-of-type(3){--k:2;}
.map__grid.is-live .pkt--amb{animation-play-state:running;}
@keyframes pktDown{0%{transform:translateY(0);opacity:0;}8%{opacity:1;}92%{opacity:1;}100%{transform:translateY(var(--spine-h,266px));opacity:0;}}
.map__wire{position:absolute;inset:0;z-index:3;width:100%;height:100%;overflow:visible;pointer-events:none;}
.map__wire path{fill:none;stroke:var(--accent);stroke-width:2;stroke-linejoin:miter;shape-rendering:crispEdges;}
@media (prefers-reduced-motion:reduce){.pkt{display:none;}}

/* detail panel */
.map__panel{display:flex;flex-direction:column;min-height:clamp(300px,42vh,420px);}
.sevchip{--sc:var(--sev-med);padding:3px 9px;background:var(--sc);color:var(--bg);font-weight:700;}
.sevchip[data-sev="CRIT"]{--sc:var(--sev-crit);color:var(--text);}   /* dark text on the deepest rust is 3:1; light text is 5:1 */
.sevchip[data-sev="HIGH"]{--sc:var(--sev-high);}
.sevchip[data-sev="LOW"]{--sc:var(--sev-low);color:var(--text);}
.map__body{flex-grow:1;padding:clamp(20px,2.6vw,30px);}
.map__name{margin:0;font-family:var(--font-heading);font-size:clamp(1.15rem,2.1vw,1.6rem);letter-spacing:var(--ls-head);color:var(--text);}
.map__desc{margin:12px 0 0;max-width:560px;font-size:var(--fs-body);line-height:1.6;color:var(--text-2);}
.map__cap{margin-top:22px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-vfaint);}
.map__tests{margin-top:10px;display:flex;flex-direction:column;gap:7px;}
.map__tags{margin-top:22px;display:flex;gap:8px;flex-wrap:wrap;}
.tst{display:flex;gap:10px;align-items:flex-start;font-size:var(--fs-sm);line-height:1.5;color:var(--text-2);}
.tst__mk{flex:none;color:var(--accent);font-size:var(--fs-mono);}
.tst__t{flex:1;min-width:0;}
.tst__c{flex:none;display:flex;gap:4px;}
.code{padding:0 5px;border:1px solid var(--accent-dark-border);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:16px;color:var(--accent-light);}
.tag{padding:5px 10px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),.1);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--accent-light);}
.tst:nth-child(2){--i:1;}.tst:nth-child(3){--i:2;}.tst:nth-child(4){--i:3;}
.map__tests.is-armed .tst{opacity:.3;}
.map__tests.is-fired .tst{animation:tstLit .9s ease-out both;animation-delay:calc(var(--i, 0) * 90ms);}
@keyframes tstLit{0%{opacity:.3;background:transparent;}14%{opacity:1;background:rgba(var(--accent-rgb),.22);}100%{opacity:1;background:transparent;}}
@media (prefers-reduced-motion:reduce){.map__tests.is-armed .tst{opacity:1;}.map__tests.is-fired .tst{animation:none;}}

/* ---- OWASP matrix: the same table as a spec sheet ---- */
.mx__box{border:2px solid var(--border);background:var(--surface);}
.mx__table{--sv:var(--sev-med);width:100%;border-collapse:collapse;table-layout:fixed;}
.mx__corner{width:clamp(150px,22vw,250px);border-bottom:2px solid var(--border);}
.mx__th{padding:10px 6px 8px;text-align:left;vertical-align:bottom;font-weight:400;border-bottom:2px solid var(--border);border-left:1px solid var(--border-hair);}
.mx__code{display:block;font-size:var(--fs-label);letter-spacing:var(--ls-mono);color:var(--text-faint);}
.mx__code b{font-weight:400;}
.mx__nm{display:block;margin-top:3px;font-size:var(--fs-micro);line-height:1.25;color:var(--text-dim);}
.mx__rh{height:40px;padding:0 12px;text-align:left;font-weight:400;white-space:nowrap;border-bottom:1px solid var(--border-hair);cursor:pointer;}
.mx__rn{display:inline-block;width:20px;font-size:var(--fs-micro);color:var(--text-vfaint);}
.mx__sq{display:inline-block;width:8px;height:8px;margin-right:10px;background:var(--border-soft);}
.mx__rl{font-size:var(--fs-label);letter-spacing:var(--ls-mono);color:var(--text-2);}
.mx__table td{height:40px;padding:0;text-align:center;border-bottom:1px solid var(--border-hair);border-left:1px solid var(--border-hair);}
.mx__table tr:last-child>*{border-bottom:0;}
.mx__e::after{content:"";display:inline-block;width:3px;height:3px;vertical-align:middle;background:var(--border);}
.mx__b{display:grid;place-items:center;width:100%;height:40px;padding:0;border:0;background:none;cursor:pointer;}
.mx__f{display:grid;place-items:center;width:calc(100% - 22px);min-width:24px;height:22px;background:var(--sv);color:var(--bg);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:700;}
.mx__b:focus-visible{outline:none;}
.mx__b:hover .mx__f,.mx__b:focus-visible .mx__f{outline:2px solid var(--text);outline-offset:2px;}
.mx__table tr.is-on>*{background:rgba(var(--accent-rgb),.07);}
.mx__table tr.is-on .mx__sq{background:var(--sv);}
.mx__table tr.is-on .mx__rn{color:var(--accent);}
.mx__table tr.is-on .mx__rl{font-weight:700;color:var(--text);}
.mx__table tr.is-hr>*{background:rgba(255,255,255,.045);}
.mx__table .is-hc:not(.mx__b){background:rgba(255,255,255,.045);}
.mx__table th.is-hc .mx__code{color:var(--accent);}
.mx__table tr.is-flash .mx__f{animation:mxFlash .7s ease-out both;}
@keyframes mxFlash{0%{transform:scale(1.2);opacity:.55;}100%{transform:scale(1);opacity:1;}}
@media (prefers-reduced-motion:reduce){.mx__table tr.is-flash .mx__f{animation:none;}}
.mx__strip{display:grid;grid-template-columns:minmax(180px,.5fr) 1.6fr;gap:16px 24px;align-items:start;min-height:132px;padding:14px 16px;border-top:2px solid var(--border);}
.mx__who{display:flex;flex-direction:column;align-items:flex-start;gap:6px;}
.mx__k{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.mx__v{font-family:var(--font-heading);font-size:var(--fs-h4);font-weight:700;color:var(--text);}
.mx__tests{display:flex;flex-direction:column;gap:6px;}
.mx__foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;padding:10px 16px;border-top:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--text-faint);}
.mx__key{display:inline-block;width:8px;height:8px;margin:0 4px 0 8px;background:var(--sv, var(--sev-med));}
.mx__foot span>.mx__key:first-child{margin-left:0;}
@media (max-width:719px){
  .mx__corner{width:34px;}
  .mx__rl,.mx__sq,.mx__nm,.mx__code b{display:none;}
  .mx__rh{padding:0 6px;}
  .mx__th{padding:8px 2px 6px;text-align:center;}
  .mx__f{width:calc(100% - 6px);min-width:0;}
  .mx__strip{grid-template-columns:1fr;min-height:0;}
  .mx__foot{justify-content:flex-start;}
}
@media (max-height:760px) and (min-width:760px){
  .mx__rh,.mx__table td,.mx__b{height:34px;}
  .mx__strip{min-height:112px;padding:10px 16px;}
  .mx__nm{font-size:9px;}
}

/* ---- FAQ rows (were inline styles in the renderer) ---- */
.faq__item{border-bottom:1px solid var(--border-soft);}
.faq-row{display:flex;align-items:center;gap:16px;padding:16px 4px;cursor:pointer;}
.faq__n{flex:none;width:22px;font-size:var(--fs-micro);color:var(--text-vfaint);}
.faq__q{flex:1;font-size:var(--fs-body);font-weight:500;color:var(--text-2);}
.faq-row.is-open .faq__q{color:var(--text);}
.faq__t{flex:none;font-size:var(--fs-sm);color:var(--text-vfaint);}
.faq-row.is-open .faq__t{color:var(--accent);}
.faq__a{max-width:680px;padding:0 4px 20px 42px;font-size:14.5px;line-height:1.7;color:var(--text-dim);}

/* ---- interactive prompt demonstration: one payload, two bots ---- */
.sbx__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 16px;border-bottom:2px solid var(--border);font-size:var(--fs-micro);letter-spacing:var(--ls-label);}
.sbx__target{color:var(--text-faint);}
.sbx__badge{padding:1px 6px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),.1);letter-spacing:var(--ls-wide);color:var(--accent-light);white-space:nowrap;}
.sbx__grid{display:grid;grid-template-columns:1fr;}
.sbx__grid>*{min-width:0;}
@media (min-width:760px){.sbx__grid{grid-template-columns:minmax(240px,.62fr) 1.7fr;}.sbx__left{border-right:2px solid var(--border);}}
.sbx__cap{padding:14px 16px;border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-vfaint);}
.sbx__cap--pay{border-bottom:0;}
.sbx__prompt{padding:14px 16px;border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-mono);line-height:1.8;color:var(--text-vfaint);}
.pay{padding:11px 16px;border-top:1px solid var(--border-hair);cursor:pointer;font-family:var(--font-mono);font-size:var(--fs-label);line-height:1.5;color:var(--text-2);}
.pay:hover{background:var(--surface-hover);color:var(--text);}
.pay__n{margin-right:8px;color:var(--accent);}
.sbx__right{display:flex;flex-direction:column;}
.sbx__you{min-height:48px;padding:12px 16px;border-bottom:1px solid var(--border-soft);font-family:var(--font-mono);font-size:var(--fs-ui);line-height:1.6;color:var(--text-dim);}
.sbx__you b{margin-right:10px;font-size:var(--fs-micro);font-weight:700;letter-spacing:var(--ls-label);color:var(--text-faint);}
.sbx__you span{color:var(--text-2);word-break:break-word;}
.lanes{display:grid;grid-template-columns:1fr;flex:1;}
.lane{display:flex;flex-direction:column;min-width:0;}
.lane+.lane{border-top:1px solid var(--border-soft);}
@media (min-width:1000px){.lanes{grid-template-columns:1fr 1fr;}.lane+.lane{border-top:0;border-left:1px solid var(--border-soft);}}
.lane__head{display:flex;align-items:center;justify-content:space-between;gap:8px;height:36px;padding:0 14px;border-bottom:1px solid var(--border-soft);font-size:var(--fs-micro);letter-spacing:var(--ls-label);}
.lane__head b{font-weight:700;color:var(--text-2);}
.lane__head--h b{color:var(--accent);}
.lane__st{padding:1px 6px;border:1px solid var(--border);color:var(--text-dim);white-space:nowrap;}
.lane__st.is-bad{border-color:var(--accent);background:var(--accent);color:var(--bg);font-weight:700;}
.lane__st.is-ok{border-color:var(--text-dim);color:var(--text-2);}

/* the request path of each bot: a column of nodes the payload hops through (same language as the map) */
.pipe{list-style:none;margin:0;padding:6px 0;background:#141414;border-bottom:1px solid var(--border-soft);}
.pp{display:grid;grid-template-columns:14px 24px minmax(0,1fr) auto;align-items:center;height:28px;padding:0 14px;font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.pp__pk{width:7px;height:7px;border:1px solid var(--border);}
.pp__n{color:var(--text-vfaint);}
.pp__t{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.pp__s{min-width:64px;text-align:right;}
.pp--model .pp__t{color:var(--text-dim);}
.pp.is-check{color:var(--text-2);}
.pp.is-check .pp__pk{border-color:var(--accent);background:var(--accent);}
.pp.is-pass,.pp.is-called{color:var(--text-dim);}
.pp.is-pass .pp__pk,.pp.is-called .pp__pk{border-color:var(--text-faint);background:var(--text-faint);}
.pp.is-block{background:var(--accent);color:var(--bg);font-weight:700;}
.pp.is-block .pp__pk{border-color:var(--bg);background:var(--bg);}
.pp.is-block .pp__n{color:var(--bg);}
.pp.is-block .pp__s{animation:stamp .26s ease-out both;}
.pp.is-skip{color:var(--text-vfaint);}   /* quieter by colour, not by opacity: faded text fails 4.5:1 */
.pp.is-none .pp__t{text-decoration:line-through;color:var(--text-vfaint);}
.pp.is-none .pp__s{color:var(--text-vfaint);}
@keyframes stamp{0%{transform:scale(1.35);opacity:.2;}60%{transform:scale(.96);opacity:1;}100%{transform:none;}}
@media (prefers-reduced-motion:reduce){.pp.is-block .pp__s{animation:none;}}

.lane__tx{display:flex;flex-direction:column;gap:10px;flex:1;min-height:150px;padding:14px;}
.lane__hint{font-family:var(--font-mono);font-size:var(--fs-ui);line-height:1.9;color:var(--text-dim);}
.msg{display:flex;flex-direction:column;gap:5px;}
.msg__who{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.msg__t{padding:10px 13px;border-left:2px solid var(--border);background:var(--bg);font-family:var(--font-mono);font-size:var(--fs-ui);line-height:1.7;color:var(--text-2);overflow-wrap:anywhere;}
.msg__ctl{font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-2);}
.msg--bad .msg__who,.msg--bad .msg__ctl{color:var(--accent-light);}
.msg--bad .msg__t{border-left-color:var(--accent);background:rgba(var(--accent-rgb),.1);color:var(--accent-lighter);}
.msg--ok .msg__t{border-left-color:var(--text-2);background:rgba(243,242,242,.05);}
.leak{padding:0 3px;background:var(--accent);color:var(--bg);font-weight:700;}
#secret-display{white-space:nowrap;}
#secret-display.is-leaked{color:var(--accent);}
.sbx__stats{display:flex;flex-wrap:wrap;gap:6px 18px;padding:10px 16px;border-top:1px solid var(--border-soft);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--text-vfaint);}
.sbx__stats b{font-weight:700;color:var(--text-dim);}
.sbx__stats b.is-bad{color:var(--accent);}
.sbx__input{display:flex;border-top:2px solid var(--border);}
.sbx__field{flex:1;background:var(--bg);border:0;padding:14px 16px;color:var(--text);font-family:var(--font-mono);font-size:var(--fs-ui);}
.sbx__field:focus-visible,.scan__field:focus-visible{outline-offset:-2px;}
.sbx__send{padding:14px 22px;background:var(--border-soft);color:var(--text);border:0;font-size:var(--fs-label);font-weight:700;letter-spacing:var(--ls-label);}
.sbx__clr{padding:14px 18px;background:var(--surface-2);color:var(--text-2);border:0;border-left:1px solid var(--border);font-size:var(--fs-label);letter-spacing:var(--ls-label);}

/* ---- free score: checks, 20-segment gauge, printed category bars ---- */
.scan__bar{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:10px 16px;border-bottom:2px solid var(--border);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.scan__in{display:flex;flex-wrap:wrap;border-bottom:2px solid var(--border);}
.scan__field{flex:1 1 240px;min-width:min(180px,100%);padding:16px 18px;border:0;background:var(--bg);color:var(--text);font-size:var(--fs-sm);}
.scan__run{padding:16px 28px;border:0;background:var(--accent);color:var(--bg);font-size:var(--fs-mono);font-weight:700;letter-spacing:var(--ls-label);}
.scan__grid{display:grid;grid-template-columns:1fr;}
.scan__grid>*{min-width:0;}
.scan__left{position:relative;min-height:300px;overflow:hidden;}
.scan__idle{padding:clamp(24px,3vw,40px);font-size:var(--fs-ui);line-height:2;color:var(--text-dim);}
.scan__go{margin-top:14px;color:var(--accent-light);}
.scan__active{display:none;padding:clamp(18px,2.4vw,26px);font-size:var(--fs-ui);}
.scan__echo{padding-bottom:10px;color:var(--text-2);}
.scan__runline{display:none;padding:8px 0;color:var(--accent-light);}
.scan__doneline{padding:10px 0 0;color:var(--text-2);}
.scan__grid:not([data-state="idle"]) .scan__idle{display:none;}
.scan__grid:not([data-state="idle"]) .scan__active{display:block;}
.scan__grid[data-state="running"] .scan__runline{display:block;}
.chk{display:flex;align-items:flex-start;gap:12px;padding:6px 0;border-bottom:1px solid var(--border-hair);}
.chk__v{flex:none;width:52px;font-weight:700;color:var(--text-2);}
.chk__v--warn{color:var(--accent-light);}
.chk__v--fail{color:var(--accent);}
.chk__l{flex:1;min-width:0;color:var(--text-2);}
.chk__n{flex:none;font-size:var(--fs-label);color:var(--text-dim);}

.res{display:none;flex-direction:column;gap:20px;min-width:min(220px,100%);padding:clamp(22px,3vw,34px);}
.scan__grid[data-state="done"] .res{display:flex;}
@media (min-width:720px){
  .scan__grid[data-state="done"]{grid-template-columns:1.4fr minmax(220px,.9fr);}
  .scan__grid[data-state="done"] .scan__left{border-right:2px solid var(--border);}
}
.res__lab{display:flex;align-items:center;flex-wrap:wrap;gap:8px 10px;}
.res__badge{padding:1px 6px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),.1);letter-spacing:var(--ls-wide);color:var(--accent-light);}
.res__rule{height:2px;background:var(--border-soft);}
.gauge{position:relative;max-width:280px;margin:14px 0 0;}
.gauge__svg{display:block;width:100%;height:auto;overflow:visible;}
.gs{fill:var(--border-soft);transition:fill .12s linear,fill-opacity .12s linear;}
.gs.z1{--zc:var(--sev-crit);}
.gs.z2{--zc:var(--sev-high);}
.gs.z3{--zc:var(--sev-med);}
.gs.z4{--zc:var(--text-2);}
.gs.is-on{fill:var(--zc);}
.gs.is-part{fill:var(--zc);fill-opacity:.45;}
.gauge__tick{fill:var(--text-vfaint);font-family:var(--font-mono);font-size:9px;}
.gauge__read{position:absolute;left:0;right:0;bottom:11%;display:flex;align-items:baseline;justify-content:center;gap:6px;}
.gauge__num{font-size:clamp(2.4rem,4.4vw,3.2rem);font-weight:700;line-height:1;color:var(--text-2);}
.gauge__of{font-size:var(--fs-sm);color:var(--text-dim);}
.gauge[data-tone="mid"] .gauge__num{color:var(--accent-light);}
.gauge[data-tone="low"] .gauge__num{color:var(--accent);}
.band{display:inline-block;margin-top:10px;padding:4px 10px;background:var(--text-2);color:var(--bg);font-size:var(--fs-micro);font-weight:700;letter-spacing:var(--ls-label);}
.band[data-tone="mid"]{background:var(--accent-light);}
.band[data-tone="low"]{background:var(--accent);}
.band.is-stamp{animation:bandIn .26s ease-out .62s both;}
@keyframes bandIn{0%{opacity:0;transform:scale(1.35);}1%{opacity:.01;}60%{opacity:1;transform:scale(.96);}100%{opacity:1;transform:none;}}
.cats{display:flex;flex-direction:column;gap:10px;}
.cat{--c:var(--text-2);animation:catPrint .34s ease-out both;animation-delay:calc(.9s + var(--i, 0) * .13s);}
.cat:nth-child(2){--i:1;}.cat:nth-child(3){--i:2;}.cat:nth-child(4){--i:3;}
.cat[data-tone="mid"]{--c:var(--accent-light);}
.cat[data-tone="low"]{--c:var(--accent);}
@keyframes catPrint{0%{clip-path:inset(0 100% 0 0);opacity:.3;}100%{clip-path:inset(0);opacity:1;}}
.cat__row{display:flex;justify-content:space-between;padding-bottom:5px;font-size:var(--fs-label);color:var(--text-dim);}
.cat__pct{color:var(--c);}
.cat__bar{display:grid;grid-template-columns:repeat(10,1fr);gap:2px;}
.cat__bar i{height:6px;background:var(--border-soft);}
.cat__bar i.on{background:var(--c);}
@media (prefers-reduced-motion:reduce){.band.is-stamp,.cat{animation:none;}.gs{transition:none;}}

/* ---- MCP: stat strip and the linter view of a poisoned tool description ---- */
.figs{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));margin-top:32px;border:2px solid var(--border);}
.fig--last{border-right:0;}
.mcpx{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(320px,100%),1fr));margin-top:28px;border:2px solid var(--border);background:var(--surface);}
.mcpx__why{padding:clamp(20px,2.6vw,30px);}
.mcpx__h{margin:0;font-family:var(--font-heading);font-size:var(--fs-h3);color:var(--text);}
.mcpx__p{margin:12px 0 0;font-size:var(--fs-body);line-height:1.65;color:var(--text-2);}
.mcpx__p+.mcpx__p{margin-top:14px;}
.mcpx__list{margin-top:20px;display:flex;flex-direction:column;gap:9px;}
.mcpx__note{margin-top:22px;padding:14px 16px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),.08);font-size:var(--fs-sm);line-height:1.6;color:var(--accent-lighter);}

.lint{display:flex;flex-direction:column;min-width:0;border-right:2px solid var(--border);}
.lint__bar{display:flex;align-items:center;gap:10px;height:36px;padding:0 14px;border-bottom:2px solid var(--border);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.lint__title{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;}
.lint__status{flex:none;padding:1px 6px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),.1);letter-spacing:var(--ls-wide);color:var(--accent-light);}
.lint__replay{flex:none;min-height:24px;padding:3px 8px;border:1px solid var(--border);background:none;font:inherit;letter-spacing:var(--ls-label);color:var(--text-2);}
.lint__replay:hover{border-color:var(--text-dim);color:var(--text);}
.lint__body{position:relative;flex:1;padding:14px 0 16px;background:#121212;overflow-x:auto;overflow-y:hidden;}
.ln{display:grid;grid-template-columns:38px 26px minmax(max-content,1fr);align-items:start;font-family:var(--font-mono);font-size:var(--fs-mono);line-height:1.85;color:var(--text-dim);}
.ln__no{padding-right:10px;text-align:right;color:var(--text-vfaint);-webkit-user-select:none;user-select:none;}
.ln__mk{display:flex;justify-content:center;padding-top:5px;}
.ln__tx{font:inherit;white-space:pre;}
.k{color:var(--text-2);}
.s{color:var(--text-dim);}
.p{color:var(--text-faint);}
.ln.is-hit{background:rgba(var(--accent-rgb),.09);box-shadow:inset 2px 0 0 var(--accent);}
.hit{color:var(--accent-light);text-decoration:underline wavy var(--accent);text-decoration-thickness:1px;text-underline-offset:4px;}
.mk{position:relative;width:14px;height:14px;padding:0;border:0;background:var(--accent);color:var(--bg);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:700;line-height:14px;cursor:pointer;}
.mk::after{content:"";position:absolute;inset:-5px;}
.mk[aria-expanded="true"]{background:var(--accent-lighter);}
.diag{margin:2px 14px 8px 64px;padding:10px 12px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),.08);font-size:var(--fs-sm);line-height:1.55;color:var(--accent-lighter);}
.diag b{display:block;margin-bottom:3px;font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--accent);}
.diag[hidden]{display:none;}

/* the scan beam: armed (findings hidden) until the panel is on screen, then one pass down the file */
.lint__beam{position:absolute;inset:0;z-index:3;opacity:0;pointer-events:none;background:linear-gradient(90deg,transparent 0,var(--accent) 12%,var(--accent) 88%,transparent 100%) 0 10px/100% 2px no-repeat,linear-gradient(rgba(var(--accent-rgb),0),rgba(var(--accent-rgb),.28) 50%,rgba(var(--accent-rgb),0)) 0 0/100% 22px no-repeat;}
@media (max-width:480px){.ln{font-size:var(--fs-label);}.diag{margin-left:52px;}}
.lint.is-armed .ln.is-hit{background:none;box-shadow:none;}
.lint.is-armed .hit{color:inherit;text-decoration-color:transparent;}
.lint.is-armed .mk,.lint.is-armed .diag{visibility:hidden;}
.lint.is-scan .lint__beam{animation:lintBeam 1.6s linear 1 both;}
.lint.is-scan [data-h="1"]{--d:.70s;}
.lint.is-scan [data-h="2"]{--d:.90s;}
.lint.is-scan [data-h="3"]{--d:1.10s;}
.lint.is-scan .ln.is-hit{animation:lintHit .3s ease-out both;animation-delay:var(--d);}
.lint.is-scan .hit{animation:lintUl .3s ease-out both;animation-delay:var(--d);}
.lint.is-scan .mk{animation:mkPop .26s ease-out both;animation-delay:var(--d);}
.lint.is-scan .diag{animation:lintIn .3s ease-out both;animation-delay:calc(var(--d) + .12s);}
@keyframes lintBeam{0%{transform:translateY(-11px);opacity:0;}6%{opacity:1;}94%{opacity:1;}100%{transform:translateY(calc(100% - 11px));opacity:0;}}
@keyframes lintHit{0%{background:rgba(var(--accent-rgb),0);box-shadow:inset 0 0 0 var(--accent);}100%{background:rgba(var(--accent-rgb),.09);box-shadow:inset 2px 0 0 var(--accent);}}
@keyframes lintUl{0%{color:var(--text-dim);text-decoration-color:transparent;}100%{color:var(--accent-light);text-decoration-color:var(--accent);}}
@keyframes mkPop{0%{transform:scale(0);}70%{transform:scale(1.25);}100%{transform:scale(1);}}
@keyframes lintIn{0%{opacity:0;}100%{opacity:1;}}
@media (prefers-reduced-motion:reduce){.lint__beam,.lint__replay{display:none;}}

/* ==== Stage 4: credibility you can see ======================================================== */

/* ---- source chips, the shared source card, and the numbered list in the footer ---- */
.cite{display:inline-block;margin-left:.55em;padding:1px 6px 0;border:1px solid var(--accent-dark-border);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:600;letter-spacing:var(--ls-label);line-height:1.55;text-transform:uppercase;color:var(--accent-light);vertical-align:.12em;white-space:nowrap;text-decoration:none;}
.cite[target]::after,.tool[target]::after{content:"\2197";margin-left:5px;font-weight:400;}
.cite:hover,.cite:focus-visible,.cite.is-shown{border-color:var(--accent);background:var(--accent);color:var(--bg);}
.fig__num .cite{font-size:var(--fs-label);vertical-align:.35em;}
.srccard{position:absolute;z-index:70;width:min(380px,calc(100vw - 16px));padding:14px 16px 16px;border:2px solid var(--border);background:var(--surface-2);box-shadow:6px 6px 0 rgba(0,0,0,.45);}
.srccard[hidden]{display:none;}
.srccard__top{display:flex;align-items:center;gap:10px;margin-bottom:10px;}
.srccard__n{font-size:var(--fs-label);font-weight:700;letter-spacing:var(--ls-label);text-transform:uppercase;color:var(--accent);}
.srccard__kind{flex:1;font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.srccard__who{font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-dim);}
.srccard__who b{font-weight:700;color:var(--text-2);}
.srccard__title{display:block;margin-top:8px;font-size:var(--fs-body);font-weight:700;line-height:1.35;color:var(--text);}
.srccard__title:hover{color:var(--accent-light);}
.srccard__says{margin:8px 0 0;font-size:var(--fs-sm);line-height:1.55;color:var(--text-2);}
.srccard__sample{margin:10px 0 0;font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-faint);}
.srccard__all{display:inline-block;margin-top:10px;font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--accent-light);}
.srcs{max-width:1240px;margin:0 auto;padding:clamp(32px,4vw,52px) clamp(16px,4vw,40px) 8px;}
.srcs__head{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;margin-bottom:18px;}
.srcs__note{font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--text-vfaint);}
.srcs__list{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(420px,100%),1fr));gap:20px 40px;margin:0;padding:0;list-style:none;}
.src{display:flex;gap:12px;scroll-margin-top:calc(var(--header-h) + 16px);}
.src:target{outline:2px solid var(--accent);outline-offset:8px;}
.src__n{flex:none;width:28px;font-size:var(--fs-label);font-weight:700;color:var(--accent);}
.src__body{min-width:0;}
.src__who{font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-dim);}
.src__who b{font-weight:700;color:var(--text-2);}
.src__title{display:block;margin-top:4px;font-size:var(--fs-sm);font-weight:600;line-height:1.4;color:var(--text);overflow-wrap:anywhere;}
.src__title:hover{color:var(--accent-light);}
.src__says{margin:6px 0 0;font-size:var(--fs-sm);line-height:1.55;color:var(--text-dim);}
.src__sample{margin:6px 0 0;font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-faint);}

/* ---- trust: who is behind this, and the bento of verifiable claims ---- */
.trust{max-width:1240px;margin:0 auto;padding:clamp(40px,6vw,80px) var(--gutter);display:grid;gap:clamp(36px,5vw,64px);}
.trust__who{max-width:760px;}
.trust__h{margin:14px 0 0;font-family:var(--font-heading);font-size:var(--fs-h2-sm);line-height:1.1;letter-spacing:var(--ls-head);color:var(--text);}
.trust__lede{margin:16px 0 0;font-size:var(--fs-body);line-height:1.7;color:var(--text-2);}
.bento{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));grid-template-areas:"a a a a a a b b b b b b" "c c c c d d d d e e e e" "f f f f f f f f f f f f";gap:2px;margin-top:20px;border:2px solid var(--border);background:var(--border);}
.bc{display:flex;flex-direction:column;min-width:0;padding:clamp(18px,2.2vw,26px);background:var(--surface);}
.bc--a{grid-area:a;}.bc--b{grid-area:b;}.bc--c{grid-area:c;}.bc--d{grid-area:d;}.bc--e{grid-area:e;}
.bc--f{grid-area:f;flex-direction:row;align-items:center;gap:clamp(20px,4vw,48px);}
@media (max-width:979px){.bento{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-areas:"a a" "b b" "c d" "e e" "f f";}}
@media (max-width:599px){.bento{grid-template-columns:1fr;grid-template-areas:"a" "b" "c" "d" "e" "f";}.bc--f{flex-direction:column;align-items:flex-start;}}
.bc__h{display:flex;align-items:baseline;gap:10px;font-size:var(--fs-micro);letter-spacing:var(--ls-label);}
.bc__n{color:var(--accent);}
.bc__t{color:var(--text-faint);}
.bc__p{margin:12px 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--text-2);}
.bc__cap{margin:10px 0 0;font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-faint);}
.bc__link{margin-top:auto;padding-top:14px;font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--accent-light);}
.slip{display:flex;flex:1;flex-direction:column;margin:18px 0 0;border:1px solid var(--border);background:var(--bg);}
.slip__bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:4px 12px;padding:8px 12px;border-bottom:1px solid var(--border-soft);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.slip__tag{color:var(--accent-light);}
.slip__rows{margin:0;padding:6px 12px;font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.5;}
.slip__rows>div{display:grid;grid-template-columns:104px minmax(0,1fr);gap:10px;padding:6px 0;border-bottom:1px solid var(--border-hair);}
.slip__rows>div:last-child{border-bottom:0;}
.slip__rows dt{color:var(--text-faint);}
.slip__rows dd{margin:0;color:var(--text-2);}
.slip__redact{display:block;width:62%;height:10px;margin-top:3px;background:var(--border);}
.slip__sign{display:flex;align-items:flex-end;gap:10px;margin-top:auto;padding:28px 12px 12px;border-top:1px solid var(--border-soft);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.slip__line{flex:1;height:0;border-bottom:1px dashed var(--text-faint);}
.slip__line--s{flex:.5;}
.tools{display:flex;flex-wrap:wrap;gap:8px;margin-top:16px;}
.tool{padding:7px 12px;border:2px solid var(--border);background:var(--bg);font-size:var(--fs-mono);font-weight:700;letter-spacing:var(--ls-label);color:var(--text);}
a.tool{display:inline-block;text-decoration:none;}
a.tool:hover,a.tool:focus-visible,a.tool.is-shown{border-color:var(--accent);color:var(--text);}
.tool[target]::after{color:var(--accent-light);}
.omap{display:grid;grid-template-columns:repeat(10,1fr);gap:3px;max-width:340px;margin-top:18px;}
.omap i{aspect-ratio:1/1;background:var(--border-soft);}
.omap:empty,.omap:empty + .bc__cap{display:none;}   /* the miniature is drawn by a script; without one, no empty box and no caption for a picture that is not there */
.omap i[data-sev="CRIT"]{background:var(--sev-crit);}
.omap i[data-sev="HIGH"]{background:var(--sev-high);}
.omap i[data-sev="MED"]{background:var(--sev-med);}
.omap i[data-sev="LOW"]{background:var(--sev-low);}
.scope{position:relative;margin-top:auto;padding:24px 16px 16px;border:1px dashed var(--text-faint);}
.bc--c .bc__p{margin-bottom:22px;}
.scope__out{position:absolute;top:-8px;left:12px;padding:0 6px;background:var(--surface);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.scope__in{padding:14px 12px;border:2px solid var(--accent);background:rgba(var(--accent-rgb),.08);font-size:var(--fs-micro);font-weight:700;letter-spacing:var(--ls-label);color:var(--accent-light);}
.scope__in small{display:block;margin-top:4px;font-size:var(--fs-micro);font-weight:400;letter-spacing:var(--ls-mono);color:var(--text-dim);}
.ladder{margin:16px 0 0;padding:0;list-style:none;font-size:var(--fs-micro);letter-spacing:var(--ls-mono);}
.ladder li{display:flex;align-items:baseline;gap:8px;padding:7px 0;border-bottom:1px solid var(--border-hair);color:var(--text-2);}
.ladder i{flex:1;min-width:12px;border-bottom:1px dotted var(--border);transform:translateY(-3px);}
.ladder b{font-size:var(--fs-label);font-weight:700;color:var(--text);}
.ladder li:first-child b{color:var(--accent);}
.pills{display:flex;flex-wrap:wrap;gap:6px;margin:16px 0 0;padding:0;list-style:none;}
.pills li{padding:4px 8px;border:1px solid var(--accent-dark-border);background:rgba(var(--accent-rgb),.08);font-size:var(--fs-micro);letter-spacing:var(--ls-mono);color:var(--accent-light);}
.retain{margin-top:auto;padding-top:18px;font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-dim);}
.retain__bar{position:relative;display:block;height:8px;margin-bottom:8px;background:var(--border-soft);}
.retain__bar i{position:absolute;left:0;top:0;bottom:0;width:80%;background:var(--accent);}
.retain__lab b{font-weight:700;color:var(--text);}
.zero{display:flex;flex:none;align-items:center;gap:14px;}
.zero__n{font-size:clamp(4.5rem,11vw,8rem);font-weight:700;line-height:.9;color:var(--accent);}
.zero__l{font-size:var(--fs-label);letter-spacing:var(--ls-wide);line-height:1.5;color:var(--text-2);}
.zero__txt{max-width:640px;}
.bc--f .bc__p{font-size:var(--fs-body);}

/* ---- the sample report as a product shot: four real pages, tilted, fanning out on scroll or hover ---- */
.rstack{--pw:clamp(96px,26vw,300px);--sp:.78;position:relative;height:calc(var(--pw) * 1.311 + 64px);margin-top:40px;perspective:1600px;}
.rstack__link{position:absolute;inset:0;display:block;transform-style:preserve-3d;transform:rotateX(9deg) rotateY(-16deg);transition:transform .9s var(--ease-out);}
.rstack.is-open .rstack__link{transform:none;}
.rp{position:absolute;left:calc(50% - var(--pw) / 2);top:22px;width:var(--pw);margin:0;border:2px solid var(--border);background:var(--surface);box-shadow:8px 8px 0 rgba(0,0,0,.45);transition:transform .9s var(--ease-out);}
.rp img{display:block;width:100%;height:auto;}
.rp:nth-child(1){transform:translate3d(-36px,12px,0) rotate(-2.4deg);}
.rp:nth-child(2){transform:translate3d(-12px,5px,24px) rotate(-.8deg);}
.rp:nth-child(3){transform:translate3d(12px,-2px,48px) rotate(.8deg);}
.rp:nth-child(4){transform:translate3d(36px,-9px,72px) rotate(2.4deg);}
.rstack.is-open .rp:nth-child(1){transform:translate3d(calc(var(--pw) * var(--sp) * -1.5),12px,0) rotate(-7deg);}
.rstack.is-open .rp:nth-child(2){transform:translate3d(calc(var(--pw) * var(--sp) * -.5),0,0) rotate(-2.4deg);}
.rstack.is-open .rp:nth-child(3){transform:translate3d(calc(var(--pw) * var(--sp) * .5),0,0) rotate(2.4deg);}
.rstack.is-open .rp:nth-child(4){transform:translate3d(calc(var(--pw) * var(--sp) * 1.5),12px,0) rotate(7deg);}
.rstack.is-open .rstack__link:hover .rp,.rstack.is-open .rstack__link:focus-visible .rp{translate:0 -6px;}
.rstack__link:focus-visible{outline-offset:6px;}
.rstack__note{margin:6px 0 0;font-size:var(--fs-micro);letter-spacing:var(--ls-mono);line-height:1.6;color:var(--text-faint);text-align:center;}
@media (max-width:719px){.rstack{--sp:.6;}}
/* no script, no fan-out trigger: show the pages already fanned out */
@media (scripting:none){
  .rstack__link{transform:none;}
  .rstack .rp:nth-child(1){transform:translate3d(calc(var(--pw) * var(--sp) * -1.5),12px,0) rotate(-7deg);}
  .rstack .rp:nth-child(2){transform:translate3d(calc(var(--pw) * var(--sp) * -.5),0,0) rotate(-2.4deg);}
  .rstack .rp:nth-child(3){transform:translate3d(calc(var(--pw) * var(--sp) * .5),0,0) rotate(2.4deg);}
  .rstack .rp:nth-child(4){transform:translate3d(calc(var(--pw) * var(--sp) * 1.5),12px,0) rotate(7deg);}
}
@media (prefers-reduced-motion:reduce){.rstack__link,.rp{transition:none;}}

/* ---- the census as a dot grid ---- */
.cg__bar{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 14px;padding:10px 16px;border-bottom:2px solid var(--border);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-faint);}
.cg__nonames{color:var(--accent-light);}
.cg__stage{padding:16px;border-bottom:1px solid var(--border-soft);background:#121212;}
.cg__canvas{display:block;width:100%;height:320px;}
.cg__read{display:flex;flex-wrap:wrap;align-items:baseline;gap:8px 28px;padding:16px;border-bottom:1px solid var(--border-soft);}
.cg__num{display:flex;align-items:baseline;gap:12px;}
.cg__n{font-size:var(--fs-stat);font-weight:700;line-height:1;color:var(--accent);}
.cg__pct{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--text-dim);}
.cg__def{flex:1 1 320px;margin:0;font-size:var(--fs-sm);line-height:1.55;color:var(--text-2);}
.cg__steps{display:flex;flex-wrap:wrap;border-bottom:2px solid var(--border);}
.cgs{padding:11px 14px;border:0;border-right:1px solid var(--border-soft);background:transparent;color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-micro);font-weight:500;letter-spacing:var(--ls-label);}
.cgs b{margin-left:8px;font-weight:700;color:var(--text);}
.cgs:hover{background:var(--surface-hover);}
.cgs.is-on{background:var(--accent);color:var(--bg);}
.cgs.is-on b{color:var(--bg);}
.cg.is-failed .cg__stage{display:none;}
/* without a script nothing draws the dots or switches the buttons on: keep the figures, drop the empty stage */
.cgs:disabled{cursor:default;}
.cgs:disabled:hover{background:transparent;}
.cgs:disabled.is-on{background:transparent;color:var(--text-2);}
.cgs:disabled.is-on b{color:var(--text);}
@media (scripting:none){.cg__bar,.cg__stage{display:none;}}
@media (max-width:719px){.cg__canvas{height:280px;}.cgs{flex:1 1 auto;}}

/* ---- self-scan: the latest scan of this site, in the status bar and the footer (empty unless a fresh selfscan.json exists) ---- */
.selfscan{color:var(--accent-light);letter-spacing:var(--ls-mono);white-space:nowrap;}
.selfscan[hidden]{display:none;}
.selfscan:hover{color:var(--accent-lighter);text-decoration:underline;text-underline-offset:3px;}
.statusbar__l .selfscan{margin-left:10px;padding-left:12px;border-left:1px solid var(--border);}
.selfscan--foot{font-size:var(--fs-label);white-space:normal;}
/* the status bar stays one line: with a self-scan line the taglines give way first (widest to narrowest), then the build id */
.statusbar__r{min-width:0;overflow:hidden;}
.statusbar__r span{white-space:nowrap;}
@media (max-width:1319px){html.has-selfscan .statusbar__r span:nth-child(3){display:none;}}
@media (max-width:1189px){html.has-selfscan .statusbar__r span:nth-child(2){display:none;}}
@media (max-width:1049px){html.has-selfscan .statusbar__r{display:none;}}
@media (max-width:859px){.statusbar__l .selfscan__b{display:none;}}

/* ---- 3. migrated one-offs ---- */
/* #process */
.m-process-1{max-width:1240px;margin:0 auto;padding:clamp(40px,6vw,72px) clamp(16px,4vw,40px);}  /* <div> */
.m-process-2{margin:14px 0 0;font-family:var(--font-heading);font-size:var(--fs-h2-sm);line-height:1.1;letter-spacing:var(--ls-head);color:var(--text);}  /* <h2> */
.m-process-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:0;margin-top:30px;border-top:2px solid var(--border);}  /* <div> */
.m-process-4{padding:24px clamp(16px,2vw,26px) 24px 0;border-right:2px solid var(--border);}  /* <div> */
.m-process-5{padding:24px 0 24px clamp(16px,2vw,26px);}  /* <div> */
/* #pricing */
.m-pricing-1{margin:10px 0 0;font-size:var(--fs-sm);color:var(--text-dim);}  /* <p> */
.m-pricing-2{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(230px,100%),1fr));gap:0;margin-top:30px;border:2px solid var(--border);}  /* <div> */
.m-pricing-3{border-right:2px solid var(--border);display:flex;flex-direction:column;background:var(--surface-hover);}  /* <div> */
.m-pricing-4{height:3px;background:var(--accent);}  /* <div> */
.m-pricing-5{display:flex;justify-content:space-between;gap:8px;align-items:baseline;}  /* <div> */
.m-pricing-6{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--accent);}  /* <div> */
.m-pricing-7{margin:16px 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--text-2);flex-grow:1;}  /* <p> */
.plan__unit{font-size:0.5em;color:var(--text-dim);}
.m-pricing-10{margin-top:0;border:2px solid var(--border);border-top:none;display:flex;align-items:center;justify-content:space-between;gap:20px;flex-wrap:wrap;padding:18px clamp(20px,2.4vw,26px);background:var(--surface);}  /* <div> */
.m-pricing-11{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--accent);}  /* <div> */
.m-pricing-12{margin:8px 0 0;font-size:var(--fs-sm);line-height:1.6;color:var(--text-2);max-width:560px;}  /* <p> */
.m-pricing-13{font-size:var(--fs-ui);font-weight:700;color:var(--text);white-space:nowrap;}  /* <div> */
/* #faq */
.m-faq-1{max-width:900px;margin:0 auto;padding:clamp(40px,6vw,80px) clamp(16px,4vw,40px);}  /* <div> */
.m-faq-2{margin:14px 0 0;font-family:var(--font-heading);font-size:var(--fs-h2-sm);line-height:1.1;letter-spacing:var(--ls-head);color:var(--text);}  /* <h2> */
.m-faq-3{margin-top:28px;border-top:2px solid var(--border);}  /* <div> */
/* #contact */
.m-contact-1{margin:16px 0 0;font-size:var(--fs-lead);line-height:1.65;color:var(--text-dim);max-width:520px;}  /* <p> */
.m-contact-2{margin-top:30px;max-width:620px;border:2px solid var(--border);background:var(--surface);padding:clamp(20px,2.5vw,28px);display:flex;flex-direction:column;gap:18px;}  /* <form> */
.m-contact-3{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(200px,100%),1fr));gap:18px;}  /* <div> */
.m-contact-4{display:flex;align-items:flex-start;gap:10px;cursor:pointer;font-size:var(--fs-sm);line-height:1.55;color:var(--text-2);}  /* <label> */
.m-contact-5{width:18px;height:18px;flex-shrink:0;margin-top:2px;accent-color:var(--accent);}  /* <input> */
.m-contact-6{margin:8px 0 0 28px;font-size:var(--fs-mono);line-height:1.5;color:var(--text-dim);}  /* <p> */
.m-contact-7{align-self:flex-start;}
.m-contact-8{margin-top:12px;font-size:var(--fs-ui);line-height:1.5;color:var(--text-dim);}  /* <p> */
.m-contact-9{margin-top:18px;font-family:var(--font-mono);font-size:var(--fs-mono);color:var(--text-2);}  /* <p> */
.intake__sent{margin-top:4px;padding:16px 18px;border:2px solid var(--accent-dark-border);background:var(--bg-2);}
.intake__sent[hidden]{display:none;}
.intake__h{margin:0 0 8px;font-size:var(--fs-label);letter-spacing:var(--ls-label);color:var(--accent);}
.intake__p{margin:0 0 12px;font-size:var(--fs-sm);line-height:1.6;color:var(--text-2);}
.intake__msg{display:block;width:100%;padding:10px 12px;border:1px solid var(--border);background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-mono);line-height:1.6;resize:vertical;}
.intake__row{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin-top:12px;}
.intake__ok{font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--accent-light);}
/* #sample */
.m-sample-1{margin:16px 0 0;font-size:var(--fs-lead);line-height:1.65;color:var(--text-dim);max-width:640px;}  /* <p> */
.m-sample-2{margin-top:26px;}
.m-sample-3{margin:16px 0 0;font-family:var(--font-mono);font-size:var(--fs-mono);line-height:1.7;color:var(--text-dim);max-width:640px;}  /* <p> */
/* #foot */
.m-foot-1{border-top:2px solid var(--border);background:var(--bg-2);}  /* <footer> */
.m-foot-2{max-width:1240px;margin:0 auto;padding:clamp(32px,4vw,52px) clamp(16px,4vw,40px);display:grid;grid-template-columns:repeat(auto-fit,minmax(min(220px,100%),1fr));gap:32px;}  /* <div> */
.m-foot-3{display:flex;align-items:center;gap:10px;}  /* <div> */
.m-foot-4{font-size:var(--fs-ui);font-weight:700;letter-spacing:var(--ls-label);color:var(--text);}  /* <span> */
.m-foot-5{margin:14px 0 0;font-size:var(--fs-ui);line-height:1.6;color:var(--text-2);max-width:230px;}  /* <p> */
.m-foot-6{display:flex;flex-direction:column;gap:9px;margin-top:14px;font-size:var(--fs-mono);}  /* <div> */
.m-foot-7{grid-column:span 2;min-width:min(280px,100%);}  /* <div> */
@media (max-width:719px){.m-foot-7{grid-column:auto;}}
.m-foot-8{margin:14px 0 0;font-size:var(--fs-ui);line-height:1.75;color:var(--text-2);max-width:520px;}  /* <p> */
.m-foot-9{border-top:1px solid var(--border-soft);}  /* <div> */
.m-foot-10{max-width:1240px;margin:0 auto;padding:16px clamp(16px,4vw,40px);display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;font-size:var(--fs-label);color:var(--text-dim);}  /* <div> */
/* #float */
.m-float-1{position:fixed;right:20px;bottom:20px;z-index:40;display:flex;align-items:center;justify-content:center;width:44px;height:44px;background:var(--surface-2);border:2px solid var(--border);color:var(--text);opacity:0;pointer-events:none;transition:opacity 0.25s ease;}  /* <a> */

/* ---- 4. platform: view transitions, search button, command palette, section rail, skip link ---- */
/* cross-document view transitions: the header stays put while the page behind it changes (browsers without support just navigate) */
@media (prefers-reduced-motion:no-preference){@view-transition{navigation:auto;}}
.site-header{view-transition-name:site-header;}
::view-transition-old(root),::view-transition-new(root){animation-duration:.2s;}

.skip{position:absolute;left:12px;top:-60px;z-index:100;padding:10px 14px;border:2px solid var(--accent);background:var(--bg);color:var(--text);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);}
.skip:focus{top:12px;}

.nav__search{display:flex;align-items:center;gap:9px;align-self:center;padding:8px 11px;border:2px solid var(--border);background:var(--bg);color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-micro);letter-spacing:var(--ls-label);cursor:pointer;}
.nav__search:hover{border-color:var(--text-dim);color:var(--text);}
.nav__search svg{flex:none;color:var(--accent);}
.nav__kbd{padding:1px 5px;border:1px solid var(--border);font-size:10px;letter-spacing:.06em;color:var(--text-dim);}
@media (max-width:1439px){.nav__search-label,.nav__kbd{display:none;}.nav__search{padding:10px 11px;}}
@media (max-width:719px){.nav__search{display:none;}}
.menu__search{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin:0 0 14px;padding:13px 14px;border:2px solid var(--border);background:var(--bg-2);color:var(--text-2);font-family:var(--font-mono);font-size:var(--fs-label);letter-spacing:var(--ls-label);text-align:left;cursor:pointer;}
.menu__search:hover{border-color:var(--text-dim);color:var(--text);}

.palette{width:min(640px,calc(100vw - 24px));max-height:min(540px,calc(100vh - 96px));margin:11vh auto 0;padding:0;border:2px solid var(--border);background:var(--surface-2);color:var(--text);box-shadow:8px 8px 0 rgba(0,0,0,.5);overflow:hidden;}
.palette[open]{display:flex;flex-direction:column;}
.palette::backdrop{background:rgba(10,10,10,.72);}
.palette__bar{display:flex;align-items:center;gap:12px;padding:14px 16px;border-bottom:2px solid var(--border);}
.palette__bar:focus-within{outline:2px solid var(--accent);outline-offset:-2px;}
.palette__ic{flex:none;color:var(--accent);}
.palette__input{flex:1;min-width:0;padding:0;border:0;outline:0;background:none;color:var(--text);font-family:var(--font-heading);font-size:17px;}
.palette__input::placeholder{color:var(--text-dim);}
.palette__esc{padding:2px 6px;border:1px solid var(--border);font-size:10px;letter-spacing:.08em;color:var(--text-dim);}
.palette__list{flex:1;margin:0;padding:6px;list-style:none;overflow-y:auto;}
.pal{display:flex;align-items:baseline;gap:14px;padding:10px 12px;color:var(--text-2);cursor:pointer;}
.pal[aria-selected="true"]{background:var(--surface-hover);box-shadow:inset 3px 0 0 var(--accent);color:var(--text);}
.pal__k{flex:none;min-width:66px;font-size:10px;letter-spacing:.12em;color:var(--text-dim);}
.pal__t{flex:1;min-width:0;font-size:14.5px;line-height:1.4;}
.pal mark{background:none;color:var(--accent-light);font-weight:700;text-decoration:underline;text-underline-offset:3px;}
.palette__none{margin:0;padding:22px 18px;font-size:11px;letter-spacing:.1em;line-height:1.6;color:var(--text-dim);}
.palette__none[hidden]{display:none;}
.palette__foot{display:flex;flex-wrap:wrap;gap:6px 18px;padding:9px 16px;border-top:1px solid var(--border-soft);font-size:10px;letter-spacing:.1em;color:var(--text-dim);}
.palette__foot kbd{margin-right:4px;padding:1px 5px;border:1px solid var(--border);font:inherit;}
@media (max-width:719px){.palette{margin-top:56px;}.palette__foot{display:none;}}

.toast{position:fixed;left:50%;bottom:24px;z-index:90;transform:translateX(-50%);max-width:calc(100vw - 32px);padding:10px 16px;border:2px solid var(--accent-dark-border);background:var(--surface-2);box-shadow:4px 4px 0 rgba(0,0,0,.45);font-size:var(--fs-micro);letter-spacing:var(--ls-label);color:var(--accent-light);overflow-wrap:anywhere;}

.rail{position:fixed;right:10px;top:50%;z-index:40;display:none;transform:translateY(-50%);transition:opacity .2s;}
@media (min-width:1440px){.rail{display:block;}}
.rail:not(.is-live){opacity:0;pointer-events:none;}
.rail__list{margin:0;padding:0;list-style:none;}
.rail__a{position:relative;display:flex;align-items:center;justify-content:flex-end;gap:9px;height:24px;padding:0 4px;color:var(--text-dim);}
.rail__tick{width:8px;height:2px;background:var(--text-faint);transition:width .15s,background .15s;}
.rail__n{font-size:9px;letter-spacing:.08em;opacity:0;transition:opacity .15s;}
.rail__t{position:absolute;right:calc(100% + 6px);padding:3px 8px;border:1px solid var(--border);background:var(--surface-2);font-size:9.5px;letter-spacing:.1em;white-space:nowrap;color:var(--text);opacity:0;pointer-events:none;transform:translateX(4px);transition:opacity .15s,transform .15s;}
.rail__a:hover .rail__t,.rail__a:focus-visible .rail__t{opacity:1;transform:none;}
.rail__a:hover .rail__n,.rail__a:focus-visible .rail__n,.rail__a[aria-current] .rail__n{opacity:1;}
.rail__a:hover .rail__tick,.rail__a:focus-visible .rail__tick{width:14px;background:var(--text-dim);}
.rail__a[aria-current] .rail__tick{width:18px;background:var(--accent);}
.rail__a[aria-current] .rail__n{color:var(--accent);}
@media (prefers-reduced-motion:reduce){.rail,.rail__tick,.rail__n,.rail__t{transition:none;}}
main:focus{outline:none;}   /* the skip link moves focus here; the page itself is not a control */
html:has(dialog[open]){overflow:hidden;scrollbar-gutter:stable;}   /* while the menu or the palette is open the page behind it stays where it is, and does not widen when its scrollbar goes */
.palette__list{overscroll-behavior:contain;}
/* without a script the search and the full-screen menu do nothing: do not offer them */
@media (scripting:none){.nav__search,.nav__menu,.menu__search{display:none;}}
/* Windows high-contrast mode throws away backgrounds, fills and shadows. Every state that was only one of those gets an outline or a system colour. */
@media (forced-colors:active){
  .seg__b.is-on,.cgs.is-on,.mn.is-on,.pal[aria-selected="true"]{outline:2px solid Highlight;outline-offset:-2px;}
  .seg__b.is-on,.cgs.is-on{text-decoration:underline;text-underline-offset:4px;}
  .pal mark{background:Mark;color:MarkText;}
  .rail__tick{forced-color-adjust:none;background:CanvasText;}
  .rail__a[aria-current] .rail__tick{background:Highlight;}
  .progress{forced-color-adjust:none;background:Highlight;}
}
