/* ===================== TOKENS — Travocato "OBSIDIAN TERMINAL" v4 ===================== */
/* dark = neutral obsidian glass (green lives in light/decoration, never the canvas)   */
:root{
  --bg:#050607;
  --bg-2:#07090a;
  --surface:#0a0d0e;
  --surface-2:#0f1314;
  --surface-3:#151a1b;
  --ink:#eef3f0;
  --ink-2:#9caaa2;
  --ink-3:#5d6b64;
  --line:#1b2221;
  --line-2:#2a3432;
  --accent:#9be84c;
  --accent-2:#56cdff;
  --accent-hi:#c8f76e;
  --accent-deep:#0c2a10;
  --real:#9be84c;
  --marginal:#ffc24b;
  --humo:#ff6a4d;
  --ember:#ff6a4d;
  --exit:#ff7a6b;
  --ok:#1ea672;
  --chart-bg:#060906;
  --radius-sm:6px;
  --radius:8px;
  --radius-md:10px;
  --radius-lg:14px;
  --radius-xl:20px;
  --radius-pill:999px;
  /* spacing scale — consistent vertical rhythm across all views */
  --space-2xs:6px;
  --space-xs:10px;
  --space-sm:16px;
  --space-md:24px;
  --space-lg:40px;
  --space-xl:64px;
  --space-2xl:106px;
  /* motion durations — pair with --ease / --ease-out */
  --dur-1:.12s;
  --dur-2:.2s;
  --dur-3:.32s;
  /* single reusable keyboard focus ring (theme-aware) */
  --focus-ring:0 0 0 2px var(--bg),0 0 0 4px color-mix(in srgb,var(--accent) 82%,transparent);
  --maxw:1240px;
  --nav-h:70px;
  --font:'Inter',-apple-system,BlinkMacSystemFont,'Segoe UI',sans-serif;
  --display:'Plus Jakarta Sans','Inter',-apple-system,sans-serif;  /* premium, highly legible headlines */
  --serif:'Plus Jakarta Sans','Inter',-apple-system,sans-serif;    /* legacy alias → display voice */
  --mono:'JetBrains Mono',ui-monospace,SFMono-Regular,Menlo,monospace;
  /* disciplined elevation: hairline top-light + neutral ambient depth */
  --edge:inset 0 1px 0 rgba(255,255,255,.05);
  --elev-1:0 1px 0 rgba(255,255,255,.035) inset,0 10px 30px -12px rgba(0,0,0,.55);
  --elev-2:0 1px 0 rgba(255,255,255,.05) inset,0 24px 60px -22px rgba(0,0,0,.62),0 6px 18px -8px rgba(0,0,0,.4);
  --elev-3:0 1px 0 rgba(255,255,255,.055) inset,0 42px 110px -28px rgba(0,0,0,.7),0 12px 30px -12px rgba(0,0,0,.45);
  --shadow:var(--elev-3);
  --glow:0 0 0 1px color-mix(in srgb,var(--accent) 26%,transparent),0 14px 46px color-mix(in srgb,var(--accent) 16%,transparent);
  --grain:.05;
  --aurora:.7;
  --ease:cubic-bezier(.22,.61,.36,1);
  --ease-out:cubic-bezier(.16,1,.3,1);
  --ease-spring:cubic-bezier(.34,1.45,.5,1);
}
/* light = clean-room WHITE. Green is decoration only — never the background. */
[data-theme="light"]{
  --bg:#ffffff;
  --bg-2:#fafbfa;
  --surface:#ffffff;
  --surface-2:#f5f7f6;
  --surface-3:#edf0ee;
  --ink:#0c1210;
  --ink-2:#4b5650;
  --ink-3:#545d56;
  --line:#e7eae8;
  --line-2:#d3d8d5;
  --accent:#39940f;
  --accent-2:#0c93cf;
  --accent-hi:#54b026;
  --accent-deep:#0d2b10;
  --real:#2e8a10;
  --marginal:#b07c0a;
  --humo:#d8431f;
  --ember:#d8431f;
  --exit:#d64f34;
  --ok:#17895b;
  --chart-bg:#f6f8f6;
  --edge:inset 0 1px 0 rgba(255,255,255,.9);
  --elev-1:0 1px 0 rgba(255,255,255,.85) inset,0 10px 26px -12px rgba(13,18,15,.12);
  --elev-2:0 1px 0 rgba(255,255,255,.9) inset,0 22px 50px -20px rgba(13,18,15,.16),0 6px 16px -8px rgba(13,18,15,.08);
  --elev-3:0 1px 0 rgba(255,255,255,.95) inset,0 40px 90px -28px rgba(13,18,15,.2),0 12px 26px -12px rgba(13,18,15,.1);
  --shadow:var(--elev-3);
  --glow:0 0 0 1px color-mix(in srgb,var(--accent) 26%,transparent),0 14px 34px color-mix(in srgb,var(--accent) 14%,transparent);
  --grain:.022;
  --aurora:.55;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--nav-h) + 18px);background:var(--bg)}
body{
  min-height:100vh;
  overflow-x:hidden;
  color:var(--ink);
  background:
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 46%,var(--bg) 100%);
  font-family:var(--font);
  font-size:16px;
  line-height:1.55;
  -webkit-font-smoothing:antialiased;
  text-rendering:optimizeLegibility;
}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{touch-action:manipulation}
svg{width:18px;height:18px;flex:none}
.wrap{width:min(100%,var(--maxw));margin:0 auto;padding:0 28px}
.hidden{display:none!important}

/* ===================== BACKGROUND ===================== */
#bg-candles{
  position:fixed;
  inset:0;
  width:100%;
  height:100%;
  z-index:0;
  opacity:.11;
  pointer-events:none;
}
.terminal-grid-bg{
  position:fixed;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(110,165,120,.055) 1px,transparent 1px),
    linear-gradient(180deg,rgba(110,165,120,.05) 1px,transparent 1px);
  background-size:64px 64px;
  mask-image:linear-gradient(180deg,#000 0%,rgba(0,0,0,.45) 46%,transparent 88%);
}
body>header,body>main,body>footer,.modal{position:relative;z-index:5}

/* ===================== HEADER ===================== */
#hdr{
  position:sticky;
  top:0;
  z-index:60;
  border-bottom:1px solid rgba(120,170,130,.14);
  background:color-mix(in srgb,var(--bg) 88%,transparent);
  backdrop-filter:blur(18px) saturate(130%);
}
#hdr.scrolled{
  background:color-mix(in srgb,var(--bg) 96%,transparent);
  border-color:var(--line);
  box-shadow:0 14px 28px rgba(0,0,0,.22);
}
.nav{
  min-height:var(--nav-h);
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:22px;
}
.brand{display:inline-flex;align-items:center;gap:10px;min-width:0}
.brand-txt{
  font-weight:800;
  letter-spacing:0;
  font-size:19px;
  white-space:nowrap;
  text-transform:lowercase;
}
.brand-txt span{color:var(--accent)}
.brand.small .brand-txt{font-size:14px}
.logo-mark{
  width:42px;
  height:42px;
  border-radius:var(--radius-md);
  display:grid;
  place-items:center;
  overflow:hidden;
  background:transparent;
  border:1px solid color-mix(in srgb,var(--line-2) 70%,transparent);
  box-shadow:0 8px 22px rgba(0,0,0,.16);
}
.logo-mark img{
  width:94%;
  height:94%;
  display:block;
  object-fit:contain;
  object-position:center;
  filter:saturate(1.08) contrast(1.04) drop-shadow(0 5px 9px rgba(0,0,0,.22));
}
.brand.small .logo-mark{width:34px;height:34px;border-radius:var(--radius)}
.nav-links{display:flex;align-items:center;gap:6px;min-width:0}
.nav-links>a{
  min-height:36px;
  display:inline-flex;
  align-items:center;
  color:var(--ink-2);
  font-size:13px;
  font-weight:700;
  padding:8px 10px;
  border-radius:var(--radius-sm);
  white-space:nowrap;
}
.nav-links>a:hover{color:var(--ink);background:var(--surface-2)}
.nav-links .nav-primary{
  color:#fff;
  background:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);
}
body.is-analyzer footer{display:none}
.seg{
  display:inline-flex;
  align-items:center;
  gap:2px;
  padding:3px;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:var(--surface-2);
}
.seg-btn{
  min-height:38px;
  border:0;
  border-radius:var(--radius-sm);
  padding:6px 10px;
  background:transparent;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  cursor:pointer;
  white-space:nowrap;
}
.seg-btn:hover{color:var(--ink)}
.seg-btn.active{color:var(--ink);background:var(--surface);box-shadow:0 1px 0 rgba(255,255,255,.05)}
.icon-btn{
  width:44px;
  height:44px;
  display:grid;
  place-items:center;
  border-radius:var(--radius);
  border:1px solid var(--line);
  background:var(--surface-2);
  color:var(--ink-2);
  cursor:pointer;
}
.icon-btn:hover{color:var(--ink);border-color:var(--line-2)}
.i-moon{display:none}
[data-theme="dark"] .i-sun{display:none}
[data-theme="dark"] .i-moon{display:block}

/* ===================== TYPE / BUTTONS ===================== */
h1,h2,h3{letter-spacing:0;line-height:1.02}
h1{font-size:clamp(46px,7vw,90px);font-weight:800}
h2{font-size:clamp(30px,4vw,54px);font-weight:800}
h3{font-size:22px;font-weight:780}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  margin-bottom:14px;
  color:var(--accent);
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 18px color-mix(in srgb,var(--accent) 65%,transparent);
}
.lead{
  max-width:66ch;
  color:var(--ink-2);
  font-size:18px;
  line-height:1.68;
}
.btn{
  min-height:46px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:9px;
  padding:12px 17px;
  border-radius:var(--radius);
  border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);
  background:var(--accent);
  color:#fff;
  font-size:14px;
  font-weight:800;
  cursor:pointer;
  transition:transform .16s var(--ease),box-shadow .16s var(--ease),border-color .16s var(--ease);
  box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 18%,transparent);
}
.btn:hover{transform:translateY(-1px);box-shadow:0 18px 38px color-mix(in srgb,var(--accent) 24%,transparent)}
.btn svg{transition:transform .16s var(--ease)}
.btn:hover svg{transform:translateX(3px)}
.btn.quiet{
  color:var(--ink);
  background:transparent;
  border-color:var(--line-2);
  box-shadow:none;
}
.btn.quiet:hover{background:var(--surface-2);border-color:var(--accent)}
.btn-block{width:100%}
.btn:disabled{cursor:not-allowed;opacity:.72;transform:none;box-shadow:none}

/* ===================== HERO ===================== */
.hero{
  min-height:calc(100vh - var(--nav-h));
  display:flex;
  align-items:center;
  padding:78px 0 58px;
  border-bottom:1px solid var(--line);
}
.hero-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(420px,520px);
  align-items:center;
  gap:54px;
}
.hero-copy h1{max-width:10ch;margin-bottom:24px}
.hero-actions{display:flex;flex-wrap:wrap;gap:12px;margin:30px 0 28px}
.hero-url-panel{
  width:min(100%,720px);
  display:grid;
  gap:9px;
  padding:0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.hero-url-panel label{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
}
.hero-url-panel > label span{
  display:block;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.hero-url-panel b{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-align:right;
  text-transform:uppercase;
}
.platform-strip{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  flex-wrap:nowrap;
  gap:9px;
  padding:0 16px 0 0;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
.platform-strip::after{
  content:"";
  position:absolute;
  top:50%;
  right:0;
  width:1px;
  height:24px;
  transform:translateY(-50%);
  background:color-mix(in srgb,var(--line-2) 72%,transparent);
}
.platform-strip.compact{
  gap:8px;
  padding:0 14px 0 0;
}
.platform-pill{
  --brand:var(--accent);
  width:18px;
  height:22px;
  display:grid;
  place-items:center;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
  opacity:.92;
}
.platform-pill img{
  width:18px;
  height:18px;
  display:block;
  object-fit:contain;
}
.platform-pill.tiktok img,
.platform-pill.x img{filter:invert(1)}
[data-theme="light"] .platform-pill.tiktok img,
[data-theme="light"] .platform-pill.x img{filter:none}
.platform-pill.youtube{--brand:#ff0033}
.platform-pill.tiktok{--brand:#25f4ee}
.platform-pill.instagram{--brand:#e4405f}
.platform-pill.facebook{--brand:#1877f2}
.platform-pill.x{--brand:#f2f6f8}
.platform-strip.compact .platform-pill{
  width:17px;
  height:21px;
}
.platform-strip.compact .platform-pill img{
  width:17px;
  height:17px;
}
.hero-url-row{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:stretch;
  gap:10px;
}
.hero-url-row .btn{
  min-height:54px;
  white-space:nowrap;
}
.hero-url-row .btn span{
  display:inline;
  color:inherit;
  font-family:var(--font);
  font-size:14px;
  font-weight:800;
  text-transform:none;
}
.url-input-shell{
  min-width:0;
  min-height:54px;
  display:grid;
  grid-template-columns:auto minmax(0,1fr);
  align-items:center;
  gap:15px;
  padding:0 17px;
  border:1px solid color-mix(in srgb,var(--line-2) 68%,transparent);
  border-radius:var(--radius);
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 64%,transparent),color-mix(in srgb,var(--bg) 92%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04),0 12px 28px rgba(0,0,0,.12);
  transition:border-color .16s var(--ease),box-shadow .16s var(--ease),background .16s var(--ease);
}
.url-input-shell.compact{
  min-height:50px;
  gap:14px;
  padding:0 15px;
}
.url-input-shell:focus-within{
  border-color:color-mix(in srgb,var(--accent) 62%,var(--line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 62%,transparent),color-mix(in srgb,var(--bg) 90%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent),0 18px 34px rgba(0,0,0,.16);
}
.url-input-shell input,
.url-input-shell input:focus{
  min-height:48px;
  border:0;
  border-radius:0;
  background:transparent;
  padding:0;
  box-shadow:none;
}
.url-input-shell.compact input,
.url-input-shell.compact input:focus{min-height:44px}
.url-input-shell input::placeholder{color:color-mix(in srgb,var(--ink-3) 88%,transparent)}

.hero-visual{
  position:relative;
  min-height:620px;
  display:grid;
  place-items:center;
  isolation:isolate;
}
.hero-visual::before{
  content:"";
  position:absolute;
  width:min(76%,460px);
  aspect-ratio:1;
  border-radius:50%;
  background:
    radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent) 0%,transparent 62%),
    radial-gradient(circle at 68% 40%,color-mix(in srgb,var(--accent-2) 18%,transparent),transparent 52%);
  filter:blur(24px);
  opacity:.82;
  z-index:-1;
}
.hero-visual::after{
  content:"";
  position:absolute;
  left:7%;
  right:7%;
  bottom:9%;
  height:42px;
  border-radius:50%;
  background:radial-gradient(ellipse,rgba(0,0,0,.42),transparent 68%);
  filter:blur(12px);
  z-index:-1;
}
.hero-visual img{
  width:min(100%,560px);
  max-height:78vh;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 30px 48px rgba(0,0,0,.42));
}
.console-head{
  min-height:50px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:13px 15px;
  border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--surface-2) 82%,transparent);
}
.console-head span{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
}
.console-head b{
  color:var(--ink);
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
}

/* ===================== LANDING SECTIONS ===================== */
.section{padding:106px 0;border-bottom:1px solid var(--line)}
.section-head{max-width:820px;margin-bottom:38px}
.section-head h2{max-width:14ch}
.section-head.split{
  max-width:none;
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(300px,470px);
  gap:38px;
  align-items:end;
}
.section-head.split p{color:var(--ink-2);line-height:1.7}

/* ===================== SCROLLTELLING ===================== */
.story-section{
  padding:0;
  background:
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 48%,var(--bg) 100%);
}
.story-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(390px,540px);
  gap:64px;
  align-items:start;
}
.story-copy{
  padding:110px 0 90px;
}
.story-copy h2{
  max-width:13ch;
  margin-bottom:34px;
}
.story-steps{
  display:grid;
  gap:0;
}
.story-step{
  min-height:74vh;
  display:flex;
  flex-direction:column;
  justify-content:center;
  gap:12px;
  opacity:.42;
  transform:translateY(12px);
  transition:opacity .35s var(--ease),transform .35s var(--ease);
  border-top:1px solid color-mix(in srgb,var(--line) 76%,transparent);
}
.story-step:last-child{border-bottom:1px solid color-mix(in srgb,var(--line) 76%,transparent)}
.story-step-img{display:none}   /* desktop uses the shared sticky .story-visual; mobile uses these inline */
.story-step.active{
  opacity:1;
  transform:translateY(0);
}
.story-step span{
  color:var(--accent);
  font-family:var(--mono);
  font-size:12px;
  font-weight:700;
}
.story-step h3{
  max-width:12ch;
  font-size:clamp(34px,5vw,72px);
}
.story-step p{
  max-width:46ch;
  color:var(--ink-2);
  font-size:17px;
  line-height:1.68;
}
.story-visual{
  position:sticky;
  top:calc(var(--nav-h) + 28px);
  min-height:calc(100vh - var(--nav-h) - 56px);
  display:grid;
  place-items:center;
  isolation:isolate;
}
.story-visual::before{
  content:"";
  position:absolute;
  width:min(78%,460px);
  aspect-ratio:1;
  border-radius:50%;
  background:
    radial-gradient(circle,color-mix(in srgb,var(--accent) 22%,transparent),transparent 62%),
    radial-gradient(circle at 70% 38%,color-mix(in srgb,var(--accent-2) 18%,transparent),transparent 56%);
  filter:blur(28px);
  z-index:-1;
}
.story-visual img{
  width:min(100%,560px);
  max-height:78vh;
  object-fit:contain;
  display:block;
  filter:drop-shadow(0 30px 48px rgba(0,0,0,.44));
  transition:opacity .28s var(--ease),transform .45s var(--ease),filter .28s var(--ease);
}
.story-visual img.switching{
  opacity:.08;
  transform:scale(.965) translateY(10px);
  filter:drop-shadow(0 16px 24px rgba(0,0,0,.28)) blur(2px);
}
.story-progress{
  position:absolute;
  left:50%;
  bottom:24px;
  width:min(360px,70%);
  height:2px;
  transform:translateX(-50%);
  background:var(--line);
  border-radius:var(--radius-pill);
  overflow:hidden;
}
.story-progress i{
  display:block;
  height:100%;
  width:25%;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  border-radius:inherit;
  transition:width .25s var(--ease);
}

.battery-table{
  border:1px solid var(--line);
  background:var(--surface);
}
.battery-table div{
  display:grid;
  grid-template-columns:70px minmax(210px,.55fr) minmax(0,1fr);
  gap:20px;
  align-items:center;
  min-height:76px;
  padding:18px 20px;
  border-bottom:1px solid var(--line);
}
.battery-table div:last-child{border-bottom:0}
.battery-table span,
.battery-table b{
  font-family:var(--mono);
  font-size:12px;
  text-transform:uppercase;
}
.battery-table span{color:var(--accent)}
.battery-table b{color:var(--ink)}
.battery-table em{font-style:normal;color:var(--ink-2)}
.pricing-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.price-card{
  min-height:330px;
  display:flex;
  flex-direction:column;
  gap:15px;
  padding:22px;
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:var(--radius);
}
.price-card.featured{
  border-color:color-mix(in srgb,var(--accent) 60%,var(--line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,var(--surface)),var(--surface));
}
.plan-label{
  color:var(--accent);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.price{font-size:44px;font-weight:800;letter-spacing:0;line-height:1}
.price span{font-size:15px;color:var(--ink-3);font-weight:700}
.price-card p{color:var(--ink-2);line-height:1.65;min-height:78px}
.price-card .btn{margin-top:auto}
/* ===================== LIBRARY CARDS ===================== */
.cards{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:12px;
}
.card{
  min-height:250px;
  display:flex;
  flex-direction:column;
  overflow:hidden;
  border:1px solid var(--line);
  background:var(--surface);
  border-radius:var(--radius);
  cursor:pointer;
  transition:transform .16s var(--ease),border-color .16s var(--ease),background .16s var(--ease);
}
.card:hover{transform:translateY(-2px);border-color:var(--line-2);background:var(--surface-2)}
.card-spark{
  position:relative;
  height:92px;
  border-bottom:1px solid var(--line);
  background:var(--bg);
}
.spark{position:absolute;inset:0;width:100%;height:100%}
.px{
  position:absolute;
  top:10px;
  right:10px;
  min-height:24px;
  display:inline-flex;
  align-items:center;
  padding:5px 7px;
  border-radius:var(--radius-sm);
  background:rgba(6,9,7,.78);
  color:var(--ink);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
}
.px.REAL{color:var(--real)}
.px.MARGINAL{color:var(--marginal)}
.px.HUMO{color:var(--humo)}
.card-body{padding:15px;display:flex;flex-direction:column;gap:10px;flex:1}
.top{display:flex;align-items:center;gap:8px;min-width:0}
.status-dot{width:8px;height:8px;border-radius:50%;background:var(--ink-3);flex:none}
.status-dot.REAL{background:var(--real)}
.status-dot.MARGINAL{background:var(--marginal)}
.status-dot.HUMO{background:var(--humo)}
.src{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.tag{
  margin-left:auto;
  color:var(--ink);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
}
.tag.REAL{color:var(--real)}
.tag.MARGINAL{color:var(--marginal)}
.tag.HUMO{color:var(--humo)}
.card h3{font-size:18px;line-height:1.18}
.ol{color:var(--ink-2);font-size:13.5px;line-height:1.5}

/* ===================== ANALYZER ===================== */
.analyzer-view{
  min-height:calc(100vh - var(--nav-h));
  background:
    radial-gradient(circle at 76% 18%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 34%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 52%,var(--bg) 100%);
}
.analyzer-top{
  min-height:calc(100vh - var(--nav-h));
  padding:22px 0 32px;
}
.analyzer-wrap{max-width:1500px}
.analyzer-title{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  margin-bottom:14px;
}
.analyzer-title h1{
  font-size:clamp(27px,3.2vw,46px);
  max-width:22ch;
  margin-bottom:7px;
}
.analyzer-title p{
  max-width:58ch;
  color:var(--ink-2);
  font-size:14.5px;
  line-height:1.6;
}
.analyzer-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:14px;
  align-items:stretch;
  min-height:calc(100vh - var(--nav-h) - 132px);
}
.console{
  border:1px solid var(--line);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,var(--bg) 94%,transparent));
  border-radius:var(--radius);
  overflow:hidden;
  box-shadow:0 12px 42px rgba(0,0,0,.18);
}
.input-console{
  position:relative;
  align-self:stretch;
  display:flex;
  flex-direction:column;
  gap:13px;
  padding:0 15px 15px;
}
.input-console .console-head{
  margin:0 -15px;
}
/* keep the form a comfortable reading width on wide laptops; full-width on small screens */
.input-console .seg,
.input-console #manual-note,
.input-console .pane,
.input-console #run{
  width:100%;
  max-width:760px;
  margin-left:auto;
  margin-right:auto;
}
.input-console .seg-btn{flex:1}
.pane{display:none;flex-direction:column;gap:13px;padding:0}
.pane.active{display:flex}
.fld{display:flex;flex-direction:column;gap:7px}
.fld>span{
  color:var(--ink-2);
  font-size:13px;
  font-weight:700;
}
input,textarea{
  width:100%;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
  color:var(--ink);
  padding:12px 12px;
  font-size:14.5px;
  resize:vertical;
}
textarea{min-height:150px}
input::placeholder,textarea::placeholder{color:var(--ink-3)}
input:focus,textarea:focus{
  outline:none;
  border-color:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);
}
.input-console #run{
  min-height:48px;
  margin:0 auto;
}
.spinner{
  display:none;
  width:17px;
  height:17px;
  border:2px solid rgba(255,255,255,.35);
  border-top-color:#fff;
  border-radius:50%;
  animation:spin .7s linear infinite;
}
.btn.loading .spinner{display:inline-block}
.btn.loading .run-label{opacity:.74}
@keyframes spin{to{transform:rotate(360deg)}}
.micro-list{
  list-style:none;
  display:flex;
  flex-direction:row;
  flex-wrap:wrap;
  gap:8px;
  grid-column:1 / -1;
  margin:0;
}
.micro-list li{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.micro-list li::before{content:"•";color:var(--accent);margin-right:7px}

.audit-console{
  position:relative;
  overflow:hidden;
}
.audit-console::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:linear-gradient(115deg,transparent 0%,transparent 38%,color-mix(in srgb,var(--accent) 12%,transparent) 48%,transparent 58%,transparent 100%);
  transform:translateX(-120%);
  animation:auditSweep 2.8s var(--ease) infinite;
}
@keyframes auditSweep{
  0%{transform:translateX(-120%)}
  46%,100%{transform:translateX(120%)}
}
.audit-console .console-head b{color:var(--accent)}
.audit-console .progress{margin:0}
.audit-console .source-card{margin:15px 15px 0}
.audit-flow{
  position:relative;
  display:grid;
  grid-template-columns:repeat(7,minmax(0,1fr));
  gap:8px;
  padding:15px;
  isolation:isolate;
}
.audit-flow::before{
  content:"";
  position:absolute;
  left:24px;
  right:24px;
  top:38px;
  height:1px;
  background:linear-gradient(90deg,var(--line),color-mix(in srgb,var(--accent) 54%,var(--line)),var(--line));
  z-index:-1;
}
.flow-node{
  position:relative;
  min-height:94px;
  display:flex;
  flex-direction:column;
  gap:5px;
  padding:11px 10px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--bg) 88%,var(--surface-2));
}
.flow-node::after{
  content:"";
  position:absolute;
  inset:auto 10px 10px;
  height:2px;
  border-radius:var(--radius-pill);
  background:var(--line);
}
.flow-node.done{border-color:color-mix(in srgb,var(--real) 38%,var(--line))}
.flow-node.running{
  border-color:color-mix(in srgb,var(--accent) 70%,var(--line));
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent),0 0 24px color-mix(in srgb,var(--accent) 14%,transparent);
}
.flow-node.running::after{
  background:linear-gradient(90deg,var(--accent),var(--accent-2),var(--accent));
  background-size:180% 100%;
  animation:flowPulse 1s linear infinite;
}
.flow-node.done::after{background:var(--real)}
.flow-node.skipped::after{background:var(--marginal)}
.flow-index{
  width:24px;
  height:24px;
  display:grid;
  place-items:center;
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:9px;
  font-weight:800;
}
.flow-node.done .flow-index{color:var(--real)}
.flow-node.running .flow-index{color:var(--accent)}
.flow-node b{
  color:var(--ink);
  font-family:var(--mono);
  font-size:10px;
  line-height:1.15;
  text-transform:uppercase;
}
.flow-node small{
  color:var(--ink-3);
  font-size:11px;
  line-height:1.32;
}
@keyframes flowPulse{to{background-position:180% 0}}
.stage-list{
  display:grid;
  gap:8px;
  padding:0 15px 15px;
}
@media (prefers-reduced-motion: reduce){
  .audit-console::before,
  .flow-node.running::after,
  .pstage.running .pdot{animation:none}
}

.chart-console{
  min-height:100%;
  display:flex;
  flex-direction:column;
}
.backtest-panels{
  flex:1 1 auto;
  display:grid;
  grid-template-rows:minmax(330px,1fr) 150px;
  gap:10px;
  min-height:clamp(520px,58vh,760px);
  margin:15px;
}
.chart-frame{
  position:relative;
  min-height:0;
  display:flex;
  flex-direction:column;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:var(--chart-bg);
}
.chart-label{
  min-height:36px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  padding:9px 12px;
  border-bottom:1px solid var(--line);
  background:rgba(11,16,12,.92);
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.chart-label b{
  color:var(--ink);
  font-size:10px;
  font-weight:700;
  text-align:right;
}
.marker-legend{
  display:inline-flex;
  align-items:center;
  gap:5px;
  margin-left:auto;
  text-transform:none;
  letter-spacing:0;
  font-weight:600;
  color:var(--ink-3);
  white-space:nowrap;
}
.marker-legend .mk{font-style:normal;font-size:11px;line-height:1}
.marker-legend .mk-buy{color:var(--real)}
.marker-legend .mk-exit{
  /* a green/red split dot conveys "exit = won or lost" */
  background:linear-gradient(90deg,var(--real) 0 50%,var(--humo) 50% 100%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.marker-legend .mk-txt{font-style:normal;opacity:.85;margin-right:4px}
@media (max-width:640px){.marker-legend{display:none}}
.tv-chart,.equity-chart{
  position:relative;
  flex:1 1 auto;
  min-height:0;
  background:var(--chart-bg);
}
.chart-empty{
  position:absolute;
  inset:0;
  display:grid;
  place-items:center;
  padding:28px;
  color:var(--ink-3);
  text-align:center;
  font-weight:700;
}
.fallback-chart{display:block;width:100%;height:100%}
.chart-controls{
  display:flex;
  align-items:center;
  gap:8px;
  margin:0 15px 12px;
}
.tool-btn{
  width:40px;
  height:40px;
  display:grid;
  place-items:center;
  border-radius:var(--radius-sm);
  border:1px solid var(--line);
  background:var(--surface-2);
  color:var(--ink);
  font-family:var(--mono);
  font-size:12px;
  font-weight:700;
  cursor:pointer;
}
.tool-btn:hover{border-color:var(--accent)}
.tool-btn.wide{
  width:auto;
  min-width:58px;
  padding:0 10px;
  text-transform:uppercase;
}
.tool-btn.active{
  border-color:color-mix(in srgb,var(--accent) 72%,var(--line));
  background:color-mix(in srgb,var(--accent) 18%,var(--surface-2));
  color:var(--accent);
}
.chart-controls span{
  margin-left:auto;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.chart-metrics{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:1px;
  margin:0 15px 15px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:var(--line);
}
.chart-metrics div{padding:13px 14px;background:var(--surface-2)}
.chart-metrics span{
  display:block;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
  margin-bottom:5px;
}
.chart-metrics b{font-size:22px;line-height:1;font-weight:800;color:var(--ink)}
.chart-metrics small{
  display:block;
  min-height:30px;
  margin-top:8px;
  color:var(--ink-3);
  font-size:11px;
  line-height:1.34;
}

.analysis-dock{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  margin:0 15px 15px;
  align-items:start;
}
.analysis-dock .progress,
.analysis-dock .result{margin:0}
.analysis-dock .progress:not(.hidden){grid-column:1 / -1}
.analysis-dock .result{min-width:0}
.progress,.result{margin:15px}
.progress{display:flex;flex-direction:column;gap:0}
.audit-progress-meter{
  display:grid;
  gap:10px;
  padding:0 15px 14px;
}
.audit-progress-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:12px;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
  text-transform:uppercase;
}
.audit-progress-top b{
  color:var(--accent);
  font-size:13px;
  letter-spacing:0;
  text-shadow:0 0 18px color-mix(in srgb,var(--accent) 45%,transparent);
}
.audit-bar{
  height:8px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--line-2) 68%,transparent);
  border-radius:var(--radius-pill);
  background:color-mix(in srgb,var(--bg) 68%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04);
}
.audit-bar span{
  width:var(--pct,0%);
  height:100%;
  display:block;
  border-radius:inherit;
  background:linear-gradient(90deg,var(--accent),color-mix(in srgb,var(--accent) 76%,var(--accent-2)));
  box-shadow:0 0 24px color-mix(in srgb,var(--accent) 34%,transparent);
  transition:width .36s var(--ease-out);
}
.pstage{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:9px;
  padding:11px 12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
  font-size:12.5px;
  font-weight:700;
}
.pdot{width:8px;height:8px;border-radius:50%;background:var(--ink-3)}
.pstage.done .pdot{background:var(--real)}
.pstage.running .pdot{background:var(--accent);animation:pulse 1.05s infinite}
.pstage.fail .pdot{background:var(--humo)}
@keyframes pulse{50%{opacity:.34}}
.pnote{
  max-width:104px;
  overflow:hidden;
  text-overflow:ellipsis;
  white-space:nowrap;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  text-align:right;
}
.source-card{
  display:grid;
  grid-template-columns:132px minmax(0,1fr);
  gap:12px;
  padding:10px;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  border-radius:var(--radius-sm);
  background:linear-gradient(135deg,color-mix(in srgb,var(--surface-2) 74%,var(--bg)),var(--bg));
}
.source-thumb{
  aspect-ratio:16/9;
  overflow:hidden;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
}
.source-thumb img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
}
.source-thumb-fallback{
  display:grid;
  place-items:center;
  width:100%;
  height:100%;
  color:var(--accent);
  font-family:var(--mono);
  font-size:18px;
  font-weight:800;
}
.source-info{min-width:0;align-self:center}
.source-kicker{
  display:block;
  color:var(--accent);
  font-family:var(--mono);
  font-size:9.5px;
  font-weight:800;
  letter-spacing:0;
  text-transform:uppercase;
  margin-bottom:5px;
}
.source-info h3{
  margin:0 0 7px;
  color:var(--ink);
  font-size:13.5px;
  line-height:1.28;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.source-line{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
}
.source-line a,.source-line b,.source-line span{
  color:var(--ink-2);
  text-decoration:none;
}
.source-line > *{
  max-width:100%;
  overflow:hidden;
  text-overflow:ellipsis;
}
.result{display:flex;flex-direction:column;gap:12px}
.big-verdict{
  display:flex;
  align-items:center;
  gap:12px;
  padding:14px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
}
.big-verdict.REAL{border-color:color-mix(in srgb,var(--real) 42%,var(--line))}
.big-verdict.MARGINAL{border-color:color-mix(in srgb,var(--marginal) 42%,var(--line))}
.big-verdict.HUMO{border-color:color-mix(in srgb,var(--humo) 42%,var(--line))}
.r-share{display:flex;gap:8px;flex-wrap:wrap;margin:10px 0 2px}
.r-share .btn,.mc-foot-btns .btn{min-height:40px;padding:9px 15px;font-size:13px}
.r-share .btn svg,.mc-foot-btns .btn svg{flex:none}
.r-share .btn:hover svg,.mc-foot-btns .btn:hover svg{transform:none}
.bv-mark{width:10px;height:42px;border-radius:var(--radius-pill);background:var(--ink-3);flex:none}
.big-verdict.REAL .bv-mark{background:var(--real)}
.big-verdict.MARGINAL .bv-mark{background:var(--marginal)}
.big-verdict.HUMO .bv-mark{background:var(--humo)}
.bv-word{
  color:var(--ink-2);
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  margin-bottom:4px;
}
.bv-word.REAL{color:var(--real)}
.bv-word.MARGINAL{color:var(--marginal)}
.bv-word.HUMO{color:var(--humo)}
.bv-line{color:var(--ink);font-size:13.5px;font-weight:700;line-height:1.42}
.blk{
  margin:4px 0 0;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}
.sqs{display:grid;gap:8px}
.sq{
  display:grid;
  grid-template-columns:48px minmax(0,1fr);
  gap:10px;
  padding:11px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
}
.sq.yes{border-color:color-mix(in srgb,var(--real) 32%,var(--line))}
.sq.no{border-color:color-mix(in srgb,var(--humo) 32%,var(--line))}
.sq-ic{
  display:inline-grid;
  place-items:center;
  min-height:24px;
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  font-family:var(--mono);
  font-size:9.5px;
  font-weight:700;
}
.sq.yes .sq-ic{color:var(--real)}
.sq.no .sq-ic{color:var(--humo)}
.sq b{display:block;color:var(--ink);font-size:12.5px;margin-bottom:2px}
.sq span:last-child{display:block;color:var(--ink-2);font-size:12px;line-height:1.42}
.takeaway{
  padding:12px;
  border:1px solid var(--line);
  border-left:3px solid var(--accent);
  border-radius:var(--radius-sm);
  background:var(--bg);
  color:var(--ink-2);
  font-size:13px;
}
.takeaway b{
  display:block;
  margin-bottom:5px;
  color:var(--accent);
  font-family:var(--mono);
  font-size:10px;
  text-transform:uppercase;
}
.num-toggle{
  min-height:40px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--ink);
  font-weight:700;
  cursor:pointer;
}
.tech{
  padding:12px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
}
.tech-p{color:var(--ink-2);font-size:12.5px;line-height:1.6}
/* ===================== MODAL ===================== */
.modal{
  position:fixed;
  inset:0;
  z-index:90;
  display:flex;
  padding:24px;
  background:rgba(3,6,4,.72);
  backdrop-filter:blur(12px);
  /* the OVERLAY is the scroll container: wheeling anywhere inside the popup
     (card or dimmed backdrop) scrolls the content, and a tall card stays fully
     reachable. margin:auto on the card centers it when it fits, top-aligns when tall. */
  overflow-y:auto;
  overscroll-behavior:contain;
  -webkit-overflow-scrolling:touch;
}
.modal-card{
  position:relative;
  width:min(760px,100%);
  margin:auto;
  border:1px solid var(--line-2);
  border-radius:var(--radius);
  background:var(--surface);
  box-shadow:var(--shadow);
  padding:22px;
}
/* lock the page behind the popup so the wheel/touch scroll stays in the overlay */
body.modal-open{overflow:hidden}
#modal-x{
  position:absolute;
  top:12px;
  right:12px;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--surface-2);
  color:var(--ink);
  font-size:22px;
  cursor:pointer;
}
.modal-title{font-size:32px;margin:18px 42px 14px 0}
.claim-box{
  padding:13px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  background:var(--bg);
  color:var(--ink-2);
  font-size:14px;
}
.claim-k{color:var(--ink);font-weight:800}
.explain{color:var(--ink-2);line-height:1.65}
.modal-spark{
  position:relative;
  height:126px;
  border:1px solid var(--line);
  border-radius:var(--radius-sm);
  overflow:hidden;
  background:var(--bg);
  margin-top:14px;
}
.modal-spark .lbl{
  position:absolute;
  left:12px;
  top:10px;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:700;
  text-transform:uppercase;
}

/* ===================== FOOTER ===================== */
footer{padding:24px 0;border-top:1px solid var(--line)}
.foot{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  color:var(--ink-3);
  font-size:12px;
}
.foot p{text-align:right}

/* ===================== RESPONSIVE ===================== */
@media (max-width:1080px){
  .hero-grid,.section-head.split,.analyzer-grid{grid-template-columns:1fr}
  .hero-visual{min-height:520px}
  .hero-visual img{width:min(100%,480px);max-height:560px}
  .story-grid{grid-template-columns:1fr;gap:0}
  .story-copy{padding:64px 0 10px}
  .story-copy h2{max-width:16ch}
  .story-visual{display:none}            /* mobile uses inline per-step images, not the sticky swap */
  .story-steps{gap:0}
  .story-step{
    min-height:auto;
    padding:34px 0 14px;
    opacity:1;
    transform:none;
  }
  .story-step-img{
    display:block;
    width:min(100%,380px);
    height:auto;
    max-height:48vh;
    object-fit:contain;
    margin:0 0 16px;
    filter:drop-shadow(0 18px 30px rgba(0,0,0,.42));
  }
  /* scroll-reveal animation for the cards (class added by JS; if JS is off, steps stay visible) */
  .story-steps.reveal-on .story-step{opacity:0;transform:translateY(26px);
    transition:opacity .55s var(--ease),transform .55s var(--ease)}
  .story-steps.reveal-on .story-step.revealed{opacity:1;transform:none}
  .story-progress{display:none}
  .input-console{
    position:relative;
    top:auto;
  }
  .analyzer-grid{gap:14px;min-height:auto}
  .chart-console{min-height:auto}
  .analysis-dock{grid-template-columns:minmax(0,1fr)}
  .audit-flow{grid-template-columns:repeat(4,minmax(0,1fr))}
  .cards{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
  .wrap{padding:0 18px}
  .nav{align-items:flex-start;min-height:auto;padding:14px 18px}
  body.is-analyzer .nav{align-items:center}
  body.is-analyzer .brand{gap:8px}
  body.is-analyzer .logo-mark{width:36px;height:36px;border-radius:var(--radius)}
  body.is-analyzer .brand-txt{font-size:18px}
  body.is-analyzer .nav-links{flex-wrap:nowrap;gap:6px}
  body.is-analyzer .seg-btn{min-height:34px;padding:5px 9px}
  body.is-analyzer .icon-btn{width:38px;height:38px}
  .nav-links{flex-wrap:wrap;justify-content:flex-end}
  .nav-links>a:not(.nav-primary){display:none}
  .hero{padding:48px 0 44px;min-height:auto}
  .hero-grid{gap:30px}
  .lead{font-size:16px}
  .pricing-grid,.cards{grid-template-columns:1fr}
  .hero-url-panel{padding:0}
  .hero-url-panel label{align-items:flex-start;flex-direction:column;gap:5px}
  .hero-url-panel b{text-align:left;line-height:1.4}
  .hero-url-row{grid-template-columns:1fr}
  .url-input-shell{min-height:54px;grid-template-columns:auto minmax(0,1fr);gap:11px;padding:0 13px}
  .platform-strip{gap:7px;padding-right:12px}
  .platform-strip::after{height:22px}
  .platform-pill{width:16px;height:20px}
  .platform-pill img{width:16px;height:16px}
  .hero-url-row .btn{width:100%;justify-content:center}
  .hero-visual{min-height:360px;margin-top:0}
  .hero-visual img{width:min(100%,330px);max-height:360px}
  .hero-visual::after{bottom:4%;height:28px}
  .story-copy{padding:30px 0 6px}
  .story-step{min-height:auto;padding:28px 0 10px}
  .story-step h3{font-size:32px}
  .story-step p{font-size:16px}
  .story-step-img{width:min(100%,320px);max-height:40vh;margin-bottom:14px}
  .battery-table div{grid-template-columns:1fr;gap:6px;min-height:auto}
  .section{padding:58px 0}
  .analyzer-title{align-items:flex-start;flex-direction:column}
  .analyzer-title h1{font-size:clamp(32px,10vw,42px);max-width:12ch}
  .analyzer-title p{font-size:15px;line-height:1.55}
  .input-console .seg,
  .input-console #manual-note,
  .input-console .pane,
  .input-console #run{max-width:none}
  .micro-list{flex-direction:column}
  .audit-flow{grid-template-columns:1fr}
  .audit-flow::before{display:none}
  .flow-node{min-height:auto}
  .chart-console{order:initial}
  .backtest-panels{
    min-height:560px;
    grid-template-rows:390px 160px;
    margin:15px;
  }
  .source-card{grid-template-columns:1fr}
  .source-thumb{max-height:none;width:100%;justify-self:stretch}
  .source-info h3{white-space:normal}
  .analysis-dock{grid-template-columns:1fr}
  .chart-metrics{grid-template-columns:repeat(2,1fr)}
  .chart-controls{align-items:flex-start;flex-wrap:wrap}
  .chart-controls span{width:100%;margin-left:0}
  .foot{align-items:flex-start;flex-direction:column}
  .foot p{text-align:left}
}

/* ===================================================================
   TRAINER / ENTRY EXAM
   =================================================================== */
.trainer-view{padding-top:var(--nav-h)}
body.is-trainer{overflow-x:hidden}
.trainer-top{padding:26px 0 60px}
.trainer-wrap{display:flex;flex-direction:column;gap:18px}
.trainer-head{display:flex;justify-content:space-between;align-items:flex-end;gap:20px;flex-wrap:wrap}
.trainer-head h1{font-size:clamp(1.5rem,3vw,2.1rem);line-height:1.08;margin:.35rem 0 .4rem}
.trainer-head p{color:var(--ink-2);max-width:62ch;font-size:.95rem;line-height:1.5;margin:0}

/* controls */
.trainer-controls{display:flex;gap:16px;align-items:flex-end;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:14px 16px}
.tc-group{display:flex;flex-direction:column;gap:6px}
.tc-group>label{font-size:.7rem;letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.trainer-select{background:var(--surface-2);border:1px solid var(--line);color:var(--ink);
  border-radius:var(--radius-sm);padding:8px 12px;font:600 .86rem/1 var(--font);cursor:pointer;min-width:140px}
.tf-seg{display:inline-flex;gap:2px;flex-wrap:wrap}
.tf-btn{min-width:42px;padding:8px 10px;font-weight:700}
.trainer-controls .btn{margin-left:auto;align-self:flex-end}

/* scoreboard */
.scoreboard{display:grid;grid-template-columns:repeat(5,1fr);gap:12px}
.scoreboard .sb{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:12px 14px;display:flex;flex-direction:column;gap:4px}
.scoreboard .sb span{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}
.scoreboard .sb b{font:800 1.35rem/1 var(--mono);color:var(--ink)}
.scoreboard .sb small{font-size:.8rem;color:var(--ink-3)}

/* stage: toolbar | chart | decision */
.trainer-stage{display:grid;grid-template-columns:48px minmax(0,1fr) 320px;gap:14px;align-items:stretch}

/* drawing toolbar */
.draw-toolbar{display:flex;flex-direction:column;gap:4px;background:var(--surface);
  border:1px solid var(--line);border-radius:var(--radius);padding:7px 6px;height:max-content;position:sticky;top:90px;
  max-height:calc(100vh - 105px);overflow-y:auto;scrollbar-width:none}
.draw-toolbar::-webkit-scrollbar{display:none}
.draw-toolbar .tool{width:40px;height:40px;flex:none;display:grid;place-items:center;border-radius:var(--radius-sm);
  background:transparent;border:1px solid transparent;color:var(--ink-2);cursor:pointer;transition:.15s var(--ease);padding:0}
.draw-toolbar .tool svg{width:17px;height:17px}
.draw-toolbar .tool span{font:800 .62rem/1 var(--mono);letter-spacing:-.02em}
.draw-toolbar .tool:hover{background:var(--surface-2);color:var(--ink)}
.draw-toolbar .tool.active{background:rgba(77,184,255,.16);border-color:rgba(77,184,255,.5);color:var(--accent-2)}
.draw-toolbar .tool.buy-tool{color:color-mix(in srgb,var(--real) 55%,var(--ink-2))}
.draw-toolbar .tool.sell-tool{color:color-mix(in srgb,var(--humo) 55%,var(--ink-2))}
.draw-toolbar .tool.buy-tool.active{background:color-mix(in srgb,var(--real) 16%,transparent);border-color:color-mix(in srgb,var(--real) 50%,transparent);color:var(--real)}
.draw-toolbar .tool.sell-tool.active{background:color-mix(in srgb,var(--humo) 16%,transparent);border-color:color-mix(in srgb,var(--humo) 50%,transparent);color:var(--humo)}
.draw-toolbar .tool.ema-tool.active,
.draw-toolbar .tool.ind-tool.active{background:color-mix(in srgb,var(--marginal) 16%,transparent);border-color:color-mix(in srgb,var(--marginal) 50%,transparent);color:var(--marginal)}
.draw-toolbar .tool#tool-magnet.active{background:color-mix(in srgb,var(--marginal) 16%,transparent);border-color:color-mix(in srgb,var(--marginal) 50%,transparent);color:var(--marginal)}
.tool-sep{height:1px;flex:none;background:var(--line);margin:2px 2px}

/* chart */
.trainer-chartwrap{display:flex;flex-direction:column;gap:8px;min-width:0}
.chart-top{display:flex;align-items:center;gap:12px;flex-wrap:wrap;
  background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:9px 14px}
.chart-top b{font:700 .9rem/1 var(--mono);color:var(--ink)}
.chart-top #trainer-hint{font-size:.82rem;color:var(--ink-3)}
.draw-readout{margin-left:auto;font:600 .82rem/1 var(--mono);color:var(--ink-2)}
.trainer-chart{position:relative;height:clamp(420px,60vh,580px);background:var(--bg);
  border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.draw-canvas{position:absolute;inset:0;z-index:10;pointer-events:none;touch-action:none}
.trainer-loading{position:absolute;inset:0;display:grid;place-items:center;z-index:20;
  background:rgba(6,9,7,.6);color:var(--ink-2);font-size:.9rem;text-align:center;padding:20px;pointer-events:none}
.ema-legend{display:flex;gap:10px;flex-wrap:wrap;min-height:18px}
.ema-chip{display:inline-flex;align-items:center;gap:6px;font:600 .74rem/1 var(--mono);color:var(--ink-2)}
.ema-chip i{width:14px;height:3px;border-radius:2px;display:inline-block}
.ema-chip.muted{color:var(--ink-3)}

/* decision panel */
.decision-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:16px;display:flex;flex-direction:column;min-width:0;align-self:start;position:sticky;top:90px}
.entry-info{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
.ei-row{display:flex;justify-content:space-between;align-items:center;font-size:.85rem;
  padding-bottom:7px;border-bottom:1px solid var(--line)}
.ei-row span{color:var(--ink-3)}
.ei-row b{font:700 .9rem/1 var(--mono);color:var(--ink)}
.ei-q{font-size:.92rem;color:var(--ink-2);font-weight:600;margin:6px 0 0;text-align:center;line-height:1.4}
.decide-btns{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-bottom:10px}
.big-buy,.big-sell{display:flex;flex-direction:column;align-items:center;gap:3px;padding:16px 8px;
  border:none;border-radius:var(--radius-md);cursor:pointer;font-family:var(--font);transition:.15s var(--ease);color:#fff}
.big-buy .bd-word,.big-sell .bd-word{font-weight:800;font-size:1.18rem;letter-spacing:.02em}
.big-buy small,.big-sell small{font-size:.66rem;opacity:.88;font-weight:600}
.big-buy{background:linear-gradient(180deg,#34c98a,#179c69)}
.big-sell{background:linear-gradient(180deg,#ff6b78,#e23b4c)}
.big-buy:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(23,156,105,.4)}
.big-sell:hover{transform:translateY(-2px);box-shadow:0 10px 26px rgba(226,59,76,.4)}
.big-buy:active,.big-sell:active{transform:translateY(0)}
.btn-skip{width:100%;justify-content:center;font-size:.82rem;padding:8px}

/* verdict */
.decision-post{display:flex;flex-direction:column;gap:12px}
.verdict-card{border-radius:var(--radius-md);padding:14px;border:1px solid var(--line);background:var(--surface-2)}
.verdict-card.good{border-color:color-mix(in srgb,var(--real) 45%,transparent);background:color-mix(in srgb,var(--real) 7.0%,transparent)}
.verdict-card.bad{border-color:color-mix(in srgb,var(--humo) 45%,transparent);background:color-mix(in srgb,var(--humo) 7.0%,transparent)}
.vd-head{display:flex;align-items:center;gap:12px;margin-bottom:12px}
.vd-mark{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;font-size:1.3rem;font-weight:800;flex:none}
.verdict-card.good .vd-mark{background:color-mix(in srgb,var(--real) 18%,transparent);color:var(--real)}
.verdict-card.bad .vd-mark{background:color-mix(in srgb,var(--humo) 18%,transparent);color:var(--humo)}
.vd-head b{font-size:1.05rem;font-weight:800;color:var(--ink);display:block}
.vd-head small{font-size:.78rem;color:var(--ink-3)}
.vd-row{display:flex;justify-content:space-between;align-items:center;gap:10px;font-size:.85rem;
  padding:7px 0;border-top:1px solid var(--line)}
.vd-row span{color:var(--ink-3)}
.vd-row b{font:700 .88rem/1 var(--mono);text-align:right}
.vd-lesson{font-size:.84rem;color:var(--ink-2);line-height:1.45;margin:10px 0 0;
  padding-top:10px;border-top:1px solid var(--line)}

/* shared up/down color */
.trainer-view .up,#trainer-summary .up{color:var(--real)}
.trainer-view .down,#trainer-summary .down{color:var(--humo)}

/* summary modal */
.sum-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;margin:14px 0}
.sum-stats .ss{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:12px 14px;
  display:flex;flex-direction:column;gap:4px}
.sum-stats .ss span{font-size:.68rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}
.sum-stats .ss b{font:800 1.3rem/1 var(--mono);color:var(--ink)}
.sum-verdict{font-size:.95rem;color:var(--ink-2);line-height:1.5;margin:0 0 16px}
.sum-list-head,.sum-row{display:grid;grid-template-columns:28px 24px 1fr 1fr 1fr;gap:8px;align-items:center}
.sum-list-head{font-size:.66rem;text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3);
  font-weight:700;padding:0 8px 6px}
.sum-list{display:flex;flex-direction:column;gap:5px;max-height:240px;overflow-y:auto;margin-bottom:16px}
.sum-row{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-sm);padding:8px;font-size:.82rem}
.sum-row.good{border-left:3px solid var(--real)}
.sum-row.bad{border-left:3px solid var(--humo)}
.sum-row .sr-i{color:var(--ink-3);font:700 .78rem/1 var(--mono)}
.sum-row .sr-mark{font-weight:800}
.sum-row.good .sr-mark{color:var(--real)}
.sum-row.bad .sr-mark{color:var(--humo)}
.sum-row .sr-you{font-weight:700;color:var(--ink)}
.sum-row .sr-mkt,.sum-row .sr-str{font:700 .8rem/1 var(--mono);text-align:right}
.sum-row.mid{border-left:3px solid var(--marginal)}
.sum-row.mid .sr-mark{color:var(--marginal)}
.sr-decoy{font-style:normal;color:var(--ink-3);margin-left:4px;font-size:.7rem}
.verdict-card.mid{border-color:color-mix(in srgb,var(--marginal) 45%,transparent);background:color-mix(in srgb,var(--marginal) 6%,transparent)}
.verdict-card.mid .vd-mark{background:color-mix(in srgb,var(--marginal) 18%,transparent);color:var(--marginal)}

/* PASS — the third, under-rated decision */
.btn-pass{width:100%;flex-direction:column;gap:2px;justify-content:center;padding:10px 8px;text-align:center}
.btn-pass span{font-weight:800;font-size:.92rem;letter-spacing:.02em}
.btn-pass small{font-size:.66rem;color:var(--ink-3);font-weight:600;line-height:1.3}

/* audited-method / challenge context banner */
.trainer-context{background:linear-gradient(180deg,var(--surface),var(--surface-2));
  border:1px solid var(--line);border-left:3px solid var(--accent-2);border-radius:var(--radius);padding:13px 16px}
.tcx-kicker{font:700 .68rem/1 var(--mono);text-transform:uppercase;letter-spacing:.07em;color:var(--ink-3)}
.tcx-main{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin:7px 0 2px}
.tcx-title{font-size:1.02rem;color:var(--ink)}
.tcx-verdict{font:800 .7rem/1 var(--mono);padding:4px 8px;border-radius:var(--radius-sm);letter-spacing:.04em}
.tcx-verdict.REAL{background:color-mix(in srgb,var(--real) 14.0%,transparent);color:var(--real)}
.tcx-verdict.MARGINAL{background:color-mix(in srgb,var(--marginal) 14.0%,transparent);color:var(--marginal)}
.tcx-verdict.HUMO{background:color-mix(in srgb,var(--humo) 14.0%,transparent);color:var(--humo)}
.tcx-verdict.UNTESTABLE{background:color-mix(in srgb,var(--ink-2) 14.0%,transparent);color:var(--ink-2)}
.tcx-tmpl{font:600 .74rem/1 var(--mono);color:var(--ink-3)}
.tcx-sum{font-size:.84rem;color:var(--ink-2);line-height:1.45;margin:4px 0 6px;max-width:88ch}
.tcx-links{display:flex;gap:16px}
.tcx-links a{font-size:.8rem;color:var(--accent-2);text-decoration:none;font-weight:600}
.tcx-links a:hover{text-decoration:underline}

/* persistent local progress */
.trainer-progress{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);padding:13px 16px}
.tp-head{display:flex;align-items:center;gap:10px;margin-bottom:10px}
.tp-head b{font-size:.86rem;color:var(--ink)}
.tp-level{font:800 .68rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;
  background:rgba(77,184,255,.14);color:var(--accent-2);padding:4px 8px;border-radius:var(--radius-sm)}
.tp-reset{margin-left:auto;background:none;border:none;color:var(--ink-3);font-size:.72rem;cursor:pointer;text-decoration:underline}
.tp-reset:hover{color:var(--humo)}
.tp-grid{display:grid;grid-template-columns:repeat(5,minmax(90px,1fr)) auto;gap:12px;align-items:end}
.tp-grid>div{display:flex;flex-direction:column;gap:3px}
.tp-grid>div span{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}
.tp-grid>div b{font:800 1.15rem/1 var(--mono);color:var(--ink)}
.tp-grid .up{color:var(--real)}
.tp-bars{flex-direction:row !important;align-items:flex-end;gap:3px;min-height:42px}
.tp-bars i{width:9px;border-radius:2px 2px 0 0;display:inline-block}
.tp-bars i.up{background:var(--real);opacity:.75}
.tp-bars i.down{background:var(--humo);opacity:.6}
.tp-luck{font-size:.78rem;color:var(--ink-3);margin:10px 0 0;line-height:1.45}
.tp-next{color:var(--ink-2)}

/* summary extras: luck line, R-stats, lesson, challenge */
.sum-luck{font-size:.82rem;color:var(--ink-3);line-height:1.45;margin:-8px 0 14px;
  padding:9px 12px;background:var(--surface-2);border:1px dashed var(--line);border-radius:var(--radius)}
.sum-rstats{border:1px solid var(--line);border-radius:var(--radius-md);padding:13px 14px;margin-bottom:16px;background:var(--surface-2)}
.sum-rstats h3{font-size:.8rem;margin:0 0 10px;color:var(--ink-2)}
.rs-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.rs-grid>div{display:flex;flex-direction:column;gap:3px}
.rs-grid span{font-size:.64rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:700}
.rs-grid b{font:800 1.1rem/1 var(--mono);color:var(--ink)}
.rs-note{font-size:.76rem;color:var(--ink-3);margin:10px 0 0;line-height:1.45}
.lesson-card{border:1px solid color-mix(in srgb,var(--marginal) 40%,transparent);background:color-mix(in srgb,var(--marginal) 6%,transparent);
  border-radius:var(--radius-md);padding:12px 14px;margin-bottom:16px}
.lesson-card span{font:800 .66rem/1 var(--mono);text-transform:uppercase;letter-spacing:.06em;color:var(--marginal)}
.lesson-card p{font-size:.88rem;color:var(--ink-2);line-height:1.5;margin:6px 0 0}
.sum-challenge{border-radius:var(--radius-md);padding:12px 14px;margin:12px 0 4px;font-weight:700;font-size:.95rem;color:var(--ink)}
.sum-challenge small{display:block;font-weight:500;font-size:.76rem;color:var(--ink-3);margin-top:4px}
.sum-challenge.good{border:1px solid color-mix(in srgb,var(--real) 45%,transparent);background:color-mix(in srgb,var(--real) 8%,transparent)}
.sum-challenge.bad{border:1px solid color-mix(in srgb,var(--humo) 45%,transparent);background:color-mix(in srgb,var(--humo) 8%,transparent)}
.sum-challenge.mid{border:1px solid color-mix(in srgb,var(--marginal) 45%,transparent);background:color-mix(in srgb,var(--marginal) 8%,transparent)}
.sum-actions{display:flex;gap:10px}
.sum-actions .btn{flex:1;justify-content:center}

/* detector→trainer bridge CTA on every result */
.train-cta{display:flex;align-items:center;gap:14px;margin:12px 0 4px;padding:14px 16px;
  border:1px solid rgba(77,184,255,.4);border-radius:var(--radius-md);
  background:linear-gradient(135deg,rgba(77,184,255,.08),transparent 60%)}
.train-cta .cta-icon{width:42px;height:42px;flex:none;display:grid;place-items:center;border-radius:var(--radius-md);
  background:rgba(77,184,255,.14);color:var(--accent-2)}
.train-cta .cta-icon svg{width:22px;height:22px}
.train-cta .cta-body{flex:1;min-width:0}
.train-cta .cta-body b{font-size:.98rem;color:var(--ink)}
.train-cta .cta-body p{font-size:.82rem;color:var(--ink-2);line-height:1.45;margin:3px 0 0}
.cta-rescue{font-size:.78rem;color:var(--ink-3);line-height:1.45;margin:7px 0 0;
  padding-top:7px;border-top:1px dashed var(--line)}
.cta-rescue a{color:var(--accent-2);font-weight:600}
.train-cta .cta-go{flex:none}

/* landing: the Travocato path (two-pillar story) */
.path-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:26px}
.path-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:22px;display:flex;flex-direction:column;gap:10px;position:relative}
.path-num{font:800 2rem/1 var(--mono);color:var(--accent-2);opacity:.55}
.path-card h3{font-size:1.1rem;margin:0}
.path-card p{font-size:.88rem;color:var(--ink-2);line-height:1.55;margin:0;flex:1}
.path-card .btn{align-self:flex-start}

/* landing: verified methods showcase */
.methods-cards{display:grid;grid-template-columns:1fr;gap:18px;margin-top:26px}
.method-dashboard{background:
  linear-gradient(180deg,color-mix(in srgb,var(--surface) 82%,transparent),color-mix(in srgb,var(--bg) 74%,transparent));
  border:1px solid color-mix(in srgb,var(--line-2) 70%,transparent);border-radius:var(--radius-lg);
  padding:22px;position:relative;overflow:hidden;box-shadow:var(--elev-1)}
.method-dashboard::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,var(--real),color-mix(in srgb,var(--accent-2) 42%,transparent),transparent)}
.method-hero{display:grid;grid-template-columns:minmax(0,1fr) 210px;gap:22px;align-items:stretch;margin-bottom:16px}
.method-copy{min-width:0}
.mcard-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:8px}
.method-id{font:800 .74rem/1 var(--mono);letter-spacing:.12em;color:var(--ink-3);
  border:1px solid var(--line);border-radius:var(--radius-pill);padding:7px 10px;background:color-mix(in srgb,var(--surface-2) 72%,transparent)}
.method-copy h3{font-size:clamp(1.45rem,2.4vw,2.05rem);line-height:1.05;margin:0 0 10px;letter-spacing:0}
.mcard-claim{font-size:.92rem;color:var(--ink-2);line-height:1.55;margin:0 0 16px;max-width:92ch}
.method-assets{display:flex;flex-wrap:wrap;gap:8px}
.method-assets span{font:800 .68rem/1 var(--mono);letter-spacing:.08em;color:var(--ink);
  border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));border-radius:var(--radius-pill);
  background:color-mix(in srgb,var(--accent) 9%,transparent);padding:8px 11px}
.method-score{border:1px solid color-mix(in srgb,var(--real) 34%,var(--line));border-radius:var(--radius-md);
  padding:18px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start;
  background:radial-gradient(circle at 20% 0,color-mix(in srgb,var(--real) 14%,transparent),transparent 48%),
    color-mix(in srgb,var(--surface-2) 76%,transparent)}
.method-score span,.method-score em{font:800 .65rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.method-score b{font:900 clamp(2.3rem,5vw,4.2rem)/.9 var(--mono);color:var(--real);letter-spacing:-.04em;margin:10px 0}
.method-score em{font-style:normal;color:var(--ink-2);letter-spacing:.04em}
.method-metrics{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:16px}
.method-metric{background:color-mix(in srgb,var(--bg) 66%,transparent);border:1px solid var(--line);
  border-radius:var(--radius);padding:11px 12px;display:flex;flex-direction:column;gap:5px;min-width:0}
.method-metric span,.sleeve-row span{font-size:.62rem;text-transform:uppercase;letter-spacing:.05em;color:var(--ink-3);font-weight:800}
.method-metric b{font:850 1.08rem/1 var(--mono);color:var(--ink);white-space:nowrap}
.method-metric.highlight b,.method-metric.up b,.sleeve-row b.up{color:var(--real)}
.method-metric.down b,.sleeve-row b.down{color:var(--humo)}
.method-components{border:1px solid var(--line);border-radius:var(--radius-md);overflow:hidden;margin-bottom:16px;
  background:color-mix(in srgb,var(--bg) 48%,transparent)}
.method-components-head{display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 14px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 58%,transparent)}
.method-components-head span{display:block;font:800 .66rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--real);margin-bottom:4px}
.method-components-head b{font-size:.88rem;color:var(--ink)}
.method-components-head em{font:800 .68rem/1 var(--mono);font-style:normal;color:var(--ink-3);text-transform:uppercase;letter-spacing:.06em}
.sleeve-grid{display:grid;gap:0}
.sleeve-table-head,
.sleeve-row{display:grid;grid-template-columns:minmax(210px,1.36fr) minmax(82px,.58fr) minmax(82px,.54fr) minmax(66px,.46fr) minmax(88px,.62fr) minmax(74px,.5fr) minmax(88px,.62fr) minmax(88px,.6fr);
  gap:10px;align-items:center}
.sleeve-table-head{padding:9px 14px;border-bottom:1px solid color-mix(in srgb,var(--line) 78%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 54%,transparent),color-mix(in srgb,var(--bg) 36%,transparent))}
.sleeve-table-head span{font:850 .58rem/1 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}
.sleeve-row{min-height:62px;padding:11px 14px;border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  transition:background .18s var(--ease),box-shadow .18s var(--ease)}
.sleeve-row:hover{background:color-mix(in srgb,var(--accent) 4%,transparent);box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent) 58%,transparent)}
.sleeve-row:last-child{border-bottom:0}
.sleeve-main{display:flex;align-items:center;gap:10px;min-width:0}
.sleeve-main>div{min-width:0}
.sleeve-code{width:34px;height:28px;border-radius:var(--radius);display:grid;place-items:center;flex:none;
  background:color-mix(in srgb,var(--accent) 10%,transparent);border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  color:var(--real);font:900 .66rem/1 var(--mono);letter-spacing:.01em}
.sleeve-main h4{margin:0;font-size:.86rem;line-height:1.08;color:var(--ink)}
.sleeve-main p{margin:4px 0 0;color:var(--ink-3);font-size:.75rem;line-height:1.25;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sleeve-main p span{font-weight:850;color:var(--ink-2)}
.sleeve-cell{display:flex;flex-direction:column;gap:4px;min-width:0}
.sleeve-cell span{display:none;font-size:.56rem;line-height:1;text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3);font-weight:850}
.sleeve-row b{font:850 .9rem/1 var(--mono);color:var(--ink);white-space:nowrap}
.sleeve-style b{display:inline-flex;align-self:flex-start;max-width:100%;padding:7px 9px;border:1px solid var(--line);
  border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface-2) 62%,transparent);font-size:.72rem;overflow:hidden;text-overflow:ellipsis}
.sleeve-win b{color:color-mix(in srgb,var(--real) 74%,var(--ink))}
.method-lower{display:grid;grid-template-columns:minmax(280px,.85fr) minmax(0,1fr);gap:14px;align-items:stretch;margin-bottom:16px}
.mcard-years{display:flex;align-items:flex-end;gap:6px;margin-bottom:16px;padding:10px 12px;
  background:var(--bg);border:1px solid var(--line);border-radius:var(--radius);min-height:74px}
.method-lower .mcard-years{margin-bottom:0}
.my-col{display:flex;flex-direction:column;align-items:center;gap:3px}
.my-col i{width:14px;border-radius:3px 3px 0 0;display:block}
.my-col i.up{background:var(--real);opacity:.8}
.my-col i.down{background:var(--humo);opacity:.7}
.my-col span{font:600 .62rem/1 var(--mono);color:var(--ink-3)}
.mcard-caveats{margin:0;padding:0 0 0 18px;display:flex;flex-direction:column;gap:6px}
.mcard-caveats li{font-size:.82rem;color:var(--ink-2);line-height:1.45}
.mcard-actions{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
.mcard-note{font-size:.78rem;color:var(--ink-3);font-style:italic}

@media(max-width:980px){
  .trainer-stage{grid-template-columns:1fr}
  .draw-toolbar{flex-direction:row;flex-wrap:wrap;position:static;order:2;max-height:none;overflow:visible}
  .trainer-chartwrap{order:1}
  .decision-panel{order:3;position:static}
  .scoreboard{grid-template-columns:repeat(2,1fr)}
  .tp-grid{grid-template-columns:repeat(3,1fr)}
  .rs-grid{grid-template-columns:repeat(2,1fr)}
  .path-grid{grid-template-columns:1fr}
  .method-hero{grid-template-columns:1fr}
  .method-metrics{grid-template-columns:repeat(2,1fr)}
  .method-lower{grid-template-columns:1fr}
  .sleeve-table-head{display:none}
  .sleeve-grid{gap:8px;padding:8px}
  .sleeve-row{grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 8px;min-height:auto;border:1px solid color-mix(in srgb,var(--line) 75%,transparent);
    border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface-2) 40%,transparent);padding:12px}
  .sleeve-main{grid-column:1/-1}
  .sleeve-cell{display:grid;grid-template-columns:74px 1fr;align-items:center;gap:8px;grid-column:1/-1}
  .sleeve-cell span{display:block}
  .method-components-head{align-items:flex-start;flex-direction:column}
  .train-cta{flex-direction:column;align-items:flex-start}
}

/* ===================================================================
   MONTE CARLO STRESS TEST CARD (shareable / viral)
   =================================================================== */
.mc-dock{margin-top:14px}
.mc-dock.mc-loading{opacity:.5;transition:opacity .2s}
.mc-card{border:1px solid var(--line);border-radius:var(--radius-lg);background:
  linear-gradient(180deg,var(--surface),var(--surface-2));padding:18px 18px 14px;
  position:relative;overflow:hidden}
.mc-card::before{content:"";position:absolute;inset:0 0 auto 0;height:3px;
  background:linear-gradient(90deg,var(--accent-2),transparent)}
.mc-card.REAL::before{background:linear-gradient(90deg,var(--real),transparent)}
.mc-card.HUMO::before{background:linear-gradient(90deg,var(--humo),transparent)}
.mc-card.MARGINAL::before{background:linear-gradient(90deg,var(--marginal),transparent)}
.mc-card .up{color:var(--real)} .mc-card .down{color:var(--humo)}
.mc-head{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.mc-kicker{display:flex;align-items:center;gap:8px;font:700 .72rem/1 var(--mono);
  text-transform:uppercase;letter-spacing:.06em;color:var(--ink-2)}
.mc-dot{width:8px;height:8px;border-radius:50%;background:var(--accent-2)}
.mc-dot.REAL{background:var(--real)} .mc-dot.HUMO{background:var(--humo)} .mc-dot.MARGINAL{background:var(--marginal)}
.mc-sims{font:600 .72rem/1 var(--mono);color:var(--ink-3)}
.mc-verdict{display:flex;align-items:baseline;gap:12px;flex-wrap:wrap;margin-bottom:14px}
.mc-vword{font:800 1.5rem/1 var(--font);letter-spacing:.01em}
.mc-vword.REAL{color:var(--real)} .mc-vword.HUMO{color:var(--humo)} .mc-vword.MARGINAL{color:var(--marginal)}
.mc-line{margin:0;color:var(--ink-2);font-size:.92rem;line-height:1.5;flex:1;min-width:240px}
.mc-seg{display:inline-flex;gap:2px;margin-bottom:12px}
.mc-strat{padding:7px 12px;font-weight:600}
.mc-chart-wrap{background:var(--bg);border:1px solid var(--line);border-radius:var(--radius-md);
  padding:8px 8px 6px;margin-bottom:14px}
.mc-canvas{width:100%;height:210px;display:block}
.mc-legend{display:flex;gap:16px;flex-wrap:wrap;padding:6px 4px 0;font:600 .72rem/1 var(--mono);color:var(--ink-3)}
.mc-legend span{display:inline-flex;align-items:center;gap:6px}
.mc-i{width:16px;height:3px;border-radius:2px;display:inline-block;background:var(--accent-2)}
.mc-i.orig{height:4px} .mc-i.orig.REAL{background:var(--real)} .mc-i.orig.HUMO{background:var(--humo)} .mc-i.orig.MARGINAL{background:var(--marginal)}
.mc-i.med{background:var(--ink-2)}
.mc-i.sim{opacity:.4} .mc-i.sim.REAL{background:var(--real)} .mc-i.sim.HUMO{background:var(--humo)} .mc-i.sim.MARGINAL{background:var(--accent-2)}
.mc-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-bottom:14px}
.mc-stats>div{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:11px 12px;display:flex;flex-direction:column;gap:3px}
.mc-stats span{font:700 .64rem/1.1 var(--mono);text-transform:uppercase;letter-spacing:.04em;color:var(--ink-3)}
.mc-stats .info-label{align-self:flex-start}
.mc-stats b{font:800 1.32rem/1 var(--mono);color:var(--ink)}
.mc-stats small{font-size:.68rem;color:var(--ink-3)}
.mc-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:12px}
.mc-src{font:600 .72rem/1.3 var(--mono);color:var(--ink-3)}
.mc-share{font-size:.8rem;padding:8px 14px}
@media(max-width:760px){
  .mc-stats{grid-template-columns:repeat(2,1fr)}
  .mc-vword{font-size:1.3rem}
}

/* ===================================================================
   PRO BACKTEST SCORECARD (vanity vs honest numbers)
   =================================================================== */
.report-head{display:flex;justify-content:space-between;align-items:center;gap:12px;
  flex-wrap:wrap;margin:0 0 12px}
.scorecard{border:1px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);
  padding:16px 18px 12px;margin-bottom:14px}
.scorecard .up{color:var(--real)} .scorecard .down{color:var(--humo)}
.sc-row{padding:12px 0}
.sc-row.vanity{border-bottom:1px dashed var(--line)}
.sc-row.honest{padding-bottom:6px}
.sc-label{display:inline-flex;align-items:center;gap:7px;font:700 .68rem/1 var(--mono);
  text-transform:uppercase;letter-spacing:.05em;margin-bottom:11px}
.sc-row.vanity .sc-label{color:var(--ink-3)}
.sc-row.vanity .sc-label::before{content:"👀";font-size:.8rem}
.sc-row.honest .sc-label{color:var(--marginal)}
.sc-row.honest .sc-label::before{content:"";width:7px;height:7px;border-radius:50%;
  background:var(--marginal);box-shadow:0 0 12px color-mix(in srgb,var(--marginal) 60%,transparent)}
.sc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:9px}
.sc-grid.wide{grid-template-columns:repeat(auto-fit,minmax(108px,1fr))}
.sc-grid>div{display:flex;flex-direction:column;gap:3px;background:var(--surface-2);
  border:1px solid var(--line);border-radius:var(--radius);padding:9px 11px}
.sc-row.vanity .sc-grid>div{background:transparent;border-color:transparent;padding:9px 0}
.sc-grid span{font:600 .64rem/1.15 var(--mono);text-transform:uppercase;letter-spacing:.03em;color:var(--ink-3)}
.sc-grid .info-label{align-self:flex-start}
.sc-grid b{font:800 1.12rem/1 var(--mono);color:var(--ink)}
.sc-row.vanity .sc-grid b{font-size:1.34rem}
.sc-zinger{margin:10px 0 0;padding-top:11px;border-top:1px solid var(--line);
  color:var(--ink-2);font-size:.9rem;line-height:1.5;font-style:italic}
@media(max-width:760px){
  .sc-grid{grid-template-columns:repeat(2,1fr)}
  .sc-grid.wide{grid-template-columns:repeat(3,1fr)}
}

.mc-foot-btns{display:flex;gap:8px;flex-wrap:wrap}
.mc-download,.mc-share{font-size:.8rem;padding:8px 14px}
@media(max-width:760px){.mc-foot-btns{width:100%}.mc-foot-btns .btn{flex:1}}

/* ---- robustness visuals: by-year bars + cost-wall ladder + MC method/caveat ---- */
.robust-grid{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin:16px 0}
@media(max-width:680px){.robust-grid{grid-template-columns:1fr}}
.rb-card{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius-md);padding:14px 16px}
.rb-h{margin:0 0 10px;font-size:13px;font-weight:700;color:var(--ink)}
.rb-bars{display:flex;flex-direction:column;gap:5px}
.rb-row{display:grid;grid-template-columns:58px 1fr 56px;align-items:center;gap:9px;font-size:12px}
.rb-k{color:var(--ink-3);font-variant-numeric:tabular-nums}
.rb-track{position:relative;height:9px;background:color-mix(in srgb,var(--ink-3) 18%,transparent);border-radius:var(--radius-sm);overflow:hidden}
.rb-track i{position:absolute;top:0;bottom:0;left:0;border-radius:var(--radius-sm)}
.rb-track i.up{background:var(--real)}
.rb-track i.down{background:var(--humo)}
.rb-v{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}
.rb-v.up{color:var(--real)}
.rb-v.down{color:var(--humo)}
.rb-note{margin-top:10px;font-size:11.5px;color:var(--ink-2)}
.rb-note b.up{color:var(--real)}
.rb-note b.down{color:var(--humo)}
.mc-method{margin:8px 2px 0;font-size:11.5px;color:var(--ink-2);font-variant-numeric:tabular-nums}
.mc-caveat{margin:9px 2px 2px;font-size:11px;color:var(--ink-3);line-height:1.45;border-left:2px solid var(--marginal);padding-left:9px}

/* ===================================================================
   RESULT MODES — Simple (kid-friendly) vs Technical (all metrics)
   =================================================================== */
.result-modes{display:flex;align-items:center;gap:12px;margin:18px 0 6px;flex-wrap:wrap}
.rm-label{font-size:.82rem;color:var(--ink-3);font-weight:600}
.mode-seg{display:inline-flex}
.mode-btn{font-weight:700}

/* mode show/hide (class on <body>; works in the analyzer result AND the report modal) */
body.rmode-simple .r-tech,
body.rmode-simple #montecarlo-dock,
body.rmode-simple .big-verdict{display:none}
body.rmode-tech .r-simple{display:none}

/* ---- SIMPLE: traffic-light verdict ---- */
.stoplight{display:flex;align-items:center;gap:20px;padding:22px;border-radius:var(--radius-lg);
  border:2px solid var(--line);background:var(--surface);margin:8px 0 4px}
.stoplight.REAL{border-color:color-mix(in srgb,var(--real) 50%,transparent);background:color-mix(in srgb,var(--real) 8%,transparent)}
.stoplight.HUMO{border-color:color-mix(in srgb,var(--humo) 50%,transparent);background:color-mix(in srgb,var(--humo) 8%,transparent)}
.stoplight.MARGINAL{border-color:color-mix(in srgb,var(--marginal) 50%,transparent);background:color-mix(in srgb,var(--marginal) 8%,transparent)}
.sl-bulb{width:88px;height:88px;border-radius:50%;display:grid;place-items:center;font-size:46px;flex:none;
  background:var(--bg-2);box-shadow:inset 0 0 0 3px var(--line)}
.stoplight.REAL .sl-bulb{box-shadow:inset 0 0 0 3px var(--real),0 0 30px color-mix(in srgb,var(--real) 40%,transparent)}
.stoplight.HUMO .sl-bulb{box-shadow:inset 0 0 0 3px var(--humo),0 0 30px color-mix(in srgb,var(--humo) 40%,transparent)}
.stoplight.MARGINAL .sl-bulb{box-shadow:inset 0 0 0 3px var(--marginal),0 0 30px color-mix(in srgb,var(--marginal) 35%,transparent)}
.sl-q{font-size:.78rem;text-transform:uppercase;letter-spacing:.06em;color:var(--ink-3);font-weight:700}
.sl-word{font-size:clamp(1.5rem,4.5vw,2.1rem);font-weight:900;display:block;margin:3px 0;line-height:1.05}
.stoplight.REAL .sl-word{color:var(--real)}
.stoplight.HUMO .sl-word{color:var(--humo)}
.stoplight.MARGINAL .sl-word{color:var(--marginal)}
.sl-sub{color:var(--ink-2);font-size:1.02rem;line-height:1.45;margin:5px 0 0}

.kid-explain{font-size:1.16rem;line-height:1.62;color:var(--ink);margin:16px 2px}

.kid-checks{display:grid;gap:10px;margin:16px 0}
.kc{display:flex;gap:14px;align-items:flex-start;padding:14px 16px;border-radius:var(--radius-md);
  border:1px solid var(--line);background:var(--surface)}
.kc.good{border-left:5px solid var(--real)}
.kc.bad{border-left:5px solid var(--humo)}
.kc-ic{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;font-weight:900;
  font-size:1.05rem;flex:none;color:#06120c}
.kc.good .kc-ic{background:var(--real)}
.kc.bad .kc-ic{background:var(--humo);color:#fff}
.kc b{font-size:1.04rem;color:var(--ink);display:block}
.kc p{margin:4px 0 0;color:var(--ink-2);font-size:.96rem;line-height:1.45}

.kid-takeaway{display:flex;gap:12px;align-items:flex-start;padding:16px 18px;border-radius:var(--radius-md);
  background:var(--surface-2);border:1px dashed var(--line-2);margin:16px 0;font-size:1.06rem;
  line-height:1.5;color:var(--ink)}
.kid-takeaway span{font-size:1.5rem;line-height:1}
.kid-takeaway p{margin:0}

/* big human number: 100-dot grid */
.bignum{margin:16px 0;padding:20px;border-radius:var(--radius-lg);background:var(--surface);border:1px solid var(--line)}
.bn-grid{display:grid;grid-template-columns:repeat(10,1fr);gap:4px;max-width:240px;margin:0 auto 14px}
.bn-grid i{aspect-ratio:1;border-radius:3px;background:var(--real);opacity:.92}
.bn-grid i.lose{background:var(--humo)}
.bn-cap{text-align:center;font-size:1.06rem;color:var(--ink);line-height:1.45}
.bn-cap b{font-size:1.7rem;font-weight:900;vertical-align:-2px}

/* ---- TECHNICAL: per-instrument metrics table ---- */
.metrics-table-wrap{overflow-x:auto;margin:6px 0 14px;border:1px solid var(--line);border-radius:var(--radius-md)}
.metrics-table{width:100%;border-collapse:collapse;font-size:.88rem}
.metrics-table th{text-align:left;color:var(--ink-3);font-weight:700;font-size:.7rem;text-transform:uppercase;
  letter-spacing:.04em;padding:9px 12px;border-bottom:1px solid var(--line);white-space:nowrap}
.metrics-table td{padding:10px 12px;border-bottom:1px solid var(--line);color:var(--ink);font:600 .88rem/1 var(--mono)}
.metrics-table tr:last-child td{border-bottom:none}
.metrics-table td.up{color:var(--real)}
.metrics-table td.down{color:var(--humo)}
.metrics-table tbody tr:hover td,.metrics-table tr:hover td{background:var(--surface-2)}

@media(max-width:560px){
  .stoplight{gap:14px;padding:16px}
  .sl-bulb{width:64px;height:64px;font-size:34px}
  .kid-explain{font-size:1.05rem}
}

/* ===================================================================
   INFO buttons + explanation popover
   =================================================================== */
.info-label{
  display:inline-flex;
  align-items:center;
  gap:6px;
  max-width:100%;
  min-width:0;
  line-height:1.1;
  vertical-align:top;
}
.info-label-text{
  min-width:0;
  overflow-wrap:anywhere;
}
.info-btn{display:inline-grid;place-items:center;width:16px;height:16px;border-radius:50%;
  border:1px solid var(--line-2);background:transparent;color:var(--ink-3);
  font:italic 700 10px/16px Georgia,'Times New Roman',serif;cursor:pointer;vertical-align:top;
  margin:0;padding:0;flex:none;transition:.12s var(--ease)}
.info-label .info-btn{margin-left:0}
.info-btn:hover{border-color:var(--accent-2);color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 12%,transparent)}
.info-pop{position:fixed;z-index:99999;background:var(--surface-2);border:1px solid var(--line-2);
  border-radius:var(--radius-md);padding:12px 14px;box-shadow:var(--shadow);opacity:0;transform:translateY(-4px);
  transition:opacity .13s var(--ease),transform .13s var(--ease)}
.info-pop.show{opacity:1;transform:none}
.info-pop b{display:block;font-size:.86rem;color:var(--ink);margin-bottom:5px;font-weight:800}
.info-pop p{margin:0;font-size:.83rem;line-height:1.5;color:var(--ink-2)}
.mc-strat-row{display:inline-flex;align-items:center;gap:7px}

/* ===================================================================
   ANALYZER — professional / minimal refinement
   =================================================================== */
/* calm the decorative terminal background on the analyzer route */
body.is-analyzer #bg-candles{opacity:.32}
body.is-analyzer .terminal-grid-bg{opacity:.45}

/* roomier, calmer header */
.analyzer-top{padding-top:30px}
.analyzer-title{margin-bottom:26px}
.analyzer-title .eyebrow{opacity:.7}
.analyzer-title p{font-size:15px;color:var(--ink-2);max-width:54ch}

/* quieter console headers — less "terminal", more product */
.analyzer-grid{gap:16px}
.analyzer-grid .console-head{background:transparent;min-height:48px;padding:14px 18px}
.analyzer-grid .console-head span{font-family:var(--font);font-size:11px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-3);font-weight:700}
.analyzer-grid .console-head b{font-family:var(--font);font-size:14px;text-transform:none;
  letter-spacing:0;font-weight:700;color:var(--ink)}

/* flatter, cleaner cards */
.analyzer-grid .console{background:var(--surface);box-shadow:none}
.chart-label span{font-family:var(--font);letter-spacing:.04em;opacity:.7;font-weight:600}
.chart-label b{font-family:var(--mono);font-weight:600;color:var(--ink-2)}

/* inner content breathing room */
.analyzer-grid #pane-yt,.analyzer-grid #pane-txt{padding:0 18px 16px}
.analysis-dock{padding:18px}

/* example badge for the default demo result */
.example-tag{display:inline-flex;align-items:center;gap:7px;font-size:.7rem;font-weight:700;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3);border:1px solid var(--line);
  border-radius:var(--radius-pill);padding:5px 12px;margin-bottom:12px}
.example-tag::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-2)}

/* ===================================================================
   ANALYZER — evidence desk UI v2
   Preserves every analyzer module; changes only hierarchy, density, and polish.
   =================================================================== */
body.is-analyzer #hdr{
  background:rgba(6,9,7,.94);
  border-color:rgba(112,160,120,.16);
}
body.is-analyzer #bg-candles{opacity:.22}
body.is-analyzer .terminal-grid-bg{opacity:.28}
body.is-analyzer .analyzer-view{
  background:
    radial-gradient(circle at 50% -10%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 32%),
    linear-gradient(180deg,#060906 0%,#080c08 48%,#060906 100%);
}
body.is-analyzer .analyzer-top{
  padding:18px 0 28px;
  min-height:calc(100vh - var(--nav-h));
}
body.is-analyzer .analyzer-wrap{max-width:1420px}
body.is-analyzer .analyzer-title{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  gap:18px;
  margin:0 0 14px;
  padding-bottom:14px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 58%,transparent);
}
body.is-analyzer .analyzer-title .eyebrow{
  opacity:1;
  color:var(--accent);
}
body.is-analyzer .analyzer-title h1{
  max-width:none;
  margin:5px 0 3px;
  font-size:clamp(26px,2.8vw,38px);
  line-height:1.02;
}
body.is-analyzer .analyzer-title p{
  max-width:78ch;
  color:var(--ink-2);
  font-size:14px;
  line-height:1.52;
}
body.is-analyzer .analyzer-title .btn{
  min-height:42px;
  padding:10px 15px;
  border-radius:var(--radius-sm);
}
body.is-analyzer .analyzer-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  gap:12px;
  min-height:auto;
}
body.is-analyzer .analyzer-grid .console{
  border-color:color-mix(in srgb,var(--line-2) 58%,transparent);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg,rgba(13,19,14,.76),rgba(7,11,8,.94));
  box-shadow:none;
}
body.is-analyzer .analyzer-grid .console-head{
  min-height:42px;
  padding:12px 16px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);
  background:linear-gradient(180deg,rgba(17,25,18,.52),rgba(11,16,12,.18));
}
body.is-analyzer .analyzer-grid .console-head span{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.08em;
}
body.is-analyzer .analyzer-grid .console-head b{
  color:var(--ink);
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.05em;
  text-transform:uppercase;
}

body.is-analyzer .input-console{
  display:flex;
  flex-direction:column;
  gap:13px;
  padding:0 16px 14px;
}
body.is-analyzer .input-console .console-head{
  margin:0 -16px;
}
body.is-analyzer .input-console .seg{
  min-height:46px;
  padding:4px;
  border-color:color-mix(in srgb,var(--line-2) 52%,transparent);
  background:rgba(7,11,8,.76);
}
body.is-analyzer .input-console .seg-btn{
  min-height:36px;
  border-radius:var(--radius-sm);
  color:var(--ink-3);
}
body.is-analyzer .input-console .seg-btn.active{
  color:var(--ink);
  background:linear-gradient(180deg,rgba(24,34,25,.8),rgba(13,19,14,.9));
}
body.is-analyzer .pane{padding:0}
body.is-analyzer .pane.active{
  display:flex;
  flex-direction:column;
  gap:12px;
}
body.is-analyzer .fld{gap:6px}
body.is-analyzer .fld>span{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
  text-transform:uppercase;
}
body.is-analyzer input,
body.is-analyzer textarea{
  border-color:color-mix(in srgb,var(--line-2) 52%,transparent);
  background:rgba(4,7,5,.86);
  border-radius:var(--radius);
  color:var(--ink);
}
body.is-analyzer input:focus,
body.is-analyzer textarea:focus{
  border-color:color-mix(in srgb,var(--accent) 64%,var(--line));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent);
}
body.is-analyzer .url-input-shell{
  min-height:50px;
  border-color:color-mix(in srgb,var(--line-2) 54%,transparent);
  background:rgba(4,7,5,.72);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.035);
}
body.is-analyzer .url-input-shell:focus-within{
  border-color:color-mix(in srgb,var(--accent) 62%,var(--line));
  background:rgba(6,11,7,.94);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent);
}
body.is-analyzer .input-console #run{
  grid-column:auto;
  min-height:50px;
  border-radius:var(--radius);
  box-shadow:0 18px 34px color-mix(in srgb,var(--accent) 16%,transparent);
}
body.is-analyzer .input-console #run .run-label{white-space:nowrap}
body.is-analyzer .micro-list{
  grid-column:1 / -1;
  padding-top:1px;
  gap:12px;
}
body.is-analyzer .micro-list li{
  color:color-mix(in srgb,var(--ink-3) 88%,transparent);
  font-size:9px;
}

body.is-analyzer .audit-console{
  background:linear-gradient(180deg,rgba(11,16,12,.78),rgba(7,11,8,.92));
}
body.is-analyzer .audit-console::before{opacity:.55}
body.is-analyzer .audit-console .source-card{margin:12px 12px 0}
body.is-analyzer .audit-flow{
  grid-template-columns:repeat(7,minmax(116px,1fr));
  gap:7px;
  padding:12px;
  overflow-x:auto;
}
body.is-analyzer .audit-flow::before{display:none}
body.is-analyzer .flow-node{
  min-height:78px;
  padding:10px;
  background:rgba(4,7,5,.72);
}
body.is-analyzer .flow-node small{
  font-size:10px;
  line-height:1.25;
}
body.is-analyzer .stage-list{padding:0 12px 12px}
body.is-analyzer .pstage{
  border-color:color-mix(in srgb,var(--line-2) 44%,transparent);
  background:rgba(4,7,5,.72);
}

body.is-analyzer .chart-console{
  min-height:calc(100vh - var(--nav-h) - 210px);
  overflow:hidden;
}
body.is-analyzer .chart-console .console-head{
  background:linear-gradient(180deg,rgba(15,22,16,.72),rgba(7,11,8,.24));
}
body.is-analyzer .backtest-panels{
  min-height:clamp(560px,64vh,820px);
  grid-template-rows:minmax(420px,1fr) 132px;
  gap:8px;
  margin:12px;
}
body.is-analyzer .chart-frame{
  border-color:color-mix(in srgb,var(--line-2) 42%,transparent);
  border-radius:var(--radius);
  background:#050704;
}
body.is-analyzer .chart-label{
  min-height:34px;
  padding:8px 10px;
  background:rgba(6,9,7,.76);
  border-bottom:1px solid rgba(84,128,92,.22);
}
body.is-analyzer .chart-label span{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:9px;
  letter-spacing:.07em;
}
body.is-analyzer .chart-label b{
  color:var(--ink-2);
  font-size:9px;
}
body.is-analyzer .chart-controls{
  margin:0 12px 12px;
  padding:8px;
  border:1px solid color-mix(in srgb,var(--line-2) 38%,transparent);
  border-radius:var(--radius);
  background:rgba(4,7,5,.62);
}
body.is-analyzer .tool-btn{
  width:32px;
  height:32px;
  border-color:color-mix(in srgb,var(--line-2) 46%,transparent);
  background:rgba(15,22,16,.8);
}
body.is-analyzer .tool-btn.wide{min-width:62px}
body.is-analyzer .chart-controls span{font-size:9px}
body.is-analyzer .chart-metrics{
  gap:8px;
  margin:0 12px 12px;
  border:0;
  border-radius:0;
  background:transparent;
}
body.is-analyzer .chart-metrics div{
  padding:12px;
  border:1px solid color-mix(in srgb,var(--line-2) 42%,transparent);
  border-radius:var(--radius);
  background:rgba(9,14,10,.82);
}
body.is-analyzer .chart-metrics b{font-size:20px}
body.is-analyzer .chart-metrics small{
  min-height:28px;
  font-size:10.5px;
}
body.is-analyzer .analysis-dock{
  margin:0;
  padding:0 12px 12px;
}
body.is-analyzer .big-verdict,
body.is-analyzer .sq,
body.is-analyzer .takeaway,
body.is-analyzer .tech{
  background:rgba(4,7,5,.72);
  border-radius:var(--radius);
}
body.is-analyzer .source-card{
  border-color:color-mix(in srgb,var(--line-2) 42%,transparent);
  background:rgba(4,7,5,.72);
}

@media (max-width:1080px){
  body.is-analyzer .chart-console{min-height:auto}
}
@media (max-width:760px){
  body.is-analyzer .analyzer-top{padding-top:14px}
  body.is-analyzer .analyzer-title{
    grid-template-columns:1fr;
    gap:12px;
    padding-bottom:12px;
  }
  body.is-analyzer .analyzer-title h1{
    max-width:16ch;
    font-size:clamp(30px,10vw,42px);
  }
  body.is-analyzer .input-console{padding:0 12px 12px}
  body.is-analyzer .input-console .console-head{margin:0 -12px}
  body.is-analyzer .chart-metrics{grid-template-columns:1fr}
  body.is-analyzer .backtest-panels{
    min-height:520px;
    grid-template-rows:minmax(340px,1fr) 130px;
  }
  body.is-analyzer .chart-controls{
    flex-wrap:wrap;
  }
body.is-analyzer .chart-controls span{
    width:100%;
    margin:2px 0 0;
  }
}

/* ===================================================================
   TRAVOCATO — premium terminal UI applied across landing + trainer
   =================================================================== */
body:not(.is-analyzer) #hdr{
  /* no full-width bar — the floating .nav pill is the only container */
  background:transparent;
  border-bottom-color:transparent;
  box-shadow:none;
}
[data-theme="light"] body:not(.is-analyzer) #hdr{
  background:transparent;
  border-bottom-color:transparent;
  box-shadow:none;
}
body:not(.is-analyzer) .nav-links>a:hover,
body:not(.is-analyzer) .seg,
body:not(.is-analyzer) .icon-btn{
  background:color-mix(in srgb,var(--surface-2) 76%,transparent);
  border-color:color-mix(in srgb,var(--line-2) 52%,transparent);
}
body:not(.is-analyzer) .nav-links .nav-primary{
  box-shadow:0 16px 38px color-mix(in srgb,var(--accent) 18%,transparent);
}

#landing-view{
  background:
    radial-gradient(circle at 74px 118px,color-mix(in srgb,var(--accent) 10%,transparent),transparent 28%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 44%,var(--bg) 100%);
}
#landing-view .hero{
  position:relative;
  min-height:calc(100vh - var(--nav-h));
  overflow:hidden;
  isolation:isolate;
  align-items:flex-start;
  padding:46px 0 44px;
  border-bottom-color:color-mix(in srgb,var(--line-2) 36%,transparent);
  background:
    radial-gradient(circle at 78% 44%,color-mix(in srgb,var(--accent) 19%,transparent),transparent 30%),
    radial-gradient(circle at 84% 66%,color-mix(in srgb,var(--accent-2) 13%,transparent),transparent 26%),
    linear-gradient(180deg,color-mix(in srgb,var(--bg) 96%,transparent),color-mix(in srgb,var(--surface) 36%,transparent));
}
#landing-view .hero::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-2;
  pointer-events:none;
  background:
    linear-gradient(color-mix(in srgb,var(--line) 42%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--line) 42%,transparent) 1px,transparent 1px);
  background-size:72px 72px;
  mask-image:linear-gradient(90deg,rgba(0,0,0,.7),transparent 76%);
  opacity:.18;
}
#landing-view .hero-grid{
  position:relative;
  display:block;
}
#landing-view .hero-copy{
  position:relative;
  z-index:2;
  width:min(100%,720px);
  padding:0;
}
#landing-view .hero-copy h1{
  max-width:17ch;
  margin-bottom:18px;
  font-size:clamp(44px,5.9vw,72px);
  letter-spacing:0;
}
#landing-view .hero-actions{margin:22px 0 20px}
#landing-view .hero-visual{
  position:absolute;
  top:50%;
  right:0;
  z-index:1;
  width:min(47vw,590px);
  min-height:0;
  transform:translateY(-47%);
  opacity:.94;
  pointer-events:none;
}
#landing-view .hero-visual::before{
  width:min(92%,520px);
  filter:blur(34px);
}
#landing-view .hero-visual img{
  width:100%;
  max-height:min(76vh,690px);
  filter:drop-shadow(0 34px 58px rgba(0,0,0,.48));
}
#landing-view .hero-url-panel{
  margin-top:20px;
  gap:8px;
  padding:9px;
  border:1px solid color-mix(in srgb,var(--line-2) 44%,transparent);
  border-radius:var(--radius-lg);
  background:
    linear-gradient(180deg,rgba(11,16,12,.72),rgba(4,7,5,.58));
  box-shadow:0 22px 60px rgba(0,0,0,.2),inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(16px) saturate(126%);
}
#landing-view .hero-url-panel label{
  min-height:24px;
  padding:0 5px 0 7px;
}
#landing-view .hero-url-panel > label span{
  display:inline-flex;
  align-items:center;
  gap:7px;
  color:color-mix(in srgb,var(--ink-3) 86%,var(--accent));
  font-size:9.5px;
  letter-spacing:.07em;
}
#landing-view .hero-url-panel > label span::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 14px color-mix(in srgb,var(--accent) 72%,transparent);
}
#landing-view .hero-url-row{
  grid-template-columns:minmax(0,1fr) 150px;
  gap:8px;
}
#landing-view .url-input-shell{
  min-height:58px;
  gap:13px;
  padding:0 16px;
  border-radius:var(--radius-md);
  border-color:color-mix(in srgb,var(--line-2) 40%,transparent);
  background:
    linear-gradient(180deg,rgba(8,13,17,.84),rgba(4,7,5,.74));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
#landing-view .url-input-shell:focus-within{
  border-color:color-mix(in srgb,var(--accent) 64%,var(--line));
  background:linear-gradient(180deg,rgba(10,16,11,.92),rgba(4,7,5,.82));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 18px 42px rgba(0,0,0,.18);
}
#landing-view .url-input-shell input,
#landing-view .url-input-shell input:focus{
  min-height:56px;
  color:var(--ink);
  font-size:15px;
  font-weight:500;
}
#landing-view .platform-strip{
  gap:8px;
  padding-right:13px;
}
#landing-view .platform-strip::after{
  height:26px;
  background:color-mix(in srgb,var(--line-2) 58%,transparent);
}
#landing-view .platform-pill{
  width:19px;
  height:22px;
  opacity:.88;
}
#landing-view .platform-pill img{
  width:18px;
  height:18px;
}
#landing-view .hero-url-row .btn{
  min-height:58px;
  justify-content:space-between;
  border-radius:var(--radius-md);
  padding:0 16px;
}
#landing-view .hero-url-row .btn span{
  font-size:13px;
  letter-spacing:0;
}
[data-theme="light"] #landing-view .hero-url-panel{
  background:linear-gradient(180deg,rgba(255,255,255,.86),rgba(240,240,229,.7));
  box-shadow:0 20px 58px rgba(13,18,15,.1),inset 0 1px 0 rgba(255,255,255,.92);
}
[data-theme="light"] #landing-view .url-input-shell{
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent);
  background:rgba(255,255,255,.82);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96);
}
[data-theme="light"] #landing-view .url-input-shell:focus-within{
  background:#fff;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 16px 34px rgba(13,18,15,.1);
}
#landing-view .section{
  position:relative;
  border-bottom-color:color-mix(in srgb,var(--line-2) 34%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 94%,transparent),color-mix(in srgb,var(--bg-2) 72%,transparent));
}
#landing-view .section-head{
  padding-bottom:16px;
  border-bottom:1px solid color-mix(in srgb,var(--line-2) 38%,transparent);
}
#landing-view .section-head h2{
  max-width:16ch;
}
#landing-view .story-section{
  background:
    radial-gradient(circle at 80% 24%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 26%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 48%,var(--bg) 100%);
}
#landing-view .story-step{
  border-top-color:color-mix(in srgb,var(--line-2) 34%,transparent);
}
#landing-view .story-step h3{
  max-width:13ch;
}
#landing-view .story-step.active{
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 5%,transparent),transparent 56%);
  box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent) 76%,transparent);
  padding-left:18px;
}
#landing-view .story-visual img{
  filter:drop-shadow(0 36px 60px rgba(0,0,0,.48));
}
#landing-view .battery-table,
#landing-view .price-card,
#landing-view .card{
  border-color:color-mix(in srgb,var(--line-2) 42%,transparent);
  background:linear-gradient(180deg,rgba(12,18,13,.78),rgba(4,7,5,.72));
  box-shadow:0 18px 44px rgba(0,0,0,.14);
}
#landing-view .battery-table{
  border-radius:var(--radius-md);
  overflow:hidden;
}
#landing-view .battery-table div{
  border-bottom-color:color-mix(in srgb,var(--line-2) 34%,transparent);
}
#landing-view .battery-table div:hover{
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
#landing-view .price-card{
  position:relative;
  overflow:hidden;
  border-radius:var(--radius-md);
}
#landing-view .price-card::before,
#landing-view .card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height:2px;
  background:linear-gradient(90deg,var(--accent),transparent 64%);
  opacity:.72;
}
#landing-view .price-card.featured{
  border-color:color-mix(in srgb,var(--accent) 62%,var(--line));
  background:
    radial-gradient(circle at 18% 0%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 38%),
    linear-gradient(180deg,rgba(18,30,25,.9),rgba(4,7,5,.78));
}
#landing-view .price-card:hover,
#landing-view .card:hover{
  border-color:color-mix(in srgb,var(--accent) 46%,var(--line-2));
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 82%,transparent),color-mix(in srgb,var(--bg) 86%,transparent));
}
#landing-view .card{
  position:relative;
  border-radius:var(--radius-md);
}
#landing-view .card-spark{
  background:
    linear-gradient(color-mix(in srgb,var(--line) 46%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--line) 46%,transparent) 1px,transparent 1px),
    var(--bg);
  background-size:38px 38px;
}
#landing-view .px{
  border:1px solid color-mix(in srgb,var(--line-2) 48%,transparent);
  background:rgba(4,7,5,.76);
}
footer{
  background:linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--surface) 48%,var(--bg)));
  border-top-color:color-mix(in srgb,var(--line-2) 36%,transparent);
}
.modal-card{
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 94%,transparent),color-mix(in srgb,var(--bg) 96%,transparent));
}

[data-theme="light"] #landing-view .battery-table,
[data-theme="light"] #landing-view .price-card,
[data-theme="light"] #landing-view .card,
[data-theme="light"] .modal-card{
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(240,240,229,.78));
  box-shadow:0 18px 42px rgba(13,18,15,.08);
}
[data-theme="light"] #landing-view .price-card.featured{
  background:
    radial-gradient(circle at 20% 0%,color-mix(in srgb,var(--accent) 14%,transparent),transparent 38%),
    linear-gradient(180deg,rgba(255,255,255,.94),rgba(240,240,229,.82));
}
[data-theme="light"] #landing-view .px{
  background:rgba(255,255,255,.78);
}
[data-theme="light"] footer{
  background:linear-gradient(180deg,var(--bg),var(--bg-2));
}

body.is-trainer .trainer-view{
  min-height:calc(100vh - var(--nav-h));
  background:
    radial-gradient(circle at 18% 8%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 28%),
    radial-gradient(circle at 84% 12%,color-mix(in srgb,var(--accent-2) 10%,transparent),transparent 24%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 52%,var(--bg) 100%);
}
body.is-trainer .trainer-top{padding:28px 0 70px}
body.is-trainer .trainer-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:end;
  padding-bottom:16px;
  border-bottom:1px solid color-mix(in srgb,var(--line-2) 40%,transparent);
}
body.is-trainer .trainer-head h1{
  max-width:18ch;
  font-size:clamp(32px,4.4vw,58px);
}
body.is-trainer .trainer-controls,
body.is-trainer .scoreboard .sb,
body.is-trainer .draw-toolbar,
body.is-trainer .chart-top,
body.is-trainer .trainer-chart,
body.is-trainer .decision-panel{
  border-color:color-mix(in srgb,var(--line-2) 42%,transparent);
  background:linear-gradient(180deg,rgba(12,18,13,.82),rgba(4,7,5,.72));
  box-shadow:0 18px 44px rgba(0,0,0,.12);
}
body.is-trainer .trainer-controls{
  border-radius:var(--radius-md);
}
body.is-trainer .scoreboard .sb{
  border-radius:var(--radius);
}
body.is-trainer .trainer-chart{
  background:
    linear-gradient(color-mix(in srgb,var(--line) 38%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--line) 38%,transparent) 1px,transparent 1px),
    var(--bg);
  background-size:48px 48px;
}
body.is-trainer .trainer-select{
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent);
  background:color-mix(in srgb,var(--surface-2) 76%,transparent);
}
body.is-trainer .big-buy,
body.is-trainer .big-sell{
  border-radius:var(--radius);
}
[data-theme="light"] body.is-trainer .trainer-controls,
[data-theme="light"] body.is-trainer .scoreboard .sb,
[data-theme="light"] body.is-trainer .draw-toolbar,
[data-theme="light"] body.is-trainer .chart-top,
[data-theme="light"] body.is-trainer .trainer-chart,
[data-theme="light"] body.is-trainer .decision-panel{
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(240,240,229,.78));
  box-shadow:0 18px 42px rgba(13,18,15,.08);
}
[data-theme="light"] body.is-trainer .trainer-loading{
  background:rgba(244,243,234,.72);
}

@media (max-width:1080px){
  #landing-view .hero-grid{
    display:grid;
    grid-template-columns:1fr;
  }
  #landing-view .hero-copy{
    width:min(100%,760px);
  }
  #landing-view .hero-visual{
    position:relative;
    top:auto;
    right:auto;
    width:min(100%,480px);
    margin:26px auto 0;
    transform:none;
  }
}
@media (max-width:760px){
  #landing-view .hero-copy{
    padding:0;
  }
  #landing-view .hero-copy h1{
    max-width:12ch;
    font-size:clamp(40px,12vw,58px);
  }
  #landing-view .hero-url-panel{
    padding:10px;
  }
  #landing-view .hero-url-row{
    grid-template-columns:1fr;
  }
  #landing-view .hero-url-row .btn{
    width:100%;
    min-height:58px;
  }
  #landing-view .url-input-shell{
    min-height:56px;
    padding:0 13px;
    gap:10px;
  }
  #landing-view .story-step.active{
    padding-left:12px;
  }
  body.is-trainer .trainer-head{
    grid-template-columns:1fr;
    align-items:start;
  }
  body.is-trainer .trainer-head h1{
    font-size:clamp(32px,10vw,44px);
  }
  body.is-trainer .trainer-controls{
    display:grid;
    grid-template-columns:1fr;
    gap:14px;
  }
  body.is-trainer .tc-group,
  body.is-trainer .trainer-select,
  body.is-trainer .tf-seg{
    width:100%;
    min-width:0;
    max-width:100%;
  }
  body.is-trainer .trainer-controls .btn{
    width:100%;
    margin-left:0;
  }
}

/* Light theme for analyzer v2. Keep the same layout, but remove dark hardcoded surfaces. */
[data-theme="light"] body.is-analyzer #hdr{
  background:rgba(255,255,255,.9);
  border-color:color-mix(in srgb,var(--line) 86%,transparent);
  box-shadow:0 12px 30px rgba(13,18,15,.08);
}
[data-theme="light"] body.is-analyzer #bg-candles{opacity:.18}
[data-theme="light"] body.is-analyzer .terminal-grid-bg{opacity:.32}
[data-theme="light"] body.is-analyzer .analyzer-view{
  background:
    radial-gradient(circle at 50% -10%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 34%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 50%,var(--bg) 100%);
}
[data-theme="light"] body.is-analyzer .analyzer-title{
  border-bottom-color:color-mix(in srgb,var(--line) 80%,transparent);
}
[data-theme="light"] body.is-analyzer .analyzer-grid .console{
  border-color:color-mix(in srgb,var(--line-2) 54%,transparent);
  background:linear-gradient(180deg,rgba(255,255,255,.92),rgba(240,240,229,.86));
  box-shadow:0 18px 42px rgba(13,18,15,.08);
}
[data-theme="light"] body.is-analyzer .analyzer-grid .console-head{
  border-bottom-color:color-mix(in srgb,var(--line) 82%,transparent);
  background:linear-gradient(180deg,rgba(255,255,255,.78),rgba(240,240,229,.5));
}
[data-theme="light"] body.is-analyzer .input-console .seg{
  border-color:color-mix(in srgb,var(--line-2) 55%,transparent);
  background:rgba(240,240,229,.78);
}
[data-theme="light"] body.is-analyzer .input-console .seg-btn.active{
  color:var(--ink);
  background:linear-gradient(180deg,#fff,rgba(229,230,212,.9));
  box-shadow:0 1px 0 rgba(255,255,255,.9),0 8px 18px rgba(13,18,15,.08);
}
[data-theme="light"] body.is-analyzer input,
[data-theme="light"] body.is-analyzer textarea{
  border-color:color-mix(in srgb,var(--line-2) 55%,transparent);
  background:rgba(255,255,255,.86);
}
[data-theme="light"] body.is-analyzer .url-input-shell{
  border-color:color-mix(in srgb,var(--line-2) 58%,transparent);
  background:rgba(255,255,255,.84);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92);
}
[data-theme="light"] body.is-analyzer .url-input-shell:focus-within{
  background:#fff;
  border-color:color-mix(in srgb,var(--accent) 58%,var(--line));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 14px 26px rgba(13,18,15,.08);
}
[data-theme="light"] body.is-analyzer .audit-console,
[data-theme="light"] body.is-analyzer .chart-console .console-head{
  background:linear-gradient(180deg,rgba(255,255,255,.88),rgba(240,240,229,.58));
}
[data-theme="light"] body.is-analyzer .flow-node,
[data-theme="light"] body.is-analyzer .pstage,
[data-theme="light"] body.is-analyzer .chart-metrics div,
[data-theme="light"] body.is-analyzer .big-verdict,
[data-theme="light"] body.is-analyzer .sq,
[data-theme="light"] body.is-analyzer .takeaway,
[data-theme="light"] body.is-analyzer .tech,
[data-theme="light"] body.is-analyzer .source-card{
  background:rgba(255,255,255,.82);
}
[data-theme="light"] body.is-analyzer .chart-frame{
  border-color:color-mix(in srgb,var(--line-2) 46%,transparent);
  background:var(--bg);
}
[data-theme="light"] body.is-analyzer .tv-chart,
[data-theme="light"] body.is-analyzer .equity-chart{
  background:var(--bg);
}
[data-theme="light"] body.is-analyzer .chart-label{
  background:rgba(255,255,255,.72);
  border-bottom-color:color-mix(in srgb,var(--line) 76%,transparent);
}
[data-theme="light"] body.is-analyzer .chart-controls{
  border-color:color-mix(in srgb,var(--line-2) 42%,transparent);
  background:rgba(255,255,255,.72);
}
[data-theme="light"] body.is-analyzer .tool-btn{
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent);
  background:rgba(240,240,229,.88);
}

/* ============ Upload (Plan B) dropzone ============ */
.upload-drop{
  position:relative; display:flex; flex-direction:column; align-items:center; justify-content:center;
  gap:.45rem; text-align:center; cursor:pointer; margin-top:.4rem;
  padding:1.5rem 1rem; border:1.5px dashed var(--line-2,#c9d4dd); border-radius:var(--radius-lg);
  background:var(--surface,#fff); color:var(--ink,#1a2733);
  transition:border-color .15s var(--ease), background .15s var(--ease), transform .05s var(--ease);
}
.upload-drop:hover{ border-color:color-mix(in srgb,var(--accent,#2f6df6) 55%,var(--line-2,#c9d4dd)); }
.upload-drop.dragging{ border-color:var(--accent,#2f6df6); background:color-mix(in srgb,var(--accent,#2f6df6) 7%,var(--surface,#fff)); }
.upload-drop.has-file{ border-style:solid; border-color:color-mix(in srgb,var(--ok) 60%,var(--line-2,#c9d4dd)); background:color-mix(in srgb,var(--ok) 6%,var(--surface,#fff)); }
.upload-drop input[type=file]{ position:absolute; inset:0; width:100%; height:100%; opacity:0; cursor:pointer; }
.upload-drop svg{ width:30px; height:30px; color:var(--accent,#2f6df6); opacity:.85; }
.upload-drop.has-file svg{ color:var(--ok); }
.upload-drop b{ font-size:.92rem; font-weight:650; word-break:break-word; }
.upload-drop small{ font-size:.72rem; color:var(--ink-soft,#6b7a88); letter-spacing:.01em; }
.upload-hint{ margin:.6rem 0 0; font-size:.76rem; line-height:1.45; color:var(--ink-soft,#6b7a88); }

/* ============ Manual-only platform notice (e.g. X) ============ */
.manual-note{
  margin:.5rem 0 0; padding:.7rem .85rem; border-radius:var(--radius-md);
  font-size:.82rem; line-height:1.45;
  background:color-mix(in srgb,#f6b73c 14%,var(--surface,#fff));
  border:1px solid color-mix(in srgb,#f6b73c 45%,transparent);
  color:var(--ink,#1a2733);
}
.manual-note.hidden{ display:none; }

/* ============================================================================
   TRAVOCATO v3 — "FORENSIC INSTRUMENT" identity + motion layer
   One voice: obsidian-green lab surfaces, serif editorial accents, disciplined
   depth, and an orchestrated motion system (reveal · parallax · spotlight).
   Appended last so it refines the base without touching functional markup.
   ============================================================================ */

/* ---- global rendering + selection + scrollbar + focus ---- */
body{font-feature-settings:"ss01","cv01","cv11";letter-spacing:-.005em}
::selection{background:color-mix(in srgb,var(--accent) 32%,transparent);color:var(--ink)}
::-webkit-scrollbar{width:12px;height:12px}
::-webkit-scrollbar-track{background:var(--bg)}
::-webkit-scrollbar-thumb{background:var(--line-2);border-radius:var(--radius-xl);border:3px solid var(--bg)}
::-webkit-scrollbar-thumb:hover{background:color-mix(in srgb,var(--accent) 45%,var(--line-2))}
:focus-visible{outline:2px solid color-mix(in srgb,var(--accent) 62%,transparent);outline-offset:2px;border-radius:4px}
/* accessibility: honor reduced-motion globally — covers every animation/transition, incl. eyebrow blink, toggles, reveals */
@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{
    animation-duration:.01ms!important;
    animation-iteration-count:1!important;
    transition-duration:.01ms!important;
    scroll-behavior:auto!important;
  }
}

/* ---- fine film grain over everything (atmosphere) ---- */
body::after{
  content:"";position:fixed;inset:0;z-index:3;pointer-events:none;
  opacity:var(--grain);mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");
}

/* ---- finer green terminal grid, radially masked ---- */
.terminal-grid-bg{
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,transparent) 1px,transparent 1px),
    linear-gradient(180deg,color-mix(in srgb,var(--accent) 6%,transparent) 1px,transparent 1px);
  background-size:46px 46px;
  mask-image:radial-gradient(120% 80% at 70% 0%,#000 0%,rgba(0,0,0,.4) 48%,transparent 82%);
}

/* ---- aurora atmosphere: two-tone glow fields drifting behind everything ---- */
.bg-aurora{position:fixed;inset:-12%;z-index:0;pointer-events:none;opacity:var(--aurora);filter:blur(64px);will-change:transform}
.bg-aurora .au{position:absolute;border-radius:50%}
.au-1{width:48vw;height:48vw;left:-10vw;top:-14vh;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 13%,transparent),transparent 70%)}
.au-2{width:42vw;height:42vw;right:-12vw;top:6vh;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 9%,transparent),transparent 70%)}
.au-3{width:54vw;height:54vw;left:22vw;bottom:-32vh;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 8%,transparent),transparent 72%)}
body.is-analyzer .bg-aurora,body.is-trainer .bg-aurora{opacity:calc(var(--aurora)*.45)}
@media (prefers-reduced-motion:no-preference){
  .au-1{animation:au-drift-a 34s var(--ease) infinite alternate}
  .au-2{animation:au-drift-b 28s var(--ease) infinite alternate}
  .au-3{animation:au-drift-a 44s var(--ease) infinite alternate-reverse}
  @keyframes au-drift-a{from{transform:translate3d(0,0,0) scale(1)}to{transform:translate3d(6vw,4vh,0) scale(1.12)}}
  @keyframes au-drift-b{from{transform:translate3d(0,0,0) scale(1.06)}to{transform:translate3d(-5vw,6vh,0) scale(.94)}}
}

/* ============================ TYPOGRAPHY ============================ */
h1,h2,h3,h4{font-family:var(--font);letter-spacing:-.035em;line-height:.98;text-wrap:balance}
h1{font-weight:800}
h2{font-weight:800;letter-spacing:-.03em}
h3{font-weight:700;letter-spacing:-.02em}
.lead{font-weight:420;letter-spacing:-.01em;color:var(--ink-2)}

/* the serif is the "truth voice": rare, editorial, unmistakable */
.h1-accent,.story-step h3,.modal-title,.price-card h3{
  font-family:var(--serif);font-weight:400;letter-spacing:-.012em;
}
.price-card h3{font-style:italic;font-size:30px}
.modal-title{font-size:clamp(30px,4.4vw,42px);line-height:1.04}
.story-step h3{font-size:clamp(38px,4.8vw,68px);line-height:1.0;max-width:14ch}

/* eyebrow → terminal tag with a blinking cursor */
.eyebrow{font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:.22em;text-transform:uppercase;color:var(--accent)}
.eyebrow::before{width:6px;height:6px;box-shadow:0 0 14px color-mix(in srgb,var(--accent) 85%,transparent)}
.eyebrow::after{content:"_";margin-left:-3px;color:var(--accent);font-family:var(--mono);animation:fg-blink 1.15s steps(1) infinite}
@keyframes fg-blink{0%,52%{opacity:1}53%,100%{opacity:0}}

/* all mono micro-labels: widen tracking for the instrument-panel feel */
.console-head span,.console-head b,.hero-url-panel > label span,.hero-url-panel b,
.fld>span,.seg-btn,.micro-list li,.platform-strip{font-family:var(--mono)}
.console-head span{letter-spacing:.18em;color:color-mix(in srgb,var(--accent) 78%,var(--ink-3))}
.console-head b{letter-spacing:.14em}

/* ============================ NAV / BRAND ============================ */
#hdr{border-bottom:1px solid color-mix(in srgb,var(--accent) 9%,var(--line))}
/* scroll-progress hairline (driven by --scrollp set in fx.js) */
#hdr::after{
  content:"";position:absolute;left:0;bottom:-1px;height:2px;
  width:calc(var(--scrollp,0)*100%);
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 55%,transparent);
  transition:width .08s linear;pointer-events:none;
}
.brand-txt{font-weight:800;letter-spacing:-.04em}
.brand-txt::after{content:".";color:var(--accent)}
.logo-mark{border-color:color-mix(in srgb,var(--accent) 28%,var(--line-2));box-shadow:0 6px 20px rgba(0,0,0,.3),inset 0 0 0 1px color-mix(in srgb,var(--accent) 8%,transparent);transition:box-shadow .25s var(--ease),transform .25s var(--ease)}
.brand:hover .logo-mark{transform:translateY(-1px) rotate(-3deg);box-shadow:0 8px 26px color-mix(in srgb,var(--accent) 22%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent)}
.logo-mark img{filter:saturate(1.06) contrast(1.03)}
.nav-links>a:not(.nav-primary){position:relative;font-weight:520}
.nav-links>a:not(.nav-primary)::after{content:"";position:absolute;left:10px;right:100%;bottom:2px;height:2px;background:var(--accent);transition:right .28s var(--ease-out);border-radius:2px}
.nav-links>a:not(.nav-primary):hover::after{right:10px}

/* ============================ BUTTONS ============================ */
.btn{
  position:relative;overflow:hidden;font-weight:800;letter-spacing:-.01em;border-radius:var(--radius-md);
  background:linear-gradient(177deg,color-mix(in srgb,var(--accent) 96%,#fff) 0%,var(--accent) 44%,color-mix(in srgb,var(--accent) 84%,#000) 100%);
  border:1px solid color-mix(in srgb,var(--accent) 55%,#fff);color:#fff;
  box-shadow:0 12px 30px -6px color-mix(in srgb,var(--accent) 32%,transparent),inset 0 1px 0 rgba(255,255,255,.42);
}
.btn::before{content:"";position:absolute;inset:0;background:linear-gradient(116deg,transparent 32%,rgba(255,255,255,.55) 50%,transparent 68%);transform:translateX(-130%);transition:transform .62s var(--ease-out);pointer-events:none}
.btn:hover::before{transform:translateX(130%)}
.btn:hover{transform:translateY(-2px);box-shadow:0 20px 44px -8px color-mix(in srgb,var(--accent) 42%,transparent),inset 0 1px 0 rgba(255,255,255,.5)}
.btn:active{transform:translateY(0) scale(.985)}
.btn.quiet{background:color-mix(in srgb,var(--surface) 60%,transparent);color:var(--ink);border-color:var(--line-2);box-shadow:var(--edge)}
.btn.quiet::before{display:none}
.btn.quiet:hover{background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));border-color:color-mix(in srgb,var(--accent) 55%,var(--line-2))}

/* ============================ SEG TOGGLES ============================ */
.seg{border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 70%,var(--bg));border-color:var(--line)}
.seg-btn{letter-spacing:.06em;transition:color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease)}
.seg-btn.active{color:var(--ink);background:var(--surface-3);box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent),0 0 18px color-mix(in srgb,var(--accent) 12%,transparent)}

/* ============================ CONSOLES = evidence panels ============================ */
.console{
  position:relative;border-radius:var(--radius-lg);border:1px solid var(--line);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 96%,transparent),color-mix(in srgb,var(--bg) 92%,transparent));
  box-shadow:var(--elev-2);
}
.console::before{content:"";position:absolute;top:0;left:14%;right:14%;height:1px;background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 55%,transparent),transparent);z-index:2}
.console-head{background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 90%,transparent),transparent);border-bottom:1px solid var(--line)}
.console-head>span{display:inline-flex;align-items:center;gap:9px}
.console-head>span::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 0 12px color-mix(in srgb,var(--accent) 70%,transparent);flex:none}

/* ============================ VERDICT = forensic stamps ============================ */
.tag{font-family:var(--mono);font-weight:700;font-size:11px;letter-spacing:.16em;text-transform:uppercase;padding:3px 10px;border-radius:var(--radius-sm);border:1px solid currentColor;line-height:1.5}
.tag.REAL{color:var(--real);background:color-mix(in srgb,var(--real) 12%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--real) 20%,transparent),inset 0 0 0 1px color-mix(in srgb,var(--real) 12%,transparent)}
.tag.MARGINAL{color:var(--marginal);background:color-mix(in srgb,var(--marginal) 12%,transparent)}
.tag.HUMO{color:var(--humo);background:color-mix(in srgb,var(--humo) 12%,transparent);box-shadow:0 0 16px color-mix(in srgb,var(--humo) 22%,transparent)}
.verdict-card{border-radius:var(--radius-lg);border-width:1px}
.verdict-card.good{border-color:color-mix(in srgb,var(--real) 48%,transparent);background:color-mix(in srgb,var(--real) 8%,var(--surface))}
.verdict-card.bad{border-color:color-mix(in srgb,var(--humo) 48%,transparent);background:color-mix(in srgb,var(--humo) 8%,var(--surface))}
.big-verdict{box-shadow:var(--edge)}
.big-verdict .bv-word{font-size:13px;letter-spacing:.2em}

/* ============================ DATA / TABLES ============================ */
#result table,.console table{font-family:var(--mono);font-variant-numeric:tabular-nums;width:100%}
#result th,.console table th{font-family:var(--mono);font-size:10px;letter-spacing:.12em;text-transform:uppercase;color:color-mix(in srgb,var(--accent) 70%,var(--ink-3));font-weight:700;text-align:left;padding:8px 10px;border-bottom:1px solid var(--line)}
#result td,.console table td{font-size:12.5px;padding:8px 10px;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
#result tr:hover td{background:color-mix(in srgb,var(--accent) 5%,transparent)}

/* ============================ HERO — the wow moment ============================ */
.hero{position:relative}
.hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
  background:radial-gradient(60% 70% at 78% 28%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 70%)}
.hero-grid{position:relative;z-index:1}
#landing-view .hero-copy h1{
  max-width:none;
  font-size:clamp(50px,6.6vw,92px);
  letter-spacing:-.045em;
  margin-bottom:20px;
}
.h1-line{display:block}
.h1-accent{
  display:block;
  font-size:1.02em;
  font-style:italic;
  line-height:1.04;
  padding-right:.08em;          /* keep the italic terminal off the clip edge */
  background:linear-gradient(94deg,var(--ink) 4%,color-mix(in srgb,var(--accent) 88%,var(--ink)) 52%,var(--accent-hi) 86%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.hero-visual img{filter:drop-shadow(0 30px 60px color-mix(in srgb,var(--accent) 26%,transparent)) drop-shadow(0 8px 18px rgba(0,0,0,.4))}
@media (prefers-reduced-motion:no-preference){
  .hero-visual img{animation:hero-float 7s var(--ease) infinite alternate}
  @keyframes hero-float{from{transform:translateY(0)}to{transform:translateY(-14px)}}
}
.url-input-shell{transition:box-shadow .22s var(--ease),border-color .22s var(--ease)}
.url-input-shell:focus-within{border-color:color-mix(in srgb,var(--accent) 60%,var(--line-2));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 14px 34px color-mix(in srgb,var(--accent) 12%,transparent)}

/* ============================ VERDICT TICKER ============================ */
.vticker{
  position:relative;overflow:hidden;
  border-top:1px solid color-mix(in srgb,var(--line-2) 50%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--line-2) 50%,transparent);
  background:color-mix(in srgb,var(--surface) 55%,transparent);
  mask-image:linear-gradient(90deg,transparent,#000 7%,#000 93%,transparent);
}
.vticker-track{
  display:inline-flex;align-items:center;width:max-content;
  padding:13px 0;white-space:nowrap;will-change:transform;
}
.vt{display:inline-flex;align-items:center;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3)}
.vt::before{content:"";width:6px;height:6px;border-radius:50%;background:var(--line-2);margin:0 26px}
.vt.REAL b{color:var(--real)} .vt.MARGINAL b{color:var(--marginal)}
.vt.HUMO b{color:var(--humo)} .vt.UNTESTABLE b{color:var(--accent-2)}
.vt.REAL::before{background:var(--real);box-shadow:0 0 10px var(--real)}
.vt.MARGINAL::before{background:var(--marginal)}
.vt.HUMO::before{background:var(--humo);box-shadow:0 0 10px var(--humo)}
.vt.UNTESTABLE::before{background:var(--accent-2)}
@media (prefers-reduced-motion:no-preference){
  .vticker-track{animation:vt-scroll 46s linear infinite}
  .vticker:hover .vticker-track{animation-play-state:paused}
  @keyframes vt-scroll{to{transform:translateX(-50%)}}
}

/* ============================ MOTION: page-load orchestration ============================ */
@keyframes fg-rise{from{opacity:0;transform:translateY(18px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion:no-preference){
  .hero-copy>*{animation:fg-rise .72s var(--ease-out) both}
  .hero-copy>.eyebrow{animation-delay:.04s}
  .hero-copy>h1{animation-delay:.12s}
  .hero-copy>.lead{animation-delay:.24s}
  .hero-copy>.hero-actions{animation-delay:.34s}
  .hero-copy>.hero-url-panel{animation-delay:.44s}
  .hero-visual{animation:fg-rise .95s var(--ease-out) both .2s}
  .vticker{animation:fg-rise .8s var(--ease-out) both .55s}
}

/* ---- scroll-reveal system (classes assigned by fx.js; no-JS stays visible) ---- */
html.fx-on .fx-r{opacity:0;transform:translateY(26px);will-change:opacity,transform}
html.fx-on .fx-r.fxv{
  opacity:1;transform:none;
  transition:opacity .7s var(--ease-out) var(--fxd,0s),transform .7s var(--ease-out) var(--fxd,0s);
}
@media (prefers-reduced-motion:reduce){
  html.fx-on .fx-r{opacity:1;transform:none;transition:none}
}

/* ---- entrance for JS-rendered cards (library/methods re-render on lang switch) ---- */
@media (prefers-reduced-motion:no-preference){
  .cards .card,.methods-cards .method-card{animation:fg-rise .55s var(--ease-out) both}
  .cards .card:nth-child(2){animation-delay:.06s}
  .cards .card:nth-child(3){animation-delay:.12s}
  .cards .card:nth-child(4){animation-delay:.18s}
  .cards .card:nth-child(5){animation-delay:.24s}
  .cards .card:nth-child(6){animation-delay:.3s}
}

/* ---- cursor spotlight on cards (fx.js sets --mx / --my) ---- */
.path-card,.price-card,.method-card,#landing-view .card,.battery-table>div{position:relative;overflow:hidden}
.path-card::after,.price-card::after,.method-card::after,
#landing-view .card::after,.battery-table>div::after{
  content:"";position:absolute;inset:0;pointer-events:none;z-index:1;
  opacity:0;transition:opacity .35s var(--ease);
  background:radial-gradient(340px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent) 7%,transparent),transparent 62%);
}
.path-card:hover::after,.price-card:hover::after,.method-card:hover::after,
#landing-view .card:hover::after,.battery-table>div:hover::after{opacity:1}

/* ============================ SECTION COMPONENTS ============================ */
/* battery table → ledger rows with oversized ghost indices */
#landing-view .battery-table{border-radius:var(--radius-lg)}
.battery-table div{transition:background .25s var(--ease)}
.battery-table span{
  font-family:var(--serif);font-style:italic;font-size:34px;font-weight:400;
  color:color-mix(in srgb,var(--accent) 55%,transparent);line-height:1;
}
.battery-table b{font-size:13px;letter-spacing:.1em}

/* path cards: huge serif ghost numerals */
.path-card{box-shadow:var(--elev-1);transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease)}
.path-card:hover{border-color:color-mix(in srgb,var(--accent) 40%,var(--line-2));box-shadow:var(--elev-2)}
.path-num{
  font-family:var(--serif);font-style:italic;font-weight:400;font-size:64px;opacity:1;
  color:color-mix(in srgb,var(--accent-2) 38%,transparent);line-height:.8;
}

/* pricing: featured card gets the glow it deserves */
#landing-view .price-card{transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease);box-shadow:var(--elev-1)}
#landing-view .price-card:hover{box-shadow:var(--elev-2)}
#landing-view .price-card.featured{box-shadow:var(--elev-2),0 0 44px -8px color-mix(in srgb,var(--accent) 22%,transparent)}
.price{font-variant-numeric:tabular-nums}

/* library cards */
#landing-view .card{box-shadow:var(--elev-1);transition:transform .25s var(--ease),border-color .25s var(--ease),box-shadow .25s var(--ease),background .25s var(--ease)}
#landing-view .card:hover{box-shadow:var(--elev-2)}
.method-card{box-shadow:var(--elev-1)}

/* story section: progress + active step glow already styled; refine the bar */
.story-progress i{box-shadow:0 0 14px color-mix(in srgb,var(--accent) 60%,transparent)}

/* ============================ FOOTER — editorial close ============================ */
footer{position:relative;overflow:hidden;padding:42px 0}
footer::before{content:"";position:absolute;top:0;left:14%;right:14%;height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 45%,transparent),transparent)}
footer::after{
  content:"travocato";position:absolute;right:-12px;bottom:-34px;pointer-events:none;
  font-family:var(--serif);font-style:italic;font-size:130px;line-height:1;
  color:color-mix(in srgb,var(--ink) 4%,transparent);white-space:nowrap;
}

/* ============================ MODAL — entrance ============================ */
.modal{backdrop-filter:blur(16px) saturate(120%)}
.modal-card{box-shadow:var(--elev-3)}
@media (prefers-reduced-motion:no-preference){
  .modal:not(.hidden) .modal-card{animation:modal-pop .34s var(--ease-out) both}
  @keyframes modal-pop{from{opacity:0;transform:translateY(18px) scale(.97)}to{opacity:1;transform:none}}
}

/* ============================================================================
   Hero mascot fully-in-view (PC) + mobile story scroll-jump fix  (functional)
   ============================================================================ */
@media (min-width:1081px){
  #landing-view .hero-visual{
    top:0;bottom:auto;transform:none;
    height:calc(100dvh - var(--nav-h));
    place-items:center;
  }
  #landing-view .hero-visual img{
    max-height:min(64vh,calc(100dvh - var(--nav-h) - 104px));
  }
}
@media (max-width:1080px){
  .story-step-img{height:auto;max-height:46vh;object-fit:contain;background:transparent}
}

/* ============================================================================
   Platform morph — typing a URL collapses the strip to that domain's logo
   (functional: .pill-on/.pill-off set by app.js)
   ============================================================================ */
.platform-strip{gap:0;--pill-gap:9px}
.platform-strip.compact{gap:0;--pill-gap:8px}
#landing-view .platform-strip{gap:0;--pill-gap:8px}
@media (max-width:760px){.platform-strip{--pill-gap:7px}}
.platform-strip .platform-pill{
  margin-left:var(--pill-gap,9px);max-width:24px;
  transition:max-width .42s var(--ease-out),margin .42s var(--ease-out),
             opacity .24s var(--ease),transform .42s var(--ease-out),filter .3s var(--ease);
}
.platform-strip .platform-pill:first-child{margin-left:0}
.platform-pill.pill-off{
  max-width:0!important;margin-left:0!important;opacity:0!important;
  transform:scale(.2)!important;overflow:hidden;pointer-events:none;
}
.platform-pill.pill-on{
  margin-left:0!important;opacity:1!important;transform:scale(1.18)!important;
  filter:drop-shadow(0 0 10px color-mix(in srgb,var(--brand) 60%,transparent))!important;
}

/* ============================================================================
   Audit engine — mascot video animation  (functional, created by app.js)
   ============================================================================ */
.audit-anim{display:flex;flex-direction:column;align-items:center;gap:12px;padding:22px 16px 6px}
.audit-screen{
  position:relative;overflow:hidden;border-radius:var(--radius-lg);
  height:clamp(196px,31vh,280px);aspect-ratio:1228/1684;
  border:1.5px solid var(--line);background:#fbfdf7;
  box-shadow:var(--elev-2);
}
.audit-video{width:100%;height:100%;object-fit:cover;display:block}
@keyframes audit-breathe{0%,100%{border-color:var(--line)}50%{border-color:color-mix(in srgb,var(--accent) 58%,var(--line))}}
.audit-anim:not(.is-complete):not(.is-error) .audit-screen{animation:audit-breathe 2.2s var(--ease) infinite}
.audit-anim.is-complete .audit-screen{border-color:color-mix(in srgb,var(--real) 60%,var(--line));border-width:2px}
.audit-anim.is-error .audit-screen{border-color:color-mix(in srgb,var(--humo) 60%,var(--line))}
.audit-scan{position:absolute;left:0;right:0;top:-24%;height:22%;pointer-events:none;
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--accent) 36%,transparent) 50%,transparent)}
@keyframes audit-scanmove{0%{transform:translateY(0)}100%{transform:translateY(620%)}}
.audit-anim:not(.is-complete):not(.is-error) .audit-scan{animation:audit-scanmove 2.6s cubic-bezier(.5,0,.5,1) infinite}
.audit-anim.is-complete .audit-scan,.audit-anim.is-error .audit-scan{display:none}
.audit-done{position:absolute;right:9px;bottom:9px;width:26px;height:26px;display:grid;place-items:center;
  border-radius:50%;background:var(--real);color:#06140a;font-size:15px;font-weight:800;line-height:1;
  opacity:0;transform:scale(.4);transition:opacity .3s var(--ease-out),transform .35s var(--ease-out)}
.audit-anim.is-complete .audit-done{opacity:1;transform:scale(1)}
.audit-anim-cap{font-family:var(--mono);font-size:11px;letter-spacing:.18em;text-transform:uppercase;
  color:color-mix(in srgb,var(--accent) 82%,var(--ink-3))}
.audit-anim.is-complete .audit-anim-cap{color:var(--real)}
.audit-anim.is-error .audit-anim-cap{color:var(--humo)}

/* live candles confined to the video area (functional, created by app.js) */
.audit-anim{position:relative}
.audit-candles{
  position:absolute;inset:0;width:100%;height:100%;z-index:0;pointer-events:none;opacity:.82;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 14%,#000 82%,transparent);
          mask-image:linear-gradient(180deg,transparent,#000 14%,#000 82%,transparent);
}
.audit-anim .audit-screen,.audit-anim .audit-anim-cap{position:relative;z-index:1}
@media (max-width:760px){
  .audit-screen{height:min(64vw,280px)}
}

/* ============================ LIGHT THEME refinements ============================ */
[data-theme="light"] .h1-accent{
  background:linear-gradient(94deg,var(--ink) 6%,color-mix(in srgb,var(--accent) 90%,var(--ink)) 58%,var(--accent) 90%);
  -webkit-background-clip:text;background-clip:text;
}
[data-theme="light"] .vticker{background:color-mix(in srgb,var(--surface) 72%,transparent)}
[data-theme="light"] footer::after{color:color-mix(in srgb,var(--ink) 6%,transparent)}
[data-theme="light"] .hero-visual img{filter:drop-shadow(0 26px 48px rgba(13,18,15,.3))}
[data-theme="light"] .bg-aurora{filter:blur(80px)}

/* ============================ REDUCED MOTION — global guard ============================ */
@media (prefers-reduced-motion:reduce){
  .eyebrow::after{animation:none}
  .btn::before{display:none}
  #hdr::after{transition:none}
}

/* ============================ RESPONSIVE polish for new pieces ============================ */
@media (max-width:760px){
  #landing-view .hero-copy h1{font-size:clamp(42px,12.5vw,60px);max-width:none}
  .battery-table span{font-size:26px}
  .path-num{font-size:48px}
  footer::after{font-size:72px;bottom:-18px}
  .vt::before{margin:0 16px}
  .story-step h3{font-size:clamp(34px,9vw,44px)}
}

/* ============================================================================
   TRAVOCATO v3.1 — GLASS & DEPTH layer
   Real glassmorphism (frosted translucent surfaces), an animated signal
   border on the conversion moments, and 3D-tilt support. Kept light:
   ~a dozen blurred surfaces on the landing, none over the live charts.
   ============================================================================ */

/* ---- the glass recipe ---- */
#landing-view .battery-table,
#landing-view .price-card,
.path-card,
.method-card,
.cta-final,
.vticker{
  background:
    linear-gradient(165deg,rgba(255,255,255,.055) 0%,rgba(255,255,255,.015) 26%,transparent 52%),
    color-mix(in srgb,var(--surface) 58%,transparent);
  backdrop-filter:blur(22px) saturate(140%);
  -webkit-backdrop-filter:blur(22px) saturate(140%);
  border:1px solid rgba(255,255,255,.075);
  box-shadow:var(--elev-2);
}
#landing-view .battery-table div{border-bottom-color:rgba(255,255,255,.05)}
.vticker{box-shadow:none;border-left:0;border-right:0;border-radius:0}

/* header → deeper glass */
body:not(.is-analyzer) #hdr{
  /* transparent wrapper — the .nav pill is the ONE visible container (no box-in-box) */
  background:transparent;
  backdrop-filter:none;
  -webkit-backdrop-filter:none;
}
/* hero url panel → heavier frost */
#landing-view .hero-url-panel{
  background:
    linear-gradient(165deg,rgba(255,255,255,.06) 0%,transparent 42%),
    color-mix(in srgb,var(--surface) 46%,transparent);
  border:1px solid rgba(255,255,255,.09);
  backdrop-filter:blur(26px) saturate(150%);
  -webkit-backdrop-filter:blur(26px) saturate(150%);
}
/* modal card → frosted pane */
.modal-card{
  background:
    linear-gradient(165deg,rgba(255,255,255,.05) 0%,transparent 38%),
    color-mix(in srgb,var(--surface) 72%,transparent);
  backdrop-filter:blur(28px) saturate(140%);
  -webkit-backdrop-filter:blur(28px) saturate(140%);
  border:1px solid rgba(255,255,255,.09);
}

/* ---- animated signal border (conversion moments only) ---- */
@property --ga{syntax:'<angle>';initial-value:0deg;inherits:false}
#landing-view .price-card.featured,
.cta-final{
  border:1px solid transparent;
  background:
    linear-gradient(165deg,rgba(255,255,255,.06) 0%,transparent 40%) padding-box,
    radial-gradient(circle at 18% 0%,color-mix(in srgb,var(--accent) 15%,transparent),transparent 42%) padding-box,
    linear-gradient(color-mix(in srgb,var(--surface) 72%,transparent),color-mix(in srgb,var(--surface) 72%,transparent)) padding-box,
    conic-gradient(from var(--ga),
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 0%,
      var(--accent) 12%,
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 26%,
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 54%,
      color-mix(in srgb,var(--accent-2) 80%,transparent) 66%,
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 80%) border-box;
}
@media (prefers-reduced-motion:no-preference){
  #landing-view .price-card.featured,
  .cta-final{animation:ga-spin 7s linear infinite}
  @keyframes ga-spin{to{--ga:360deg}}
}

/* ---- 3D tilt stage (fx.js drives the angles) ---- */
#landing-view .hero-visual{transform-style:preserve-3d;will-change:transform}
#landing-view .hero-visual img{will-change:transform}
.path-card,#landing-view .price-card{will-change:transform;transform-style:preserve-3d}

/* ============================ FINAL CTA ============================ */
.cta-section{position:relative;border-bottom:0;overflow:hidden}
.cta-section::before{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(54% 64% at 50% 8%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 72%);
}
.cta-final{
  position:relative;text-align:center;
  padding:clamp(52px,7vw,88px) clamp(22px,5vw,64px);
  border-radius:var(--radius-xl);
}
.cta-final h2{font-size:clamp(42px,5.6vw,76px);margin:14px 0 0}
.cta-final h2 span{display:block}
.cta-final h2 em{
  display:block;
  font-family:var(--serif);font-style:italic;font-weight:400;
  font-size:1.02em;line-height:1.06;padding-right:.08em;
  background:linear-gradient(94deg,var(--ink) 4%,color-mix(in srgb,var(--accent) 88%,var(--ink)) 52%,var(--accent-hi) 86%);
  -webkit-background-clip:text;background-clip:text;
  -webkit-text-fill-color:transparent;color:transparent;
}
.cta-final p{max-width:56ch;margin:18px auto 28px;color:var(--ink-2);font-size:17px;line-height:1.68}
.cta-final .eyebrow{justify-content:center}
.cta-btns{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:30px}

/* ============================ LIGHT THEME glass ============================ */
[data-theme="light"] #landing-view .battery-table,
[data-theme="light"] #landing-view .price-card,
[data-theme="light"] .path-card,
[data-theme="light"] .method-card,
[data-theme="light"] .cta-final,
[data-theme="light"] .vticker{
  background:
    linear-gradient(165deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,.3) 44%),
    color-mix(in srgb,var(--surface) 56%,transparent);
  border-color:rgba(255,255,255,.65);
}
[data-theme="light"] #landing-view .battery-table div{border-bottom-color:color-mix(in srgb,var(--line) 70%,transparent)}
[data-theme="light"] body:not(.is-analyzer) #hdr{background:transparent}
[data-theme="light"] #landing-view .hero-url-panel{
  background:
    linear-gradient(165deg,rgba(255,255,255,.85) 0%,rgba(255,255,255,.45) 50%),
    color-mix(in srgb,var(--surface) 40%,transparent);
  border-color:rgba(255,255,255,.8);
}
[data-theme="light"] .modal-card{
  background:
    linear-gradient(165deg,rgba(255,255,255,.88) 0%,rgba(255,255,255,.6) 46%),
    color-mix(in srgb,var(--surface) 60%,transparent);
  border-color:rgba(255,255,255,.85);
}
[data-theme="light"] #landing-view .price-card.featured,
[data-theme="light"] .cta-final{
  border:1px solid transparent;
  background:
    linear-gradient(165deg,rgba(255,255,255,.82) 0%,rgba(255,255,255,.5) 46%) padding-box,
    linear-gradient(color-mix(in srgb,var(--surface) 66%,transparent),color-mix(in srgb,var(--surface) 66%,transparent)) padding-box,
    conic-gradient(from var(--ga),
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 0%,
      var(--accent) 12%,
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 26%,
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 54%,
      var(--accent-2) 66%,
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 80%) border-box;
}

/* ============================ PERFORMANCE GUARDS ============================ */
/* no blur stacking on small/weak devices — frosted look via solid surfaces */
@media (max-width:760px){
  #landing-view .battery-table,
  #landing-view .price-card,
  .path-card,
  .method-card,
  .vticker{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.05) 0%,transparent 40%),
      color-mix(in srgb,var(--surface) 94%,transparent);
  }
  [data-theme="light"] #landing-view .battery-table,
  [data-theme="light"] #landing-view .price-card,
  [data-theme="light"] .path-card,
  [data-theme="light"] .method-card,
  [data-theme="light"] .vticker{
    background:
      linear-gradient(165deg,rgba(255,255,255,.8) 0%,rgba(255,255,255,.45) 50%),
      var(--surface);
  }
  .cta-final{backdrop-filter:none;-webkit-backdrop-filter:none}
  .cta-final h2{font-size:clamp(36px,10vw,52px)}
}
@supports not (backdrop-filter:blur(1px)){
  #landing-view .battery-table,#landing-view .price-card,.path-card,.method-card,
  .cta-final,.vticker,.modal-card,#landing-view .hero-url-panel{
    background:color-mix(in srgb,var(--surface) 96%,transparent);
  }
}

/* ============================================================================
   TRAVOCATO v4 — "OBSIDIAN TERMINAL"
   The forensic trading terminal, made literal: HUD typography (Space Grotesk /
   JetBrains Mono), a floating glass command bar,
   crystal-grade glassmorphism over a vivid aurora, interactive smoke in the
   hero, and a typed system log. Appended last — overrides v3/v3.1 styling
   without touching any functional selector.
   ============================================================================ */

/* ============================ TYPOGRAPHY — terminal voice ============================ */
body{font-feature-settings:normal;letter-spacing:0;font-weight:400}
h1,h2,h3,h4{font-family:var(--display);font-weight:700;letter-spacing:-.01em;line-height:1.05;text-wrap:balance}
h2{font-size:clamp(26px,3.5vw,46px)}
h3{font-size:20px;font-weight:600;letter-spacing:0}
.lead{font-family:var(--font);font-weight:400;letter-spacing:0;font-size:17px}
#landing-view .hero-copy h1{font-size:clamp(40px,5.5vw,76px);letter-spacing:-.015em;line-height:1.03}
.h1-accent{font-style:normal;font-weight:700;line-height:1.06;padding-right:.05em}
.story-step h3{font-family:var(--display);font-style:normal;font-weight:600;font-size:clamp(26px,3.2vw,44px);line-height:1.1;max-width:none}
.modal-title{font-family:var(--display);font-size:clamp(24px,3.6vw,34px);line-height:1.12}
.price-card h3{font-family:var(--display);font-style:normal;font-weight:600;font-size:22px;letter-spacing:.04em;text-transform:uppercase}
.cta-final h2 em{font-family:var(--display);font-style:normal;font-weight:700;line-height:1.14}
.cta-final h2{font-size:clamp(36px,4.8vw,64px);line-height:1.12}
.eyebrow{font-weight:500}
.battery-table span{
  font-family:var(--mono);font-style:normal;font-weight:300;font-size:28px;
  letter-spacing:0;font-variant-numeric:tabular-nums;
  color:color-mix(in srgb,var(--accent) 52%,transparent);
}
.path-num{
  font-family:var(--mono);font-style:normal;font-weight:300;font-size:52px;
  font-variant-numeric:tabular-nums;
  color:color-mix(in srgb,var(--accent-2) 38%,transparent);
}
footer::after{
  font-family:var(--display);font-style:normal;font-weight:700;
  font-size:112px;letter-spacing:.06em;text-transform:uppercase;
  color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--ink) 14%,transparent);
  right:-8px;bottom:-26px;
}
.brand-txt{font-family:var(--display);font-weight:600;font-size:18px;letter-spacing:.005em}

/* ============================ COMMAND BAR — the nav, rebuilt ============================ */
body #hdr{
  background:transparent;border-bottom:0;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;
  padding:14px 0 10px;
}
body #hdr.scrolled{background:transparent;border-color:transparent;box-shadow:none}
body #hdr::after{display:none}
body .nav{
  position:relative;overflow:hidden;
  min-height:58px;padding:0 12px 0 16px;
  border-radius:var(--radius-xl);
  border:1px solid rgba(255,255,255,.1);
  border-top-color:rgba(255,255,255,.2);
  background:
    linear-gradient(120deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.015) 36%,rgba(255,255,255,.005) 64%,rgba(255,255,255,.06) 100%),
    color-mix(in srgb,var(--bg) 50%,transparent);
  backdrop-filter:blur(28px) saturate(190%) brightness(1.1);
  -webkit-backdrop-filter:blur(28px) saturate(190%) brightness(1.1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -1px 0 rgba(0,0,0,.3),
    0 22px 50px -18px rgba(0,0,0,.6);
  transition:background .3s var(--ease),box-shadow .3s var(--ease);
}
body #hdr.scrolled .nav{
  background:
    linear-gradient(120deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.01) 38%,rgba(255,255,255,.05) 100%),
    color-mix(in srgb,var(--bg) 76%,transparent);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(0,0,0,.3),
    0 26px 56px -16px rgba(0,0,0,.7);
}
/* scroll progress lives inside the pill (inherits --scrollp from #hdr) */
body .nav::after{
  content:"";position:absolute;left:0;bottom:0;height:2px;
  width:calc(var(--scrollp,0)*100%);
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 55%,transparent);
  pointer-events:none;
}
[data-theme="light"] body .nav{
  border:1px solid rgba(13,18,15,.08);
  border-top-color:rgba(255,255,255,.95);
  background:
    linear-gradient(120deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.6) 50%,rgba(255,255,255,.82) 100%),
    color-mix(in srgb,#ffffff 40%,transparent);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 18px 44px -18px rgba(13,18,15,.2),
    0 1px 0 rgba(13,18,15,.03);
}
[data-theme="light"] body #hdr.scrolled .nav{
  background:
    linear-gradient(120deg,rgba(255,255,255,.96) 0%,rgba(255,255,255,.78) 50%,rgba(255,255,255,.9) 100%),
    color-mix(in srgb,#ffffff 60%,transparent);
}
/* full-width top bar — #hdr paints the bar edge-to-edge and the .nav is just the
   centered content row (no floating pill). One decisive block (late in source)
   so it wins the older command-bar/pill layers, incl. the scrolled state. */
body:not(.is-analyzer) #hdr{
  padding:0;
  background:color-mix(in srgb,var(--bg) 86%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--line) 92%,transparent);
  backdrop-filter:blur(20px) saturate(160%);
  -webkit-backdrop-filter:blur(20px) saturate(160%);
  box-shadow:none;
}
[data-theme="light"] body:not(.is-analyzer) #hdr{
  background:color-mix(in srgb,#ffffff 88%,transparent);
  border-bottom-color:color-mix(in srgb,var(--line) 92%,transparent);
}
body:not(.is-analyzer) #hdr.scrolled{
  background:color-mix(in srgb,var(--bg) 94%,transparent);
  box-shadow:0 10px 30px -18px rgba(0,0,0,.5);
}
[data-theme="light"] body:not(.is-analyzer) #hdr.scrolled{
  background:color-mix(in srgb,#ffffff 95%,transparent);
  box-shadow:0 12px 30px -20px rgba(13,18,15,.16);
}
/* strip the pill from .nav in every state — it is now the content row inside the bar */
body:not(.is-analyzer) .wrap.nav,
body:not(.is-analyzer) #hdr.scrolled .wrap.nav{
  background:none;border:0;border-radius:0;box-shadow:none;
  backdrop-filter:none;-webkit-backdrop-filter:none;overflow:visible;
  min-height:var(--nav-h);padding:0 28px;   /* align content with the page .wrap column */
}
@media (max-width:760px){ body:not(.is-analyzer) .wrap.nav{padding:0 18px} }

/* module links: indexed, mono, uppercase */
body .nav-links>a:not(.nav-primary){
  font-family:var(--mono);font-size:11px;font-weight:500;
  letter-spacing:.13em;text-transform:uppercase;color:var(--ink-2);
}
body .nav-links>a:not(.nav-primary):hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 5%,transparent)}
body .nav-links>a[data-i]::before{
  content:attr(data-i);
  content:attr(data-i) / "";        /* keeps the number out of the accessible name */
  margin-right:7px;font-size:10px;font-family:var(--mono);
  color:var(--accent);opacity:.95;
}
[data-theme="light"] body .nav-links>a[data-i]::before{color:#2f7c10}
body .nav-primary{border-radius:var(--radius-md)}

/* ============================ AURORA — vivid fuel for the glass ============================ */
.bg-aurora{filter:blur(72px)}
.au-1{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 24%,transparent),transparent 70%)}
.au-2{background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 19%,transparent),transparent 70%)}
.au-3{background:radial-gradient(circle,color-mix(in srgb,#7affc4 13%,transparent),transparent 72%)}
[data-theme="light"] .bg-aurora{filter:blur(84px)}
[data-theme="light"] .au-1{background:radial-gradient(circle,color-mix(in srgb,#7ed957 34%,transparent),transparent 70%)}
[data-theme="light"] .au-2{background:radial-gradient(circle,color-mix(in srgb,#5bd1ff 28%,transparent),transparent 70%)}
[data-theme="light"] .au-3{background:radial-gradient(circle,color-mix(in srgb,#b6f29b 24%,transparent),transparent 72%)}

/* ============================ GLASS v2 — crystal, not haze ============================ */
/* the recipe: cold gradient film + deep blur/saturation + refraction edges   */
#landing-view .battery-table,
#landing-view .price-card:not(.featured),
.path-card,
.method-card,
#landing-view .hero-url-panel,
.modal-card{
  background:
    linear-gradient(118deg,rgba(255,255,255,.11) 0%,rgba(255,255,255,.02) 34%,rgba(255,255,255,.01) 62%,rgba(255,255,255,.07) 100%),
    color-mix(in srgb,var(--surface) 34%,transparent);
  backdrop-filter:blur(30px) saturate(200%) brightness(1.14);
  -webkit-backdrop-filter:blur(30px) saturate(200%) brightness(1.14);
  border:1px solid rgba(255,255,255,.12);
  border-top-color:rgba(255,255,255,.22);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    inset 0 -1px 0 rgba(0,0,0,.32),
    0 30px 70px -24px rgba(0,0,0,.65),
    0 8px 22px -10px rgba(0,0,0,.4);
}
/* conversion moments keep the animated signal border, now over crystal */
#landing-view .price-card.featured,
.cta-final{
  border:1px solid transparent;
  /* a raw color is only valid in the LAST bg layer — wrap it in a gradient */
  background:
    linear-gradient(118deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.02) 40%,rgba(255,255,255,.07) 100%) padding-box,
    linear-gradient(color-mix(in srgb,var(--surface) 42%,transparent),color-mix(in srgb,var(--surface) 42%,transparent)) padding-box,
    conic-gradient(from var(--ga),
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 0%,
      var(--accent) 12%,
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 26%,
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 54%,
      color-mix(in srgb,var(--accent-2) 80%,transparent) 66%,
      color-mix(in srgb,var(--accent) 18%,var(--line-2)) 80%) border-box;
  backdrop-filter:blur(30px) saturate(200%) brightness(1.14);
  -webkit-backdrop-filter:blur(30px) saturate(200%) brightness(1.14);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.2),
    inset 0 -1px 0 rgba(0,0,0,.3),
    0 30px 70px -24px rgba(0,0,0,.6);
}
/* glare follows the cursor (white sheen — the "real crystal" tell) */
.path-card::after,.price-card::after,.method-card::after,
#landing-view .card::after,.battery-table>div::after{
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.09),transparent 62%);
}

/* light theme: frosted white panes over the pastel aurora */
[data-theme="light"] #landing-view .battery-table,
[data-theme="light"] #landing-view .price-card:not(.featured),
[data-theme="light"] .path-card,
[data-theme="light"] .method-card,
[data-theme="light"] #landing-view .hero-url-panel,
[data-theme="light"] .modal-card{
  background:
    linear-gradient(118deg,rgba(255,255,255,.86) 0%,rgba(255,255,255,.46) 48%,rgba(255,255,255,.72) 100%),
    color-mix(in srgb,#ffffff 28%,transparent);
  backdrop-filter:blur(26px) saturate(170%);
  -webkit-backdrop-filter:blur(26px) saturate(170%);
  border:1px solid rgba(255,255,255,.92);
  box-shadow:
    inset 0 1px 0 #ffffff,
    inset 0 -1px 0 rgba(13,18,15,.05),
    0 24px 60px -24px rgba(13,18,15,.22),
    0 1px 0 rgba(13,18,15,.04);
}
[data-theme="light"] #landing-view .price-card.featured,
[data-theme="light"] .cta-final{
  border:1px solid transparent;
  background:
    linear-gradient(118deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.58) 48%,rgba(255,255,255,.78) 100%) padding-box,
    linear-gradient(rgba(255,255,255,.4),rgba(255,255,255,.4)) padding-box,
    conic-gradient(from var(--ga),
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 0%,
      var(--accent) 12%,
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 26%,
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 54%,
      var(--accent-2) 66%,
      color-mix(in srgb,var(--accent) 30%,var(--line-2)) 80%) border-box;
  backdrop-filter:blur(26px) saturate(170%);
  -webkit-backdrop-filter:blur(26px) saturate(170%);
  box-shadow:inset 0 1px 0 #ffffff,0 24px 60px -24px rgba(13,18,15,.2);
}
[data-theme="light"] .path-card::after,[data-theme="light"] .price-card::after,
[data-theme="light"] .method-card::after,[data-theme="light"] .battery-table>div::after{
  background:radial-gradient(380px circle at var(--mx,50%) var(--my,50%),color-mix(in srgb,var(--accent) 8%,transparent),transparent 60%);
}

/* ============================ HERO — smoke chamber ============================ */
#landing-view .hero{cursor:crosshair}
#smoke-fx{
  position:absolute;inset:0;width:100%;height:100%;
  z-index:2;pointer-events:none;
  mix-blend-mode:screen;opacity:.92;
}
[data-theme="light"] #smoke-fx{mix-blend-mode:multiply;opacity:.42}

/* typed system log under the lead */
.hero-syslog{
  display:flex;align-items:center;gap:3px;
  margin-top:16px;min-height:18px;
  font-family:var(--mono);font-size:12px;font-weight:500;letter-spacing:.04em;
  color:color-mix(in srgb,var(--accent) 72%,var(--ink-2));
}
.sl-caret{display:inline-block;width:7px;height:13px;flex:none;background:var(--accent)}
@media (prefers-reduced-motion:no-preference){
  .sl-caret{animation:fg-blink 1.1s steps(1) infinite}
  .hero-copy>.hero-syslog{animation-delay:.3s}
}

/* HUD corner brackets on the URL panel */
#landing-view .hero-url-panel::before,
#landing-view .hero-url-panel::after{
  content:"";position:absolute;width:16px;height:16px;pointer-events:none;z-index:2;
}
#landing-view .hero-url-panel::before{
  top:-1px;left:-1px;
  border-top:2px solid var(--accent);border-left:2px solid var(--accent);
  border-top-left-radius:10px;
}
#landing-view .hero-url-panel::after{
  bottom:-1px;right:-1px;
  border-bottom:2px solid var(--accent);border-right:2px solid var(--accent);
  border-bottom-right-radius:10px;
}

/* ============================ RESPONSIVE + GUARDS (must stay last) ============================ */
@media (max-width:760px){
  #smoke-fx{display:none}
  #landing-view .hero-copy h1{font-size:clamp(38px,11vw,54px)}
  .story-step h3{font-size:clamp(24px,6.6vw,32px)}
  .battery-table span{font-size:22px}
  .path-num{font-size:42px}
  footer::after{font-size:58px;bottom:-14px}
  .cta-final h2{font-size:clamp(30px,9vw,44px)}
  /* no blur stacking on small/weak devices */
  body .nav{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:color-mix(in srgb,var(--bg) 97%,transparent);
  }
  [data-theme="light"] body .nav{background:rgba(255,255,255,.97)}
  #landing-view .battery-table,
  #landing-view .price-card:not(.featured),
  .path-card,
  .method-card,
  #landing-view .hero-url-panel,
  .vticker{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.05) 0%,transparent 40%),
      color-mix(in srgb,var(--surface) 94%,transparent);
  }
  [data-theme="light"] #landing-view .battery-table,
  [data-theme="light"] #landing-view .price-card:not(.featured),
  [data-theme="light"] .path-card,
  [data-theme="light"] .method-card,
  [data-theme="light"] #landing-view .hero-url-panel,
  [data-theme="light"] .vticker{
    background:
      linear-gradient(165deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.6) 50%),
      var(--surface);
  }
  /* conic-border surfaces: drop the blur but KEEP the animated signal border */
  /* the ::before signal ring stays (cheap) — only the blur goes */
  #landing-view .price-card.featured,
  .cta-final{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.05) 0%,transparent 40%),
      color-mix(in srgb,var(--surface) 94%,transparent);
  }
  [data-theme="light"] #landing-view .price-card.featured,
  [data-theme="light"] .cta-final{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.6) 50%),
      var(--surface);
  }
}
@supports not (backdrop-filter:blur(1px)){
  body .nav{background:color-mix(in srgb,var(--bg) 96%,transparent)}
  #landing-view .battery-table,#landing-view .price-card,.path-card,.method-card,
  .cta-final,.vticker,.modal-card,#landing-view .hero-url-panel{
    background:color-mix(in srgb,var(--surface) 96%,transparent);
  }
}

/* command bar on small screens: one compact row, no dead space */
@media (max-width:760px){
  body #hdr{padding:10px 0 6px}
  body .nav{
    align-items:center;min-height:52px;padding:5px 6px 5px 8px;
    flex-wrap:nowrap;gap:8px;border-radius:var(--radius-lg);
  }
  body .nav-links{flex-wrap:nowrap;gap:5px}
  body .nav-primary{min-height:38px;padding:8px 12px;font-size:12.5px}
  body .seg-btn{min-height:30px;padding:5px 8px}
  body .icon-btn{width:36px;height:36px}
  body .logo-mark{width:36px;height:36px;border-radius:var(--radius)}
}
@media (max-width:470px){
  body .brand-txt{display:none}
}

/* ============================================================================
   TRAVOCATO v4.1 — LIQUID TERMINAL
   The landing IS a trading workspace: a clean canvas with a TradingView-style
   grid running edge to edge, zero color wash, and LIQUID GLASS panels — clear
   lenses with rim light and low blur so the grid visibly passes underneath.
   Plus a chart crosshair that ties the cursor to the price/time axes.
   ============================================================================ */

/* ---- 1) the workspace: clean canvas + neutral grid, no diffuse green ---- */
:root{
  --gridline:rgba(255,255,255,.072);
  --gridline-2:rgba(255,255,255,.03);
}
[data-theme="light"]{
  --gridline:rgba(13,18,15,.082);
  --gridline-2:rgba(13,18,15,.036);
}
body{background:var(--bg)}
.bg-aurora{display:none}
#bg-candles{display:none}   /* the old fullscreen candle wash WAS the diffuse green */
.terminal-grid-bg{
  background:
    linear-gradient(90deg,var(--gridline) 1px,transparent 1px),
    linear-gradient(180deg,var(--gridline) 1px,transparent 1px),
    linear-gradient(90deg,var(--gridline-2) 1px,transparent 1px),
    linear-gradient(180deg,var(--gridline-2) 1px,transparent 1px);
  background-size:112px 112px,112px 112px,28px 28px,28px 28px;
  -webkit-mask-image:none;mask-image:none;
}

/* nothing covers the grid anymore — the "upper container" is gone */
#landing-view .section{background:transparent}
.story-section,#landing-view .story-section{background:transparent}
.hero::before{display:none}
#landing-view .hero{background:transparent}
#landing-view .hero::before{display:none}
.cta-section::before{display:none}

/* ---- 2) the mascot stands clean: no halo, no glow, no floor shadow ---- */
.hero-visual::before,.hero-visual::after{display:none}
.hero-visual img,
#landing-view .hero-visual img,
[data-theme="light"] .hero-visual img{filter:none}

/* ---- 3) LIQUID GLASS — a clear lens, not frost ----
   low blur keeps the grid legible through the pane; rim light top /
   shade bottom fakes the refractive edge; cursor glare = the specular */
#landing-view .battery-table,
#landing-view .price-card:not(.featured),
.path-card,
.method-card,
#landing-view .hero-url-panel{
  border-radius:var(--radius-xl);
  background:linear-gradient(120deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.018) 36%,rgba(255,255,255,.006) 62%,rgba(255,255,255,.055) 100%);
  backdrop-filter:blur(7px) saturate(1.35) brightness(1.07);
  -webkit-backdrop-filter:blur(7px) saturate(1.35) brightness(1.07);
  border:1px solid rgba(255,255,255,.17);
  border-bottom-color:rgba(255,255,255,.06);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.3),
    inset 0 -1px 1px rgba(0,0,0,.42),
    inset 1px 0 1px -.5px rgba(255,255,255,.1),
    inset -1px 0 1px -.5px rgba(255,255,255,.05),
    inset 0 0 24px rgba(255,255,255,.02),
    0 22px 48px -22px rgba(0,0,0,.55);
}
#landing-view .battery-table div{border-bottom-color:rgba(255,255,255,.06)}
/* modal keeps more body — it sits over arbitrary content */
.modal-card{
  border-radius:var(--radius-xl);
  background:
    linear-gradient(120deg,rgba(255,255,255,.08) 0%,rgba(255,255,255,.02) 50%,rgba(255,255,255,.05) 100%),
    color-mix(in srgb,var(--surface) 80%,transparent);
  backdrop-filter:blur(16px) saturate(1.4);
  -webkit-backdrop-filter:blur(16px) saturate(1.4);
  border:1px solid rgba(255,255,255,.16);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.26),inset 0 -1px 1px rgba(0,0,0,.4),0 34px 80px -28px rgba(0,0,0,.7);
}
/* conversion moments: signal ring around the clear lens.
   The ring lives on a masked ::before (1.5px) — a conic border-box layer
   on the element itself would flood the now-transparent liquid body. */
#landing-view .price-card.featured,
.cta-final{
  border:1px solid rgba(255,255,255,.08);
  border-radius:var(--radius-xl);
  background:linear-gradient(120deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.02) 40%,rgba(255,255,255,.006) 64%,rgba(255,255,255,.06) 100%);
  backdrop-filter:blur(7px) saturate(1.35) brightness(1.07);
  -webkit-backdrop-filter:blur(7px) saturate(1.35) brightness(1.07);
  box-shadow:
    inset 0 1px 1px rgba(255,255,255,.28),
    inset 0 -1px 1px rgba(0,0,0,.4),
    0 22px 48px -22px rgba(0,0,0,.55);
}
#landing-view .price-card.featured::before,
.cta-final::before{
  content:"";position:absolute;inset:-1px;z-index:2;pointer-events:none;
  border-radius:inherit;padding:1.5px;
  background:conic-gradient(from var(--ga),
    color-mix(in srgb,var(--accent) 18%,var(--line-2)) 0%,
    var(--accent) 12%,
    color-mix(in srgb,var(--accent) 18%,var(--line-2)) 26%,
    color-mix(in srgb,var(--accent) 18%,var(--line-2)) 54%,
    color-mix(in srgb,var(--accent-2) 80%,transparent) 66%,
    color-mix(in srgb,var(--accent) 18%,var(--line-2)) 80%);
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
  -webkit-mask-composite:xor;
          mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);
          mask-composite:exclude;
}
/* the specular glare is sharper on a lens than on frost */
.path-card::after,.price-card::after,.method-card::after,
#landing-view .card::after,.battery-table>div::after{
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.16),rgba(255,255,255,.05) 38%,transparent 60%);
}

/* the command bar becomes a liquid lens too */
body .nav{
  background:linear-gradient(120deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.02) 40%,rgba(255,255,255,.06) 100%);
  backdrop-filter:blur(10px) saturate(1.4) brightness(1.08);
  -webkit-backdrop-filter:blur(10px) saturate(1.4) brightness(1.08);
  border:1px solid rgba(255,255,255,.16);
  border-bottom-color:rgba(255,255,255,.07);
  box-shadow:inset 0 1px 1px rgba(255,255,255,.28),inset 0 -1px 1px rgba(0,0,0,.38),0 16px 40px -18px rgba(0,0,0,.5);
}
body #hdr.scrolled .nav{
  background:
    linear-gradient(120deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.02) 42%,rgba(255,255,255,.05) 100%),
    color-mix(in srgb,var(--bg) 62%,transparent);
}
/* the verdict ticker: a thin liquid band */
.vticker{background:transparent;backdrop-filter:blur(5px) saturate(1.2);-webkit-backdrop-filter:blur(5px) saturate(1.2)}

/* ============================================================================
   v5.14 - Scroll audit synced timeline
   Desktop turns the audit story into one sticky stage: the scroll position drives
   the active copy, the visual, and the progress rail together.
   ============================================================================ */
@media (min-width:1081px){
  #landing-view #story.story-section{
    --story-count:4;
    --story-progress:0;
    position:relative;
    min-height:calc((var(--story-count) + 1) * 100vh);
    padding:0;
    display:block;
  }
  #landing-view #story .story-grid{
    position:sticky;
    top:calc(var(--nav-h) + 14px);
    min-height:calc(100dvh - var(--nav-h) - 28px);
    align-items:center;
    gap:clamp(38px,5vw,72px);
  }
  #landing-view #story .story-copy{
    align-self:center;
    padding:0;
  }
  #landing-view #story .story-copy h2{
    max-width:15ch;
    margin-bottom:clamp(20px,4vh,34px);
  }
  #landing-view #story .story-steps{
    position:relative;
    display:block;
    min-height:clamp(300px,40vh,390px);
    padding-left:clamp(16px,1.8vw,24px);
  }
  #landing-view #story .story-steps::before,
  #landing-view #story .story-steps::after{
    content:"";
    position:absolute;
    left:0;
    top:16px;
    bottom:16px;
    width:1px;
    border-radius:var(--radius-pill);
    pointer-events:none;
  }
  #landing-view #story .story-steps::before{
    background:color-mix(in srgb,var(--line-2) 44%,transparent);
  }
  #landing-view #story .story-steps::after{
    bottom:auto;
    height:calc((100% - 32px) * var(--story-progress,0));
    background:linear-gradient(180deg,var(--accent),var(--accent-2));
    box-shadow:0 0 18px color-mix(in srgb,var(--accent) 42%,transparent);
  }
  #landing-view #story .story-step,
  #landing-view #story .story-step:last-child{
    position:absolute;
    inset:0;
    min-height:0;
    padding:clamp(18px,2.2vw,30px) 0 clamp(18px,2.2vw,30px) clamp(16px,1.8vw,24px);
    border:0;
    opacity:0;
    transform:translateY(34px) scale(.985);
    filter:blur(1px);
    pointer-events:none;
    justify-content:center;
    transition:
      opacity .18s var(--ease),
      transform .42s var(--ease),
      filter .28s var(--ease);
  }
  #landing-view #story .story-step.active{
    opacity:1;
    transform:translateY(0) scale(1);
    filter:none;
    pointer-events:auto;
    background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,transparent),transparent 68%);
    box-shadow:none;
  }
  #landing-view #story .story-step.is-prev{
    opacity:0;
    transform:translateY(-30px) scale(.98);
    filter:none;
  }
  #landing-view #story .story-step.is-next{
    opacity:0;
    transform:translateY(30px) scale(.98);
    filter:none;
  }
  #landing-view #story .story-step span{
    display:inline-flex;
    width:max-content;
    min-width:34px;
    height:24px;
    align-items:center;
    justify-content:center;
    border-radius:var(--radius-pill);
    background:color-mix(in srgb,var(--accent) 9%,transparent);
    border:1px solid color-mix(in srgb,var(--accent) 20%,transparent);
    color:var(--accent);
  }
  #landing-view #story .story-step h3{
    max-width:13ch;
  }
  #landing-view #story .story-step p{
    max-width:48ch;
  }
  #landing-view #story .story-visual{
    position:relative;
    top:auto;
    align-self:center;
    min-height:clamp(480px,calc(100dvh - var(--nav-h) - 72px),680px);
  }
  #landing-view #story .story-visual::before{
    width:min(74%,430px);
    filter:blur(24px);
    opacity:.72;
  }
  #landing-view #story .story-visual img{
    max-height:min(72vh,620px);
    will-change:opacity,transform;
  }
  #landing-view #story .story-progress{
    bottom:clamp(18px,4vh,34px);
    width:min(420px,72%);
    height:3px;
    background:color-mix(in srgb,var(--line-2) 48%,transparent);
  }
  #landing-view #story .story-progress i{
    width:100%;
    transform-origin:left center;
    transform:scaleX(var(--story-progress,0));
    transition:transform .12s linear;
    will-change:transform;
  }
}
@media (min-width:1081px) and (prefers-reduced-motion:reduce){
  #landing-view #story .story-step,
  #landing-view #story .story-visual img,
  #landing-view #story .story-progress i{
    transition:none;
  }
}

/* ---- light theme: white liquid over the drafting grid ---- */
[data-theme="light"] #landing-view .battery-table,
[data-theme="light"] #landing-view .price-card:not(.featured),
[data-theme="light"] .path-card,
[data-theme="light"] .method-card,
[data-theme="light"] #landing-view .hero-url-panel{
  background:linear-gradient(120deg,rgba(255,255,255,.74) 0%,rgba(255,255,255,.4) 46%,rgba(255,255,255,.62) 100%);
  backdrop-filter:blur(7px) saturate(1.18);
  -webkit-backdrop-filter:blur(7px) saturate(1.18);
  border:1px solid rgba(255,255,255,.95);
  box-shadow:
    inset 0 1px 0 #ffffff,
    inset 0 -1px 1px rgba(13,18,15,.07),
    0 0 0 1px rgba(13,18,15,.045),
    0 16px 38px -20px rgba(13,18,15,.16);
}
[data-theme="light"] .modal-card{
  background:
    linear-gradient(120deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,.45) 50%) ,
    rgba(255,255,255,.86);
  backdrop-filter:blur(16px) saturate(1.2);
  -webkit-backdrop-filter:blur(16px) saturate(1.2);
  border:1px solid rgba(255,255,255,.95);
  box-shadow:inset 0 1px 0 #fff,0 0 0 1px rgba(13,18,15,.05),0 34px 80px -30px rgba(13,18,15,.3);
}
[data-theme="light"] #landing-view .price-card.featured,
[data-theme="light"] .cta-final{
  border:1px solid rgba(255,255,255,.9);
  background:linear-gradient(120deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.46) 46%,rgba(255,255,255,.66) 100%);
  backdrop-filter:blur(7px) saturate(1.18);
  -webkit-backdrop-filter:blur(7px) saturate(1.18);
  box-shadow:inset 0 1px 0 #ffffff,0 16px 38px -20px rgba(13,18,15,.16);
}
[data-theme="light"] #landing-view .price-card.featured::before,
[data-theme="light"] .cta-final::before{
  background:conic-gradient(from var(--ga),
    color-mix(in srgb,var(--accent) 30%,var(--line-2)) 0%,
    var(--accent) 12%,
    color-mix(in srgb,var(--accent) 30%,var(--line-2)) 26%,
    color-mix(in srgb,var(--accent) 30%,var(--line-2)) 54%,
    var(--accent-2) 66%,
    color-mix(in srgb,var(--accent) 30%,var(--line-2)) 80%);
}
[data-theme="light"] body .nav{
  background:linear-gradient(120deg,rgba(255,255,255,.7) 0%,rgba(255,255,255,.42) 46%,rgba(255,255,255,.6) 100%);
  backdrop-filter:blur(10px) saturate(1.2);
  -webkit-backdrop-filter:blur(10px) saturate(1.2);
  border:1px solid rgba(255,255,255,.95);
  box-shadow:inset 0 1px 0 #ffffff,0 0 0 1px rgba(13,18,15,.05),0 14px 36px -18px rgba(13,18,15,.18);
}
[data-theme="light"] body #hdr.scrolled .nav{
  background:
    linear-gradient(120deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.55) 46%,rgba(255,255,255,.7) 100%),
    rgba(255,255,255,.55);
}
[data-theme="light"] .path-card::after,[data-theme="light"] .price-card::after,
[data-theme="light"] .method-card::after,[data-theme="light"] .battery-table>div::after{
  background:radial-gradient(240px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.95),rgba(255,255,255,.35) 40%,transparent 62%);
}
[data-theme="light"] .vticker{background:rgba(255,255,255,.4)}

/* ---- 4) chart crosshair: the cursor meets the axes (price right, time below) ---- */
#landing-view .hero{cursor:crosshair}
.xhair{position:absolute;inset:0;z-index:3;pointer-events:none;opacity:0;transition:opacity .22s var(--ease)}
#landing-view .hero.xh-on .xhair{opacity:1}
.xh-v,.xh-h{position:absolute}
.xh-v{
  top:0;bottom:0;left:0;width:1px;
  transform:translateX(var(--xhx,-200px));
  background:repeating-linear-gradient(180deg,color-mix(in srgb,var(--ink) 30%,transparent) 0 5px,transparent 5px 10px);
}
.xh-h{
  left:0;right:0;top:0;height:1px;
  transform:translateY(var(--xhy,-200px));
  background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--ink) 30%,transparent) 0 5px,transparent 5px 10px);
}
.xh-dot{
  position:absolute;left:0;top:0;width:7px;height:7px;border-radius:50%;
  transform:translate(var(--xhx,-200px),var(--xhy,-200px)) translate(-50%,-50%);
  background:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 22%,transparent),0 0 14px color-mix(in srgb,var(--accent) 65%,transparent);
}
.xh-price,.xh-time{
  position:absolute;
  font-family:var(--mono);font-size:11px;font-weight:600;letter-spacing:.02em;
  font-variant-numeric:tabular-nums;line-height:1;
  padding:5px 8px;border-radius:var(--radius-sm);
  background:var(--ink);color:var(--bg);
  box-shadow:0 6px 18px rgba(0,0,0,.3);
  white-space:nowrap;
}
.xh-price{right:0;top:0;transform:translateY(var(--xhy,-200px)) translateY(-50%)}
.xh-time{bottom:0;left:0;transform:translateX(var(--xhx,-200px)) translateX(-50%)}
@media (max-width:760px){.xhair{display:none}}

/* light theme: smoke must actually read as smoke */
[data-theme="light"] #smoke-fx{mix-blend-mode:multiply;opacity:.66}

/* ---- guards (re-applied: this layer sits after the previous ones) ---- */
@media (max-width:760px){
  body .nav,
  [data-theme="light"] body .nav{
    backdrop-filter:none;-webkit-backdrop-filter:none;
  }
  body .nav{background:color-mix(in srgb,var(--bg) 97%,transparent)}
  [data-theme="light"] body .nav{background:rgba(255,255,255,.97)}
  #landing-view .battery-table,
  #landing-view .price-card:not(.featured),
  .path-card,
  .method-card,
  #landing-view .hero-url-panel,
  .vticker,
  .modal-card{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.05) 0%,transparent 40%),
      color-mix(in srgb,var(--surface) 94%,transparent);
  }
  [data-theme="light"] #landing-view .battery-table,
  [data-theme="light"] #landing-view .price-card:not(.featured),
  [data-theme="light"] .path-card,
  [data-theme="light"] .method-card,
  [data-theme="light"] #landing-view .hero-url-panel,
  [data-theme="light"] .vticker,
  [data-theme="light"] .modal-card{
    background:
      linear-gradient(165deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.6) 50%),
      var(--surface);
  }
  /* the ::before signal ring stays (cheap) — only the blur goes */
  #landing-view .price-card.featured,
  .cta-final{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.05) 0%,transparent 40%),
      color-mix(in srgb,var(--surface) 94%,transparent);
  }
  [data-theme="light"] #landing-view .price-card.featured,
  [data-theme="light"] .cta-final{
    backdrop-filter:none;-webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.6) 50%),
      var(--surface);
  }
}
@supports not (backdrop-filter:blur(1px)){
  #landing-view .battery-table,#landing-view .price-card,.path-card,.method-card,
  .cta-final,.vticker,.modal-card,#landing-view .hero-url-panel,
  body .nav{
    background:color-mix(in srgb,var(--surface) 96%,transparent);
  }
}

/* ============================================================================
   TRAVOCATO v5 — MODERN LIQUID GLASS CORRECTION
   The hero copy is now a clear refractive lens over the trading grid. Green is
   kept as product accent only, not as a diffuse background wash.
   ============================================================================ */
#landing-view .hero{
  isolation:isolate;
  overflow:hidden;
  cursor:crosshair;
}
#landing-view .hero,
#landing-view .hero::before,
#landing-view .hero::after{
  background:transparent!important;
}
#landing-view .hero-grid{
  position:relative;
  z-index:3;
}
#landing-view .hero-copy{
  position:relative;
  z-index:4;
  width:min(100%,760px);
  padding:clamp(22px,3.2vw,38px);
  border-radius:28px;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(135deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.035) 34%,rgba(255,255,255,.01) 62%,rgba(255,255,255,.075) 100%);
  border:1px solid rgba(255,255,255,.2);
  border-bottom-color:rgba(255,255,255,.07);
  backdrop-filter:blur(12px) saturate(1.55) contrast(1.04);
  -webkit-backdrop-filter:blur(12px) saturate(1.55) contrast(1.04);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(0,0,0,.42),
    inset 1px 0 0 rgba(255,255,255,.09),
    inset -1px 0 0 rgba(255,255,255,.045),
    0 28px 70px -34px rgba(0,0,0,.66);
}
#landing-view .hero-copy::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(520px 180px at 18% 0%,rgba(255,255,255,.24),transparent 64%),
    radial-gradient(360px 220px at 96% 8%,rgba(255,255,255,.11),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.08),transparent 36%,rgba(0,0,0,.12));
}
#landing-view .hero-copy::after{
  content:"";
  position:absolute;
  inset:1px;
  z-index:0;
  pointer-events:none;
  border-radius:27px;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.045),
    inset 0 18px 38px rgba(255,255,255,.035),
    inset 0 -28px 48px rgba(0,0,0,.16);
}
#landing-view .hero-copy>*{
  position:relative;
  z-index:1;
}
#landing-view .hero-copy h1{
  text-wrap:balance;
}
#landing-view .h1-accent,
.cta-final h2 em{
  filter:none!important;
  text-shadow:none!important;
  background:linear-gradient(96deg,var(--ink) 0%,color-mix(in srgb,var(--ink) 70%,var(--accent) 30%) 52%,color-mix(in srgb,var(--accent-hi) 62%,var(--ink) 38%) 100%);
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
  /* background-clip:text clips the gradient to the text box and would shear the
     descenders of g/y/p — pad the box down (and pull it back with margin) so the
     paint area covers them without changing layout */
  padding-bottom:.12em;
  margin-bottom:-.12em;
  overflow:visible;
}
[data-theme="light"] #landing-view .hero-copy{
  background:
    linear-gradient(135deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.46) 40%,rgba(255,255,255,.3) 66%,rgba(255,255,255,.64) 100%);
  border:1px solid rgba(255,255,255,.96);
  border-bottom-color:rgba(13,18,15,.07);
  backdrop-filter:blur(11px) saturate(1.18) contrast(1.02);
  -webkit-backdrop-filter:blur(11px) saturate(1.18) contrast(1.02);
  box-shadow:
    inset 0 1px 0 #fff,
    inset 0 -1px 0 rgba(13,18,15,.06),
    0 0 0 1px rgba(13,18,15,.04),
    0 24px 64px -34px rgba(13,18,15,.24);
}
[data-theme="light"] #landing-view .hero-copy::before{
  background:
    radial-gradient(520px 180px at 18% 0%,rgba(255,255,255,.95),transparent 64%),
    radial-gradient(360px 220px at 96% 8%,rgba(255,255,255,.55),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.32),transparent 42%,rgba(13,18,15,.035));
}

/* Smoke becomes secondary atmosphere behind the glass, not the main visual. */
#smoke-fx{
  z-index:1!important;
  opacity:.24!important;
  mix-blend-mode:screen;
  filter:grayscale(1) contrast(.82) blur(.15px);
}
[data-theme="light"] #smoke-fx{
  opacity:.09!important;
  mix-blend-mode:multiply;
  filter:grayscale(1) contrast(.52) blur(.25px);
}
#landing-view .hero-visual{
  z-index:2;
}
.xhair{
  z-index:6;
}

/* App-native crosshair HUD: audit metrics instead of fake price/time. */
.xh-score,.xh-risk{
  position:absolute;
  display:inline-flex;
  align-items:center;
  gap:7px;
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.08em;
  line-height:1;
  font-variant-numeric:tabular-nums;
  text-transform:uppercase;
  padding:7px 10px;
  border-radius:var(--radius-pill);
  white-space:nowrap;
  color:var(--ink);
  background:
    linear-gradient(135deg,rgba(255,255,255,.12),rgba(255,255,255,.035)),
    color-mix(in srgb,var(--bg) 46%,transparent);
  border:1px solid rgba(255,255,255,.16);
  backdrop-filter:blur(12px) saturate(1.35);
  -webkit-backdrop-filter:blur(12px) saturate(1.35);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 10px 28px -18px rgba(0,0,0,.62);
}
.xh-score::before,.xh-risk::before{
  content:"";
  width:6px;
  height:6px;
  border-radius:50%;
  flex:none;
}
.xh-score::before{
  background:var(--real);
  box-shadow:0 0 12px color-mix(in srgb,var(--real) 70%,transparent);
}
.xh-risk::before{
  background:var(--humo);
  box-shadow:0 0 12px color-mix(in srgb,var(--humo) 68%,transparent);
}
.xh-score{
  right:18px;
  top:0;
  transform:translateY(var(--xhy-label,-200px)) translateY(-50%);
}
.xh-risk{
  top:18px;
  left:0;
  transform:translateX(var(--xhx-label,-200px)) translateX(-50%);
}
[data-theme="light"] .xh-score,
[data-theme="light"] .xh-risk{
  color:#101512;
  background:
    linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,255,255,.48)),
    rgba(255,255,255,.58);
  border-color:rgba(255,255,255,.95);
  box-shadow:inset 0 1px 0 #fff,0 8px 24px -18px rgba(13,18,15,.28);
}

/* Softer modern hover states: no harsh contrast flash. */
.btn{
  transition:transform .18s var(--ease),box-shadow .18s var(--ease),background .18s var(--ease),border-color .18s var(--ease),color .18s var(--ease);
}
.btn::before{
  display:none!important;
}
.btn:hover{
  transform:translateY(-1px);
  color:#fff;
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 88%,#fff) 0%,color-mix(in srgb,var(--accent) 95%,#000) 100%);
  border-color:color-mix(in srgb,var(--accent) 46%,#fff);
  box-shadow:0 16px 34px -18px color-mix(in srgb,var(--accent) 44%,transparent),inset 0 1px 0 rgba(255,255,255,.45);
}
.btn.quiet:hover{
  color:var(--ink);
  background:
    linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.025)),
    color-mix(in srgb,var(--surface) 72%,transparent);
  border-color:color-mix(in srgb,var(--accent) 26%,var(--line-2));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16),0 12px 28px -22px rgba(0,0,0,.55);
}
[data-theme="light"] .btn.quiet:hover{
  background:
    linear-gradient(135deg,rgba(255,255,255,.86),rgba(255,255,255,.5)),
    rgba(255,255,255,.6);
  border-color:color-mix(in srgb,var(--accent) 22%,var(--line-2));
  box-shadow:inset 0 1px 0 #fff,0 10px 24px -18px rgba(13,18,15,.2);
}

/* CTA headline stays premium and stable; the previous motion read as broken. */
.cta-final,
.cta-final::before,
.cta-final h2,
.cta-final h2 span,
.cta-final h2 em{
  animation:none!important;
}
html.fx-on .cta-final.fx-r,
html.fx-on .cta-final.fx-r.fxv{
  opacity:1!important;
  transform:none!important;
  transition:none!important;
}
.cta-final::before{
  opacity:.62;
}
.cta-final h2 span,
.cta-final h2 em{
  opacity:1!important;
  transform:none!important;
}

@media (max-width:760px){
  #landing-view .hero-copy{
    padding:20px;
    border-radius:var(--radius-xl);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  #landing-view .hero-copy::after{
    border-radius:var(--radius-xl);
  }
}

/* v5.1: neutralize the hero lens so it reads as clear glass, not green fog. */
#landing-view .hero-copy{
  background:
    linear-gradient(135deg,rgba(255,255,255,.14) 0%,rgba(255,255,255,.04) 34%,rgba(255,255,255,.012) 64%,rgba(255,255,255,.08) 100%),
    rgba(8,10,12,.32);
  backdrop-filter:blur(6px) saturate(1.18) contrast(1.03);
  -webkit-backdrop-filter:blur(6px) saturate(1.18) contrast(1.03);
}
#landing-view .hero-copy::before{
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px),
    radial-gradient(520px 180px at 18% 0%,rgba(255,255,255,.22),transparent 64%),
    radial-gradient(360px 220px at 96% 8%,rgba(255,255,255,.1),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.055),transparent 38%,rgba(0,0,0,.1));
  background-size:86px 86px,86px 86px,auto,auto,auto;
  opacity:.72;
}
#smoke-fx{
  opacity:.055!important;
}
[data-theme="light"] #smoke-fx{
  display:none;
}
[data-theme="light"] #landing-view .hero-copy{
  background:
    linear-gradient(135deg,rgba(255,255,255,.84) 0%,rgba(255,255,255,.5) 42%,rgba(255,255,255,.36) 66%,rgba(255,255,255,.68) 100%),
    rgba(255,255,255,.34);
  backdrop-filter:blur(6px) saturate(1.08) contrast(1.01);
  -webkit-backdrop-filter:blur(6px) saturate(1.08) contrast(1.01);
}
[data-theme="light"] #landing-view .hero-copy::before{
  background:
    linear-gradient(90deg,rgba(13,18,15,.055) 1px,transparent 1px),
    linear-gradient(180deg,rgba(13,18,15,.048) 1px,transparent 1px),
    radial-gradient(520px 180px at 18% 0%,rgba(255,255,255,.86),transparent 64%),
    radial-gradient(360px 220px at 96% 8%,rgba(255,255,255,.5),transparent 70%),
    linear-gradient(180deg,rgba(255,255,255,.22),transparent 42%,rgba(13,18,15,.025));
  background-size:86px 86px,86px 86px,auto,auto,auto;
  opacity:.58;
}
#landing-view{
  background:linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 44%,var(--bg) 100%)!important;
}
[data-theme="light"] #landing-view{
  background:linear-gradient(180deg,#fff 0%,#fbfcfb 44%,#fff 100%)!important;
}

/* v5.2: one hero glass, not separate text/logo containers. */
#landing-view .hero-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1.08fr) minmax(320px,.92fr);
  align-items:center;
  gap:clamp(18px,4.2vw,64px);
  min-height:min(720px,calc(100vh - var(--nav-h) - 104px));
  padding:clamp(24px,3.8vw,48px)!important;
  border-radius:32px;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(135deg,rgba(255,255,255,.135) 0%,rgba(255,255,255,.04) 34%,rgba(255,255,255,.012) 64%,rgba(255,255,255,.078) 100%),
    rgba(8,10,12,.3);
  border:1px solid rgba(255,255,255,.2);
  border-bottom-color:rgba(255,255,255,.075);
  backdrop-filter:blur(6px) saturate(1.18) contrast(1.03);
  -webkit-backdrop-filter:blur(6px) saturate(1.18) contrast(1.03);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.42),
    inset 0 -1px 0 rgba(0,0,0,.42),
    inset 1px 0 0 rgba(255,255,255,.09),
    inset -1px 0 0 rgba(255,255,255,.045),
    0 28px 70px -34px rgba(0,0,0,.66);
}
#landing-view .hero-grid::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.2),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.105),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.052),transparent 42%,rgba(0,0,0,.1));
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.2),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.105),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.052),transparent 42%,rgba(0,0,0,.1))!important;
  background-size:86px 86px,86px 86px,auto,auto,auto;
  opacity:.74;
}
#landing-view .hero-grid::after{
  content:"";
  position:absolute;
  inset:1px;
  z-index:0;
  pointer-events:none;
  border-radius:31px;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.045),
    inset 0 18px 38px rgba(255,255,255,.035),
    inset 0 -28px 48px rgba(0,0,0,.16);
}
#landing-view .hero-copy,
#landing-view .hero-visual{
  position:relative;
  z-index:1;
}
#landing-view .hero-copy{
  width:min(100%,720px);
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  isolation:auto!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#landing-view .hero-copy::before,
#landing-view .hero-copy::after{
  display:none!important;
}
#landing-view .hero-visual{
  position:relative!important;
  top:auto!important;
  right:auto!important;
  width:min(100%,520px)!important;
  justify-self:center;
  margin:0!important;
  opacity:1;
  pointer-events:none;
}
#landing-view .hero-visual img{
  width:100%;
  max-height:min(68vh,620px);
  object-fit:contain;
}
[data-theme="light"] #landing-view .hero-grid{
  background:
    linear-gradient(135deg,rgba(255,255,255,.84) 0%,rgba(255,255,255,.5) 42%,rgba(255,255,255,.36) 66%,rgba(255,255,255,.68) 100%),
    rgba(255,255,255,.34);
  border:1px solid rgba(255,255,255,.96);
  border-bottom-color:rgba(13,18,15,.07);
  backdrop-filter:blur(6px) saturate(1.08) contrast(1.01);
  -webkit-backdrop-filter:blur(6px) saturate(1.08) contrast(1.01);
  box-shadow:
    inset 0 1px 0 #fff,
    inset 0 -1px 0 rgba(13,18,15,.06),
    0 0 0 1px rgba(13,18,15,.04),
    0 24px 64px -34px rgba(13,18,15,.24);
}
[data-theme="light"] #landing-view .hero-grid::before{
  background:
    linear-gradient(90deg,rgba(13,18,15,.055) 1px,transparent 1px),
    linear-gradient(180deg,rgba(13,18,15,.048) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.86),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.5),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.22),transparent 42%,rgba(13,18,15,.025));
  background:
    linear-gradient(90deg,rgba(13,18,15,.055) 1px,transparent 1px),
    linear-gradient(180deg,rgba(13,18,15,.048) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.86),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.5),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.22),transparent 42%,rgba(13,18,15,.025))!important;
  background-size:86px 86px,86px 86px,auto,auto,auto;
  opacity:.58;
}
@media (max-width:1080px){
  #landing-view .hero-grid{
    grid-template-columns:1fr;
    min-height:0;
  }
  #landing-view .hero-visual{
    width:min(100%,420px)!important;
    margin:8px auto 0!important;
  }
}
@media (max-width:760px){
  #landing-view .hero-grid{
    padding:20px!important;
    border-radius:var(--radius-xl);
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  #landing-view .hero-grid::after{
    border-radius:var(--radius-xl);
  }
}

/* v5.3: crosshair belongs to the unified glass panel, not the whole hero. */
#landing-view .hero-grid .xhair{
  position:absolute;
  inset:0;
  z-index:8;
  overflow:hidden;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  transition:opacity .16s var(--ease);
}
#landing-view .hero.xh-on .xhair{
  opacity:0;
}
#landing-view .hero-grid.xh-on .xhair{
  opacity:1;
}
#landing-view .hero-grid .xh-v,
#landing-view .hero-grid .xh-h{
  opacity:.56;
}
#landing-view .hero-grid .xh-v{
  top:0;
  bottom:0;
  left:0;
  transform:translateX(var(--xhx,-200px));
  background:repeating-linear-gradient(180deg,color-mix(in srgb,var(--ink) 26%,transparent) 0 4px,transparent 4px 10px);
}
#landing-view .hero-grid .xh-h{
  left:0;
  right:0;
  top:0;
  transform:translateY(var(--xhy,-200px));
  background:repeating-linear-gradient(90deg,color-mix(in srgb,var(--ink) 26%,transparent) 0 4px,transparent 4px 10px);
}
#landing-view .hero-grid .xh-dot{
  width:7px;
  height:7px;
  background:var(--accent);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 18%,transparent),0 0 14px color-mix(in srgb,var(--accent) 56%,transparent);
}
#landing-view .hero-grid .xh-score,
#landing-view .hero-grid .xh-risk{
  border-radius:var(--radius);
  padding:6px 8px;
  font-size:10px;
  letter-spacing:.1em;
  color:var(--ink);
  background:rgba(8,10,12,.38);
  border:1px solid rgba(255,255,255,.1);
  backdrop-filter:blur(8px) saturate(1.12);
  -webkit-backdrop-filter:blur(8px) saturate(1.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.14),0 8px 18px -16px rgba(0,0,0,.55);
}
#landing-view .hero-grid .xh-score{
  right:18px;
  top:0;
  transform:translateY(var(--xhy-label,-200px)) translateY(-50%);
}
#landing-view .hero-grid .xh-risk{
  top:18px;
  left:0;
  transform:translateX(var(--xhx-label,-200px)) translateX(-50%);
}
[data-theme="light"] #landing-view .hero-grid .xh-score,
[data-theme="light"] #landing-view .hero-grid .xh-risk{
  color:#101512;
  background:rgba(255,255,255,.68);
  border-color:rgba(13,18,15,.075);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.9),0 8px 18px -16px rgba(13,18,15,.22);
}

/* v5.4: keep the original hero placement, make one glass field, remove nested card outlines. */
#landing-view .hero{
  padding-top:clamp(34px,4.2vw,58px);
}
#landing-view .hero-grid{
  padding:clamp(18px,3vw,36px)!important;
  border-radius:28px;
  background:
    linear-gradient(135deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.025) 36%,rgba(255,255,255,.006) 66%,rgba(255,255,255,.052) 100%),
    rgba(8,10,12,.2);
  border-color:rgba(255,255,255,.115);
  border-bottom-color:rgba(255,255,255,.045);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.24),
    inset 0 -1px 0 rgba(0,0,0,.18),
    0 22px 58px -42px rgba(0,0,0,.52);
}
#landing-view .hero-grid::before{
  opacity:.44;
}
#landing-view .hero-grid::after{
  inset:0;
  border-radius:inherit;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(0,0,0,.08);
}
[data-theme="light"] #landing-view .hero-grid{
  background:
    linear-gradient(135deg,rgba(255,255,255,.64) 0%,rgba(255,255,255,.34) 44%,rgba(255,255,255,.22) 68%,rgba(255,255,255,.48) 100%),
    rgba(255,255,255,.18);
  border-color:rgba(13,18,15,.06);
  border-bottom-color:rgba(13,18,15,.04);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.76),
    inset 0 -1px 0 rgba(13,18,15,.035),
    0 18px 54px -44px rgba(13,18,15,.22);
}
[data-theme="light"] #landing-view .hero-grid::before{
  opacity:.34;
}

/* The video URL area is content inside the hero glass, not a second glass card. */
#landing-view .hero-url-panel,
[data-theme="light"] #landing-view .hero-url-panel{
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  padding:0!important;
  margin-top:22px;
}
#landing-view .hero-url-panel::before,
#landing-view .hero-url-panel::after{
  display:none!important;
}
#landing-view .hero-url-panel > label span{
  padding-left:0;
}
#landing-view .hero-url-panel > label span::before{
  left:-16px;
}
#landing-view .hero-url-row{
  gap:10px;
}
#landing-view .url-input-shell{
  background:
    linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.02)),
    rgba(8,10,12,.18);
  border-color:rgba(255,255,255,.12);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.13);
}
[data-theme="light"] #landing-view .url-input-shell{
  background:rgba(255,255,255,.54);
  border-color:rgba(13,18,15,.08);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.8);
}

/* HUD labels should feel printed on the glass, not separate solid pills. */
#landing-view .hero-grid .xh-score,
#landing-view .hero-grid .xh-risk{
  background:rgba(8,10,12,.18);
  border-color:rgba(255,255,255,.07);
  box-shadow:none;
  backdrop-filter:blur(5px) saturate(1.04);
  -webkit-backdrop-filter:blur(5px) saturate(1.04);
}
[data-theme="light"] #landing-view .hero-grid .xh-score,
[data-theme="light"] #landing-view .hero-grid .xh-risk{
  background:rgba(255,255,255,.38);
  border-color:rgba(13,18,15,.045);
  box-shadow:none;
}
@media (max-width:760px){
  #landing-view .hero{
    padding-top:28px;
  }
  #landing-view .hero-grid{
    padding:18px!important;
    border-radius:var(--radius-xl);
  }
}

/* v5.5: the section itself is the glass. The grid is only layout. */
#landing-view .hero{
  width:min(calc(100% - 56px),var(--maxw));
  margin:clamp(18px,2.8vw,34px) auto 44px;
  padding:clamp(22px,3vw,36px)!important;
  min-height:min(720px,calc(100vh - var(--nav-h) - 130px));
  border-radius:28px;
  overflow:hidden;
  isolation:isolate;
  background:
    linear-gradient(135deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.025) 36%,rgba(255,255,255,.006) 66%,rgba(255,255,255,.052) 100%),
    rgba(8,10,12,.2)!important;
  border:0!important;
  backdrop-filter:blur(6px) saturate(1.18) contrast(1.03);
  -webkit-backdrop-filter:blur(6px) saturate(1.18) contrast(1.03);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.16),
    inset 0 -1px 0 rgba(0,0,0,.08),
    0 22px 58px -42px rgba(0,0,0,.52);
}
#landing-view .hero::before{
  content:""!important;
  display:block!important;
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    linear-gradient(90deg,rgba(255,255,255,.045) 1px,transparent 1px),
    linear-gradient(180deg,rgba(255,255,255,.04) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.2),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.105),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.052),transparent 42%,rgba(0,0,0,.1));
  background-size:86px 86px,86px 86px,auto,auto,auto;
  opacity:.44;
}
#landing-view .hero::after{
  content:""!important;
  display:block!important;
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(0,0,0,.08);
}
#landing-view .hero-grid{
  position:static!important;
  width:100%!important;
  max-width:none!important;
  min-height:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  overflow:visible!important;
  isolation:auto!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
#landing-view .hero-grid::before,
#landing-view .hero-grid::after{
  display:none!important;
}
#landing-view .hero-copy,
#landing-view .hero-visual{
  z-index:1;
}
#landing-view .hero.xh-on .xhair{
  opacity:1!important;
}
#landing-view .hero-grid .xhair{
  border-radius:28px;
}
[data-theme="light"] #landing-view .hero{
  background:
    linear-gradient(135deg,rgba(255,255,255,.64) 0%,rgba(255,255,255,.34) 44%,rgba(255,255,255,.22) 68%,rgba(255,255,255,.48) 100%),
    rgba(255,255,255,.18)!important;
  border:0!important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.52),
    inset 0 -1px 0 rgba(13,18,15,.025),
    0 18px 54px -44px rgba(13,18,15,.22);
}
[data-theme="light"] #landing-view .hero::before{
  background:
    linear-gradient(90deg,rgba(13,18,15,.055) 1px,transparent 1px),
    linear-gradient(180deg,rgba(13,18,15,.048) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.86),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.5),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.22),transparent 42%,rgba(13,18,15,.025));
  background-size:86px 86px,86px 86px,auto,auto,auto;
  opacity:.34;
}
@media (max-width:760px){
  #landing-view .hero{
    width:min(calc(100% - 24px),var(--maxw));
    margin:24px auto 34px;
    padding:18px!important;
    border-radius:var(--radius-xl);
    min-height:0;
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
  }
  #landing-view .hero-grid .xhair{
    border-radius:var(--radius-xl);
  }
}

/* v5.7: remove the solid page layer under the hero; the section itself is glass over the site background. */
#landing-view,
[data-theme="light"] #landing-view{
  background:transparent!important;
}
#landing-view .hero{
  background:rgba(8,10,12,.18)!important;
  border:0!important;
  backdrop-filter:blur(14px) saturate(1.18) contrast(1.02);
  -webkit-backdrop-filter:blur(14px) saturate(1.18) contrast(1.02);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.12),
    inset 0 -1px 0 rgba(0,0,0,.08),
    0 18px 52px -46px rgba(0,0,0,.45);
}
#landing-view .hero::before,
#landing-view .hero::after{
  display:none!important;
}
[data-theme="light"] #landing-view .hero{
  background:rgba(255,255,255,.24)!important;
  border:0!important;
  backdrop-filter:blur(14px) saturate(1.08) contrast(1.01);
  -webkit-backdrop-filter:blur(14px) saturate(1.08) contrast(1.01);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -1px 0 rgba(13,18,15,.02),
    0 18px 52px -46px rgba(13,18,15,.18);
}
#landing-view .hero-grid,
[data-theme="light"] #landing-view .hero-grid{
  background:transparent!important;
}

/* v5.8: visible liquid glass on the central hero slab only. */
#landing-view .hero{
  background:
    linear-gradient(135deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.055) 34%,rgba(255,255,255,.018) 58%,rgba(255,255,255,.11) 100%),
    rgba(8,10,12,.16)!important;
  backdrop-filter:blur(18px) saturate(1.28) contrast(1.03);
  -webkit-backdrop-filter:blur(18px) saturate(1.28) contrast(1.03);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -1px 0 rgba(0,0,0,.1),
    inset 18px 0 44px -42px rgba(255,255,255,.5),
    inset -18px 0 44px -42px rgba(255,255,255,.32),
    0 24px 64px -50px rgba(0,0,0,.5);
}
#landing-view .hero::before{
  content:""!important;
  display:block!important;
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:
    radial-gradient(680px 220px at 18% 0%,rgba(255,255,255,.2),transparent 66%),
    radial-gradient(520px 240px at 88% 12%,rgba(255,255,255,.115),transparent 72%),
    linear-gradient(105deg,rgba(255,255,255,.08),transparent 24%,transparent 68%,rgba(255,255,255,.045));
  opacity:.8;
}
#landing-view .hero::after{
  content:""!important;
  display:block!important;
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.09),
    inset 0 20px 52px rgba(255,255,255,.05),
    inset 0 -28px 58px rgba(0,0,0,.055);
}
[data-theme="light"] #landing-view .hero{
  background:
    linear-gradient(135deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.22) 42%,rgba(255,255,255,.11) 66%,rgba(255,255,255,.34) 100%),
    rgba(255,255,255,.16)!important;
  backdrop-filter:blur(18px) saturate(1.12) contrast(1.01);
  -webkit-backdrop-filter:blur(18px) saturate(1.12) contrast(1.01);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 -1px 0 rgba(13,18,15,.025),
    inset 18px 0 46px -42px rgba(255,255,255,.95),
    inset -18px 0 46px -42px rgba(255,255,255,.78),
    0 24px 64px -52px rgba(13,18,15,.18);
}
[data-theme="light"] #landing-view .hero::before{
  background:
    radial-gradient(680px 220px at 18% 0%,rgba(255,255,255,.82),transparent 66%),
    radial-gradient(520px 240px at 88% 12%,rgba(255,255,255,.42),transparent 72%),
    linear-gradient(105deg,rgba(255,255,255,.32),transparent 24%,transparent 68%,rgba(255,255,255,.18));
  opacity:.74;
}
[data-theme="light"] #landing-view .hero::after{
  box-shadow:
    inset 0 0 0 1px rgba(13,18,15,.035),
    inset 0 20px 52px rgba(255,255,255,.32),
    inset 0 -28px 58px rgba(13,18,15,.018);
}

/* v5.11: uniform chart-grid correction.
   One grid interval only. No major overlay, no micro-grid, no doubled lines. */
:root{
  --chart-grid-cell:88px;
  --chart-grid-x:var(--chart-grid-cell);
  --chart-grid-y:var(--chart-grid-cell);
  --chart-grid-line:rgba(225,238,231,.074);
  --chart-grid-glass:rgba(225,238,231,.082);
}
[data-theme="light"]{
  --chart-grid-line:rgba(8,18,13,.074);
  --chart-grid-glass:rgba(8,18,13,.082);
}
.terminal-grid-bg{
  opacity:.88!important;
  background:
    linear-gradient(90deg,var(--chart-grid-line) 1px,transparent 1px),
    linear-gradient(180deg,var(--chart-grid-line) 1px,transparent 1px)!important;
  background-size:
    var(--chart-grid-x) var(--chart-grid-y),
    var(--chart-grid-x) var(--chart-grid-y)!important;
  background-position:center top!important;
  -webkit-mask-image:none!important;
  mask-image:none!important;
}
.terminal-grid-bg::before{
  content:"";
  position:absolute;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(180deg,transparent 0%,transparent 64%,rgba(0,0,0,.18) 100%),
    linear-gradient(90deg,rgba(155,232,76,.038),transparent 16%,transparent 84%,rgba(86,205,255,.028));
}
[data-theme="light"] .terminal-grid-bg{
  opacity:1!important;
}
[data-theme="light"] .terminal-grid-bg::before{
  background:
    linear-gradient(180deg,transparent 0%,transparent 70%,rgba(8,18,13,.035) 100%),
    linear-gradient(90deg,rgba(57,148,15,.03),transparent 18%,transparent 82%,rgba(12,147,207,.024));
}
body.is-analyzer .terminal-grid-bg{
  opacity:.36!important;
}
[data-theme="light"] body.is-analyzer .terminal-grid-bg{
  opacity:.28!important;
}
#landing-view .hero::before{
  background:
    linear-gradient(90deg,var(--chart-grid-glass) 1px,transparent 1px),
    linear-gradient(180deg,var(--chart-grid-glass) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.12),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.07),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.03),transparent 42%,rgba(0,0,0,.075))!important;
  background-size:
    var(--chart-grid-x) var(--chart-grid-y),
    var(--chart-grid-x) var(--chart-grid-y),
    auto,auto,auto!important;
  background-position:center top!important;
  opacity:.5!important;
}
[data-theme="light"] #landing-view .hero::before{
  background:
    linear-gradient(90deg,var(--chart-grid-glass) 1px,transparent 1px),
    linear-gradient(180deg,var(--chart-grid-glass) 1px,transparent 1px),
    radial-gradient(640px 220px at 18% 0%,rgba(255,255,255,.46),transparent 64%),
    radial-gradient(520px 280px at 88% 14%,rgba(255,255,255,.26),transparent 72%),
    linear-gradient(180deg,rgba(255,255,255,.09),transparent 42%,rgba(8,18,13,.018))!important;
  background-size:
    var(--chart-grid-x) var(--chart-grid-y),
    var(--chart-grid-x) var(--chart-grid-y),
    auto,auto,auto!important;
  background-position:center top!important;
  opacity:.56!important;
}

/* v5.12: lift the hero content. The first screen should start explaining the
   product sooner instead of leaving a large empty glass band above the headline. */
#landing-view .hero{
  margin-top:clamp(8px,1.4vw,18px)!important;
  min-height:min(680px,calc(100vh - var(--nav-h) - 96px))!important;
}
#landing-view .hero-grid{
  transform:translateY(clamp(-34px,-3vw,-22px));
}
#landing-view .hero-copy{
  padding-top:0;
}
@media (max-width:760px){
  #landing-view .hero{
    margin-top:14px!important;
    padding-top:14px!important;
  }
  #landing-view .hero-grid{
    transform:translateY(-10px);
  }
}

/* v5.13: keep the audit crosshair in the hero coordinate system.
   The content grid is lifted visually, but the smoke/edge cursor overlay is a
   direct child of .hero, the same element used by fx.js for pointer math. */
#landing-view .hero > .xhair{
  position:absolute;
  inset:0;
  z-index:8;
  overflow:hidden;
  border-radius:inherit;
  pointer-events:none;
  opacity:0;
  transform:none!important;
  transition:opacity .16s var(--ease);
}
#landing-view .hero.xh-on > .xhair{
  opacity:1!important;
}

/* v5.16: replace the verdict text ticker with a live candlestick market tape. */
.vticker.market-tape{
  --tape-grid:color-mix(in srgb,var(--ink) 6%,transparent);
  --tape-glass:color-mix(in srgb,var(--surface) 34%,transparent);
  position:relative;
  height:clamp(92px,8.8vw,118px);
  overflow:hidden;
  border-top:1px solid color-mix(in srgb,var(--line-2) 48%,transparent);
  border-bottom:1px solid color-mix(in srgb,var(--line-2) 48%,transparent);
  background:
    linear-gradient(180deg,rgba(255,255,255,.04),transparent 48%,rgba(0,0,0,.1)),
    linear-gradient(90deg,transparent 0%,var(--tape-glass) 18%,var(--tape-glass) 82%,transparent 100%),
    color-mix(in srgb,var(--bg) 38%,transparent)!important;
  backdrop-filter:blur(8px) saturate(1.22);
  -webkit-backdrop-filter:blur(8px) saturate(1.22);
  mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);
}
.vticker.market-tape::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(90deg,var(--tape-grid) 1px,transparent 1px),
    linear-gradient(180deg,var(--tape-grid) 1px,transparent 1px);
  background-size:72px 100%,100% 28px;
  opacity:.42;
}
.vticker.market-tape::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:3;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(255,255,255,.12),transparent 36%,rgba(0,0,0,.12)),
    linear-gradient(90deg,var(--bg),transparent 12%,transparent 88%,var(--bg));
  opacity:.34;
}
.market-tape-candles{
  position:absolute;
  inset:0;
  z-index:2;
  display:block;
  width:100%;
  height:100%;
  opacity:1;
}
[data-theme="light"] .vticker.market-tape{
  --tape-grid:rgba(8,18,13,.08);
  --tape-glass:rgba(255,255,255,.38);
  background:
    linear-gradient(180deg,rgba(255,255,255,.38),transparent 48%,rgba(8,18,13,.025)),
    linear-gradient(90deg,transparent 0%,var(--tape-glass) 18%,var(--tape-glass) 82%,transparent 100%),
    rgba(255,255,255,.12)!important;
  border-color:rgba(8,18,13,.08);
}
[data-theme="light"] .vticker.market-tape::after{
  background:
    linear-gradient(180deg,rgba(255,255,255,.46),transparent 44%,rgba(8,18,13,.025)),
    linear-gradient(90deg,var(--bg),transparent 12%,transparent 88%,var(--bg));
  opacity:.28;
}
@media (max-width:760px){
  .vticker.market-tape{
    height:86px;
  }
}

/* v5.17: remove the scroll-loading line from the top command bar. */
#hdr::after,
body .nav::after{
  content:none!important;
  display:none!important;
}

/* v5.18: remove the extra typewriter/terminal-letter animation. */
.eyebrow::after,
.sl-caret{
  content:none!important;
  display:none!important;
  animation:none!important;
}
.hero-syslog{
  display:none!important;
}

/* v5.19: unify every landing container with the primary hero liquid-glass language.
   The hero crosshair stays untouched; this only normalizes surfaces, borders and shape. */
#landing-view{
  --landing-glass-radius:28px;
  --landing-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.055) 34%,rgba(255,255,255,.018) 58%,rgba(255,255,255,.11) 100%),
    rgba(8,10,12,.16);
  --landing-glass-filter:blur(18px) saturate(1.28) contrast(1.03);
  --landing-glass-border:rgba(255,255,255,.16);
  --landing-glass-border-bottom:rgba(255,255,255,.06);
  --landing-glass-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -1px 0 rgba(0,0,0,.1),
    inset 18px 0 44px -42px rgba(255,255,255,.5),
    inset -18px 0 44px -42px rgba(255,255,255,.32),
    0 24px 64px -50px rgba(0,0,0,.5);
  --landing-glass-sheen:
    radial-gradient(680px 220px at 18% 0%,rgba(255,255,255,.2),transparent 66%),
    radial-gradient(520px 240px at 88% 12%,rgba(255,255,255,.115),transparent 72%),
    linear-gradient(105deg,rgba(255,255,255,.08),transparent 24%,transparent 68%,rgba(255,255,255,.045));
  --landing-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.018) 54%,rgba(255,255,255,.045)),
    color-mix(in srgb,var(--surface) 18%,transparent);
  --landing-inner-border:rgba(255,255,255,.11);
  --landing-inner-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.12);
}
[data-theme="light"] #landing-view{
  --landing-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.22) 42%,rgba(255,255,255,.11) 66%,rgba(255,255,255,.34) 100%),
    rgba(255,255,255,.16);
  --landing-glass-filter:blur(18px) saturate(1.12) contrast(1.01);
  --landing-glass-border:rgba(255,255,255,.86);
  --landing-glass-border-bottom:rgba(13,18,15,.055);
  --landing-glass-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 -1px 0 rgba(13,18,15,.025),
    inset 18px 0 46px -42px rgba(255,255,255,.95),
    inset -18px 0 46px -42px rgba(255,255,255,.78),
    0 24px 64px -52px rgba(13,18,15,.18);
  --landing-glass-sheen:
    radial-gradient(680px 220px at 18% 0%,rgba(255,255,255,.82),transparent 66%),
    radial-gradient(520px 240px at 88% 12%,rgba(255,255,255,.42),transparent 72%),
    linear-gradient(105deg,rgba(255,255,255,.32),transparent 24%,transparent 68%,rgba(255,255,255,.18));
  --landing-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.56),rgba(255,255,255,.2) 56%,rgba(255,255,255,.38)),
    rgba(255,255,255,.16);
  --landing-inner-border:rgba(255,255,255,.72);
  --landing-inner-shadow:inset 0 1px 0 rgba(255,255,255,.78),inset 0 -1px 0 rgba(13,18,15,.035);
}
#landing-view .hero,
#landing-view #story .story-grid,
#landing-view .battery-table,
#landing-view .path-card,
#landing-view .method-dashboard,
#landing-view .price-card,
#landing-view .cta-final{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-radius:var(--landing-glass-radius)!important;
  border:1px solid var(--landing-glass-border)!important;
  border-bottom-color:var(--landing-glass-border-bottom)!important;
  background:var(--landing-glass-bg)!important;
  backdrop-filter:var(--landing-glass-filter)!important;
  -webkit-backdrop-filter:var(--landing-glass-filter)!important;
  box-shadow:var(--landing-glass-shadow)!important;
}
#landing-view .price-card.featured,
#landing-view .cta-final,
#landing-view .price-card.featured::before,
#landing-view .cta-final::before{
  animation:none!important;
}
#landing-view #story .story-grid::before,
#landing-view .battery-table::before,
#landing-view .path-card::before,
#landing-view .method-dashboard::before,
#landing-view .price-card::before,
#landing-view .cta-final::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  padding:0!important;
  border-radius:inherit!important;
  background:var(--landing-glass-sheen)!important;
  opacity:.86!important;
  -webkit-mask:none!important;
          mask:none!important;
}
#landing-view .hero::before{
  background:var(--landing-glass-sheen)!important;
}
#landing-view .hero::after,
#landing-view #story .story-grid::after,
#landing-view .battery-table::after,
#landing-view .path-card::after,
#landing-view .method-dashboard::after,
#landing-view .price-card::after,
#landing-view .cta-final::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:0!important;
  pointer-events:none!important;
  border-radius:inherit!important;
  background:transparent!important;
  opacity:1!important;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.055),
    inset 0 20px 52px rgba(255,255,255,.045),
    inset 0 -28px 58px rgba(0,0,0,.055)!important;
}
[data-theme="light"] #landing-view .hero::after,
[data-theme="light"] #landing-view #story .story-grid::after,
[data-theme="light"] #landing-view .battery-table::after,
[data-theme="light"] #landing-view .path-card::after,
[data-theme="light"] #landing-view .method-dashboard::after,
[data-theme="light"] #landing-view .price-card::after,
[data-theme="light"] #landing-view .cta-final::after{
  box-shadow:
    inset 0 0 0 1px rgba(13,18,15,.035),
    inset 0 20px 52px rgba(255,255,255,.32),
    inset 0 -28px 58px rgba(13,18,15,.018)!important;
}
#landing-view #story .story-grid > *,
#landing-view .battery-table > *,
#landing-view .path-card > *,
#landing-view .method-dashboard > *,
#landing-view .price-card > *,
#landing-view .cta-final > *{
  position:relative;
  z-index:1;
}
#landing-view .hero > .xhair{
  z-index:8!important;
}

#landing-view .battery-table div,
#landing-view .method-score,
#landing-view .method-metric,
#landing-view .method-components,
#landing-view .method-components-head,
#landing-view .sleeve-table-head,
#landing-view .sleeve-row,
#landing-view .mcard-years,
#landing-view .method-assets span,
#landing-view .method-id,
#landing-view .sleeve-code,
#landing-view .sleeve-style b{
  border-color:var(--landing-inner-border)!important;
  background:var(--landing-inner-bg)!important;
  box-shadow:var(--landing-inner-shadow)!important;
}
#landing-view .method-score,
#landing-view .method-metric,
#landing-view .method-components,
#landing-view .mcard-years{
  border-radius:var(--radius-xl)!important;
}
#landing-view .method-components-head,
#landing-view .sleeve-table-head,
#landing-view .sleeve-row{
  background:color-mix(in srgb,var(--surface) 12%,transparent)!important;
}
#landing-view .sleeve-row:hover{
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,transparent),rgba(255,255,255,.02)),
    color-mix(in srgb,var(--surface) 14%,transparent)!important;
  box-shadow:inset 3px 0 0 color-mix(in srgb,var(--accent) 48%,transparent),var(--landing-inner-shadow)!important;
}
#landing-view .path-num,
#landing-view .battery-table span{
  color:color-mix(in srgb,var(--accent) 58%,var(--ink))!important;
  opacity:.86;
}
@media (max-width:760px){
  #landing-view .hero,
  #landing-view #story .story-grid,
  #landing-view .battery-table,
  #landing-view .path-card,
  #landing-view .method-dashboard,
  #landing-view .price-card,
  #landing-view .cta-final{
    border-radius:var(--radius-xl)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  #landing-view .method-score,
  #landing-view .method-metric,
  #landing-view .method-components,
  #landing-view .mcard-years{
    border-radius:var(--radius-lg)!important;
  }
}

/* v5.20: keep the hero border aligned with the unified glass system in light mode. */
[data-theme="light"] #landing-view .hero{
  border:1px solid var(--landing-glass-border)!important;
  border-bottom-color:var(--landing-glass-border-bottom)!important;
}

/* v5.21: the story glass surface must not break the sticky scrolltelling stage. */
@media (min-width:1081px){
  #landing-view #story .story-grid{
    position:sticky!important;
    top:calc(var(--nav-h) + 14px)!important;
    overflow:visible!important;
  }
}

/* v5.22: story steps are content inside the glass stage, not nested cards. */
#landing-view #story .story-step.active{
  background:transparent!important;
  box-shadow:none!important;
  border-color:transparent!important;
}

/* v5.23 removed in v304: buttons now use white ink on a deeper button green
   in BOTH themes — see GLOBAL BUTTONS v304 at EOF. */

/* v5.24: extend the landing liquid-glass UI language across analyzer, trainer, modals and shared controls. */
body.is-analyzer,
body.is-trainer,
.modal{
  --app-glass-radius:28px;
  --app-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.055) 34%,rgba(255,255,255,.018) 58%,rgba(255,255,255,.11) 100%),
    rgba(8,10,12,.16);
  --app-glass-filter:blur(18px) saturate(1.28) contrast(1.03);
  --app-glass-border:rgba(255,255,255,.16);
  --app-glass-border-bottom:rgba(255,255,255,.06);
  --app-glass-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -1px 0 rgba(0,0,0,.1),
    inset 18px 0 44px -42px rgba(255,255,255,.5),
    inset -18px 0 44px -42px rgba(255,255,255,.32),
    0 24px 64px -50px rgba(0,0,0,.5);
  --app-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.018) 54%,rgba(255,255,255,.045)),
    color-mix(in srgb,var(--surface) 18%,transparent);
  --app-inner-border:rgba(255,255,255,.11);
  --app-inner-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.12);
}
[data-theme="light"] body.is-analyzer,
[data-theme="light"] body.is-trainer,
[data-theme="light"] .modal{
  --app-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.22) 42%,rgba(255,255,255,.11) 66%,rgba(255,255,255,.34) 100%),
    rgba(255,255,255,.16);
  --app-glass-filter:blur(18px) saturate(1.12) contrast(1.01);
  --app-glass-border:rgba(255,255,255,.86);
  --app-glass-border-bottom:rgba(13,18,15,.055);
  --app-glass-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 -1px 0 rgba(13,18,15,.025),
    inset 18px 0 46px -42px rgba(255,255,255,.95),
    inset -18px 0 46px -42px rgba(255,255,255,.78),
    0 24px 64px -52px rgba(13,18,15,.18);
  --app-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.56),rgba(255,255,255,.2) 56%,rgba(255,255,255,.38)),
    rgba(255,255,255,.16);
  --app-inner-border:rgba(255,255,255,.72);
  --app-inner-shadow:inset 0 1px 0 rgba(255,255,255,.78),inset 0 -1px 0 rgba(13,18,15,.035);
}
body.is-analyzer .analyzer-view,
body.is-trainer .trainer-view,
body.is-reverse .reverse-view{
  background:
    radial-gradient(circle at 50% -10%,color-mix(in srgb,var(--accent) 8%,transparent),transparent 34%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 50%,var(--bg) 100%)!important;
}
body.is-analyzer #hdr,
body.is-trainer #hdr,
body.is-reverse #hdr{
  background:transparent!important;
  border-bottom:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  padding:14px 0 10px;
}
body.is-analyzer .nav,
body.is-trainer .nav,
body.is-reverse .nav{
  position:relative;
  overflow:hidden;
  min-height:58px;
  padding:0 12px 0 16px;
  border-radius:var(--radius-xl);
  border:1px solid rgba(255,255,255,.1);
  border-top-color:rgba(255,255,255,.2);
  background:
    linear-gradient(120deg,rgba(255,255,255,.1) 0%,rgba(255,255,255,.015) 36%,rgba(255,255,255,.005) 64%,rgba(255,255,255,.06) 100%),
    color-mix(in srgb,var(--bg) 50%,transparent);
  backdrop-filter:blur(28px) saturate(190%) brightness(1.1);
  -webkit-backdrop-filter:blur(28px) saturate(190%) brightness(1.1);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.18),
    inset 0 -1px 0 rgba(0,0,0,.3),
    0 22px 50px -18px rgba(0,0,0,.6);
}
[data-theme="light"] body.is-analyzer .nav,
[data-theme="light"] body.is-trainer .nav,
[data-theme="light"] body.is-reverse .nav{
  border:1px solid rgba(13,18,15,.08);
  border-top-color:rgba(255,255,255,.95);
  background:
    linear-gradient(120deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.6) 50%,rgba(255,255,255,.82) 100%),
    color-mix(in srgb,#ffffff 40%,transparent);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,1),
    0 18px 44px -18px rgba(13,18,15,.2),
    0 1px 0 rgba(13,18,15,.03);
}
body.is-analyzer .analyzer-title,
body.is-trainer .trainer-head,
body.is-analyzer .console,
body.is-trainer .trainer-controls,
body.is-trainer .scoreboard .sb,
body.is-trainer .draw-toolbar,
body.is-trainer .chart-top,
body.is-trainer .trainer-chart,
body.is-trainer .decision-panel,
body.is-trainer .trainer-context,
body.is-trainer .trainer-progress,
.modal-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border-radius:var(--app-glass-radius)!important;
  border:1px solid var(--app-glass-border)!important;
  border-bottom-color:var(--app-glass-border-bottom)!important;
  background:var(--app-glass-bg)!important;
  backdrop-filter:var(--app-glass-filter)!important;
  -webkit-backdrop-filter:var(--app-glass-filter)!important;
  box-shadow:var(--app-glass-shadow)!important;
}
body.is-analyzer .analyzer-title,
body.is-trainer .trainer-head{
  padding:clamp(18px,2.4vw,28px);
  border-bottom-color:var(--app-glass-border-bottom)!important;
}
body.is-analyzer .analyzer-title .btn,
body.is-trainer .trainer-head .btn{
  align-self:center;
  flex:none;
}
body.is-analyzer .console-head,
body.is-trainer .chart-top{
  border-bottom-color:var(--app-inner-border)!important;
  background:
    linear-gradient(135deg,rgba(255,255,255,.08),rgba(255,255,255,.015) 58%,rgba(255,255,255,.04)),
    color-mix(in srgb,var(--surface) 12%,transparent)!important;
}
body.is-analyzer .input-console .seg,
body.is-analyzer .url-input-shell,
body.is-analyzer input,
body.is-analyzer textarea,
body.is-analyzer .flow-node,
body.is-analyzer .pstage,
body.is-analyzer .source-card,
body.is-analyzer .chart-frame,
body.is-analyzer .chart-controls,
body.is-analyzer .chart-metrics,
body.is-analyzer .chart-metrics div,
body.is-analyzer .big-verdict,
body.is-analyzer .sq,
body.is-analyzer .takeaway,
body.is-analyzer .tech,
body.is-analyzer .mc-card,
body.is-analyzer .mc-chart-wrap,
body.is-analyzer .mc-stats>div,
body.is-trainer .trainer-select,
body.is-trainer .seg,
body.is-trainer .tool,
body.is-trainer .entry-info .ei-row,
body.is-trainer .verdict-card,
body.is-trainer .sum-stats .ss,
body.is-trainer .sum-rstats,
body.is-trainer .sum-row,
body.is-trainer .sum-luck,
body.is-trainer .lesson-card,
body.is-trainer .sum-challenge,
body.is-trainer .train-cta,
body.is-trainer .modal-spark,
.claim-box,
.modal-spark,
.info-pop{
  border-color:var(--app-inner-border)!important;
  background:var(--app-inner-bg)!important;
  box-shadow:var(--app-inner-shadow)!important;
}
body.is-analyzer .chart-frame,
body.is-analyzer .chart-controls,
body.is-analyzer .chart-metrics,
body.is-analyzer .big-verdict,
body.is-analyzer .source-card,
body.is-analyzer .mc-card,
body.is-trainer .trainer-chart,
body.is-trainer .decision-panel,
body.is-trainer .trainer-controls,
body.is-trainer .scoreboard .sb,
body.is-trainer .draw-toolbar,
.modal-card{
  border-radius:var(--radius-xl)!important;
}
body.is-analyzer .input-console .seg,
body.is-analyzer .url-input-shell,
body.is-analyzer input,
body.is-analyzer textarea,
body.is-analyzer .flow-node,
body.is-analyzer .pstage,
body.is-analyzer .chart-metrics div,
body.is-analyzer .sq,
body.is-analyzer .takeaway,
body.is-analyzer .tech,
body.is-analyzer .mc-chart-wrap,
body.is-analyzer .mc-stats>div,
body.is-trainer .trainer-select,
body.is-trainer .seg,
body.is-trainer .tool,
body.is-trainer .verdict-card,
body.is-trainer .sum-stats .ss,
body.is-trainer .sum-row,
body.is-trainer .sum-rstats,
body.is-trainer .sum-luck,
body.is-trainer .lesson-card,
body.is-trainer .sum-challenge,
body.is-trainer .train-cta,
.claim-box,
.modal-spark,
.info-pop{
  border-radius:var(--radius-lg)!important;
}
body.is-analyzer .tv-chart,
body.is-analyzer .equity-chart,
body.is-trainer .trainer-chart{
  background:
    linear-gradient(color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--line) 36%,transparent) 1px,transparent 1px),
    color-mix(in srgb,var(--bg) 86%,transparent)!important;
  background-size:54px 54px!important;
}
body.is-analyzer .chart-label{
  border-bottom-color:var(--app-inner-border)!important;
  background:color-mix(in srgb,var(--surface) 18%,transparent)!important;
}
body.is-analyzer .tool-btn,
body.is-trainer .draw-toolbar .tool,
body.is-trainer .tp-reset,
#modal-x,
#summary-x,
#tut-x{
  border-color:var(--app-inner-border)!important;
  background:color-mix(in srgb,var(--surface) 18%,transparent)!important;
  color:var(--ink-2);
}
body.is-analyzer .tool-btn:hover,
body.is-trainer .draw-toolbar .tool:hover,
#modal-x:hover,
#summary-x:hover,
#tut-x:hover{
  color:var(--ink);
  border-color:color-mix(in srgb,var(--accent) 34%,var(--app-inner-border))!important;
  background:color-mix(in srgb,var(--accent) 7%,transparent)!important;
}
body.is-analyzer .tool-btn.active,
body.is-trainer .draw-toolbar .tool.active{
  border-color:color-mix(in srgb,var(--accent) 46%,var(--app-inner-border))!important;
  background:color-mix(in srgb,var(--accent) 12%,transparent)!important;
  color:var(--accent);
}
body.is-analyzer .manual-note,
body.is-analyzer .upload-drop,
body.is-trainer .trainer-loading{
  border-color:var(--app-inner-border)!important;
  background:var(--app-inner-bg)!important;
  box-shadow:var(--app-inner-shadow)!important;
  border-radius:var(--radius-xl)!important;
}
body.is-analyzer .upload-drop{
  border-style:solid!important;
}
body.is-trainer .big-buy,
body.is-trainer .big-sell{
  border-radius:var(--radius-lg);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 16px 34px -24px rgba(0,0,0,.6);
}
body.is-trainer .big-buy,
body.is-trainer .big-buy:hover{
  color:#fff;
}
body.is-trainer .big-sell,
body.is-trainer .big-sell:hover{
  color:#fff;
}
.modal{
  background:rgba(3,6,4,.58)!important;
  backdrop-filter:blur(16px) saturate(1.2)!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.2)!important;
}
[data-theme="light"] .modal{
  background:rgba(255,255,255,.5)!important;
}
@media (max-width:760px){
  body.is-analyzer .analyzer-title,
  body.is-trainer .trainer-head,
  body.is-analyzer .console,
  body.is-trainer .trainer-controls,
  body.is-trainer .scoreboard .sb,
  body.is-trainer .draw-toolbar,
  body.is-trainer .chart-top,
  body.is-trainer .trainer-chart,
  body.is-trainer .decision-panel,
  body.is-trainer .trainer-context,
  body.is-trainer .trainer-progress,
  .modal-card{
    border-radius:var(--radius-xl)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
  body.is-analyzer .nav,
  body.is-trainer .nav,
  body.is-reverse .nav{
    border-radius:var(--radius-lg);
  }
}

/* v5.25: internal pages use the same page shell, trading grid, and side gutters as the landing hero. */
body.is-analyzer .analyzer-view,
body.is-trainer .trainer-view{
  background:
    linear-gradient(90deg,var(--chart-grid-line) 1px,transparent 1px),
    linear-gradient(180deg,var(--chart-grid-line) 1px,transparent 1px),
    radial-gradient(circle at 74px 118px,color-mix(in srgb,var(--accent) 10%,transparent),transparent 28%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 44%,var(--bg) 100%)!important;
  background-size:
    var(--chart-grid-x) var(--chart-grid-y),
    var(--chart-grid-x) var(--chart-grid-y),
    auto,
    auto!important;
  background-position:center top!important;
}
body.is-trainer .trainer-view{
  padding-top:0!important;
}
body.is-trainer .trainer-top{
  padding:18px 0 60px!important;
}
body.is-analyzer .terminal-grid-bg,
body.is-trainer .terminal-grid-bg{
  opacity:.88!important;
}
[data-theme="light"] body.is-analyzer .terminal-grid-bg,
[data-theme="light"] body.is-trainer .terminal-grid-bg{
  opacity:1!important;
}
body.is-analyzer .analyzer-wrap,
body.is-trainer .trainer-wrap{
  width:min(calc(100% - 56px),var(--maxw));
  max-width:var(--maxw)!important;
  padding:0!important;
}
body.is-analyzer .analyzer-title,
body.is-trainer .trainer-head,
body.is-analyzer .console,
body.is-trainer .trainer-controls,
body.is-trainer .scoreboard,
body.is-trainer .trainer-stage,
body.is-trainer .trainer-context,
body.is-trainer .trainer-progress{
  width:100%;
}
body.is-trainer .trainer-stage{
  position:relative;
  isolation:isolate;
  overflow:visible;
  grid-template-columns:52px minmax(0,1fr) 320px;
  gap:14px;
  align-items:start;
  padding:14px;
  border-radius:var(--app-glass-radius)!important;
  border:1px solid var(--app-glass-border)!important;
  border-bottom-color:var(--app-glass-border-bottom)!important;
  background:var(--app-glass-bg)!important;
  backdrop-filter:var(--app-glass-filter)!important;
  -webkit-backdrop-filter:var(--app-glass-filter)!important;
  box-shadow:var(--app-glass-shadow)!important;
}
body.is-trainer .trainer-stage .draw-toolbar,
body.is-trainer .trainer-stage .chart-top,
body.is-trainer .trainer-stage .trainer-chart,
body.is-trainer .trainer-stage .decision-panel{
  background:var(--app-inner-bg)!important;
  border-color:var(--app-inner-border)!important;
  box-shadow:var(--app-inner-shadow)!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.is-trainer .trainer-stage .draw-toolbar{
  width:100%;
  position:relative!important;
  top:auto!important;
  border-radius:var(--radius-xl)!important;
}
body.is-trainer .trainer-stage .chart-top{
  border-radius:var(--radius-xl)!important;
}
body.is-trainer .trainer-stage .trainer-chart,
body.is-trainer .trainer-stage .decision-panel{
  border-radius:var(--radius-xl)!important;
  position:relative!important;
  top:auto!important;
}
body.is-trainer .trainer-chartwrap{
  width:100%;
}
body.is-trainer .decision-panel{
  width:100%;
}
@media (max-width:980px){
  body.is-trainer .trainer-stage{
    grid-template-columns:1fr;
  }
  body.is-trainer .trainer-stage .draw-toolbar{
    width:100%;
  }
}
@media (max-width:760px){
  body.is-analyzer .analyzer-wrap,
  body.is-trainer .trainer-wrap{
    width:min(calc(100% - 24px),var(--maxw));
  }
body.is-trainer .trainer-stage{
    padding:12px;
    border-radius:var(--radius-xl)!important;
    backdrop-filter:none!important;
    -webkit-backdrop-filter:none!important;
  }
}

/* v5.26: keep internal app pages on the same trading-grid shell without
   bleeding the accent glow into every glass panel. */
body.is-analyzer,
body.is-trainer,
.modal{
  --app-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.12) 0%,rgba(255,255,255,.035) 34%,rgba(255,255,255,.01) 62%,rgba(255,255,255,.075) 100%),
    color-mix(in srgb,var(--bg) 24%,transparent);
  --app-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.06),rgba(255,255,255,.014) 54%,rgba(255,255,255,.035)),
    color-mix(in srgb,var(--bg) 34%,transparent);
}
body.is-analyzer .analyzer-view,
body.is-trainer .trainer-view{
  background:
    linear-gradient(90deg,var(--chart-grid-line) 1px,transparent 1px),
    linear-gradient(180deg,var(--chart-grid-line) 1px,transparent 1px),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 44%,var(--bg) 100%)!important;
  background-size:
    var(--chart-grid-x) var(--chart-grid-y),
    var(--chart-grid-x) var(--chart-grid-y),
    auto!important;
  background-position:center top!important;
}
[data-theme="light"] body.is-analyzer,
[data-theme="light"] body.is-trainer,
[data-theme="light"] .modal{
  --app-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.78) 0%,rgba(255,255,255,.46) 40%,rgba(255,255,255,.3) 66%,rgba(255,255,255,.64) 100%),
    rgba(255,255,255,.18);
  --app-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.5),rgba(255,255,255,.18) 56%,rgba(255,255,255,.34)),
    rgba(255,255,255,.12);
}

/* v5.27: keep the primary nav CTA visible on every surface. */
body.is-analyzer .nav-primary{
  display:inline-flex!important;
}

/* v5.28: analyzer starts as a focused intake desk. No default report or
   synthetic backtest is visible until a real audit starts. */
body.is-analyzer.analyzer-idle .analyzer-top{
  padding-top:18px;
}
body.is-analyzer.analyzer-idle .analyzer-wrap{
  width:min(calc(100% - 56px),1120px);
  max-width:1120px!important;
}
body.is-analyzer.analyzer-idle .analyzer-title{
  margin-bottom:18px;
  padding:clamp(20px,2.6vw,30px);
  border-radius:var(--app-glass-radius)!important;
  border:1px solid var(--app-glass-border)!important;
  border-bottom-color:var(--app-glass-border-bottom)!important;
  background:var(--app-glass-bg)!important;
  backdrop-filter:var(--app-glass-filter)!important;
  -webkit-backdrop-filter:var(--app-glass-filter)!important;
  box-shadow:var(--app-glass-shadow)!important;
}
body.is-analyzer.analyzer-idle .analyzer-title h1{
  font-size:clamp(32px,4.4vw,58px);
  max-width:12ch;
}
body.is-analyzer.analyzer-idle .analyzer-title p{
  max-width:58ch;
}
body.is-analyzer.analyzer-idle .analyzer-grid{
  max-width:980px;
  margin:0 auto;
  grid-template-columns:1fr;
  gap:16px;
}
body.is-analyzer.analyzer-idle .input-console{
  padding:0 clamp(16px,2.2vw,24px) clamp(18px,2.4vw,26px);
  border-radius:var(--app-glass-radius)!important;
  min-height:auto;
}
body.is-analyzer .intake-overview{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:18px;
  width:100%;
  max-width:760px;
  margin:2px auto 0;
  padding:16px;
  border:1px solid var(--app-inner-border);
  border-radius:var(--radius-xl);
  background:var(--app-inner-bg);
  box-shadow:var(--app-inner-shadow);
}
body.is-analyzer .intake-overview span{
  display:block;
  font-family:var(--mono);
  font-size:10px;
  font-weight:850;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:var(--accent);
}
body.is-analyzer .intake-overview h2{
  margin:7px 0 0;
  max-width:18ch;
  font-size:clamp(24px,3vw,36px);
  line-height:1;
  letter-spacing:0;
}
body.is-analyzer .intake-tags{
  display:flex;
  gap:6px;
  flex-wrap:wrap;
  justify-content:flex-end;
}
body.is-analyzer .intake-tags span{
  min-height:30px;
  display:inline-flex;
  align-items:center;
  border:1px solid var(--app-inner-border);
  border-radius:var(--radius-pill);
  padding:7px 10px;
  color:var(--ink-2);
  background:color-mix(in srgb,var(--bg) 28%,transparent);
}
body.is-analyzer.analyzer-idle .input-console .seg,
body.is-analyzer.analyzer-idle .input-console #manual-note,
body.is-analyzer.analyzer-idle .input-console .pane,
body.is-analyzer.analyzer-idle .input-console #run,
body.is-analyzer.analyzer-idle .micro-list{
  max-width:760px;
}
body.is-analyzer.analyzer-idle #audit-process.hidden,
body.is-analyzer.analyzer-idle #backtest-live.hidden{
  display:none!important;
}
@media (max-width:760px){
  body.is-analyzer.analyzer-idle .analyzer-wrap{
    width:min(calc(100% - 24px),1120px);
  }
  body.is-analyzer .intake-overview{
    align-items:flex-start;
    flex-direction:column;
  }
  body.is-analyzer .intake-tags{
    justify-content:flex-start;
  }
}

/* v5.31: compact analyzer title after adding the investigator artwork. */
body.is-analyzer.analyzer-idle .analyzer-title{
  margin-bottom:14px;
  padding:14px clamp(18px,2vw,24px);
}
body.is-analyzer.analyzer-idle .analyzer-title h1{
  max-width:34ch;
  font-size:clamp(28px,2.55vw,38px);
}
body.is-analyzer.analyzer-idle .analyzer-title p{
  max-width:62ch;
  margin-top:6px;
}
@media (max-width:680px){
  body.is-analyzer.analyzer-idle .analyzer-title h1{
    max-width:13ch;
  }
}

/* v5.32: keep the analyzer intake action visible on short desktop viewports. */
body.is-analyzer.analyzer-idle .analyzer-title p{
  max-width:78ch;
}

/* v5.33: unified analyzer intake. The first analyzer screen is one surface:
   source selection, active input, and action in a single working panel. */
body.is-analyzer.analyzer-idle .analyzer-top{
  padding-top:clamp(24px,5.8vh,58px);
}
body.is-analyzer.analyzer-idle .analyzer-wrap{
  width:min(calc(100% - 40px),960px);
  max-width:960px!important;
}
body.is-analyzer.analyzer-idle .analyzer-title{
  display:none!important;
}
body.is-analyzer.analyzer-idle .analyzer-grid{
  display:grid;
  max-width:960px;
  margin:0 auto;
  grid-template-columns:1fr;
  gap:0;
}
body.is-analyzer.analyzer-idle .input-console{
  position:relative;
  display:block;
  min-height:auto;
  overflow:hidden;
  padding:0 0 clamp(18px,2.4vw,28px)!important;
  border-radius:32px!important;
  border:1px solid var(--app-glass-border)!important;
  border-bottom-color:var(--app-glass-border-bottom)!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--panel) 78%,transparent),color-mix(in srgb,var(--panel) 46%,transparent)),
    radial-gradient(circle at 18% 2%,color-mix(in srgb,var(--accent) 16%,transparent),transparent 36%)!important;
  box-shadow:var(--app-glass-shadow)!important;
  backdrop-filter:var(--app-glass-filter)!important;
  -webkit-backdrop-filter:var(--app-glass-filter)!important;
  isolation:isolate;
}
body.is-analyzer.analyzer-idle .input-console::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  pointer-events:none;
  opacity:.34;
  background-image:
    linear-gradient(color-mix(in srgb,var(--ink) 10%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--ink) 10%,transparent) 1px,transparent 1px);
  background-size:58px 58px;
  mask-image:linear-gradient(180deg,#000 0%,#000 72%,transparent 100%);
}
body.is-analyzer.analyzer-idle .input-console .console-head{
  min-height:58px;
  padding:18px clamp(22px,3vw,34px);
  border-bottom:1px solid var(--app-inner-border);
  background:linear-gradient(90deg,color-mix(in srgb,var(--panel) 54%,transparent),transparent);
}
body.is-analyzer.analyzer-idle .input-console .console-head span{
  color:var(--accent);
}
body.is-analyzer.analyzer-idle .input-console .console-head b{
  color:var(--ink);
}
body.is-analyzer.analyzer-idle .intake-overview{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:24px;
  max-width:none;
  margin:0;
  padding:clamp(24px,3.2vw,34px) clamp(22px,3vw,34px) 20px;
  border:0;
  border-radius:0;
  background:transparent;
  box-shadow:none;
}
body.is-analyzer.analyzer-idle .intake-overview h2{
  max-width:24ch;
  margin-top:9px;
  font-size:clamp(32px,4vw,54px);
  line-height:.98;
}
body.is-analyzer.analyzer-idle .intake-copy{
  max-width:68ch;
  margin:14px 0 0;
  color:var(--ink-2);
  font-size:15px;
  line-height:1.58;
}
body.is-analyzer.analyzer-idle .intake-tags{
  max-width:240px;
  justify-content:flex-end;
  padding-top:2px;
}
body.is-analyzer.analyzer-idle .intake-tags span{
  justify-content:center;
  min-height:30px;
  padding:7px 10px;
  border-radius:var(--radius-pill);
  color:var(--ink-2);
  background:color-mix(in srgb,var(--panel) 42%,transparent);
}
body.is-analyzer.analyzer-idle .input-console .seg{
  width:auto;
  max-width:none;
  margin:0 clamp(22px,3vw,34px) 20px;
  padding:5px;
  border:1px solid var(--app-inner-border);
  border-radius:var(--radius-xl);
  background:color-mix(in srgb,var(--bg) 22%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05);
}
body.is-analyzer.analyzer-idle .input-console .seg-btn{
  min-height:44px;
  border-radius:var(--radius-md);
}
body.is-analyzer.analyzer-idle .input-console .pane{
  width:auto;
  max-width:none;
  padding:0 clamp(22px,3vw,34px);
}
body.is-analyzer.analyzer-idle #pane-yt.active{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(220px,280px);
  gap:14px;
  align-items:end;
}
body.is-analyzer.analyzer-idle #pane-up.active{
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr);
  gap:14px;
  align-items:end;
}
body.is-analyzer.analyzer-idle #pane-up .upload-hint{
  align-self:center;
  margin:0;
}
body.is-analyzer.analyzer-idle #pane-txt.active{
  display:grid;
  grid-template-columns:minmax(220px,280px) minmax(0,1fr);
  gap:14px;
}
body.is-analyzer.analyzer-idle .url-input-shell.compact,
body.is-analyzer.analyzer-idle .fld input,
body.is-analyzer.analyzer-idle .fld textarea,
body.is-analyzer.analyzer-idle .upload-drop{
  border-color:var(--app-inner-border);
  background:color-mix(in srgb,var(--bg) 30%,transparent);
}
body.is-analyzer.analyzer-idle .manual-note{
  width:auto;
  max-width:none;
  margin:0 clamp(22px,3vw,34px) 14px;
}
body.is-analyzer.analyzer-idle .input-console #run{
  width:auto;
  max-width:none;
  margin:24px clamp(22px,3vw,34px) 0;
}
body.is-analyzer.analyzer-idle .micro-list{
  width:auto;
  max-width:none;
  margin:14px clamp(22px,3vw,34px) 0;
}
@media (max-width:820px){
  body.is-analyzer.analyzer-idle .analyzer-top{
    padding-top:18px;
  }
  body.is-analyzer.analyzer-idle .analyzer-wrap{
    width:min(calc(100% - 24px),960px);
  }
  body.is-analyzer.analyzer-idle .input-console{
    border-radius:var(--radius-xl)!important;
  }
  body.is-analyzer.analyzer-idle .intake-overview{
    grid-template-columns:1fr;
    gap:16px;
  }
  body.is-analyzer.analyzer-idle .intake-tags{
    max-width:none;
    justify-content:flex-start;
  }
  body.is-analyzer.analyzer-idle #pane-yt.active,
  body.is-analyzer.analyzer-idle #pane-up.active,
  body.is-analyzer.analyzer-idle #pane-txt.active{
    grid-template-columns:1fr;
  }
}
@media (max-width:560px){
  body.is-analyzer.analyzer-idle .intake-overview h2{
    font-size:clamp(28px,9vw,38px);
  }
  body.is-analyzer.analyzer-idle .intake-copy{
    font-size:14px;
  }
  body.is-analyzer.analyzer-idle .input-console .seg{
    display:grid;
    grid-template-columns:1fr;
  }
}

/* v5.34: remove duplicate source chips and make the audit action read as
   the primary control of the unified intake panel. */
body.is-analyzer.analyzer-idle .intake-overview{
  grid-template-columns:1fr;
  padding-bottom:18px;
}
body.is-analyzer.analyzer-idle .intake-tags{
  display:none;
}
body.is-analyzer.analyzer-idle .intake-overview h2{
  max-width:21ch;
}
body.is-analyzer.analyzer-idle .input-console .seg{
  max-width:480px;
}
body.is-analyzer.analyzer-idle .input-console #run{
  display:flex;
  width:calc(100% - 68px)!important;
  min-height:54px;
  justify-content:center;
  border-radius:var(--radius-xl);
}
body.is-analyzer.analyzer-idle .micro-list{
  justify-content:center;
}
@media (max-width:820px){
  body.is-analyzer.analyzer-idle .input-console .seg{
    max-width:none;
  }
  body.is-analyzer.analyzer-idle .input-console #run{
    width:calc(100% - 44px)!important;
  }
}

/* v5.35: direct intake. Reduce explanation, make the active source input
   the visual center, and keep optional metadata out of the initial path. */
body.is-analyzer.analyzer-idle .analyzer-top{
  padding-top:clamp(28px,7vh,72px);
}
body.is-analyzer.analyzer-idle .analyzer-wrap{
  width:min(calc(100% - 40px),920px);
  max-width:920px!important;
}
body.is-analyzer.analyzer-idle .input-console{
  border-radius:34px!important;
  background:
    radial-gradient(circle at 50% -12%,color-mix(in srgb,var(--accent) 20%,transparent),transparent 34%),
    linear-gradient(145deg,color-mix(in srgb,var(--panel) 84%,transparent),color-mix(in srgb,var(--panel) 52%,transparent))!important;
}
body.is-analyzer.analyzer-idle .input-console .console-head{
  min-height:52px;
  padding:16px clamp(22px,3vw,34px);
}
body.is-analyzer.analyzer-idle .intake-overview{
  padding:clamp(24px,3.4vw,38px) clamp(22px,3vw,34px) 16px;
}
body.is-analyzer.analyzer-idle .intake-overview span{
  font-size:10px;
}
body.is-analyzer.analyzer-idle .intake-overview h2{
  max-width:11ch;
  margin-top:8px;
  font-size:clamp(44px,6vw,76px);
  line-height:.91;
}
body.is-analyzer.analyzer-idle .intake-copy{
  max-width:42ch;
  margin-top:14px;
  font-size:15.5px;
  line-height:1.42;
}
body.is-analyzer.analyzer-idle .input-console .seg{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  width:auto;
  max-width:none;
  margin:0 clamp(22px,3vw,34px) 18px;
  padding:6px;
  border-radius:var(--radius-xl);
  background:color-mix(in srgb,var(--bg) 36%,transparent);
}
body.is-analyzer.analyzer-idle .input-console .seg-btn{
  min-height:50px;
  border-radius:var(--radius-lg);
  font-size:11px;
  font-weight:900;
  letter-spacing:.08em;
  color:var(--ink-2);
}
body.is-analyzer.analyzer-idle .input-console .seg-btn.active{
  color:var(--bg);
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white),var(--accent));
  box-shadow:0 12px 30px color-mix(in srgb,var(--accent) 22%,transparent),inset 0 1px 0 rgba(255,255,255,.42);
}
body.is-analyzer.analyzer-idle .optional-title-field{
  display:none!important;
}
body.is-analyzer.analyzer-idle .pane{
  min-height:92px;
}
body.is-analyzer.analyzer-idle .pane .fld>span{
  position:absolute;
  width:1px;
  height:1px;
  overflow:hidden;
  clip:rect(0 0 0 0);
  white-space:nowrap;
}
body.is-analyzer.analyzer-idle #pane-yt.active,
body.is-analyzer.analyzer-idle #pane-up.active,
body.is-analyzer.analyzer-idle #pane-txt.active{
  display:block;
}
body.is-analyzer.analyzer-idle .url-input-shell.compact{
  min-height:78px;
  gap:16px;
  padding:10px 18px;
  border-radius:25px;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--app-inner-border));
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--panel) 50%,transparent),color-mix(in srgb,var(--bg) 44%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.06),0 18px 50px rgba(0,0,0,.24);
}
body.is-analyzer.analyzer-idle .platform-strip.compact{
  min-height:42px;
  padding:7px 14px 7px 8px;
  border-right:1px solid var(--app-inner-border);
}
body.is-analyzer.analyzer-idle .platform-pill{
  width:25px;
  height:25px;
}
body.is-analyzer.analyzer-idle .url-input-shell input{
  min-height:56px;
  padding:0;
  font-size:18px;
  font-weight:700;
}
body.is-analyzer.analyzer-idle .url-input-shell input::placeholder,
body.is-analyzer.analyzer-idle .fld textarea::placeholder{
  color:color-mix(in srgb,var(--ink-2) 78%,transparent);
}
body.is-analyzer.analyzer-idle .upload-drop{
  min-height:176px;
  border-radius:26px;
  border-style:solid;
  border-color:color-mix(in srgb,var(--accent) 28%,var(--app-inner-border));
  background:linear-gradient(180deg,color-mix(in srgb,var(--panel) 52%,transparent),color-mix(in srgb,var(--bg) 40%,transparent));
}
body.is-analyzer.analyzer-idle .upload-drop svg{
  width:36px;
  height:36px;
}
body.is-analyzer.analyzer-idle .upload-drop b{
  font-size:18px;
}
body.is-analyzer.analyzer-idle .upload-drop small,
body.is-analyzer.analyzer-idle .upload-hint{
  color:var(--ink-2);
}
body.is-analyzer.analyzer-idle #pane-up .upload-hint{
  margin-top:12px;
  text-align:center;
}
body.is-analyzer.analyzer-idle .fld textarea{
  min-height:190px;
  padding:22px;
  border-radius:26px;
  font-size:16px;
  line-height:1.5;
  resize:vertical;
}
body.is-analyzer.analyzer-idle .input-console #run{
  width:calc(100% - 68px)!important;
  min-height:60px;
  margin-top:22px;
  border-radius:var(--radius-xl);
  font-size:15px;
}
body.is-analyzer.analyzer-idle .micro-list{
  display:none;
}
@media (max-width:720px){
  body.is-analyzer.analyzer-idle .analyzer-wrap{
    width:min(calc(100% - 24px),920px);
  }
  body.is-analyzer.analyzer-idle .intake-overview h2{
    font-size:clamp(38px,12vw,58px);
  }
  body.is-analyzer.analyzer-idle .input-console .seg{
    grid-template-columns:1fr;
  }
  body.is-analyzer.analyzer-idle .url-input-shell.compact{
    align-items:stretch;
    flex-direction:column;
    gap:10px;
  }
  body.is-analyzer.analyzer-idle .platform-strip.compact{
    width:100%;
    border-right:0;
    border-bottom:1px solid var(--app-inner-border);
    padding:0 0 10px;
    justify-content:flex-start;
  }
  body.is-analyzer.analyzer-idle .input-console #run{
    width:calc(100% - 44px)!important;
  }
}

/* v5.36: tighten final direct-intake composition. */
body.is-analyzer.analyzer-idle .analyzer-top{
  padding-top:clamp(16px,4.2vh,42px);
}
body.is-analyzer.analyzer-idle .intake-copy{
  max-width:34ch;
}
body.is-analyzer.analyzer-idle .input-console{
  min-height:0;
}

/* v5.37: match the landing URL control in the analyzer idle state. */
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active){
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(154px,18vw,190px);
  column-gap:8px;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) > .console-head,
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) > .intake-overview,
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) > .seg,
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) > #manual-note,
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) > .micro-list{
  grid-column:1 / -1;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt.active{
  display:block;
  grid-column:1;
  justify-self:stretch;
  width:100%;
  max-width:none;
  min-height:0;
  margin:0!important;
  padding:0 0 0 clamp(22px,3vw,34px);
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .fld{
  display:block;
  width:100%;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .url-input-shell.compact{
  width:100%;
  min-height:58px;
  gap:13px;
  padding:0 16px;
  border:1px solid color-mix(in srgb,var(--line-2) 40%,transparent)!important;
  border-radius:var(--radius-md)!important;
  background:
    linear-gradient(180deg,rgba(8,13,17,.84),rgba(4,7,5,.74))!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.05)!important;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .url-input-shell.compact:focus-within{
  border-color:color-mix(in srgb,var(--accent) 64%,var(--line))!important;
  background:linear-gradient(180deg,rgba(10,16,11,.92),rgba(4,7,5,.82))!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 18px 42px rgba(0,0,0,.18)!important;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .platform-strip.compact{
  min-height:auto;
  gap:8px;
  padding:0 13px 0 0;
  border-right:0;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .platform-strip.compact::after{
  height:26px;
  background:color-mix(in srgb,var(--line-2) 58%,transparent);
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .platform-pill{
  width:19px;
  height:22px;
  opacity:.88;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .platform-pill img{
  width:18px;
  height:18px;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .url-input-shell input,
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .url-input-shell input:focus{
  min-height:56px;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:var(--ink);
  font-size:15px;
  font-weight:500;
  box-shadow:none!important;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #run{
  grid-column:2;
  width:auto!important;
  min-height:58px;
  height:58px;
  margin:0 clamp(22px,3vw,34px) 0 0;
  align-self:start;
  justify-content:space-between;
  border-radius:var(--radius-md);
  padding:0 16px;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #run .run-label{
  font-size:13px;
  letter-spacing:0;
}
[data-theme="light"] body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .url-input-shell.compact{
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent)!important;
  background:rgba(255,255,255,.82)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96)!important;
}
[data-theme="light"] body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .url-input-shell.compact:focus-within{
  background:#fff!important;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 16px 34px rgba(13,18,15,.1)!important;
}
@media (max-width:720px){
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active){
    grid-template-columns:1fr;
  }
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt.active{
    grid-column:1;
    padding:0 clamp(22px,3vw,34px);
  }
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #run{
    grid-column:1;
    width:auto!important;
    margin:8px clamp(22px,3vw,34px) 0;
    justify-content:center;
  }
}

/* v5.38: dedicated loading transition after the strategy submit action. */
body.is-analyzer .input-console,
body.is-analyzer .audit-console,
body.is-analyzer .chart-console{
  transition:
    opacity .34s var(--ease-out),
    transform .38s var(--ease-out),
    max-height .38s var(--ease-out),
    margin .38s var(--ease-out);
}
body.is-analyzer.analyzer-running .analyzer-top{
  padding-top:clamp(18px,4.5vh,52px);
  padding-bottom:64px;
}
body.is-analyzer.analyzer-running .analyzer-wrap{
  width:min(calc(100% - 56px),1120px);
  max-width:1120px!important;
}
body.is-analyzer.analyzer-running .analyzer-title{
  display:none!important;
}
body.is-analyzer.analyzer-running .analyzer-grid{
  min-height:auto;
  align-content:start;
  gap:clamp(22px,3vw,34px);
}
body.is-analyzer.analyzer-running .input-console{
  max-height:0;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  border-width:0!important;
  opacity:0;
  overflow:hidden;
  pointer-events:none;
  transform:translateY(-14px) scale(.985);
}
body.is-analyzer.analyzer-running .input-console .analyzer-static-art{
  display:none!important;
}
body.is-analyzer.analyzer-running #audit-process{
  display:grid;
  grid-template-columns:minmax(280px,380px) minmax(0,1fr);
  grid-template-areas:
    "head head"
    "visual source"
    "visual progress";
  grid-template-rows:auto auto 1fr;
  column-gap:clamp(22px,3vw,34px);
  row-gap:0;
  min-height:clamp(460px,63vh,660px);
  padding-bottom:clamp(18px,2.4vw,28px);
  opacity:1;
  transform:translateY(0);
}
body.is-analyzer.analyzer-running #audit-process .console-head{
  grid-area:head;
}
body.is-analyzer.analyzer-running #audit-process .audit-anim{
  grid-area:visual;
  align-self:stretch;
  justify-content:center;
  min-height:360px;
  padding:clamp(24px,3vw,34px) 0 clamp(18px,2.2vw,26px) clamp(22px,3vw,34px);
}
body.is-analyzer.analyzer-running #audit-process .audit-screen{
  height:clamp(260px,42vh,390px);
  max-width:100%;
  border-radius:var(--radius-xl);
}
body.is-analyzer.analyzer-running #audit-process .audit-anim-cap{
  max-width:30ch;
  text-align:center;
  line-height:1.35;
}
body.is-analyzer.analyzer-running #audit-process .audit-source,
body.is-analyzer.analyzer-running #audit-process #progress{
  align-self:center;
  min-width:0;
  padding:clamp(24px,3vw,34px) clamp(22px,3vw,34px) clamp(18px,2.2vw,26px) 0;
}
body.is-analyzer.analyzer-running #audit-process .audit-source{
  grid-area:source;
  align-self:start;
  padding-bottom:0;
}
body.is-analyzer.analyzer-running #audit-process #progress{
  grid-area:progress;
}
body.is-analyzer.analyzer-running #audit-process .audit-source + #progress{
  align-self:end;
  padding-top:0;
}
body.is-analyzer.analyzer-running #audit-process .source-card{
  margin:0;
}
body.is-analyzer.analyzer-running #audit-process .stage-list{
  gap:11px;
  padding:0;
}
body.is-analyzer.analyzer-running #audit-process .audit-progress-meter{
  padding:0 0 16px;
}
body.is-analyzer.analyzer-running #audit-process .pstage{
  min-height:58px;
  padding:14px 15px;
  border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--bg) 42%,transparent);
}
body.is-analyzer.analyzer-running #backtest-live:not(.hidden){
  transform:translateY(0);
}
@media (max-width:820px){
  body.is-analyzer.analyzer-running .analyzer-wrap{
    width:min(calc(100% - 24px),1120px);
  }
  body.is-analyzer.analyzer-running #audit-process{
    grid-template-columns:1fr;
    grid-template-areas:
      "head"
      "visual"
      "source"
      "progress";
    min-height:auto;
  }
  body.is-analyzer.analyzer-running #audit-process .audit-anim{
    min-height:0;
    padding:22px 18px 6px;
  }
  body.is-analyzer.analyzer-running #audit-process .audit-screen{
    height:min(62vw,330px);
  }
  body.is-analyzer.analyzer-running #audit-process .audit-source,
  body.is-analyzer.analyzer-running #audit-process #progress{
    padding:16px 18px 20px;
  }
  body.is-analyzer.analyzer-running #audit-process .audit-progress-meter{
    padding:0 0 14px;
  }
  body.is-analyzer.analyzer-running #audit-process .audit-source + #progress{
    padding-top:0;
  }
}

/* v5.39: completed audits stay in result mode instead of restoring the
   initial intake/title shell above the report. */
body.is-analyzer.analyzer-result .analyzer-top{
  padding-top:clamp(18px,4vh,44px);
  padding-bottom:72px;
}
body.is-analyzer.analyzer-result .analyzer-wrap{
  width:min(calc(100% - 56px),1120px);
  max-width:1120px!important;
}
body.is-analyzer.analyzer-result .analyzer-title,
body.is-analyzer.analyzer-result .input-console{
  display:none!important;
}
body.is-analyzer.analyzer-result .analyzer-grid{
  min-height:auto;
  align-content:start;
  gap:clamp(24px,3.4vw,38px);
}
body.is-analyzer.analyzer-result #audit-process{
  opacity:.92;
}
body.is-analyzer.analyzer-result #backtest-live{
  scroll-margin-top:calc(var(--nav-h) + 18px);
}
body.is-analyzer.analyzer-result #result{
  scroll-margin-top:calc(var(--nav-h) + 18px);
}
body.is-analyzer.analyzer-result .analysis-dock{
  padding:18px;
}
body.is-analyzer.analyzer-result .result:not(.hidden){
  animation:resultRise .42s var(--ease-out) both;
}
@keyframes resultRise{
  from{opacity:0;transform:translateY(18px)}
  to{opacity:1;transform:translateY(0)}
}
@media (max-width:820px){
  body.is-analyzer.analyzer-result .analyzer-wrap{
    width:min(calc(100% - 24px),1120px);
  }
}

/* v5.40: generated transparent Travocato lifter art for the trainer header. */
body.is-trainer .trainer-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(220px,27vw,360px) auto;
  align-items:end;
  gap:clamp(16px,2.6vw,28px);
  overflow:hidden;
}
body.is-trainer .trainer-head>div{
  min-width:0;
  position:relative;
  z-index:1;
}
body.is-trainer .trainer-head .btn{
  position:relative;
  z-index:2;
  align-self:start;
  justify-self:end;
}
body.is-trainer .trainer-hero-art{
  position:relative;
  z-index:1;
  width:clamp(220px,27vw,360px);
  margin:-28px -8px -38px 0;
  justify-self:end;
  align-self:center;
  pointer-events:none;
}
body.is-trainer .trainer-hero-art img{
  display:block;
  width:100%;
  height:auto;
  object-fit:contain;
  filter:drop-shadow(0 24px 34px rgba(0,0,0,.34));
}
[data-theme="light"] body.is-trainer .trainer-hero-art img{
  filter:drop-shadow(0 20px 28px rgba(30,45,22,.18));
}
@media (max-width:980px){
  body.is-trainer .trainer-head{
    grid-template-columns:minmax(0,1fr) clamp(164px,34vw,250px);
  }
  body.is-trainer .trainer-head .btn{
    grid-column:1 / -1;
    justify-self:start;
  }
  body.is-trainer .trainer-hero-art{
    width:clamp(164px,34vw,250px);
    margin:-18px -8px -22px 0;
  }
}
@media (max-width:620px){
  body.is-trainer .trainer-head{
    grid-template-columns:minmax(0,1fr) 118px;
    gap:12px;
  }
  body.is-trainer .trainer-head h1{
    max-width:11ch;
  }
  body.is-trainer .trainer-hero-art{
    width:118px;
    margin:0 -8px -8px 0;
  }
}

/* v5.41: restore the analyzer's static investigator art inside the single
   intake surface, without adding another visible card. */
body.is-analyzer.analyzer-idle .intake-overview{
  grid-template-columns:minmax(0,1fr) clamp(132px,18vw,178px)!important;
  align-items:center;
  overflow:visible;
}
body.is-analyzer.analyzer-idle .analyzer-static-art{
  width:clamp(132px,18vw,178px);
  height:clamp(166px,23vw,236px);
  margin:-12px 0 -18px;
  justify-self:end;
  align-self:end;
  pointer-events:none;
}
body.is-analyzer.analyzer-idle .analyzer-static-art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
  object-position:center bottom;
  filter:drop-shadow(0 18px 26px rgba(0,0,0,.32));
}
[data-theme="light"] body.is-analyzer.analyzer-idle .analyzer-static-art img{
  filter:drop-shadow(0 16px 22px rgba(25,38,18,.18));
}
@media (max-width:720px){
  body.is-analyzer.analyzer-idle .intake-overview{
    grid-template-columns:minmax(0,1fr) 112px!important;
    gap:12px;
  }
  body.is-analyzer.analyzer-idle .analyzer-static-art{
    width:112px;
    height:150px;
    margin:0 -2px -10px 0;
  }
}
@media (max-width:420px){
  body.is-analyzer.analyzer-idle .intake-overview{
    grid-template-columns:minmax(0,1fr) 86px!important;
  }
  body.is-analyzer.analyzer-idle .analyzer-static-art{
    width:86px;
    height:116px;
    margin:0 -4px -6px 0;
  }
}

/* v5.42: premium pricing section with annual billing, price anchoring and
   cleaner conversion hierarchy. */
#landing-view .pricing-section .wrap{
  display:grid;
  gap:clamp(18px,2.4vw,26px);
}
#landing-view .pricing-section .section-head{
  margin-bottom:0;
}
#landing-view .pricing-toolbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:18px;
  padding:12px;
  border:1px solid var(--landing-glass-border);
  border-bottom-color:var(--landing-glass-border-bottom);
  border-radius:var(--radius-xl);
  background:var(--landing-inner-bg);
  box-shadow:var(--landing-inner-shadow);
  backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);
}
#landing-view .pricing-toolbar>div:first-child{
  display:grid;
  gap:2px;
  padding-left:8px;
}
#landing-view .pricing-toolbar span,
#landing-view .pricing-proof-strip span{
  color:var(--accent);
  font-family:var(--mono);
  font-size:10px;
  font-weight:900;
  letter-spacing:.14em;
  text-transform:uppercase;
}
#landing-view .pricing-toolbar b{
  color:var(--ink);
  font-size:14px;
  font-weight:760;
}
#landing-view .billing-toggle{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  min-width:min(100%,360px);
  padding:5px;
  border:1px solid var(--landing-inner-border);
  border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--bg) 28%,transparent);
}
#landing-view .billing-btn{
  min-height:42px;
  border:0;
  border-radius:var(--radius-md);
  padding:0 14px;
  background:transparent;
  color:var(--ink-2);
  cursor:pointer;
  font-family:var(--font);
  font-size:13px;
  font-weight:850;
  letter-spacing:0;
  transition:background .2s var(--ease),color .2s var(--ease),box-shadow .2s var(--ease);
}
#landing-view .billing-btn:hover{
  color:var(--ink);
  background:color-mix(in srgb,var(--ink) 6%,transparent);
}
#landing-view .billing-btn.active{
  color:#071006;
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white),var(--accent));
  box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 20%,transparent),inset 0 1px 0 rgba(255,255,255,.52);
}
#landing-view .pricing-grid{
  align-items:stretch;
  gap:clamp(12px,1.6vw,16px);
}
#landing-view .price-card{
  min-height:430px;
  gap:16px;
  padding:clamp(20px,2.4vw,28px);
}
#landing-view .price-card.featured{
  transform:translateY(-8px);
  padding-top:clamp(24px,2.4vw,28px);
  border-color:color-mix(in srgb,var(--accent) 64%,var(--landing-glass-border))!important;
  box-shadow:
    var(--landing-glass-shadow),
    0 0 0 1px color-mix(in srgb,var(--accent) 20%,transparent),
    0 24px 70px color-mix(in srgb,var(--accent) 16%,transparent)!important;
}
#landing-view .price-ribbon{
  position:absolute!important;
  top:18px;
  right:18px;
  z-index:4!important;
  min-width:168px;
  min-height:48px;
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:center;
  gap:6px;
  border:1px solid color-mix(in srgb,var(--accent) 58%,var(--landing-inner-border));
  border-radius:17px 17px 17px 7px;
  padding:6px;
  background:
    radial-gradient(80px 44px at 20% 0%,rgba(255,255,255,.46),transparent 74%),
    linear-gradient(135deg,color-mix(in srgb,var(--accent) 98%,white),color-mix(in srgb,var(--accent) 70%,#dfff8e) 48%,color-mix(in srgb,var(--accent) 92%,#1d3f12));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.5),
    inset 0 -1px 0 rgba(7,16,6,.18),
    0 18px 38px color-mix(in srgb,var(--accent) 22%,transparent),
    0 0 0 6px color-mix(in srgb,var(--accent) 7%,transparent);
  color:#071006;
  font-family:var(--mono);
  font-weight:900;
  margin:0;
  overflow:hidden;
}
#landing-view .price-ribbon::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(115deg,rgba(255,255,255,.42),transparent 34%,transparent 62%,rgba(255,255,255,.22)),
    repeating-linear-gradient(135deg,rgba(7,16,6,.08) 0 1px,transparent 1px 7px);
  opacity:.78;
}
#landing-view .price-ribbon::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:22px;
  height:22px;
  background:linear-gradient(135deg,rgba(7,16,6,.22),rgba(7,16,6,0) 62%);
  border-radius:0 14px 0 6px;
}
#landing-view .ribbon-main,
#landing-view .ribbon-save{
  position:relative;
  z-index:1;
  min-height:34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  border-radius:var(--radius-md);
  white-space:nowrap;
  text-transform:uppercase;
}
#landing-view .ribbon-main{
  gap:7px;
  padding:0 10px;
  color:#071006;
  font-size:10px;
  letter-spacing:.12em;
  background:rgba(255,255,255,.2);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.35);
}
#landing-view .ribbon-save{
  min-width:54px;
  padding:0 9px;
  background:#071006;
  color:color-mix(in srgb,var(--accent) 82%,white);
  border:1px solid rgba(7,16,6,.2);
  font-size:13px;
  letter-spacing:.06em;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 8px 18px rgba(7,16,6,.2);
}
#landing-view .price-card.featured>.plan-label{
  max-width:calc(100% - 188px);
}
#landing-view .price-card h3{
  margin-top:0;
}
#landing-view .price-card.featured h3{
  padding-right:0;
  margin-top:6px;
}
#landing-view .price-stack{
  display:grid;
  gap:6px;
  margin:2px 0 0;
}
#landing-view .old-price{
  width:max-content;
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:14px;
  font-weight:850;
  letter-spacing:.04em;
  text-decoration:line-through;
  text-decoration-thickness:2px;
  text-decoration-color:color-mix(in srgb,var(--humo) 78%,var(--ink-3));
}
#landing-view .price{
  display:flex;
  align-items:flex-end;
  gap:5px;
  color:var(--ink);
  font-size:clamp(44px,4.6vw,60px);
  font-weight:900;
  letter-spacing:0;
}
#landing-view .price span{
  transform:translateY(-7px);
  color:var(--ink-3);
  font-size:15px;
  font-weight:850;
}
#landing-view .deal-note{
  width:max-content;
  max-width:100%;
  min-height:28px;
  display:inline-flex;
  align-items:center;
  border:1px solid color-mix(in srgb,var(--accent) 30%,transparent);
  border-radius:var(--radius-pill);
  padding:6px 10px;
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  color:var(--accent);
  font-size:12px;
  font-weight:850;
}
#landing-view .price-card p{
  min-height:0;
  margin:0;
  color:var(--ink-2);
  font-size:14.5px;
  line-height:1.58;
}
#landing-view .sales-list{
  display:grid;
  gap:9px;
  margin:2px 0 6px;
  padding:0;
  list-style:none;
}
#landing-view .sales-list li{
  display:flex;
  align-items:flex-start;
  gap:9px;
  color:var(--ink);
  font-size:13.5px;
  font-weight:650;
  line-height:1.35;
}
#landing-view .sales-list li::before{
  content:"";
  flex:0 0 auto;
  width:7px;
  height:7px;
  margin-top:6px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);
}
#landing-view .pricing-proof-strip{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:14px;
  padding:14px 18px;
  border:1px solid var(--landing-inner-border);
  border-radius:var(--radius-xl);
  background:var(--landing-inner-bg);
  box-shadow:var(--landing-inner-shadow);
  text-align:center;
}
#landing-view .pricing-proof-strip b{
  max-width:780px;
  color:var(--ink);
  font-size:14px;
  font-weight:760;
  line-height:1.45;
}
[data-theme="light"] #landing-view .billing-toggle{
  background:rgba(255,255,255,.42);
}
[data-theme="light"] #landing-view .old-price{
  color:#6b746b;
}
@media (max-width:920px){
  #landing-view .pricing-toolbar,
  #landing-view .pricing-proof-strip{
    align-items:stretch;
    flex-direction:column;
  }
  #landing-view .pricing-toolbar>div:first-child{
    padding-left:0;
  }
  #landing-view .billing-toggle{
    width:100%;
    min-width:0;
  }
  #landing-view .price-card.featured{
    transform:none;
  }
}
@media (max-width:520px){
  #landing-view .billing-toggle{
    grid-template-columns:1fr;
  }
  #landing-view .price-card{
    min-height:auto;
  }
  #landing-view .price-ribbon{
    position:absolute!important;
    top:18px;
    right:18px;
    min-width:158px;
    justify-self:auto;
  }
  #landing-view .price-card.featured>.plan-label{
    max-width:112px;
    min-height:36px;
    display:flex;
    align-items:center;
  }
  #landing-view .price-card.featured h3{
    padding-right:0;
  }
}
@media (max-width:360px){
  #landing-view .price-ribbon{
    position:relative!important;
    top:auto;
    right:auto;
    min-width:0;
    width:max-content;
    max-width:100%;
    margin:-2px 0 2px;
  }
  #landing-view .price-card.featured>.plan-label{
    max-width:none;
    min-height:0;
  }
}

/* v5.43: professional analyzer loading choreography.
   The audit video, candle canvas and progress rail now live in fixed lanes, so
   polling updates do not stretch the mascot animation or make the card breathe. */
body.is-analyzer.analyzer-running #audit-process{
  grid-template-columns:minmax(292px,340px) minmax(0,1fr);
  grid-template-areas:
    "head head"
    "visual source"
    "visual progress";
  grid-template-rows:58px minmax(112px,auto) minmax(0,1fr);
  height:clamp(560px,calc(100svh - var(--nav-h) - 92px),680px);
  min-height:0;
  overflow:hidden;
  align-items:stretch;
  transition:opacity .28s var(--ease-out),transform .34s var(--ease-out)!important;
}
body.is-analyzer.analyzer-running #audit-process::before{
  display:none!important;
}
body.is-analyzer.analyzer-running #audit-process .console-head{
  min-height:58px;
}
body.is-analyzer.analyzer-running #audit-process .audit-anim{
  min-height:0;
  height:100%;
  display:grid;
  grid-template-rows:minmax(0,1fr) 28px;
  place-items:center;
  align-self:stretch;
  gap:12px;
  padding:clamp(20px,2.4vw,28px) 0 clamp(18px,2vw,24px) clamp(22px,3vw,32px);
}
body.is-analyzer.analyzer-running #audit-process .audit-screen,
body.is-analyzer.analyzer-running #audit-process .audit-anim:not(.is-complete):not(.is-error) .audit-screen{
  width:min(100%,292px);
  height:auto;
  max-height:390px;
  aspect-ratio:1228 / 1684;
  animation:none!important;
  transform:none!important;
  border-radius:var(--radius-xl);
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));
  box-shadow:
    0 26px 58px -34px rgba(0,0,0,.72),
    0 0 0 1px rgba(255,255,255,.07),
    0 0 36px color-mix(in srgb,var(--accent) 10%,transparent);
}
body.is-analyzer.analyzer-running #audit-process .audit-video{
  transform:none!important;
}
body.is-analyzer.analyzer-running #audit-process .audit-candles{
  inset:clamp(18px,2vw,24px) 0 clamp(42px,4vw,58px);
  opacity:.56;
  -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 76%,transparent);
          mask-image:linear-gradient(180deg,transparent,#000 18%,#000 76%,transparent);
}
body.is-analyzer.analyzer-running #audit-process .audit-scan{
  top:10%;
  height:2px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 72%,white),transparent);
  box-shadow:
    0 0 18px color-mix(in srgb,var(--accent) 34%,transparent),
    0 12px 42px color-mix(in srgb,var(--accent) 10%,transparent);
}
body.is-analyzer.analyzer-running #audit-process .audit-anim:not(.is-complete):not(.is-error) .audit-scan{
  animation:audit-scanline 2.35s cubic-bezier(.55,0,.18,1) infinite!important;
}
@keyframes audit-scanline{
  0%{opacity:0;transform:translateY(0)}
  12%{opacity:.95}
  82%{opacity:.72}
  100%{opacity:0;transform:translateY(320px)}
}
body.is-analyzer.analyzer-running #audit-process .audit-anim-cap{
  height:28px;
  display:flex;
  align-items:center;
  justify-content:center;
  margin:0;
  color:color-mix(in srgb,var(--accent) 78%,var(--ink-3));
  font-size:10px;
  letter-spacing:.16em;
}
body.is-analyzer.analyzer-running #audit-process .audit-source,
body.is-analyzer.analyzer-running #audit-process #progress{
  min-height:0;
  padding:0 clamp(22px,3vw,32px) 0 0;
}
body.is-analyzer.analyzer-running #audit-process .audit-source{
  display:flex;
  align-items:end;
  min-height:112px;
  padding-top:clamp(18px,2.4vw,28px);
}
body.is-analyzer.analyzer-running #audit-process .source-card{
  width:100%;
  grid-template-columns:112px minmax(0,1fr);
  gap:11px;
  min-height:92px;
  padding:9px;
  border-radius:var(--radius-lg)!important;
}
body.is-analyzer.analyzer-running #audit-process #progress{
  display:grid;
  grid-template-rows:auto minmax(0,1fr);
  align-self:stretch;
  padding-top:16px;
  padding-bottom:clamp(18px,2.4vw,28px);
}
body.is-analyzer.analyzer-running #audit-process .audit-source + #progress{
  align-self:stretch;
  padding-top:14px;
}
body.is-analyzer.analyzer-running #audit-process .audit-progress-meter{
  padding:0 0 16px;
}
body.is-analyzer.analyzer-running #audit-process .audit-bar span{
  transition:width .52s cubic-bezier(.22,1,.36,1);
}
body.is-analyzer.analyzer-running #audit-process .stage-list{
  min-height:0;
  max-height:none;
  overflow:auto;
  align-content:start;
  gap:9px;
  padding:0 4px 0 0;
  scrollbar-width:thin;
  scrollbar-color:color-mix(in srgb,var(--accent) 38%,transparent) transparent;
}
body.is-analyzer.analyzer-running #audit-process .stage-list::-webkit-scrollbar{
  width:6px;
}
body.is-analyzer.analyzer-running #audit-process .stage-list::-webkit-scrollbar-thumb{
  border-radius:var(--radius-pill);
  background:color-mix(in srgb,var(--accent) 34%,transparent);
}
body.is-analyzer.analyzer-running #audit-process .pstage{
  min-height:50px;
  padding:12px 14px;
  border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--bg) 36%,transparent);
  transform:none!important;
}
body.is-analyzer.analyzer-running #audit-process .pstage.running{
  border-color:color-mix(in srgb,var(--accent) 44%,var(--app-inner-border));
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--accent) 10%,transparent),transparent 44%),
    color-mix(in srgb,var(--bg) 36%,transparent);
}
@media (max-width:820px){
  body.is-analyzer.analyzer-running #audit-process{
    grid-template-columns:minmax(0,1fr);
    grid-template-areas:
      "head"
      "visual"
      "source"
      "progress";
    grid-template-rows:58px auto auto minmax(0,1fr);
    column-gap:0;
    height:auto;
    min-height:0;
    overflow:hidden;
  }
  body.is-analyzer.analyzer-running #audit-process .audit-anim{
    height:auto;
    grid-template-rows:auto 26px;
    padding:20px 18px 10px;
  }
  body.is-analyzer.analyzer-running #audit-process .audit-screen,
  body.is-analyzer.analyzer-running #audit-process .audit-anim:not(.is-complete):not(.is-error) .audit-screen{
    width:min(100%,230px);
    height:auto;
  }
  body.is-analyzer.analyzer-running #audit-process .audit-source{
    min-height:0;
    padding:14px 18px 0;
  }
  body.is-analyzer.analyzer-running #audit-process #progress,
  body.is-analyzer.analyzer-running #audit-process .audit-source + #progress{
    min-height:220px;
    padding:14px 18px 20px;
  }
  body.is-analyzer.analyzer-running #audit-process .stage-list{
    max-height:150px;
    overflow:auto;
  }
}
@media (prefers-reduced-motion: reduce){
  body.is-analyzer.analyzer-running #audit-process .audit-scan{
    animation:none!important;
  }
}

/* ===== Evidence-mode selector + entry-screenshots zone + confidence badge ===== */
.audit-mode-choice{ margin-top:.82rem; }
.audit-mode-head{display:flex;align-items:flex-start;justify-content:space-between;gap:.75rem;margin-bottom:.62rem}
.depth-q{ display:block; font-size:.9rem; font-weight:880; letter-spacing:.005em; color:var(--ink,#eef3f0); }
.mode-question-help{margin:.16rem 0 0;max-width:52ch;color:var(--ink-2,#9caaa2);font-size:.79rem;line-height:1.4}
.mode-cost-pill{
  flex:0 0 auto;
  display:inline-flex;align-items:center;justify-content:center;
  min-height:26px;padding:0 .62rem;border-radius:var(--radius-pill);
  border:1px solid color-mix(in srgb,var(--accent,#9be84c) 32%,var(--line,#1d2724));
  background:color-mix(in srgb,var(--surface,#101513) 76%,transparent);
  color:color-mix(in srgb,var(--accent,#9be84c) 76%,var(--ink,#eef3f0));
  font-size:.69rem;font-weight:840;letter-spacing:.015em;white-space:nowrap;
}
.audit-mode-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem}
.audit-mode-grid.compact{grid-template-columns:repeat(auto-fit,minmax(180px,1fr))}
@media (max-width:760px){.audit-mode-grid,.audit-mode-grid.compact{grid-template-columns:1fr}}
.audit-mode-btn{
  position:relative;display:grid;grid-template-columns:42px minmax(0,1fr);grid-template-rows:auto auto auto;align-content:start;gap:.18rem .7rem;text-align:left;min-height:112px;
  padding:.82rem;border-radius:var(--radius-lg);cursor:pointer;font-family:inherit;
  border:1px solid color-mix(in srgb,var(--line,#1d2724) 78%,transparent);
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--surface,#101513) 88%,transparent),color-mix(in srgb,var(--bg,#07090a) 92%,transparent)),
    color-mix(in srgb,var(--surface,#101513) 86%,transparent);
  color:var(--ink,#eef3f0);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 12px 28px rgba(0,0,0,.12);
  transition:border-color .18s var(--ease), transform .18s var(--ease), background .18s var(--ease), box-shadow .18s var(--ease);
}
.audit-mode-btn:hover{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--accent,#9be84c) 38%,var(--line,#1d2724));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.07),0 16px 34px rgba(0,0,0,.16);
}
.audit-mode-btn.active{
  border-color:color-mix(in srgb,var(--accent,#9be84c) 72%,var(--line,#1d2724));
  background:
    linear-gradient(150deg,color-mix(in srgb,var(--accent,#9be84c) 12%,var(--surface,#101513)),color-mix(in srgb,var(--surface,#101513) 90%,transparent)),
    color-mix(in srgb,var(--surface,#101513) 88%,transparent);
}
.audit-mode-btn.active::after{
  content:"";position:absolute;inset:7px;border-radius:var(--radius-md);pointer-events:none;
  border:1px solid color-mix(in srgb,var(--accent,#9be84c) 24%,transparent);
}
.mode-top{display:flex;align-items:flex-start;justify-content:flex-start;flex-direction:column;gap:.38rem;min-height:0;grid-row:1 / span 3;grid-column:1}
.mode-code{
  display:inline-flex;align-items:center;justify-content:center;width:36px;height:36px;border-radius:var(--radius-md);
  border:1px solid color-mix(in srgb,var(--line,#1d2724) 80%,transparent);
  color:var(--ink,#eef3f0);font-size:.92rem;font-weight:900;font-family:var(--mono,monospace);
  background:rgba(255,255,255,.035);
}
.audit-mode-btn.active .mode-code{background:var(--accent,#9be84c);border-color:var(--accent,#9be84c);color:#081104}
.mode-tag{
  display:none;
}
.mode-tag.quiet{background:color-mix(in srgb,var(--accent-2,#5bbcff) 14%,transparent);color:color-mix(in srgb,var(--accent-2,#5bbcff) 72%,var(--ink,#eef3f0))}
.mode-tag.premium{background:color-mix(in srgb,#ffd166 18%,transparent);color:color-mix(in srgb,#ffd166 78%,var(--ink,#eef3f0))}
.audit-mode-btn b{font-size:1rem;line-height:1.15;grid-column:2}
.audit-mode-btn small{font-size:.78rem;line-height:1.3;color:var(--ink-2,#9caaa2);grid-column:2}
.mode-meta{display:flex;gap:.32rem;flex-wrap:wrap;margin-top:.34rem;grid-column:2}
.mode-meta i{
  font-style:normal;font-size:.64rem;font-weight:800;color:var(--ink-2,#9caaa2);
  border:1px solid color-mix(in srgb,var(--line,#1d2724) 62%,transparent);
  border-radius:var(--radius-pill);padding:.2rem .4rem;background:rgba(255,255,255,.024);
}
.mode-explain{
  margin:.62rem 0 0;padding:.68rem .76rem;border-radius:var(--radius-md);
  border:1px solid color-mix(in srgb,var(--line,#1d2724) 72%,transparent);
  background:color-mix(in srgb,var(--surface,#101513) 64%,transparent);
  color:var(--ink-2,#9caaa2);font-size:.81rem;line-height:1.42;
}
[data-theme="light"] .audit-mode-btn{
  background:rgba(255,255,255,.62);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.92),0 14px 34px rgba(20,32,18,.08);
}
[data-theme="light"] .audit-mode-btn.active{background:color-mix(in srgb,var(--accent,#51932e) 10%,rgba(255,255,255,.72))}
[data-theme="light"] .mode-explain,[data-theme="light"] .mode-cost-pill{background:rgba(255,255,255,.6)}
.frames-zone{ margin-top:.75rem; }
.frames-zone.hidden{ display:none; }
.frames-help{ margin:0 0 .5rem; font-size:.8rem; line-height:1.45; color:var(--ink-2,#9caaa2); text-align:center; }
.frame-upload-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.62rem;margin-top:.62rem}
.frame-drop{
  position:relative;display:flex;flex-direction:column;gap:.28rem;min-height:92px;padding:.78rem .86rem;
  border:1px solid color-mix(in srgb,var(--line,#1d2724) 76%,transparent);
  border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface,#101513) 68%,transparent);
  cursor:pointer;overflow:hidden;box-shadow:inset 0 1px 0 rgba(255,255,255,.055);
  transition:border-color .18s var(--ease),background .18s var(--ease),transform .18s var(--ease);
}
.frame-drop:hover,.frame-drop.dragging{
  transform:translateY(-1px);
  border-color:color-mix(in srgb,var(--accent,#9be84c) 50%,var(--line,#1d2724));
  background:color-mix(in srgb,var(--accent,#9be84c) 8%,var(--surface,#101513));
}
.frame-drop.has-file{
  border-color:color-mix(in srgb,var(--accent,#9be84c) 62%,var(--line,#1d2724));
}
.frame-drop input{position:absolute;inset:0;opacity:0;cursor:pointer}
.frame-drop span{display:flex;align-items:center;justify-content:space-between;gap:.6rem}
.frame-drop b{font-size:.86rem;font-weight:880;color:var(--ink,#eef3f0)}
.frame-drop i{
  font-style:normal;font-size:.66rem;font-weight:850;color:var(--accent,#9be84c);
  border:1px solid color-mix(in srgb,var(--accent,#9be84c) 35%,transparent);
  border-radius:var(--radius-pill);padding:.18rem .42rem;background:rgba(255,255,255,.024);
}
.frame-drop small{font-size:.74rem;line-height:1.35;color:var(--ink-2,#9caaa2)}
.frame-preview-grid{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.5rem;margin-top:.54rem;
}
.frame-preview-grid:empty{display:none}
.frame-thumb{
  position:relative;margin:0;border:1px solid color-mix(in srgb,var(--line,#1d2724) 72%,transparent);
  border-radius:var(--radius-lg);overflow:hidden;background:rgba(255,255,255,.025);
}
.frame-thumb img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;background:#050807}
/* role tag overlaid on each thumbnail so entry vs exit is unmistakable */
.thumb-tag{
  position:absolute;top:.34rem;left:.34rem;font-size:.6rem;font-weight:900;letter-spacing:.04em;
  padding:.16rem .4rem;border-radius:var(--radius-sm);color:#081104;backdrop-filter:blur(2px);
}
.thumb-tag.entry{background:var(--real,#9be84c)}
.thumb-tag.exit{background:var(--exit);color:#1a0604}
.frame-thumb.entry{border-color:color-mix(in srgb,var(--real,#9be84c) 55%,transparent)}
.frame-thumb.exit{border-color:color-mix(in srgb,var(--exit) 55%,transparent)}
.thumb-x{
  position:absolute;top:.3rem;right:.3rem;width:1.25rem;height:1.25rem;line-height:1;
  display:flex;align-items:center;justify-content:center;border:none;border-radius:50%;cursor:pointer;
  background:rgba(6,10,8,.78);color:#fff;font-size:.95rem;font-weight:700;
}
.thumb-x:hover{background:var(--exit);color:#1a0604}
/* entry = green, exit = red, so the two upload zones read at a glance */
.frame-drop.entry b::before{content:"▲ ";color:var(--real,#9be84c);font-size:.8em}
.frame-drop.exit b::before{content:"▼ ";color:var(--exit);font-size:.8em}
.frame-drop.entry.has-file{border-color:color-mix(in srgb,var(--real,#9be84c) 62%,var(--line,#1d2724))}
.frame-drop.exit.has-file{border-color:color-mix(in srgb,var(--exit) 62%,var(--line,#1d2724))}
.frame-drop.exit i{color:var(--exit);border-color:color-mix(in srgb,var(--exit) 38%,transparent)}
.frame-drop.exit:hover,.frame-drop.exit.dragging{
  border-color:color-mix(in srgb,var(--exit) 50%,var(--line,#1d2724));
  background:color-mix(in srgb,var(--exit) 8%,var(--surface,#101513));
}
[data-theme="light"] .frame-drop,[data-theme="light"] .frame-thumb{background:rgba(255,255,255,.6)}
@media (max-width:760px){
  .frame-upload-grid{grid-template-columns:1fr}
  .frame-preview-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
/* keep the upload control content reliably centered in its box */
.upload-drop{ width:100%; box-sizing:border-box; align-items:center; justify-content:center; text-align:center; }
.upload-drop b, .upload-drop small{ width:100%; text-align:center; }

.conf-badge{
  display:flex; align-items:center; gap:.8rem; margin:.7rem 0 0;
  padding:.7rem .9rem; border-radius:var(--radius-lg); border:1px solid var(--line-2,#2a3432);
  background:var(--bg-2,#07090a);
}
.conf-badge .conf-pct{
  flex:0 0 auto; font-weight:880; font-size:.78rem; letter-spacing:.08em; line-height:1;
  padding:.56rem .62rem; border-radius:var(--radius-md); min-width:72px; text-align:center;
}
.conf-badge.evidence-visual{ border-color:color-mix(in srgb,var(--real,#9be84c) 55%,var(--line-2,#2a3432)); }
.conf-badge.evidence-visual .conf-pct{ background:color-mix(in srgb,var(--real,#9be84c) 18%,transparent); color:var(--real,#9be84c); }
.conf-badge.evidence-targeted{ border-color:color-mix(in srgb,var(--accent-2,#56cdff) 45%,var(--line-2,#2a3432)); }
.conf-badge.evidence-targeted .conf-pct{ background:color-mix(in srgb,var(--accent-2,#56cdff) 16%,transparent); color:var(--accent-2,#56cdff); }
.conf-badge.evidence-transcript{ border-color:color-mix(in srgb,var(--ink-2,#9caaa2) 35%,var(--line-2,#2a3432)); }
.conf-badge.evidence-transcript .conf-pct{ background:color-mix(in srgb,var(--ink-2,#9caaa2) 12%,transparent); color:var(--ink-2,#9caaa2); }
.conf-body{ display:flex; flex-direction:column; gap:.2rem; min-width:0; }
.conf-body b{ font-size:.9rem; color:var(--ink,#eef3f0); }
.conf-cta{ font-size:.78rem; line-height:1.4; color:var(--ink-2,#9caaa2); }

/* v5.43: evidence selector mobile containment. */
body.is-analyzer .input-console,
body.is-analyzer .pane,
body.is-analyzer .fld,
body.is-analyzer .url-input-shell,
body.is-analyzer .audit-mode-choice,
body.is-analyzer .audit-mode-grid,
body.is-analyzer .audit-mode-btn,
body.is-analyzer .frame-upload-grid,
body.is-analyzer .frame-drop,
body.is-analyzer .frame-preview-grid,
body.is-analyzer .frame-thumb,
body.is-analyzer .mode-explain{
  min-width:0;
  max-width:100%;
  box-sizing:border-box;
}
@media (max-width:720px){
  body.is-analyzer,
  body.is-analyzer .analyzer-view{
    overflow-x:hidden;
  }
  body.is-analyzer.analyzer-idle .analyzer-wrap{
    width:min(calc(100vw - 24px),1120px)!important;
    max-width:calc(100vw - 24px)!important;
    margin-inline:auto;
  }
  body.is-analyzer #hdr .wrap.nav{
    width:100vw;
    max-width:100vw;
    overflow:hidden;
  }
  body.is-analyzer .nav-links{
    min-width:0;
    overflow:hidden;
  }
  body.is-analyzer.analyzer-idle .input-console{
    width:100%;
    overflow:hidden;
  }
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active){
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt.active{
    padding:0 12px!important;
  }
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #run{
    margin:8px 12px 0!important;
  }
  body.is-analyzer .url-input-shell.compact{
    grid-template-columns:auto minmax(0,1fr);
    padding-inline:12px!important;
  }
  body.is-analyzer .platform-strip.compact{
    max-width:150px;
    min-width:0;
    overflow:hidden;
  }
  body.is-analyzer .audit-mode-head{
    align-items:flex-start;
    flex-direction:column;
    gap:.42rem;
  }
  body.is-analyzer .mode-cost-pill{
    align-self:flex-start;
    max-width:100%;
  }
  body.is-analyzer.analyzer-idle .intake-overview{
    grid-template-columns:minmax(0,1fr)!important;
  }
  body.is-analyzer.analyzer-idle .analyzer-static-art{
    display:none!important;
  }
  body.is-analyzer .mode-top{ min-width:0; }
  body.is-analyzer .mode-tag{ display:none; }
}
@media (max-width:430px){
  body.is-analyzer .platform-strip.compact{
    max-width:138px;
  }
}

/* v5.44: premium analyzer intake decision system. */
body.is-analyzer.analyzer-idle .input-console{
  border:1px solid color-mix(in srgb,var(--app-card-border) 72%,transparent)!important;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--panel) 72%,transparent),color-mix(in srgb,var(--bg) 50%,transparent)),
    color-mix(in srgb,var(--panel) 68%,transparent)!important;
  box-shadow:
    0 28px 90px rgba(0,0,0,.24),
    inset 0 1px 0 rgba(255,255,255,.08)!important;
}
[data-theme="light"] body.is-analyzer.analyzer-idle .input-console{
  border-color:rgba(13,24,18,.11)!important;
  background:
    linear-gradient(140deg,rgba(255,255,255,.88),rgba(255,255,255,.66)),
    rgba(255,255,255,.72)!important;
  box-shadow:
    0 28px 86px rgba(18,28,20,.1),
    inset 0 1px 0 rgba(255,255,255,.96)!important;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active){
  overflow:visible;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt.active{
  overflow:visible;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .chart-gate,
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .audit-mode-choice{
  width:calc(100% + clamp(154px,18vw,190px) + 8px);
  max-width:calc(100vw - 80px);
  margin:18px 0 0;
}
body.is-analyzer.analyzer-idle .audit-mode-choice{
  position:relative;
  padding:18px;
  border:1px solid color-mix(in srgb,var(--app-card-border) 68%,transparent);
  border-radius:var(--radius-xl);
  background:
    radial-gradient(circle at 16% 0%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 34%),
    linear-gradient(135deg,color-mix(in srgb,var(--surface) 72%,transparent),color-mix(in srgb,var(--bg) 44%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.065),0 18px 46px rgba(0,0,0,.13);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .audit-mode-choice{
  border-color:rgba(12,24,18,.1);
  background:
    radial-gradient(circle at 16% 0%,rgba(80,147,46,.11),transparent 36%),
    linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,255,255,.62));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 18px 48px rgba(16,28,19,.08);
}
body.is-analyzer.analyzer-idle .chart-gate{
  position:relative;
  margin-top:18px;
  padding:18px;
  border:1px solid color-mix(in srgb,var(--app-card-border) 68%,transparent);
  border-radius:var(--radius-xl);
  background:
    radial-gradient(circle at 16% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 34%),
    linear-gradient(135deg,color-mix(in srgb,var(--surface) 72%,transparent),color-mix(in srgb,var(--bg) 44%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.065),0 18px 46px rgba(0,0,0,.13);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .chart-gate{
  border-color:rgba(12,24,18,.1);
  background:
    radial-gradient(circle at 16% 0%,rgba(80,147,46,.1),transparent 36%),
    linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,255,255,.62));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 18px 48px rgba(16,28,19,.08);
}
body.is-analyzer.analyzer-idle .audit-mode-choice::before{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:-1px;
  height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 42%,transparent),transparent);
  pointer-events:none;
}
body.is-analyzer.analyzer-idle .chart-gate::before{
  content:"";
  position:absolute;
  left:18px;
  right:18px;
  top:-1px;
  height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 42%,transparent),transparent);
  pointer-events:none;
}
body.is-analyzer.analyzer-idle .chart-gate-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:14px;
  margin:0 0 14px;
}
body.is-analyzer.analyzer-idle .audit-mode-head{
  display:grid;
  grid-template-columns:minmax(0,1fr) auto;
  align-items:start;
  gap:14px;
  margin:0 0 14px;
}
body.is-analyzer.analyzer-idle .depth-q{
  display:flex;
  align-items:center;
  gap:9px;
  font-family:var(--mono);
  font-size:11px;
  font-weight:900;
  letter-spacing:.12em;
  text-transform:uppercase;
  color:color-mix(in srgb,var(--accent) 78%,var(--ink));
}
body.is-analyzer.analyzer-idle .depth-q::before{
  content:"";
  width:8px;
  height:8px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 5px color-mix(in srgb,var(--accent) 12%,transparent);
}
body.is-analyzer.analyzer-idle .mode-question-help{
  max-width:58ch;
  margin:7px 0 0;
  font-size:13.5px;
  line-height:1.45;
}
body.is-analyzer.analyzer-idle .mode-cost-pill{
  min-height:34px;
  padding:0 12px;
  border-radius:var(--radius-pill);
  font-family:var(--mono);
  font-size:11px;
  font-weight:900;
  letter-spacing:.035em;
  background:color-mix(in srgb,var(--accent) 10%,var(--surface));
  color:color-mix(in srgb,var(--accent) 82%,var(--ink));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.08);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .mode-cost-pill{
  background:rgba(255,255,255,.76);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 10px 24px rgba(15,30,17,.06);
}
body.is-analyzer.analyzer-idle .chart-gate-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
body.is-analyzer.analyzer-idle .chart-gate-btn{
  position:relative;
  min-height:92px;
  padding:17px 18px;
  border-radius:var(--radius-xl);
  border:1px solid color-mix(in srgb,var(--app-card-border) 76%,transparent);
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--panel) 70%,transparent),color-mix(in srgb,var(--surface) 58%,transparent));
  color:var(--ink);
  text-align:left;
  cursor:pointer;
  display:flex;
  flex-direction:column;
  gap:7px;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 14px 30px rgba(0,0,0,.1);
  transition:border-color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease),transform .18s var(--ease);
}
body.is-analyzer.analyzer-idle .chart-gate-btn:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--accent) 44%,var(--app-card-border));
}
body.is-analyzer.analyzer-idle .chart-gate-btn.active{
  border-color:color-mix(in srgb,var(--accent) 66%,var(--app-card-border));
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--accent) 12%,var(--panel)),color-mix(in srgb,var(--surface) 70%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.075),0 20px 44px color-mix(in srgb,var(--accent) 13%,transparent);
}
body.is-analyzer.analyzer-idle .chart-gate-btn.active::after{
  content:"";
  position:absolute;
  inset:9px;
  border-radius:var(--radius-lg);
  border:1px solid color-mix(in srgb,var(--accent) 26%,transparent);
  pointer-events:none;
}
body.is-analyzer.analyzer-idle .chart-gate-btn b{
  font-size:17px;
  line-height:1.1;
  letter-spacing:-.01em;
}
body.is-analyzer.analyzer-idle .chart-gate-btn small{
  max-width:42ch;
  font-size:13px;
  line-height:1.34;
  color:var(--ink-2);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .chart-gate-btn{
  border-color:rgba(12,24,18,.1);
  background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,255,255,.68));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 16px 34px rgba(18,30,20,.07);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .chart-gate-btn.active{
  background:
    linear-gradient(145deg,rgba(255,255,255,.95),rgba(245,252,241,.8));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 22px 42px rgba(72,139,40,.13);
}
body.is-analyzer.analyzer-idle .audit-mode-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
  align-items:stretch;
}
body.is-analyzer.analyzer-idle .audit-mode-btn{
  min-height:132px;
  grid-template-columns:50px minmax(0,1fr);
  gap:4px 14px;
  padding:18px;
  border-radius:var(--radius-xl);
  border-color:color-mix(in srgb,var(--app-card-border) 76%,transparent);
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--panel) 70%,transparent),color-mix(in srgb,var(--surface) 58%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.055),0 16px 34px rgba(0,0,0,.11);
}
body.is-analyzer.analyzer-idle .audit-mode-btn::before{
  content:"";
  position:absolute;
  inset:0;
  border-radius:inherit;
  background:linear-gradient(135deg,rgba(255,255,255,.08),transparent 42%);
  pointer-events:none;
}
body.is-analyzer.analyzer-idle .audit-mode-btn:hover{
  transform:translateY(-2px);
}
body.is-analyzer.analyzer-idle .audit-mode-btn.active{
  border-color:color-mix(in srgb,var(--accent) 66%,var(--app-card-border));
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--accent) 12%,var(--panel)),color-mix(in srgb,var(--surface) 70%,transparent));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.075),0 20px 44px color-mix(in srgb,var(--accent) 13%,transparent);
}
body.is-analyzer.analyzer-idle .audit-mode-btn.active::after{
  inset:9px;
  border-radius:var(--radius-lg);
  border-color:color-mix(in srgb,var(--accent) 26%,transparent);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .audit-mode-btn{
  border-color:rgba(12,24,18,.1);
  background:linear-gradient(145deg,rgba(255,255,255,.9),rgba(255,255,255,.68));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 16px 34px rgba(18,30,20,.07);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .audit-mode-btn.active{
  background:
    linear-gradient(145deg,rgba(255,255,255,.95),rgba(245,252,241,.8));
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96),0 22px 42px rgba(72,139,40,.13);
}
body.is-analyzer.analyzer-idle .audit-mode-choice.awaiting-choice .mode-cost-pill{
  color:var(--ink-2);
  background:color-mix(in srgb,var(--surface) 72%,transparent);
}
body.is-analyzer.analyzer-idle .mode-code{
  width:42px;
  height:42px;
  border-radius:var(--radius-lg);
  font-size:15px;
}
body.is-analyzer.analyzer-idle .audit-mode-btn b{
  align-self:end;
  font-size:18px;
  line-height:1.12;
  letter-spacing:-.01em;
}
body.is-analyzer.analyzer-idle .audit-mode-btn small{
  font-size:13px;
  line-height:1.34;
}
body.is-analyzer.analyzer-idle .mode-meta{
  gap:7px;
  margin-top:10px;
}
body.is-analyzer.analyzer-idle .mode-meta i{
  padding:6px 9px;
  border-radius:var(--radius-pill);
  font-size:11px;
  font-weight:900;
  line-height:1;
  background:rgba(255,255,255,.045);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .mode-meta i{
  background:rgba(255,255,255,.72);
  border-color:rgba(13,24,18,.08);
  color:#536056;
}
body.is-analyzer.analyzer-idle .mode-explain{
  display:flex;
  align-items:center;
  gap:10px;
  margin:14px 0 0;
  padding:13px 15px;
  border-radius:var(--radius-xl);
  font-size:13px;
  line-height:1.42;
  border-color:color-mix(in srgb,var(--app-card-border) 64%,transparent);
  background:color-mix(in srgb,var(--bg) 42%,transparent);
}
body.is-analyzer.analyzer-idle .mode-explain::before{
  content:"i";
  flex:0 0 auto;
  width:22px;
  height:22px;
  display:grid;
  place-items:center;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);
  color:var(--accent);
  font-size:12px;
  font-weight:900;
  font-style:normal;
}
[data-theme="light"] body.is-analyzer.analyzer-idle .mode-explain{
  background:rgba(255,255,255,.68);
  border-color:rgba(13,24,18,.09);
}
body.is-analyzer.analyzer-idle .frames-zone{
  margin-top:16px;
  padding:16px;
  border:1px solid color-mix(in srgb,var(--app-card-border) 68%,transparent);
  border-radius:var(--radius-xl);
  background:
    linear-gradient(145deg,color-mix(in srgb,var(--bg) 44%,transparent),color-mix(in srgb,var(--surface) 58%,transparent));
}
[data-theme="light"] body.is-analyzer.analyzer-idle .frames-zone{
  border-color:rgba(13,24,18,.1);
  background:linear-gradient(145deg,rgba(255,255,255,.86),rgba(249,251,248,.68));
}
body.is-analyzer.analyzer-idle .frames-help{
  max-width:68ch;
  margin:0 auto 12px;
  text-align:center;
  font-size:13px;
  line-height:1.45;
}
body.is-analyzer.analyzer-idle .frame-upload-grid{
  max-width:780px;
  margin:0 auto;
  gap:12px;
}
body.is-analyzer.analyzer-idle .frame-drop{
  min-height:116px;
  padding:16px;
  border-radius:var(--radius-xl);
  background:linear-gradient(145deg,color-mix(in srgb,var(--panel) 68%,transparent),color-mix(in srgb,var(--bg) 44%,transparent));
}
[data-theme="light"] body.is-analyzer.analyzer-idle .frame-drop{
  background:linear-gradient(145deg,rgba(255,255,255,.94),rgba(255,255,255,.66));
  border-color:rgba(13,24,18,.1);
}
body.is-analyzer.analyzer-idle .frame-drop span{
  align-items:flex-start;
}
body.is-analyzer.analyzer-idle .frame-drop b{
  font-size:15px;
}
body.is-analyzer.analyzer-idle .frame-drop small{
  font-size:12.5px;
}
body.is-analyzer.analyzer-idle .frame-drop i{
  padding:5px 8px;
  font-size:11px;
}
body.is-analyzer.analyzer-idle .frame-preview-grid{
  max-width:780px;
  margin:12px auto 0;
}
body.is-analyzer.analyzer-idle #run:disabled,
body.is-analyzer.analyzer-idle #run.is-disabled{
  cursor:not-allowed;
  opacity:.66;
  filter:saturate(.72);
  transform:none!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.09),0 10px 26px rgba(0,0,0,.08)!important;
}
[data-theme="light"] body.is-analyzer.analyzer-idle #run:disabled,
[data-theme="light"] body.is-analyzer.analyzer-idle #run.is-disabled{
  background:linear-gradient(180deg,#dce8d6,#cfe1c7)!important;
  color:#31412c!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.72),0 10px 24px rgba(20,34,18,.08)!important;
}
@media (max-width:720px){
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .chart-gate,
  body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .audit-mode-choice{
    width:100%;
    max-width:100%;
    margin-top:14px;
  }
  body.is-analyzer.analyzer-idle .audit-mode-head,
  body.is-analyzer.analyzer-idle .chart-gate-head,
  body.is-analyzer.analyzer-idle .chart-gate-grid,
  body.is-analyzer.analyzer-idle .audit-mode-grid{
    grid-template-columns:1fr;
  }
  body.is-analyzer.analyzer-idle .chart-gate,
  body.is-analyzer.analyzer-idle .audit-mode-choice{
    padding:14px;
    border-radius:var(--radius-xl);
  }
  body.is-analyzer.analyzer-idle .audit-mode-btn{
    min-height:120px;
  }
}

/* v5.45: visual evidence dropzones for entry/exit examples. */
body.is-analyzer.analyzer-idle .frame-drop{
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(96px,11vw,128px);
  grid-template-rows:auto auto;
  align-items:center;
  gap:8px 14px;
  min-height:150px;
  padding:18px 16px 16px 18px;
  isolation:isolate;
}
body.is-analyzer.analyzer-idle .frame-drop::before{
  content:"";
  position:absolute;
  inset:-1px;
  border-radius:inherit;
  pointer-events:none;
  opacity:.7;
  background:
    radial-gradient(circle at 86% 42%,color-mix(in srgb,var(--drop-accent,var(--accent)) 18%,transparent),transparent 34%),
    linear-gradient(135deg,rgba(255,255,255,.07),transparent 48%);
}
body.is-analyzer.analyzer-idle .frame-drop.entry{
  --drop-accent:var(--real,#9be84c);
}
body.is-analyzer.analyzer-idle .frame-drop.exit{
  --drop-accent:#ff7669;
}
body.is-analyzer.analyzer-idle .frame-drop .frame-art{
  grid-column:2;
  grid-row:1 / span 2;
  position:relative;
  z-index:1;
  display:block;
  justify-self:end;
  align-self:center;
  width:clamp(94px,10.5vw,130px);
  aspect-ratio:1;
  pointer-events:none;
  opacity:.95;
  transform:translateX(4px);
  filter:
    drop-shadow(0 18px 24px rgba(0,0,0,.18))
    drop-shadow(0 0 18px color-mix(in srgb,var(--drop-accent) 16%,transparent));
}
body.is-analyzer.analyzer-idle .frame-drop .frame-art img{
  display:block;
  width:100%;
  height:100%;
  object-fit:contain;
}
body.is-analyzer.analyzer-idle .frame-drop .frame-title{
  grid-column:1;
  grid-row:1;
  position:relative;
  z-index:1;
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:12px;
  min-width:0;
}
body.is-analyzer.analyzer-idle .frame-drop .frame-title b{
  font-size:16px;
  line-height:1.12;
  letter-spacing:-.01em;
}
body.is-analyzer.analyzer-idle .frame-drop .frame-title i{
  flex:0 0 auto;
  min-width:42px;
  text-align:center;
  background:color-mix(in srgb,var(--drop-accent) 10%,transparent);
}
body.is-analyzer.analyzer-idle .frame-drop small{
  grid-column:1;
  grid-row:2;
  position:relative;
  z-index:1;
  max-width:22ch;
  align-self:start;
}
body.is-analyzer.analyzer-idle .frame-drop.has-file .frame-art{
  opacity:.55;
  transform:translateX(8px) scale(.94);
}
body.is-analyzer.analyzer-idle .frame-drop.has-file::before,
body.is-analyzer.analyzer-idle .frame-drop:hover::before,
body.is-analyzer.analyzer-idle .frame-drop.dragging::before{
  opacity:1;
}
[data-theme="light"] body.is-analyzer.analyzer-idle .frame-drop::before{
  background:
    radial-gradient(circle at 88% 42%,color-mix(in srgb,var(--drop-accent,var(--accent)) 14%,transparent),transparent 36%),
    linear-gradient(135deg,rgba(255,255,255,.7),transparent 50%);
}
[data-theme="light"] body.is-analyzer.analyzer-idle .frame-drop .frame-art{
  filter:
    drop-shadow(0 16px 24px rgba(16,28,18,.12))
    drop-shadow(0 0 18px color-mix(in srgb,var(--drop-accent) 14%,transparent));
}
@media (max-width:760px){
  body.is-analyzer.analyzer-idle .frame-drop{
    grid-template-columns:minmax(0,1fr) 104px;
    min-height:132px;
  }
  body.is-analyzer.analyzer-idle .frame-drop .frame-art{
    width:104px;
  }
}
@media (max-width:420px){
  body.is-analyzer.analyzer-idle .frame-drop{
    grid-template-columns:minmax(0,1fr) 84px;
    gap:6px 10px;
    padding:15px;
  }
  body.is-analyzer.analyzer-idle .frame-drop .frame-art{
    width:88px;
    transform:translateX(8px);
  }
  body.is-analyzer.analyzer-idle .frame-drop .frame-title{
    flex-direction:column;
    gap:8px;
  }
}

/* ============================================================================
   REVERSE ENGINEERING VIEW (#reverse-view)
   ============================================================================ */
.reverse-view{min-height:calc(100vh - var(--nav-h));padding-bottom:80px}
.rv-hero{padding:42px 0 10px}
.rv-hero-shell{display:grid;grid-template-columns:minmax(0,1fr) minmax(210px,310px);gap:26px;align-items:center;
  padding:28px 34px;border:1px solid color-mix(in srgb,var(--line) 78%,transparent);border-radius:var(--radius-lg);
  background:linear-gradient(135deg,color-mix(in srgb,var(--surface) 82%,transparent),color-mix(in srgb,var(--surface-2) 54%,transparent));
  box-shadow:0 24px 70px color-mix(in srgb,#000 12%,transparent);backdrop-filter:blur(18px) saturate(145%);
  -webkit-backdrop-filter:blur(18px) saturate(145%);overflow:hidden;position:relative}
.rv-hero-shell::before{content:"";position:absolute;inset:0;pointer-events:none;
  background:
    linear-gradient(90deg,transparent 0 74%,color-mix(in srgb,var(--accent) 8%,transparent) 100%),
    repeating-linear-gradient(90deg,color-mix(in srgb,var(--line) 45%,transparent) 0 1px,transparent 1px 54px),
    repeating-linear-gradient(0deg,color-mix(in srgb,var(--line) 35%,transparent) 0 1px,transparent 1px 54px);
  mask-image:linear-gradient(90deg,rgba(0,0,0,.18),rgba(0,0,0,.65),rgba(0,0,0,.16));opacity:.45}
.rv-hero-copy{position:relative;z-index:1}
.rv-kicker{font-family:var(--mono);font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.rv-title{font-family:var(--font);font-weight:700;font-size:clamp(28px,4vw,46px);line-height:1.04;margin:10px 0 12px}
.rv-sub{max-width:760px;color:var(--ink-2);font-size:16px;line-height:1.55}
.rv-hero-art{position:relative;z-index:1;display:flex;align-items:flex-end;justify-content:center;margin:0;min-height:230px}
.rv-hero-art::before{content:"";position:absolute;left:50%;bottom:10px;width:72%;height:32%;transform:translateX(-50%);
  border-radius:var(--radius-pill);background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 16%,transparent),transparent 66%);
  filter:blur(20px);opacity:.65;pointer-events:none}
.rv-hero-art img{position:relative;z-index:1;width:min(100%,286px);max-height:300px;object-fit:contain;filter:drop-shadow(0 22px 28px color-mix(in srgb,#000 20%,transparent))}
.rv-grid{display:grid;grid-template-columns:minmax(330px,400px) minmax(0,1fr);gap:26px;align-items:start}
@media(max-width:700px){
  .rv-hero-shell{grid-template-columns:minmax(0,1fr) minmax(132px,170px);padding:24px 22px;gap:12px}
  .rv-title{font-size:clamp(26px,6.5vw,34px)}
  .rv-sub{font-size:14px;line-height:1.5}
  .rv-hero-art{min-height:180px}
  .rv-hero-art img{width:min(30vw,166px);max-height:210px}
}
@media(max-width:520px){
  .rv-hero{padding-top:22px}
  .rv-hero-shell{grid-template-columns:1fr;padding:22px 20px 18px;gap:12px}
  .rv-hero-art{min-height:180px;justify-content:flex-start}
  .rv-hero-art img{width:min(62vw,230px);max-height:230px}
}
/* minmax(0,1fr), NOT 1fr: a bare 1fr track has min-width:auto and inflates to the widest
   nowrap child (result anchor chips, mono lines) -> horizontal page overflow on phones */
@media(max-width:900px){.rv-grid{grid-template-columns:minmax(0,1fr)}}

/* input panel */
.rv-panel{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);
  padding:22px 20px;position:sticky;top:calc(var(--nav-h) + 18px);display:flex;flex-direction:column;gap:20px}
@media(max-width:900px){.rv-panel{position:static}}
.rv-step{display:flex;flex-direction:column;gap:10px}
.rv-step-head{display:flex;align-items:center;gap:10px}
.rv-step-head h3{font-size:15px;font-weight:600;margin:0}
.rv-stepnum{display:grid;place-items:center;width:24px;height:24px;border-radius:50%;
  background:var(--accent-deep);color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);
  font-family:var(--mono);font-size:13px;font-weight:600;flex:none}
.rv-hint{font-size:12.5px;color:var(--ink-3);margin:-2px 0 2px;line-height:1.4}

.rv-chips{display:flex;flex-wrap:wrap;gap:7px}
.rv-chip{display:flex;flex-direction:column;align-items:flex-start;gap:1px;padding:7px 11px;border-radius:var(--radius);
  border:1px solid var(--line);background:var(--surface-2);cursor:pointer;transition:.14s;min-width:60px}
.rv-chip b{font-family:var(--mono);font-size:13px;color:var(--ink)}
.rv-chip em{font-style:normal;font-size:10px;color:var(--ink-3);white-space:nowrap}
.rv-chip:hover{border-color:var(--line-2);background:var(--surface-3)}
.rv-chip.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));box-shadow:var(--glow)}
.rv-chip.active b{color:var(--accent)}

/* ── searchable symbol combobox (replaces the 518-chip wall) ── */
.rv-symbol{display:flex;flex-direction:column;gap:10px}
/* when the dropdown is open, lift the whole step above sibling steps (each .rv-step makes its own stacking context).
   Must out-specify #reverse-view .rv-step{z-index:1}, hence the #reverse-view prefix. */
#reverse-view .rv-step.rv-z-top{z-index:40}
.rv-class-pills{display:flex;flex-wrap:wrap;gap:6px}
.rv-cpill{padding:5px 12px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-2);
  color:var(--ink-2);font-size:12px;font-weight:600;cursor:pointer;transition:.14s;letter-spacing:.02em}
.rv-cpill:hover{border-color:var(--line-2);color:var(--ink)}
.rv-cpill.active{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,var(--surface-2));color:var(--accent)}
.rv-combo{position:relative}
.rv-combo-icon{position:absolute;left:12px;top:50%;transform:translateY(-50%);color:var(--ink-3);font-size:15px;pointer-events:none}
.rv-combo-input{width:100%;background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:11px 38px 11px 34px;color:var(--ink);font-family:var(--mono);font-size:14px;transition:.14s}
.rv-combo-input::placeholder{color:var(--ink-3);opacity:.75}
.rv-combo-input:focus{outline:none;border-color:var(--accent);background:var(--surface);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent)}
.rv-combo-clear{position:absolute;right:8px;top:50%;transform:translateY(-50%);width:22px;height:22px;border:none;
  border-radius:var(--radius-sm);background:var(--surface-3);color:var(--ink-2);font-size:15px;line-height:1;cursor:pointer;transition:.14s}
.rv-combo-clear:hover{color:var(--ink);background:var(--line-2)}
.rv-combo-list{position:absolute;z-index:50;left:0;right:0;top:calc(100% + 6px);max-height:320px;overflow-y:auto;
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);
  box-shadow:0 18px 50px rgba(0,0,0,.55),0 0 0 1px var(--line);padding:5px}
.rv-opt{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:10px;padding:8px 10px;
  border-radius:var(--radius);cursor:pointer;transition:.1s}
.rv-opt:hover,.rv-opt.active{background:color-mix(in srgb,var(--accent) 12%,transparent)}
.rv-opt-k{font-family:var(--mono);font-size:13px;font-weight:600;color:var(--ink);min-width:52px}
.rv-opt.active .rv-opt-k{color:var(--accent)}
.rv-opt-l{font-size:12px;color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rv-opt-c{font-size:9.5px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 6px;border-radius:var(--radius-sm);
  color:var(--ink-2);background:var(--surface-3);white-space:nowrap}
.rv-c-crypto{color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 14%,transparent)}
.rv-c-gold{color:#e3b341;background:color-mix(in srgb,#e3b341 16%,transparent)}
.rv-c-bond{color:#b78bff;background:color-mix(in srgb,#b78bff 16%,transparent)}
.rv-c-free{color:var(--accent);background:color-mix(in srgb,var(--accent) 14%,transparent)}
.rv-opt-free{border-top:1px dashed var(--line-2);margin-top:2px}
.rv-opt-more,.rv-opt-empty{padding:8px 10px;font-size:11.5px;color:var(--ink-3);text-align:center}
.rv-selected-row{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.rv-selected-cap{font-size:11px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.rv-selected-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 11px;border-radius:var(--radius);
  border:1px solid var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2))}
.rv-sel-k{font-family:var(--mono);font-size:14px;font-weight:700;color:var(--accent)}
.rv-sel-l{font-size:11.5px;color:var(--ink-2);max-width:230px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.rv-sel-c{font-size:9px;font-weight:700;letter-spacing:.04em;text-transform:uppercase;padding:2px 5px;border-radius:4px;
  color:var(--ink-2);background:var(--surface-3)}
.rv-featured{display:flex;flex-wrap:wrap;align-items:center;gap:6px}
.rv-featured-cap{font-size:10.5px;color:var(--ink-3);font-weight:600;text-transform:uppercase;letter-spacing:.05em;margin-right:2px}
.rv-fchip{padding:5px 10px;border-radius:var(--radius);border:1px solid var(--line);background:var(--surface-2);
  font-family:var(--mono);font-size:12px;font-weight:600;color:var(--ink-2);cursor:pointer;transition:.14s}
.rv-fchip:hover{border-color:var(--line-2);color:var(--ink)}
.rv-fchip.active{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 10%,var(--surface-2))}
.rv-upload.rv-on{border-color:var(--accent);color:var(--accent)}

.rv-upload{display:inline-flex;align-items:center;gap:8px;align-self:flex-start;padding:8px 13px;border-radius:var(--radius);
  border:1px dashed var(--line-2);background:transparent;color:var(--ink-2);cursor:pointer;font-size:13px;transition:.14s}
.rv-upload:hover{border-color:var(--accent);color:var(--ink)}
.rv-upload-icon{font-size:15px}
.rv-csv-name{font-size:12px;color:var(--accent);font-family:var(--mono)}

.rv-metrics-grid{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.rv-hints-grid{display:grid;grid-template-columns:1fr 90px;gap:10px}
.rv-field{display:flex;flex-direction:column;gap:5px}
.rv-field-wide{grid-column:auto}
.rv-field>span{font-size:11.5px;color:var(--ink-3);font-weight:500}
.rv-field input,.rv-field select{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);
  padding:9px 11px;color:var(--ink);font-family:var(--mono);font-size:14px;width:100%;transition:.14s}
.rv-field input:focus,.rv-field select:focus{outline:none;border-color:var(--accent);background:var(--surface)}
.rv-field input::placeholder{color:var(--ink-3);opacity:.55}

.rv-run{margin-top:2px;padding:13px 18px;border-radius:var(--radius);border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);
  background:var(--accent);color:#06150a;font-weight:700;font-size:15px;cursor:pointer;transition:.14s}
.rv-run:hover{filter:brightness(1.06);box-shadow:var(--glow)}
.rv-run:disabled,.rv-run.loading{opacity:.6;cursor:wait}
.rv-error{color:var(--humo);font-size:13px;margin:0}

/* results column */
.rv-results{display:flex;flex-direction:column;gap:16px;min-height:300px}
.rv-empty,.rv-loading{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:14px;text-align:center;
  min-height:340px;border:1px dashed var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 50%,transparent);
  color:var(--ink-3);padding:30px}
.rv-empty-mark{font-size:42px;color:var(--line-2)}
.rv-empty p,.rv-loading p{max-width:380px;font-size:14px;line-height:1.5}
.rv-spinner{width:34px;height:34px;border-radius:50%;border:3px solid var(--line-2);border-top-color:var(--accent);animation:rv-spin .8s linear infinite}
@keyframes rv-spin{to{transform:rotate(360deg)}}

/* verdict banner */
.rv-verdict{border-radius:var(--radius-lg);border:1px solid var(--line);padding:20px 22px;
  background:var(--surface);position:relative;overflow:hidden}
.rv-verdict::before{content:"";position:absolute;inset:0 auto 0 0;width:4px;background:var(--accent)}
.rv-real::before{background:var(--real)} .rv-marginal::before{background:var(--marginal)} .rv-humo::before{background:var(--humo)}
.rv-verdict-top{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}
.rv-verdict-badge{font-family:var(--mono);font-weight:700;font-size:15px;letter-spacing:.06em;padding:5px 12px;border-radius:var(--radius-pill)}
.rv-real .rv-verdict-badge{background:color-mix(in srgb,var(--real) 16%,transparent);color:var(--real);border:1px solid color-mix(in srgb,var(--real) 45%,transparent)}
.rv-marginal .rv-verdict-badge{background:color-mix(in srgb,var(--marginal) 16%,transparent);color:var(--marginal);border:1px solid color-mix(in srgb,var(--marginal) 45%,transparent)}
.rv-humo .rv-verdict-badge{background:color-mix(in srgb,var(--humo) 16%,transparent);color:var(--humo);border:1px solid color-mix(in srgb,var(--humo) 45%,transparent)}
.rv-verdict-asset{font-family:var(--mono);font-size:11.5px;color:var(--ink-3)}
.rv-verdict-head{font-size:18px;font-weight:600;margin:12px 0 8px;color:var(--ink)}
.rv-reasons{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:6px}
.rv-reasons li{position:relative;padding-left:18px;font-size:13.5px;color:var(--ink-2);line-height:1.45}
.rv-reasons li::before{content:"›";position:absolute;left:2px;color:var(--accent);font-weight:700}

/* cards */
.rv-card{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px}
.rv-card-soft{background:color-mix(in srgb,var(--surface) 60%,transparent)}
.rv-card-head{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:12px}
.rv-card-head h3{font-size:14px;font-weight:600;margin:0;color:var(--ink)}
.rv-fam{font-family:var(--mono);font-size:11px;color:var(--accent);background:var(--accent-deep);padding:3px 9px;border-radius:var(--radius-pill)}
.rv-side{font-family:var(--mono);font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:var(--radius-pill);margin-left:6px}
.rv-long{color:var(--real);background:color-mix(in srgb,var(--real) 14%,transparent)}
.rv-short{color:var(--accent-2);background:color-mix(in srgb,var(--accent-2) 14%,transparent)}
.rv-rules{font-size:15px;color:var(--ink);line-height:1.5;margin:0 0 12px}
.rv-cfg-row{display:flex;flex-wrap:wrap;gap:7px}
.rv-cfg{font-family:var(--mono);font-size:11.5px;color:var(--ink-2);background:var(--surface-2);border:1px solid var(--line);padding:4px 9px;border-radius:var(--radius)}
.rv-cfg b{color:var(--ink)}

/* tables */
.rv-table{width:100%;border-collapse:collapse;font-size:13.5px}
.rv-table th{text-align:left;font-weight:500;color:var(--ink-3);font-size:11.5px;padding:6px 8px;border-bottom:1px solid var(--line)}
.rv-table td{padding:8px;border-bottom:1px solid var(--line);color:var(--ink-2)}
.rv-table tr:last-child td{border-bottom:none}
.rv-table .rv-num{text-align:right;font-family:var(--mono);color:var(--ink)}
.rv-table-sm{font-size:12.5px}
.rv-dim{color:var(--ink-3)}
.rv-bad{color:var(--humo)}
.rv-flag{display:inline-block;font-family:var(--font);font-size:9.5px;font-weight:600;text-transform:uppercase;letter-spacing:.04em;
  color:var(--humo);background:color-mix(in srgb,var(--humo) 14%,transparent);padding:2px 6px;border-radius:var(--radius-sm);margin-left:6px;vertical-align:middle}

/* battery grid */
.rv-cost-pill{font-family:var(--mono);font-size:11px;color:var(--ink-3);border:1px solid var(--line);padding:3px 9px;border-radius:var(--radius-pill)}
.rv-battery{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:10px}
.rv-m{background:var(--surface-2);border:1px solid var(--line);border-radius:var(--radius);padding:11px 12px;
  display:flex;flex-direction:column;gap:3px;border-left:3px solid var(--line-2)}
.rv-m-label{font-size:11px;color:var(--ink-3)}
.rv-m-value{font-family:var(--mono);font-size:19px;font-weight:600;color:var(--ink)}
.rv-m-sub{font-size:10.5px;color:var(--ink-3);line-height:1.3}
.rv-m-good{border-left-color:var(--real)} .rv-m-good .rv-m-value{color:var(--real)}
.rv-m-warn{border-left-color:var(--marginal)} .rv-m-warn .rv-m-value{color:var(--marginal)}
.rv-m-bad{border-left-color:var(--humo)} .rv-m-bad .rv-m-value{color:var(--humo)}
.rv-costcurve{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-top:14px;padding-top:12px;border-top:1px solid var(--line)}
.rv-cc-label{font-size:11.5px;color:var(--ink-3)}
.rv-cc{display:inline-flex;align-items:baseline;gap:5px;font-family:var(--mono);font-size:12px}
.rv-cc em{font-style:normal;color:var(--ink-3);font-size:10.5px}
.rv-pos{color:var(--real)} .rv-neg{color:var(--humo)} .rv-warn-t{color:var(--marginal)}

/* overfit analysis */
.rv-of-badge{font:800 .72rem/1 var(--mono);letter-spacing:.06em;padding:5px 10px;border-radius:var(--radius-pill);
  border:1px solid var(--line);white-space:nowrap}
.rv-of-badge.rv-humo{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 50%,var(--line));
  background:color-mix(in srgb,var(--humo) 12%,transparent)}
.rv-of-badge.rv-marginal{color:var(--marginal);border-color:color-mix(in srgb,var(--marginal) 50%,var(--line));
  background:color-mix(in srgb,var(--marginal) 12%,transparent)}
.rv-of-badge.rv-real{color:var(--real);border-color:color-mix(in srgb,var(--real) 50%,var(--line));
  background:color-mix(in srgb,var(--real) 12%,transparent)}
.rv-of-head{margin:0 0 12px;font-size:13.5px;font-weight:600;color:var(--ink)}
.rv-of-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:7px}
.rv-of-row{display:grid;grid-template-columns:18px minmax(140px,auto) 1fr;align-items:baseline;gap:10px;
  font-size:12.5px;padding:7px 9px;border-radius:var(--radius);background:var(--surface-2)}
.rv-of-row.rv-of-fired{background:color-mix(in srgb,var(--humo) 7%,var(--surface-2))}
.rv-of-mark{font-weight:800;text-align:center}
.rv-of-name{font-weight:600;color:var(--ink)}
.rv-of-detail{color:var(--ink-2);font-family:var(--mono);font-size:11.5px}
.rv-of-note{margin:12px 0 0;font-size:11.5px;color:var(--ink-3);line-height:1.5}

/* equity */
.rv-eq{width:100%;height:120px;display:block}
.rv-eq-line{fill:none;stroke:var(--accent);stroke-width:1.6;vector-effect:non-scaling-stroke}
.rv-eq-area{fill:color-mix(in srgb,var(--accent) 12%,transparent);stroke:none}
.rv-eq-end{font-family:var(--mono);font-size:13px;font-weight:600}

.rv-disc{font-size:11.5px;color:var(--ink-3);line-height:1.5;margin:2px 4px 0}

body.is-reverse footer{margin-top:0}

/* reverse: paste-row block */
.rv-paste-block{display:flex;flex-direction:column;gap:9px;padding:14px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  border-radius:var(--radius);background:color-mix(in srgb,var(--accent) 6%,var(--surface-2))}
.rv-paste{width:100%;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
  padding:10px 12px;color:var(--ink);font-family:var(--mono);font-size:12.5px;line-height:1.5;resize:vertical;min-height:64px}
.rv-paste:focus{outline:none;border-color:var(--accent)}
.rv-paste::placeholder{color:var(--ink-3);opacity:.5}
.rv-detected{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:11.5px}
.rv-det-title{color:var(--ink-3);font-weight:500;margin-right:2px}
.rv-det{font-family:var(--mono);font-size:11px;color:var(--ink-2);background:var(--surface);border:1px solid var(--line);padding:2px 7px;border-radius:var(--radius-pill)}
.rv-det b{color:var(--ink)}
.rv-det.asset{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent)}
.rv-det.fam{color:var(--accent-2);border-color:color-mix(in srgb,var(--accent-2) 40%,transparent)}
.rv-det-warn{color:var(--marginal)}
.rv-or{display:flex;align-items:center;gap:10px;color:var(--ink-3);font-size:11px;text-transform:uppercase;letter-spacing:.12em}
.rv-or::before,.rv-or::after{content:"";flex:1;height:1px;background:var(--line)}
.rv-verdict-name{font-family:var(--mono);font-size:13px;color:var(--ink-2);margin:8px 0 0;font-style:italic}

/* reverse: paste legend + example button */
.rv-legend{display:flex;flex-wrap:wrap;align-items:center;gap:6px;font-size:10.5px;color:var(--ink-3)}
.rv-legend>span{margin-right:2px;letter-spacing:.02em}
.rv-legend code{font-family:var(--mono);font-size:10px;color:var(--ink-2);background:var(--surface);
  border:1px solid var(--line);border-radius:4px;padding:1px 6px}
.rv-example-btn{align-self:flex-start;background:transparent;border:1px dashed color-mix(in srgb,var(--accent) 50%,var(--line));
  color:var(--accent);font-family:var(--mono);font-size:11px;padding:5px 11px;border-radius:var(--radius-pill);cursor:pointer;transition:background .15s,border-color .15s}
.rv-example-btn:hover{background:color-mix(in srgb,var(--accent) 12%,transparent);border-color:var(--accent)}

/* reverse: derived (risk-adjusted) styling */
.rv-derived{font-size:10.5px;color:var(--ink-3);margin-top:8px;font-style:italic}
.rv-derived-row td{color:var(--ink-3)}
.rv-derived-tag{font-family:var(--mono);font-size:9.5px;color:var(--ink-3);border:1px solid var(--line);border-radius:4px;padding:0 5px;margin-left:6px;vertical-align:middle}
.rv-det-derived{color:var(--ink-3);border-style:dashed}

/* v5.45: reverse engineering now uses the same Travocato liquid-glass system. */
#reverse-view{
  --rv-glass-radius:28px;
  --rv-card-radius:20px;
  --rv-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.16) 0%,rgba(255,255,255,.055) 34%,rgba(255,255,255,.018) 58%,rgba(255,255,255,.11) 100%),
    rgba(8,10,12,.16);
  --rv-glass-filter:blur(18px) saturate(1.28) contrast(1.03);
  --rv-glass-border:rgba(255,255,255,.16);
  --rv-glass-border-bottom:rgba(255,255,255,.06);
  --rv-glass-shadow:
    inset 0 1px 0 rgba(255,255,255,.28),
    inset 0 -1px 0 rgba(0,0,0,.1),
    inset 18px 0 44px -42px rgba(255,255,255,.5),
    inset -18px 0 44px -42px rgba(255,255,255,.32),
    0 24px 64px -50px rgba(0,0,0,.5);
  --rv-glass-sheen:
    radial-gradient(680px 220px at 18% 0%,rgba(255,255,255,.2),transparent 66%),
    radial-gradient(520px 240px at 88% 12%,rgba(255,255,255,.115),transparent 72%),
    linear-gradient(105deg,rgba(255,255,255,.08),transparent 24%,transparent 68%,rgba(255,255,255,.045));
  --rv-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.075),rgba(255,255,255,.018) 54%,rgba(255,255,255,.045)),
    color-mix(in srgb,var(--surface) 18%,transparent);
  --rv-inner-border:rgba(255,255,255,.11);
  --rv-inner-shadow:inset 0 1px 0 rgba(255,255,255,.14),inset 0 -1px 0 rgba(0,0,0,.12);
  position:relative;
  min-height:calc(100vh - var(--nav-h));
  padding-bottom:clamp(54px,7vw,92px);
  background:transparent;
}
[data-theme="light"] #reverse-view{
  --rv-glass-bg:
    linear-gradient(135deg,rgba(255,255,255,.48) 0%,rgba(255,255,255,.22) 42%,rgba(255,255,255,.11) 66%,rgba(255,255,255,.34) 100%),
    rgba(255,255,255,.16);
  --rv-glass-filter:blur(18px) saturate(1.12) contrast(1.01);
  --rv-glass-border:rgba(255,255,255,.86);
  --rv-glass-border-bottom:rgba(13,18,15,.055);
  --rv-glass-shadow:
    inset 0 1px 0 rgba(255,255,255,.72),
    inset 0 -1px 0 rgba(13,18,15,.025),
    inset 18px 0 46px -42px rgba(255,255,255,.95),
    inset -18px 0 46px -42px rgba(255,255,255,.78),
    0 24px 64px -52px rgba(13,18,15,.18);
  --rv-glass-sheen:
    radial-gradient(680px 220px at 18% 0%,rgba(255,255,255,.82),transparent 66%),
    radial-gradient(520px 240px at 88% 12%,rgba(255,255,255,.42),transparent 72%),
    linear-gradient(105deg,rgba(255,255,255,.32),transparent 24%,transparent 68%,rgba(255,255,255,.18));
  --rv-inner-bg:
    linear-gradient(135deg,rgba(255,255,255,.56),rgba(255,255,255,.2) 56%,rgba(255,255,255,.38)),
    rgba(255,255,255,.16);
  --rv-inner-border:rgba(255,255,255,.72);
  --rv-inner-shadow:inset 0 1px 0 rgba(255,255,255,.78),inset 0 -1px 0 rgba(13,18,15,.035);
}
#reverse-view .rv-hero{
  padding:clamp(18px,3vw,38px) 0 clamp(12px,1.7vw,22px);
}
#reverse-view .rv-body{
  padding:0 0 clamp(46px,6vw,74px);
}
#reverse-view .rv-hero-shell,
#reverse-view .rv-panel,
#reverse-view .rv-empty,
#reverse-view .rv-loading,
#reverse-view .rv-verdict,
#reverse-view .rv-card{
  position:relative;
  isolation:isolate;
  overflow:hidden;
  border:1px solid var(--rv-glass-border);
  border-bottom-color:var(--rv-glass-border-bottom);
  background:var(--rv-glass-bg);
  backdrop-filter:var(--rv-glass-filter);
  -webkit-backdrop-filter:var(--rv-glass-filter);
  box-shadow:var(--rv-glass-shadow);
}
#reverse-view .rv-hero-shell{
  grid-template-columns:minmax(0,1fr) minmax(240px,330px);
  gap:clamp(18px,2.6vw,34px);
  min-height:clamp(330px,38vw,430px);
  padding:clamp(30px,4vw,54px);
  border-radius:var(--rv-glass-radius);
}
#reverse-view .rv-panel,
#reverse-view .rv-empty,
#reverse-view .rv-loading,
#reverse-view .rv-verdict,
#reverse-view .rv-card{
  border-radius:var(--rv-card-radius);
}
#reverse-view .rv-hero-shell::before,
#reverse-view .rv-panel::before,
#reverse-view .rv-empty::before,
#reverse-view .rv-loading::before,
#reverse-view .rv-card::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  background:var(--rv-glass-sheen);
  opacity:.84;
}
#reverse-view .rv-hero-shell::after,
#reverse-view .rv-panel::after,
#reverse-view .rv-empty::after,
#reverse-view .rv-loading::after,
#reverse-view .rv-card::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  border-radius:inherit;
  box-shadow:
    inset 0 0 0 1px rgba(255,255,255,.055),
    inset 0 20px 52px rgba(255,255,255,.045),
    inset 0 -28px 58px rgba(0,0,0,.055);
}
[data-theme="light"] #reverse-view .rv-hero-shell::after,
[data-theme="light"] #reverse-view .rv-panel::after,
[data-theme="light"] #reverse-view .rv-empty::after,
[data-theme="light"] #reverse-view .rv-loading::after,
[data-theme="light"] #reverse-view .rv-card::after{
  box-shadow:
    inset 0 0 0 1px rgba(13,18,15,.035),
    inset 0 20px 52px rgba(255,255,255,.32),
    inset 0 -28px 58px rgba(13,18,15,.018);
}
#reverse-view .rv-hero-shell > *,
#reverse-view .rv-panel > *,
#reverse-view .rv-empty > *,
#reverse-view .rv-loading > *,
#reverse-view .rv-verdict > *,
#reverse-view .rv-card > *{
  position:relative;
  z-index:1;
}
#reverse-view .rv-kicker{
  display:inline-flex;
  align-items:center;
  gap:9px;
  color:var(--accent);
  font-size:11px;
  font-weight:900;
  letter-spacing:.14em;
}
#reverse-view .rv-kicker::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 18px color-mix(in srgb,var(--accent) 65%,transparent);
}
#reverse-view .rv-title{
  max-width:13ch;
  margin:12px 0 16px;
  font-family:var(--display);
  font-size:clamp(42px,5.7vw,76px);
  font-weight:700;
  line-height:.96;
  letter-spacing:0;
}
#reverse-view .rv-sub{
  max-width:58ch;
  color:var(--ink-2);
  font-size:clamp(15px,1.35vw,17px);
  line-height:1.62;
}
#reverse-view .rv-hero-art{
  min-height:clamp(250px,31vw,350px);
  align-self:end;
}
#reverse-view .rv-hero-art::before{
  bottom:18px;
  width:78%;
  height:30%;
  background:radial-gradient(ellipse at center,color-mix(in srgb,var(--accent) 14%,transparent),transparent 68%);
  filter:blur(24px);
  opacity:.62;
}
#reverse-view .rv-hero-art img{
  width:min(100%,330px);
  max-height:350px;
  filter:drop-shadow(0 34px 54px rgba(0,0,0,.42));
}
[data-theme="light"] #reverse-view .rv-hero-art img{
  filter:drop-shadow(0 28px 42px rgba(13,18,15,.18));
}
#reverse-view .rv-grid{
  grid-template-columns:minmax(360px,430px) minmax(0,1fr);
  gap:clamp(16px,2vw,24px);
}
#reverse-view .rv-panel{
  position:relative;
  top:auto;
  padding:clamp(18px,2vw,24px);
  gap:18px;
}
#reverse-view .rv-paste-block,
#reverse-view .rv-step,
#reverse-view .rv-m,
#reverse-view .rv-cfg,
#reverse-view .rv-det,
#reverse-view .rv-legend code,
#reverse-view .rv-cost-pill{
  border-color:var(--rv-inner-border);
  background:var(--rv-inner-bg);
  box-shadow:var(--rv-inner-shadow);
}
#reverse-view .rv-paste-block,
#reverse-view .rv-step{
  padding:16px;
  border:1px solid var(--rv-inner-border);
  border-radius:var(--radius-xl);
}
#reverse-view .rv-step-head{
  gap:11px;
}
#reverse-view .rv-step-head h3{
  color:var(--ink);
  font-size:14px;
  font-weight:850;
  letter-spacing:0;
}
#reverse-view .rv-stepnum{
  width:30px;
  height:30px;
  border-radius:var(--radius-md);
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white),var(--accent));
  border:1px solid color-mix(in srgb,var(--accent) 72%,white);
  color:#071006;
  box-shadow:0 10px 24px color-mix(in srgb,var(--accent) 18%,transparent),inset 0 1px 0 rgba(255,255,255,.42);
  font-weight:900;
}
#reverse-view .rv-hint{
  color:var(--ink-2);
  font-size:12.5px;
  line-height:1.45;
}
#reverse-view .rv-or{
  color:var(--ink-3);
  font-size:10px;
  font-weight:800;
  letter-spacing:.14em;
}
#reverse-view .rv-or::before,
#reverse-view .rv-or::after{
  background:color-mix(in srgb,var(--line-2) 56%,transparent);
}
#reverse-view .rv-paste,
#reverse-view .rv-field input,
#reverse-view .rv-field select{
  min-height:46px;
  border:1px solid color-mix(in srgb,var(--line-2) 44%,transparent);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg,rgba(8,13,17,.74),rgba(4,7,5,.58));
  color:var(--ink);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045);
}
#reverse-view .rv-paste{
  min-height:110px;
  padding:13px 14px;
  resize:vertical;
}
#reverse-view .rv-paste:focus,
#reverse-view .rv-field input:focus,
#reverse-view .rv-field select:focus{
  border-color:color-mix(in srgb,var(--accent) 64%,var(--line));
  background:linear-gradient(180deg,rgba(10,16,11,.86),rgba(4,7,5,.66));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),inset 0 1px 0 rgba(255,255,255,.06);
}
[data-theme="light"] #reverse-view .rv-paste,
[data-theme="light"] #reverse-view .rv-field input,
[data-theme="light"] #reverse-view .rv-field select{
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent);
  background:rgba(255,255,255,.82);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96);
}
[data-theme="light"] #reverse-view .rv-paste:focus,
[data-theme="light"] #reverse-view .rv-field input:focus,
[data-theme="light"] #reverse-view .rv-field select:focus{
  background:#fff;
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 12%,transparent),0 16px 34px rgba(13,18,15,.1);
}
#reverse-view .rv-field>span{
  color:var(--ink-3);
  font-size:10.5px;
  font-weight:850;
  letter-spacing:.08em;
  text-transform:uppercase;
}
#reverse-view .rv-chips{
  gap:8px;
}
#reverse-view .rv-chip{
  min-width:72px;
  padding:10px 12px;
  border:1px solid var(--rv-inner-border);
  border-radius:var(--radius-lg);
  background:var(--rv-inner-bg);
  box-shadow:var(--rv-inner-shadow);
}
#reverse-view .rv-chip:hover{
  border-color:color-mix(in srgb,var(--accent) 40%,var(--rv-inner-border));
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,transparent),rgba(255,255,255,.02)),
    color-mix(in srgb,var(--surface) 14%,transparent);
}
#reverse-view .rv-chip.active{
  border-color:color-mix(in srgb,var(--accent) 70%,var(--rv-inner-border));
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 22%,transparent),var(--rv-inner-bg));
  box-shadow:var(--rv-inner-shadow),0 0 0 3px color-mix(in srgb,var(--accent) 9%,transparent);
}
#reverse-view .rv-chip.active b{
  color:var(--accent);
}
#reverse-view .rv-upload,
#reverse-view .rv-example-btn{
  min-height:36px;
  border-radius:var(--radius-pill);
  border:1px solid color-mix(in srgb,var(--accent) 34%,var(--rv-inner-border));
  background:color-mix(in srgb,var(--accent) 7%,transparent);
  color:var(--accent);
  box-shadow:var(--rv-inner-shadow);
  font-weight:850;
}
#reverse-view .rv-upload:hover,
#reverse-view .rv-example-btn:hover{
  background:color-mix(in srgb,var(--accent) 12%,transparent);
  border-color:color-mix(in srgb,var(--accent) 70%,var(--rv-inner-border));
}
#reverse-view .rv-legend{
  gap:7px;
}
#reverse-view .rv-legend code{
  padding:3px 7px;
  border-radius:var(--radius);
}
#reverse-view .rv-run{
  min-height:58px;
  margin-top:2px;
  justify-content:center;
  border-radius:var(--radius-lg);
  border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 92%,white),var(--accent));
  color:#071006;
  box-shadow:0 14px 34px color-mix(in srgb,var(--accent) 22%,transparent),inset 0 1px 0 rgba(255,255,255,.5);
  font-weight:900;
  transition:transform .16s var(--ease),box-shadow .16s var(--ease),filter .16s var(--ease);
}
#reverse-view .rv-run:hover{
  transform:translateY(-1px);
  filter:none;
  box-shadow:0 20px 46px color-mix(in srgb,var(--accent) 28%,transparent),inset 0 1px 0 rgba(255,255,255,.55);
}
#reverse-view .rv-run:disabled,
#reverse-view .rv-run.loading{
  opacity:.72;
  cursor:wait;
  transform:none;
}
#reverse-view .rv-empty,
#reverse-view .rv-loading{
  min-height:360px;
  padding:clamp(26px,3.2vw,42px);
  border-style:solid;
}
#reverse-view .rv-empty-mark{
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
  border:1px solid var(--rv-inner-border);
  border-radius:var(--radius-xl);
  background:var(--rv-inner-bg);
  color:var(--accent);
  box-shadow:var(--rv-inner-shadow);
  font-size:30px;
}
#reverse-view .rv-empty p,
#reverse-view .rv-loading p{
  color:var(--ink-2);
  font-size:14.5px;
}
#reverse-view .rv-verdict{
  padding:22px 24px;
}
#reverse-view .rv-verdict::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:0;
  pointer-events:none;
  background:var(--rv-glass-sheen);
  opacity:.58;
}
#reverse-view .rv-verdict::before{
  z-index:2;
  width:3px;
  opacity:.95;
}
#reverse-view .rv-verdict-badge{
  min-height:34px;
  display:inline-flex;
  align-items:center;
  border-radius:var(--radius-pill);
  padding:6px 12px;
  font-size:12px;
  font-weight:900;
}
#reverse-view .rv-card{
  padding:clamp(18px,2vw,22px);
}
#reverse-view .rv-card-head h3{
  font-size:14px;
  font-weight:850;
}
#reverse-view .rv-fam,
#reverse-view .rv-side{
  border:1px solid var(--rv-inner-border);
  box-shadow:var(--rv-inner-shadow);
}
#reverse-view .rv-table{
  border-collapse:separate;
  border-spacing:0;
}
#reverse-view .rv-table th{
  color:var(--ink-3);
  border-bottom-color:color-mix(in srgb,var(--line-2) 50%,transparent);
  font-weight:850;
  letter-spacing:.05em;
  text-transform:uppercase;
}
#reverse-view .rv-table td{
  border-bottom-color:color-mix(in srgb,var(--line-2) 40%,transparent);
}
#reverse-view .rv-m{
  border-left-width:3px;
  border-radius:var(--radius-lg);
  padding:13px 14px;
}
#reverse-view .rv-m-value{
  font-weight:800;
}
#reverse-view .rv-eq{
  height:146px;
  border:1px solid var(--rv-inner-border);
  border-radius:var(--radius-lg);
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--ink) 5%,transparent) 1px,transparent 1px),
    linear-gradient(180deg,color-mix(in srgb,var(--ink) 5%,transparent) 1px,transparent 1px),
    var(--rv-inner-bg);
  background-size:44px 44px;
  box-shadow:var(--rv-inner-shadow);
}
#reverse-view .rv-disc{
  color:var(--ink-3);
}
@media(max-width:900px){
  #reverse-view .rv-grid{
    grid-template-columns:minmax(0,1fr);   /* bare 1fr inflates to nowrap children -> page overflow */
  }
  #reverse-view .rv-panel{
    position:relative;
    top:auto;
  }
}
@media(max-width:700px){
  #reverse-view .rv-hero-shell{
    grid-template-columns:minmax(0,1fr) minmax(132px,170px);
    min-height:0;
    padding:24px 22px;
  }
  #reverse-view .rv-title{
    font-size:clamp(34px,9vw,46px);
  }
  #reverse-view .rv-sub{
    font-size:14px;
  }
  #reverse-view .rv-hero-art{
    min-height:190px;
  }
  #reverse-view .rv-hero-art img{
    width:min(30vw,166px);
    max-height:210px;
  }
  #reverse-view .rv-metrics-grid,
  #reverse-view .rv-hints-grid{
    grid-template-columns:1fr;
  }
}
@media(max-width:520px){
  #reverse-view .rv-hero-shell{
    grid-template-columns:1fr;
  }
  #reverse-view .rv-hero-art{
    justify-content:flex-start;
  }
  #reverse-view .rv-hero-art img{
    width:min(62vw,230px);
    max-height:230px;
  }
}
@media (max-width:760px){
  #reverse-view .rv-hero-shell,
  #reverse-view .rv-panel,
  #reverse-view .rv-empty,
  #reverse-view .rv-loading,
  #reverse-view .rv-verdict,
  #reverse-view .rv-card{
    backdrop-filter:none;
    -webkit-backdrop-filter:none;
    background:
      linear-gradient(165deg,rgba(255,255,255,.05) 0%,transparent 40%),
      color-mix(in srgb,var(--surface) 94%,transparent);
  }
  [data-theme="light"] #reverse-view .rv-hero-shell,
  [data-theme="light"] #reverse-view .rv-panel,
  [data-theme="light"] #reverse-view .rv-empty,
  [data-theme="light"] #reverse-view .rv-loading,
  [data-theme="light"] #reverse-view .rv-verdict,
  [data-theme="light"] #reverse-view .rv-card{
    background:
      linear-gradient(165deg,rgba(255,255,255,.9) 0%,rgba(255,255,255,.6) 50%),
      var(--surface);
  }
}

/* v5.48: analyzer container normalization. Keep the detector on the same
   product shell as landing, trainer and reverse engineering. */
body.is-analyzer{
  --analyzer-shell-radius:28px;
  --analyzer-inner-radius:20px;
}
body.is-analyzer .analyzer-top{
  padding:clamp(18px,3vw,38px) 0 clamp(54px,6vw,78px)!important;
}
body.is-analyzer .analyzer-wrap,
body.is-analyzer.analyzer-idle .analyzer-wrap,
body.is-analyzer.analyzer-running .analyzer-wrap,
body.is-analyzer.analyzer-result .analyzer-wrap{
  width:min(100%,var(--maxw))!important;
  max-width:var(--maxw)!important;
  margin-inline:auto!important;
  padding:0!important;
}
body.is-analyzer .analyzer-grid,
body.is-analyzer.analyzer-idle .analyzer-grid,
body.is-analyzer.analyzer-running .analyzer-grid,
body.is-analyzer.analyzer-result .analyzer-grid{
  width:100%!important;
  max-width:none!important;
  margin-inline:0!important;
}
body.is-analyzer .analyzer-title,
body.is-analyzer .input-console,
body.is-analyzer .audit-console,
body.is-analyzer .chart-console{
  border-radius:var(--analyzer-shell-radius)!important;
}
body.is-analyzer.analyzer-idle .analyzer-title,
body.is-analyzer.analyzer-idle .input-console,
body.is-analyzer.analyzer-running .audit-console,
body.is-analyzer.analyzer-running .chart-console,
body.is-analyzer.analyzer-result .audit-console,
body.is-analyzer.analyzer-result .chart-console{
  border-radius:var(--analyzer-shell-radius)!important;
}
body.is-analyzer .input-console{
  width:100%!important;
  max-width:none!important;
}
body.is-analyzer.analyzer-idle .input-console{
  padding:0 clamp(18px,2.6vw,30px) clamp(20px,2.8vw,32px)!important;
  background:var(--app-glass-bg)!important;
  border-color:var(--app-glass-border)!important;
  border-bottom-color:var(--app-glass-border-bottom)!important;
  box-shadow:var(--app-glass-shadow)!important;
}
body.is-analyzer .input-console .console-head{
  margin-inline:calc(clamp(18px,2.6vw,30px) * -1)!important;
  padding-inline:clamp(18px,2.6vw,30px)!important;
}
body.is-analyzer .intake-overview,
body.is-analyzer.analyzer-idle .input-console .seg,
body.is-analyzer.analyzer-idle .input-console #manual-note,
body.is-analyzer.analyzer-idle .input-console .pane,
body.is-analyzer.analyzer-idle .input-console #run,
body.is-analyzer.analyzer-idle .micro-list{
  max-width:100%!important;
}
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .chart-gate,
body.is-analyzer.analyzer-idle .input-console:has(#pane-yt.active) #pane-yt .audit-mode-choice{
  width:100%!important;
  max-width:100%!important;
  margin:18px 0 0!important;
}
body.is-analyzer .chart-gate,
body.is-analyzer .audit-mode-choice,
body.is-analyzer .frames-zone,
body.is-analyzer .source-card,
body.is-analyzer .chart-frame,
body.is-analyzer .chart-controls,
body.is-analyzer .chart-metrics,
body.is-analyzer .analysis-dock,
body.is-analyzer .big-verdict,
body.is-analyzer .mc-card,
body.is-analyzer .result .tech{
  border-radius:var(--analyzer-inner-radius)!important;
}
body.is-analyzer .chart-gate-btn,
body.is-analyzer .audit-mode-btn,
body.is-analyzer .frame-drop,
body.is-analyzer .mode-explain,
body.is-analyzer .url-input-shell,
body.is-analyzer .input-console .seg,
body.is-analyzer input,
body.is-analyzer textarea{
  border-radius:var(--radius-lg)!important;
}
body.is-analyzer .frame-upload-grid,
body.is-analyzer .frame-preview-grid{
  width:100%!important;
  max-width:100%!important;
  margin-inline:0!important;
}
body.is-analyzer.analyzer-idle .audit-mode-grid,
body.is-analyzer.analyzer-idle .chart-gate-grid,
body.is-analyzer.analyzer-idle .frame-upload-grid{
  gap:clamp(12px,1.8vw,16px)!important;
}
body.is-analyzer.analyzer-running #audit-process,
body.is-analyzer.analyzer-result #audit-process,
body.is-analyzer.analyzer-result #backtest-live,
body.is-analyzer.analyzer-result #result{
  width:100%!important;
}
@media (max-width:760px){
  body.is-analyzer .analyzer-wrap,
  body.is-analyzer.analyzer-idle .analyzer-wrap,
  body.is-analyzer.analyzer-running .analyzer-wrap,
  body.is-analyzer.analyzer-result .analyzer-wrap{
    width:min(calc(100vw - 36px),var(--maxw))!important;
    max-width:calc(100vw - 36px)!important;
  }
  body.is-analyzer .analyzer-title,
  body.is-analyzer .input-console,
  body.is-analyzer .audit-console,
  body.is-analyzer .chart-console{
    border-radius:var(--radius-xl)!important;
  }
  body.is-analyzer.analyzer-idle .input-console{
    padding:0 14px 16px!important;
    border-radius:var(--radius-xl)!important;
  }
  body.is-analyzer .input-console .console-head{
    margin-inline:-14px!important;
    padding-inline:14px!important;
  }
}

/* v5.49: one internal-screen hero scale for analyzer, trainer and reverse. */
body.is-analyzer,
body.is-trainer,
#reverse-view{
  --internal-hero-title:clamp(40px,4.9vw,58px);
  --internal-hero-copy:clamp(14px,1.25vw,16px);
  --internal-hero-art-w:clamp(190px,22vw,292px);
  --internal-hero-art-h:clamp(235px,29vw,350px);
  --internal-hero-pad:clamp(28px,4vw,46px);
  --internal-hero-gap:clamp(18px,3vw,34px);
}
body.is-trainer .trainer-top,
#reverse-view .rv-hero{
  padding:clamp(18px,3vw,38px) 0 clamp(12px,1.7vw,22px)!important;
}
body.is-trainer .trainer-wrap,
#reverse-view .rv-hero .wrap,
#reverse-view .rv-body .wrap{
  width:min(100%,var(--maxw))!important;
  max-width:var(--maxw)!important;
  padding:0!important;
}
body.is-trainer .trainer-head,
#reverse-view .rv-hero-shell,
body.is-analyzer.analyzer-idle .intake-overview{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(190px,var(--internal-hero-art-w))!important;
  align-items:start!important;
  gap:var(--internal-hero-gap)!important;
  min-height:clamp(310px,33vw,405px)!important;
  padding:var(--internal-hero-pad)!important;
}
/* v5.53: top-align the hero copy column so the kicker (ENTRY TRAINER /
   REVERSE ENGINEERING / START AUDIT) sits at the exact same offset on every
   internal page; the mascot stays anchored to the floor of the card. */
body.is-trainer .trainer-head > div,
#reverse-view .rv-hero-shell > .rv-hero-copy,
body.is-analyzer.analyzer-idle .intake-overview > div{
  align-self:start!important;
}
body.is-trainer .trainer-hero-art,
#reverse-view .rv-hero-art,
body.is-analyzer.analyzer-idle .analyzer-static-art{
  align-self:end!important;
}
/* v5.54: drop the "DETECTOR TERMINAL / SOURCE INTAKE" band on the IDLE analyzer
   intake so the START AUDIT kicker sits at the top of the card, matching the
   trainer & reverse heroes (the band still shows in running / result states). */
body.is-analyzer.analyzer-idle .input-console > .console-head{
  display:none!important;
}
body.is-analyzer.analyzer-idle .input-console{
  padding-top:0!important;
}
body.is-trainer .trainer-head{
  overflow:hidden!important;
  border-bottom:1px solid var(--app-glass-border-bottom)!important;
}
body.is-trainer .trainer-head .btn{
  display:none!important;
}
body.is-trainer .trainer-head h1,
#reverse-view .rv-title,
body.is-analyzer.analyzer-idle .intake-overview h2{
  max-width:12.5ch!important;
  margin:10px 0 14px!important;
  font-family:var(--display)!important;
  font-size:var(--internal-hero-title)!important;
  line-height:.96!important;
  letter-spacing:0!important;
}
body.is-trainer .trainer-head p,
#reverse-view .rv-sub,
body.is-analyzer.analyzer-idle .intake-copy{
  max-width:58ch!important;
  font-size:var(--internal-hero-copy)!important;
  line-height:1.55!important;
  color:var(--ink-2)!important;
}
body.is-trainer .trainer-head .eyebrow,
#reverse-view .rv-kicker,
body.is-analyzer.analyzer-idle .intake-overview span:first-child{
  font-family:var(--mono)!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  color:var(--accent)!important;
}
body.is-trainer .trainer-hero-art,
#reverse-view .rv-hero-art,
body.is-analyzer.analyzer-idle .analyzer-static-art{
  width:var(--internal-hero-art-w)!important;
  height:var(--internal-hero-art-h)!important;
  min-height:0!important;
  margin:0!important;
  align-self:end!important;
  justify-self:end!important;
  display:flex!important;
  align-items:flex-end!important;
  justify-content:center!important;
  pointer-events:none!important;
}
body.is-trainer .trainer-hero-art img,
#reverse-view .rv-hero-art img,
body.is-analyzer.analyzer-idle .analyzer-static-art img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:100%!important;
  max-height:100%!important;
  object-fit:contain!important;
  object-position:center bottom!important;
}
#reverse-view .rv-hero-art::before{
  bottom:10px!important;
  width:78%!important;
  height:28%!important;
}
body.is-analyzer.analyzer-idle .input-console{
  overflow:hidden!important;
}
body.is-analyzer.analyzer-idle .intake-overview{
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
}
body.is-analyzer.analyzer-idle .intake-tags{
  display:none!important;
}
@media (max-width:760px){
  body.is-analyzer,
  body.is-trainer,
  #reverse-view{
    --internal-hero-title:clamp(34px,9vw,44px);
    --internal-hero-copy:14px;
    --internal-hero-art-w:clamp(118px,36vw,164px);
    --internal-hero-art-h:clamp(150px,44vw,210px);
    --internal-hero-pad:22px;
    --internal-hero-gap:12px;
  }
  body.is-trainer .trainer-wrap,
  #reverse-view .rv-hero .wrap,
  #reverse-view .rv-body .wrap{
    width:min(calc(100vw - 36px),var(--maxw))!important;
    max-width:calc(100vw - 36px)!important;
  }
  body.is-trainer .trainer-head,
  #reverse-view .rv-hero-shell,
  body.is-analyzer.analyzer-idle .intake-overview{
    grid-template-columns:minmax(0,1fr) minmax(112px,var(--internal-hero-art-w))!important;
    min-height:0!important;
  }
  body.is-trainer .trainer-head h1,
  #reverse-view .rv-title,
  body.is-analyzer.analyzer-idle .intake-overview h2{
    margin:8px 0 10px!important;
  }
}
@media (max-width:520px){
  body.is-trainer .trainer-head,
  #reverse-view .rv-hero-shell,
  body.is-analyzer.analyzer-idle .intake-overview{
    grid-template-columns:1fr!important;
  }
  body.is-trainer .trainer-hero-art,
  #reverse-view .rv-hero-art,
  body.is-analyzer.analyzer-idle .analyzer-static-art{
    justify-self:start!important;
    width:min(60vw,220px)!important;
    height:min(68vw,245px)!important;
  }
}

/* v5.50: the reverse hero shell is ALSO the .wrap, so the wrap-reset rule
   (#reverse-view .rv-hero .wrap{padding:0}) was out-specifying the shared
   internal-hero padding and jamming the kicker / title / copy against the
   top-left edge — unlike the trainer and analyzer heroes, which sit inset.
   Re-assert the same responsive inset (--internal-hero-pad: 46px desktop,
   22px ≤760px) at matching specificity, placed last so it wins the cascade. */
#reverse-view .rv-hero .rv-hero-shell{
  padding:var(--internal-hero-pad)!important;
}

/* v5.55: ONE kicker treatment for every internal hero. The three pages used to
   render their eyebrow differently — trainer/landing: dot + blinking cursor,
   reverse: dot only (7px, gap 9), analyzer: a plain span with no dot at all.
   This makes ENTRY TRAINER / REVERSE ENGINEERING / START AUDIT pixel-identical:
   same dot, same metrics, same blinking cursor, same vertical position. */
body.is-trainer .trainer-head .eyebrow,
#reverse-view .rv-kicker,
body.is-analyzer.analyzer-idle .intake-overview span:first-child{
  display:inline-flex!important;
  align-items:center!important;
  gap:8px!important;
  margin:0 0 14px!important;
  font-family:var(--mono)!important;
  font-size:11px!important;
  font-weight:900!important;
  letter-spacing:.14em!important;
  text-transform:uppercase!important;
  color:var(--accent)!important;
}
body.is-trainer .trainer-head .eyebrow::before,
#reverse-view .rv-kicker::before,
body.is-analyzer.analyzer-idle .intake-overview span:first-child::before{
  content:""!important;
  width:7px!important;
  height:7px!important;
  border-radius:50%!important;
  background:var(--accent)!important;
  box-shadow:0 0 18px color-mix(in srgb,var(--accent) 65%,transparent)!important;
  margin:0!important;
  flex:none!important;
}
body.is-trainer .trainer-head .eyebrow::after,
#reverse-view .rv-kicker::after,
body.is-analyzer.analyzer-idle .intake-overview span:first-child::after{
  content:"_"!important;
  margin-left:-3px!important;
  color:var(--accent)!important;
  font-family:var(--mono)!important;
  animation:fg-blink 1.15s steps(1) infinite!important;
}
@media (prefers-reduced-motion:reduce){
  body.is-trainer .trainer-head .eyebrow::after,
  #reverse-view .rv-kicker::after,
  body.is-analyzer.analyzer-idle .intake-overview span:first-child::after{
    animation:none!important;
  }
}

/* v5.56: the trainer mascot is a 1:1 square (barbell held overhead) so it only
   filled ~282px of the box and read noticeably smaller than the reverse/analyzer
   mascots, which are tall portraits filling the full 350px height. Give the
   trainer a wider art track + larger, taller card so the lifter scales up to the
   same visual weight as the other two heroes. */
body.is-trainer .trainer-head{
  grid-template-columns:minmax(0,1fr) minmax(260px,clamp(320px,30vw,400px))!important;
  min-height:clamp(360px,40vw,460px)!important;
}
body.is-trainer .trainer-hero-art{
  width:clamp(320px,30vw,400px)!important;
  height:clamp(320px,30vw,400px)!important;
}
@media (min-width:521px) and (max-width:760px){
  body.is-trainer .trainer-head{
    grid-template-columns:minmax(0,1fr) minmax(160px,clamp(190px,44vw,230px))!important;
    min-height:0!important;
  }
  body.is-trainer .trainer-hero-art{
    width:clamp(190px,44vw,230px)!important;
    height:clamp(190px,44vw,230px)!important;
  }
}
@media (max-width:520px){
  body.is-trainer .trainer-head{
    grid-template-columns:1fr!important;
    min-height:0!important;
  }
  body.is-trainer .trainer-hero-art{
    width:min(74vw,300px)!important;
    height:min(74vw,300px)!important;
  }
}

/* ========================================================================
   HALL OF SMOKE · EDGE GRAVEYARD · DECAY MONITOR  (added 2026-06-22)
   Reuses the design tokens + .card/.cards/.tag/.rb-card primitives.
   ======================================================================== */

/* --- shared full-page view heroes --- */
.sv-hero,.gv-hero,.mon-hero{padding:46px 0 6px;position:relative}
.sv-hero-shell{max-width:880px}
.sv-hero-copy .rv-sub{max-width:760px}
.gv-hero{background:radial-gradient(120% 90% at 50% -10%,color-mix(in srgb,var(--humo) 8%,transparent),transparent 60%)}
.mon-hero{background:radial-gradient(120% 90% at 50% -10%,color-mix(in srgb,var(--accent-2) 9%,transparent),transparent 60%)}
.sv-body,.gv-body,.mon-body{padding:18px 0 70px}

/* --- home gallery sections --- */
.smoke-home-section{padding-top:30px}
.smoke-grid{margin-top:4px}
.smoke-home-cta,.sv-footer-cta{display:flex;gap:12px;align-items:center;justify-content:center;flex-wrap:wrap;margin-top:26px}
.sv-footer-cta{flex-direction:column;gap:14px;margin-top:38px;text-align:center}
.sv-footer-cta p{color:var(--ink-2);font-size:15px}

/* --- fixed copy disclaimer (judge the method, not the person) --- */
.sv-disclaimer{font:600 12px/1.5 var(--mono);color:var(--ink-3);letter-spacing:.01em;margin:0 0 16px;
  padding-left:12px;border-left:2px solid color-mix(in srgb,var(--accent-2) 40%,var(--line-2))}
.sv-disclaimer.center{text-align:center;border-left:0;padding-left:0;margin:20px auto 0;max-width:640px}

/* --- smoke verdict filter pills --- */
.sv-filter{display:inline-flex;gap:6px;flex-wrap:wrap;padding:6px;border:1px solid var(--line);border-radius:var(--radius-pill);
  background:color-mix(in srgb,var(--surface-2) 70%,transparent);margin-bottom:22px}
.sv-fbtn{appearance:none;border:1px solid transparent;background:transparent;color:var(--ink-2);
  font:700 12.5px/1 var(--mono);letter-spacing:.02em;padding:9px 15px;border-radius:var(--radius-pill);cursor:pointer;
  transition:all .18s var(--ease);white-space:nowrap}
.sv-fbtn:hover{color:var(--ink);background:color-mix(in srgb,var(--surface-3) 80%,transparent)}
.sv-fbtn.active{color:var(--bg);background:var(--ink);border-color:var(--ink)}

/* --- edge graveyard cards (headstones) --- */
.graveyard-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;margin-top:8px}
.grave-card{position:relative;display:flex;flex-direction:column;gap:9px;padding:20px 20px 18px;cursor:pointer;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 90%,transparent),color-mix(in srgb,var(--bg) 80%,transparent));
  border:1px solid var(--line);border-top:3px solid color-mix(in srgb,var(--humo) 55%,var(--line-2));
  border-radius:4px 4px var(--radius) var(--radius);overflow:hidden;transition:transform .2s var(--ease),box-shadow .2s var(--ease),border-color .2s var(--ease)}
.grave-card::after{content:"";position:absolute;inset:0;pointer-events:none;
  background:radial-gradient(90% 60% at 50% 0,color-mix(in srgb,var(--humo) 6%,transparent),transparent 60%)}
.grave-card:hover{transform:translateY(-3px);box-shadow:var(--elev-2);border-color:color-mix(in srgb,var(--humo) 40%,var(--line-2))}
.grave-card:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
.grave-top{display:flex;align-items:center;gap:9px}
.grave-cross{font-size:16px;color:color-mix(in srgb,var(--humo) 80%,var(--ink-3));line-height:1}
.grave-cause{font:800 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--humo);
  border:1px solid color-mix(in srgb,var(--humo) 36%,var(--line));background:color-mix(in srgb,var(--humo) 9%,transparent);
  border-radius:var(--radius-pill);padding:6px 10px}
.grave-name{font:780 18px/1.18 var(--display);color:var(--ink);margin:2px 0 0}
.grave-family{font:600 11px/1 var(--mono);letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase}
.grave-life{display:flex;align-items:center;gap:9px;font:800 13px/1 var(--mono);margin-top:2px}
.grave-life .alive{color:var(--real)}
.grave-life .dead{color:var(--humo)}
.grave-life .grave-dash{color:var(--ink-3)}
.grave-spark{margin:4px 0 2px;height:64px}
.decay-spark{width:100%;height:64px;display:block}
.grave-headline{color:var(--ink-2);font-size:13.5px;line-height:1.5;margin:2px 0 0}
.grave-open{margin-top:auto;padding-top:8px;font:800 12px/1 var(--mono);color:var(--accent-2);letter-spacing:.03em}

/* --- graveyard autopsy modal --- */
.grave-modal-head{display:flex;gap:14px;align-items:flex-start;margin-bottom:8px}
.grave-cross.big{font-size:30px;color:var(--humo);line-height:1.1;flex:none}
.grave-modal-cause{display:inline-block;font:800 10px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  color:var(--humo);margin-bottom:6px}
.grave-modal-life{font:700 12.5px/1.4 var(--mono);color:var(--ink-2);margin-top:6px}
.grave-modal-life .alive{color:var(--real)}
.grave-modal-life .dead{color:var(--humo)}
.grave-modal-headline{font-size:16px;line-height:1.55;color:var(--ink);margin:10px 0 4px}
.grave-rule{font:600 13.5px/1.6 var(--mono);color:var(--ink-2);background:color-mix(in srgb,var(--surface-2) 80%,transparent);
  border:1px dashed var(--line-2);border-radius:var(--radius-md);padding:14px 16px;margin-top:6px}
.sq.no .sq-ic{white-space:nowrap}

/* --- decay monitor --- */
.mon-summary{display:flex;gap:10px;flex-wrap:wrap;margin:6px 0 22px}
.mon-stat{flex:1;min-width:96px;display:flex;flex-direction:column;gap:4px;padding:15px 16px;
  border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 80%,transparent)}
.mon-stat b{font:900 1.9rem/1 var(--mono);color:var(--ink)}
.mon-stat span{font:700 11px/1.2 var(--mono);letter-spacing:.03em;text-transform:uppercase;color:var(--ink-3)}
.mon-stat.ok b{color:var(--real)} .mon-stat.mid b{color:var(--marginal)}
.mon-stat.bad b{color:var(--humo)} .mon-stat.warn b{color:var(--accent-2)}
.mon-list{display:flex;flex-direction:column;gap:14px}
.mon-card{position:relative;border:1px solid var(--line);border-left:3px solid var(--line-2);border-radius:var(--radius-lg);
  padding:18px 20px;background:color-mix(in srgb,var(--surface) 84%,transparent);transition:border-color .2s var(--ease)}
.mon-card.REAL{border-left-color:var(--real)} .mon-card.MARGINAL{border-left-color:var(--marginal)}
.mon-card.HUMO{border-left-color:var(--humo)}
.mon-card.degraded{background:color-mix(in srgb,var(--humo) 4%,var(--surface))}
.mon-card-head{display:flex;justify-content:space-between;align-items:flex-start;gap:14px}
.mon-kind{font:800 10px/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--accent-2);
  border:1px solid color-mix(in srgb,var(--accent-2) 30%,var(--line));background:color-mix(in srgb,var(--accent-2) 8%,transparent);
  border-radius:var(--radius-pill);padding:5px 9px;display:inline-block;margin-bottom:7px}
.mon-id h3{font:780 18px/1.2 var(--display);color:var(--ink);margin:0}
.mon-family{font:600 11px/1 var(--mono);letter-spacing:.04em;color:var(--ink-3);text-transform:uppercase;margin-top:5px}
.mon-status{display:flex;flex-direction:column;align-items:flex-end;gap:6px;flex:none}
.mon-degraded{font:800 9.5px/1 var(--mono);letter-spacing:.1em;color:var(--humo);
  border:1px solid color-mix(in srgb,var(--humo) 40%,transparent);border-radius:var(--radius-pill);padding:4px 8px}
.mon-note{color:var(--ink-2);font-size:13.5px;line-height:1.55;margin:10px 0 12px}
.mon-timeline{list-style:none;margin:0;padding:0 0 0 2px;display:flex;flex-direction:column;gap:8px;
  border-top:1px dashed var(--line);padding-top:12px}
.mon-ev{display:grid;grid-template-columns:14px 78px 86px 1fr;align-items:center;gap:9px;font-size:12.5px}
.mon-ev-dot{width:9px;height:9px;border-radius:50%;background:var(--ink-3)}
.mon-ev-dot.REAL{background:var(--real)} .mon-ev-dot.MARGINAL{background:var(--marginal)} .mon-ev-dot.HUMO{background:var(--humo)}
.mon-ev-date{font:700 12px/1 var(--mono);color:var(--ink-3)}
.mon-ev-tag{font:800 10px/1 var(--mono);letter-spacing:.04em;text-align:center;border-radius:var(--radius-pill);padding:4px 6px}
.mon-ev-tag.REAL{color:var(--real);background:color-mix(in srgb,var(--real) 12%,transparent)}
.mon-ev-tag.MARGINAL{color:var(--marginal);background:color-mix(in srgb,var(--marginal) 12%,transparent)}
.mon-ev-tag.HUMO{color:var(--humo);background:color-mix(in srgb,var(--humo) 12%,transparent)}
.mon-ev-note{color:var(--ink-2);line-height:1.4}
.mon-foot{display:flex;justify-content:space-between;align-items:center;gap:12px;margin-top:14px;flex-wrap:wrap}
.mon-checked{font:600 12px/1 var(--mono);color:var(--ink-3)}
.mon-checked b{color:var(--ink-2)}
.mon-actions{display:flex;align-items:center;gap:12px}
.mon-grave-link{font:800 12px/1 var(--mono);color:var(--humo);text-decoration:none;border-bottom:1px solid transparent}
.mon-grave-link:hover{border-bottom-color:currentColor}
.mon-locked{font:700 11.5px/1 var(--mono);color:var(--ink-3);font-style:italic}
.mon-reval{min-height:38px;padding:9px 14px;font-size:12.5px}
.mon-register{display:flex;justify-content:space-between;align-items:center;gap:18px;flex-wrap:wrap;margin-top:30px;
  padding:22px 24px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:var(--radius-lg);
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 7%,var(--surface)),var(--surface))}
.mon-register b{display:block;color:var(--ink);font-size:15.5px;margin-bottom:5px}
.mon-register p{color:var(--ink-2);font-size:13.5px;line-height:1.5;max-width:540px}

/* --- methods disclosure-status badge (§3 hierarchy) --- */
.method-status{font:800 9.5px/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;border-radius:var(--radius-pill);
  padding:6px 10px;white-space:nowrap}
.method-status.live{color:var(--accent-2);border:1px solid color-mix(in srgb,var(--accent-2) 32%,var(--line));
  background:color-mix(in srgb,var(--accent-2) 9%,transparent)}

/* --- responsive --- */
@media (max-width:980px){
  .graveyard-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:560px){
  .method-status{white-space:normal}
}
@media (max-width:680px){
  .graveyard-grid{grid-template-columns:1fr}
  .mon-card-head{flex-direction:column;align-items:flex-start}
  .mon-status{flex-direction:row;align-items:center}
  .mon-ev{grid-template-columns:12px 70px 1fr;row-gap:2px}
  .mon-ev-note{grid-column:2/-1}
  .mon-summary .mon-stat{min-width:calc(50% - 5px)}
}

/* ===================== HERO · "HOW IT WORKS" DEMO ===================== */
/* Click-to-play walkthrough in the hero. Idle = just the trigger button; clicking
   runs the pipeline (Paste → Rules → Battery → Verdict) ONCE and ends on the CTA.
   The 4 panels are static HTML stacked in one grid cell (height = tallest panel,
   no reflow on switch); initHeroDemo() drives the is-idle/is-running/is-done states.
   Glass styling mirrors #landing-view .hero-url-panel. */
.hiw{
  --hiw-dwell:1.8s;            /* per-tab fill duration; overridden inline per step */
  width:min(100%,640px);
  margin:18px 0 26px;
}
.hiw-lead{margin:0 0 4px}
/* IDLE · trigger */
.hiw-intro{display:flex;flex-wrap:wrap;align-items:center;gap:14px}
.hiw:not(.is-idle) .hiw-intro{display:none}
.hiw-start{min-height:52px;padding:13px 22px;font-size:15px}
.hiw-start svg{width:14px;height:14px}
.hiw-start:hover svg{transform:scale(1.12)}
.hiw-intro-note{color:var(--ink-3);font-family:var(--mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
/* the glass box only exists once the run starts */
.hiw-run{
  display:none;
  border:1px solid color-mix(in srgb,var(--line-2) 46%,transparent);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(11,16,12,.72),rgba(4,7,5,.6));
  box-shadow:0 22px 60px rgba(0,0,0,.22),inset 0 1px 0 rgba(255,255,255,.05);
  backdrop-filter:blur(16px) saturate(126%);
  overflow:hidden;
}
.hiw.is-running .hiw-run,.hiw.is-done .hiw-run{display:block;animation:hiwReveal .36s var(--ease) both}
@keyframes hiwReveal{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.hiw-tabs{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:2px;
  padding:7px;
  pointer-events:none;        /* progress indicator only — not clickable */
  border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent);
}
.hiw-tab{
  position:relative;
  display:flex;
  align-items:center;
  gap:8px;
  padding:9px 11px 12px;
  border:0;
  border-radius:var(--radius);
  background:transparent;
  color:var(--ink-3);
  cursor:default;
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  text-transform:uppercase;
  letter-spacing:.03em;
  transition:color .2s var(--ease),background .2s var(--ease);
}
.hiw-tab .n{
  flex:none;
  display:grid;
  place-items:center;
  width:18px;height:18px;
  border-radius:50%;
  border:1px solid color-mix(in srgb,var(--line-2) 80%,transparent);
  font-size:10px;
  color:var(--ink-3);
  transition:color .2s var(--ease),background .2s var(--ease),border-color .2s var(--ease),box-shadow .2s var(--ease);
}
.hiw-tab .t{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.hiw-tab.active{color:var(--ink);background:color-mix(in srgb,var(--accent) 8%,transparent)}
.hiw-tab.active .n{
  border-color:var(--accent);
  background:var(--accent);
  color:#06120a;
  box-shadow:0 0 16px color-mix(in srgb,var(--accent) 55%,transparent);
}
/* completed step: solid accent dot (no glow), full progress bar */
.hiw-tab.done{color:var(--ink-2)}
.hiw-tab.done .n{border-color:var(--accent);background:var(--accent);color:#06120a}
/* per-tab progress fill — auto-runs when a tab gains .active (synced to --hiw-dwell) */
.hiw-fill{
  position:absolute;
  left:9px;right:9px;bottom:4px;
  height:2px;border-radius:2px;
  background:var(--accent);
  transform:scaleX(0);
  transform-origin:left;
  opacity:0;
}
.hiw-tab.active .hiw-fill{opacity:1;animation:hiwfill var(--hiw-dwell) linear forwards}
.hiw-tab.done .hiw-fill{opacity:1;transform:scaleX(1);animation:none}
@keyframes hiwfill{from{transform:scaleX(0)}to{transform:scaleX(1)}}

/* stacked stage — all panels share one cell so the box never jumps height */
.hiw-stage{display:grid;padding:15px 16px 14px}
.hiw-panel{
  grid-area:1/1;
  opacity:0;visibility:hidden;
  transform:translateY(6px);
  transition:opacity .34s var(--ease),transform .34s var(--ease),visibility 0s linear .34s;
  pointer-events:none;
}
.hiw-panel.active{
  opacity:1;visibility:visible;transform:none;
  transition:opacity .34s var(--ease),transform .34s var(--ease);
  pointer-events:auto;
}
.hiw-h{
  margin:0 0 12px;
  color:var(--ink);
  font-family:var(--display);
  font-size:16px;
  font-weight:600;
  line-height:1.3;
}
.hiw-sub{
  margin:12px 0 0;
  color:var(--ink-3);
  font-size:12.5px;
  line-height:1.5;
}
/* staggered reveal of items inside the active panel */
.hiw-panel .hiw-pill,
.hiw-panel .hiw-rule,
.hiw-panel .hiw-check{opacity:0;transform:translateY(7px)}
.hiw-panel.active .hiw-pill,
.hiw-panel.active .hiw-rule,
.hiw-panel.active .hiw-check{
  opacity:1;transform:none;
  transition:opacity .4s var(--ease),transform .4s var(--ease);
  transition-delay:calc(var(--i,0)*90ms + 80ms);
}

/* 1 · paste */
.hiw-url{
  display:flex;align-items:center;gap:10px;
  padding:11px 13px;
  border:1px solid color-mix(in srgb,var(--line-2) 50%,transparent);
  border-radius:var(--radius-md);
  background:linear-gradient(180deg,rgba(8,13,17,.82),rgba(4,7,5,.72));
  font-family:var(--mono);font-size:12.5px;color:var(--ink-2);
}
.hiw-url .hiw-pl{
  flex:none;display:grid;place-items:center;
  width:22px;height:22px;border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--humo) 18%,transparent);
  color:var(--humo);
}
.hiw-url .hiw-pl svg{width:11px;height:11px}
.hiw-url-txt{flex:1 1 auto;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.hiw-caret{flex:none;width:2px;height:15px;background:var(--accent);animation:hiwblink 1.05s steps(1) infinite}
@keyframes hiwblink{50%{opacity:0}}
.hiw-pills{display:flex;flex-wrap:wrap;gap:7px;margin-top:11px}
.hiw-pill{
  padding:5px 10px;border-radius:var(--radius-pill);
  border:1px solid color-mix(in srgb,var(--line-2) 60%,transparent);
  background:color-mix(in srgb,var(--surface-3) 55%,transparent);
  color:var(--ink-2);font-family:var(--mono);font-size:11px;font-weight:600;
}

/* 2 · rules */
.hiw-rules{display:flex;flex-wrap:wrap;gap:8px}
.hiw-rule{
  display:inline-flex;align-items:center;gap:8px;
  padding:6px 11px;border-radius:var(--radius);
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line-2));
  background:color-mix(in srgb,var(--accent) 7%,transparent);
}
.hiw-rule b{color:var(--ink-3);font-family:var(--mono);font-size:9.5px;font-weight:700;text-transform:uppercase;letter-spacing:.05em}
.hiw-rule em{color:var(--ink);font-family:var(--mono);font-size:12px;font-style:normal;font-weight:600}

/* 3 · battery */
.hiw-checks{list-style:none;display:grid;gap:7px;margin:0;padding:0}
.hiw-check{display:flex;align-items:center;gap:10px;font-size:12.5px;color:var(--ink-2)}
.hiw-check i{flex:none;display:grid;place-items:center;width:18px;height:18px;border-radius:var(--radius-sm);font-size:11px;font-weight:900;line-height:1}
.hiw-check i::before{content:"✓"}
.hiw-check.pass i{color:var(--real);background:color-mix(in srgb,var(--real) 16%,transparent);border:1px solid color-mix(in srgb,var(--real) 40%,transparent)}
.hiw-check.fail i{color:var(--humo);background:color-mix(in srgb,var(--humo) 16%,transparent);border:1px solid color-mix(in srgb,var(--humo) 40%,transparent)}
.hiw-check.fail i::before{content:"✗"}

/* 4 · verdict */
.hiw-verdicts{display:flex;flex-wrap:wrap;gap:7px}
.hiw-panel .hiw-vchip{opacity:0;transform:translateY(7px)}
.hiw-vchip{
  padding:5px 11px;border-radius:var(--radius-sm);
  border:1px solid color-mix(in srgb,var(--line-2) 60%,transparent);
  background:color-mix(in srgb,var(--surface-3) 50%,transparent);
  color:var(--ink-3);
  font-family:var(--mono);font-size:11px;font-weight:800;letter-spacing:.04em;
}
.hiw-panel.active .hiw-vchip{
  opacity:.5;transform:none;
  transition:opacity .4s var(--ease),transform .4s var(--ease);
  transition-delay:calc(var(--i,0)*90ms + 80ms);
}
.hiw-panel.active .hiw-vchip.on{opacity:1}
.hiw-vchip.real.on{color:var(--real);border-color:color-mix(in srgb,var(--real) 55%,transparent);background:color-mix(in srgb,var(--real) 12%,transparent)}
.hiw-vchip.humo.on{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 60%,transparent);background:color-mix(in srgb,var(--humo) 14%,transparent);box-shadow:0 0 22px color-mix(in srgb,var(--humo) 26%,transparent)}
.hiw-stoplight{
  display:flex;align-items:center;gap:10px;margin-top:12px;
  padding:10px 12px;border-radius:var(--radius);
  border:1px solid color-mix(in srgb,var(--humo) 35%,transparent);
  background:color-mix(in srgb,var(--humo) 9%,transparent);
}
.hiw-stoplight .hiw-sl-ic{flex:none;display:grid;place-items:center;width:22px;height:22px;border-radius:50%;background:var(--humo);color:#fff;font-weight:900;font-size:12px;line-height:1}
.hiw-sl-tx{font-size:12.5px;color:var(--ink);line-height:1.42}

/* DONE · CTA footer (inside the glass box, revealed when the run finishes) */
.hiw-cta{
  display:none;
  flex-wrap:wrap;align-items:center;gap:10px;
  padding:13px 16px 15px;
  border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);
}
.hiw.is-done .hiw-cta{display:flex;animation:hiwReveal .34s var(--ease) both}
.hiw-cta .btn{min-height:44px}
.hiw-replay svg{width:15px;height:15px}

/* light theme: swap the hard-coded dark glass for a light card (mirrors
   [data-theme="light"] #landing-view .hero-url-panel) so the --ink text stays readable */
[data-theme="light"] .hiw-run{
  background:linear-gradient(180deg,rgba(255,255,255,.9),rgba(244,247,246,.82));
  box-shadow:0 20px 58px rgba(13,18,15,.1),inset 0 1px 0 rgba(255,255,255,.92);
  border-color:color-mix(in srgb,var(--line-2) 60%,transparent);
}
[data-theme="light"] .hiw-url{
  background:rgba(255,255,255,.82);
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.96);
}

@media (prefers-reduced-motion: reduce){
  .hiw-tab.active .hiw-fill{animation:none;transform:scaleX(1)}
  .hiw-caret{animation:none}
  .hiw.is-running .hiw-run,.hiw.is-done .hiw-run,.hiw.is-done .hiw-cta{animation:none}
  .hiw-panel,.hiw-panel.active,
  .hiw-panel.active .hiw-pill,.hiw-panel.active .hiw-rule,
  .hiw-panel.active .hiw-check,.hiw-panel.active .hiw-vchip{transition:none}
}
@media (max-width:560px){
  .hiw{width:100%}
  .hiw-tab{flex-direction:column;align-items:flex-start;gap:5px;padding:8px 9px 11px;font-size:10px;letter-spacing:0}
  .hiw-stage{padding:14px 13px 13px}
  .hiw-h{font-size:15px}
  .hiw-intro{flex-direction:column;align-items:stretch}
  .hiw-start,.hiw-cta .btn{flex:1 1 100%;justify-content:center}
}

/* v5.56: make the hero demo feel like a real product test, not a small checklist. */
.hiw{
  width:min(100%,720px);
  margin:20px 0 24px;
}
.hiw-intro{
  gap:12px;
}
.hiw-intro-proof{
  flex:1 1 100%;
  display:flex;
  flex-wrap:wrap;
  gap:7px;
  max-width:560px;
}
.hiw-intro-proof span{
  min-height:26px;
  display:inline-flex;
  align-items:center;
  padding:5px 9px;
  border:1px solid color-mix(in srgb,var(--line-2) 54%,transparent);
  border-radius:var(--radius);
  background:color-mix(in srgb,var(--surface-2) 54%,transparent);
  color:var(--ink-2);
  font-family:var(--mono);
  font-size:10px;
  font-weight:750;
  text-transform:uppercase;
}
.hiw-run{
  position:relative;
  border-radius:var(--radius-lg);
  border-color:color-mix(in srgb,var(--accent) 18%,var(--line-2));
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--surface-2) 88%,transparent),rgba(5,8,7,.76) 52%,color-mix(in srgb,var(--humo) 8%,rgba(5,8,7,.8))),
    color-mix(in srgb,var(--bg) 74%,transparent);
  box-shadow:
    0 28px 78px rgba(0,0,0,.32),
    0 0 0 1px color-mix(in srgb,var(--accent) 9%,transparent),
    inset 0 1px 0 rgba(255,255,255,.075);
}
.hiw-run::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:0;
  height:1px;
  background:linear-gradient(90deg,transparent,var(--accent),var(--accent-2),transparent);
  opacity:.7;
}
.hiw-head{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px;
  padding:12px 14px 10px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}
.hiw-head>div{
  min-width:0;
  display:grid;
  gap:3px;
}
.hiw-kicker{
  color:var(--accent);
  font-family:var(--mono);
  font-size:10px;
  font-weight:800;
  text-transform:uppercase;
}
.hiw-head b{
  min-width:0;
  overflow:hidden;
  color:var(--ink);
  font-family:var(--display);
  font-size:16px;
  line-height:1.2;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hiw-live{
  flex:none;
  display:inline-flex;
  align-items:center;
  gap:7px;
  min-height:28px;
  padding:5px 9px;
  border:1px solid color-mix(in srgb,var(--accent) 34%,transparent);
  border-radius:var(--radius);
  background:color-mix(in srgb,var(--accent) 9%,transparent);
  color:var(--accent-hi);
  font-family:var(--mono);
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}
.hiw-live::before{
  content:"";
  width:7px;
  height:7px;
  border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 70%,transparent);
  animation:hiwLivePulse 1.15s var(--ease) infinite alternate;
}
@keyframes hiwLivePulse{from{opacity:.55;transform:scale(.86)}to{opacity:1;transform:scale(1.12)}}
.hiw-tabs{
  gap:6px;
  padding:7px 10px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 38%,transparent),transparent);
}
.hiw-tab{
  min-width:0;
  padding:8px 9px 11px;
  border:1px solid color-mix(in srgb,var(--line-2) 45%,transparent);
  border-radius:var(--radius);
  background:color-mix(in srgb,var(--surface-2) 28%,transparent);
}
.hiw-tab.active{
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--accent) 12%,transparent),color-mix(in srgb,var(--surface-2) 22%,transparent));
  border-color:color-mix(in srgb,var(--accent) 28%,transparent);
}
.hiw-stage{
  display:grid;
  grid-template-columns:minmax(0,1fr) 190px;
  gap:12px;
  align-items:stretch;
  padding:12px;
}
.hiw-panels{
  display:grid;
  min-height:220px;
}
.hiw-panel{
  display:flex;
  flex-direction:column;
  justify-content:center;
  min-width:0;
}
.hiw-h{
  margin-bottom:12px;
  font-size:18px;
  font-weight:750;
}
.hiw-sub{
  max-width:48ch;
  color:var(--ink-2);
}
.hiw-source,
.hiw-ruleboard,
.hiw-gates,
.hiw-verdict-card{
  opacity:0;
  transform:translateY(8px);
}
.hiw-panel.active .hiw-source,
.hiw-panel.active .hiw-ruleboard,
.hiw-panel.active .hiw-gates,
.hiw-panel.active .hiw-verdict-card{
  opacity:1;
  transform:none;
  transition:opacity .42s var(--ease),transform .42s var(--ease);
}
.hiw-source{
  display:grid;
  grid-template-columns:auto minmax(0,1fr) auto;
  align-items:center;
  gap:12px;
  padding:13px;
  border:1px solid color-mix(in srgb,var(--line-2) 54%,transparent);
  border-radius:var(--radius-md);
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--humo) 10%,transparent),transparent 42%),
    color-mix(in srgb,var(--surface-2) 58%,transparent);
}
.hiw-thumb{
  display:grid;
  place-items:center;
  width:42px;
  height:42px;
  border-radius:var(--radius);
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--humo) 28%,transparent),color-mix(in srgb,var(--accent-2) 14%,transparent));
  color:#fff;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.16);
}
.hiw-thumb svg{width:15px;height:15px}
.hiw-source-main{
  min-width:0;
  display:grid;
  gap:2px;
}
.hiw-source-main b{
  color:var(--ink);
  font-size:13px;
  font-weight:800;
}
.hiw-source-main em{
  overflow:hidden;
  color:var(--ink-2);
  font-family:var(--mono);
  font-size:12px;
  font-style:normal;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hiw-ruleboard{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:8px;
}
.hiw-rule{
  width:100%;
  justify-content:space-between;
  min-height:44px;
  padding:8px 10px;
  border-radius:var(--radius);
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,transparent),color-mix(in srgb,var(--surface-2) 42%,transparent));
}
.hiw-rule b{
  flex:none;
  letter-spacing:0;
}
.hiw-rule em{
  min-width:0;
  overflow:hidden;
  text-align:right;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hiw-gates{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:9px;
}
.hiw-gate{
  position:relative;
  min-height:78px;
  display:grid;
  grid-template-columns:24px minmax(0,1fr);
  align-content:start;
  column-gap:9px;
  row-gap:3px;
  padding:11px;
  border:1px solid color-mix(in srgb,var(--line-2) 52%,transparent);
  border-radius:var(--radius);
  background:color-mix(in srgb,var(--surface-2) 48%,transparent);
}
.hiw-gate i{
  grid-row:1/3;
  display:grid;
  place-items:center;
  width:24px;
  height:24px;
  border-radius:var(--radius-sm);
  font-size:12px;
  font-weight:900;
}
.hiw-gate i::before{content:"✓"}
.hiw-gate.fail i::before{content:"✗"}
.hiw-gate.pass i{
  color:var(--real);
  background:color-mix(in srgb,var(--real) 14%,transparent);
  border:1px solid color-mix(in srgb,var(--real) 36%,transparent);
}
.hiw-gate.fail i{
  color:var(--humo);
  background:color-mix(in srgb,var(--humo) 14%,transparent);
  border:1px solid color-mix(in srgb,var(--humo) 38%,transparent);
}
.hiw-gate b{
  min-width:0;
  overflow:hidden;
  color:var(--ink);
  font-size:12px;
  font-weight:850;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hiw-gate em{
  min-width:0;
  overflow:hidden;
  color:var(--ink-3);
  font-size:11px;
  font-style:normal;
  line-height:1.35;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.hiw-panel .hiw-gate{
  opacity:0;
  transform:translateY(7px);
}
.hiw-panel.active .hiw-gate{
  opacity:1;
  transform:none;
  transition:opacity .4s var(--ease),transform .4s var(--ease);
  transition-delay:calc(var(--i,0)*80ms + 80ms);
}
.hiw-verdict-card{
  position:relative;
  overflow:hidden;
  padding:12px;
  border:1px solid color-mix(in srgb,var(--humo) 42%,transparent);
  border-radius:var(--radius-md);
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--humo) 18%,transparent),transparent 48%),
    color-mix(in srgb,var(--surface-2) 58%,transparent);
}
.hiw-verdict-card::after{
  content:"";
  position:absolute;
  left:15px;
  right:15px;
  bottom:0;
  height:2px;
  background:linear-gradient(90deg,var(--humo),color-mix(in srgb,var(--accent) 55%,var(--humo)));
}
.hiw-verdict-kicker{
  display:block;
  margin-bottom:3px;
  color:color-mix(in srgb,var(--humo) 82%,#fff);
  font-family:var(--mono);
  font-size:10px;
  font-weight:850;
  text-transform:uppercase;
}
.hiw-verdict-card strong{
  display:block;
  color:var(--humo);
  font-family:var(--display);
  font-size:32px;
  font-weight:900;
  line-height:1;
  text-shadow:0 0 24px color-mix(in srgb,var(--humo) 30%,transparent);
}
.hiw-verdict-card p{
  margin-top:6px;
  max-width:44ch;
  color:var(--ink);
  font-size:13px;
  line-height:1.45;
}
.hiw-verdicts{
  margin-top:10px;
}
.hiw-proofrail{
  display:flex;
  flex-direction:column;
  min-width:0;
  padding:10px;
  border:1px solid color-mix(in srgb,var(--line-2) 48%,transparent);
  border-radius:var(--radius-md);
  background:
    linear-gradient(180deg,color-mix(in srgb,var(--accent-2) 8%,transparent),transparent 46%),
    color-mix(in srgb,var(--surface-2) 44%,transparent);
}
.hiw-proof-top{
  display:grid;
  gap:3px;
  padding-bottom:8px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 72%,transparent);
}
.hiw-proof-top span,
.hiw-proof-stats em,
.hiw-proof-note{
  color:var(--ink-3);
  font-family:var(--mono);
  font-size:10px;
  font-weight:750;
  line-height:1.35;
  text-transform:uppercase;
}
.hiw-proof-top b{
  color:var(--ink);
  font-family:var(--display);
  font-size:16px;
  line-height:1.1;
}
.hiw-proof-chart{
  position:relative;
  display:flex;
  align-items:end;
  gap:4px;
  height:58px;
  margin:9px 0 8px;
  padding:0 2px;
  border-bottom:1px solid color-mix(in srgb,var(--line-2) 62%,transparent);
}
.hiw-proof-chart::before{
  content:"";
  position:absolute;
  left:0;
  right:0;
  top:42%;
  border-top:1px dashed color-mix(in srgb,var(--ink) 18%,transparent);
}
.hiw-proof-chart i{
  position:relative;
  flex:1 1 0;
  height:var(--h);
  min-width:7px;
  border-radius:5px 5px 0 0;
  background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 38%,transparent));
}
.hiw-proof-chart i.bad{
  background:linear-gradient(180deg,var(--humo),color-mix(in srgb,var(--humo) 30%,transparent));
}
.hiw-proof-stats{
  display:grid;
  gap:5px;
  margin-top:auto;
}
.hiw-proof-stats span{
  display:grid;
  gap:1px;
  padding-top:5px;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);
}
.hiw-proof-stats b{
  color:var(--ink);
  font-family:var(--display);
  font-size:15px;
  line-height:1;
}
.hiw-proof-note{
  display:none;
  margin-top:10px;
  color:var(--ink-2);
  text-transform:none;
}
.hiw-cta{
  justify-content:space-between;
  padding:11px 12px 12px;
  background:linear-gradient(180deg,transparent,color-mix(in srgb,var(--surface) 34%,transparent));
}
.hiw-cta .btn:first-child{
  min-width:190px;
}
[data-theme="light"] .hiw-intro-proof span{
  background:rgba(255,255,255,.72);
}
[data-theme="light"] .hiw-run{
  background:
    linear-gradient(135deg,rgba(255,255,255,.94),rgba(247,249,248,.86) 58%,color-mix(in srgb,var(--humo) 7%,#fff)),
    rgba(255,255,255,.92);
  box-shadow:
    0 24px 60px rgba(13,18,15,.1),
    0 0 0 1px color-mix(in srgb,var(--accent) 11%,transparent),
    inset 0 1px 0 rgba(255,255,255,.95);
}
[data-theme="light"] .hiw-source,
[data-theme="light"] .hiw-rule,
[data-theme="light"] .hiw-gate,
[data-theme="light"] .hiw-verdict-card,
[data-theme="light"] .hiw-proofrail{
  background-color:rgba(255,255,255,.7);
}
@media (prefers-reduced-motion: reduce){
  .hiw-live::before{animation:none}
  .hiw-source,
  .hiw-ruleboard,
  .hiw-gates,
  .hiw-verdict-card,
  .hiw-panel.active .hiw-source,
  .hiw-panel.active .hiw-ruleboard,
  .hiw-panel.active .hiw-gates,
  .hiw-panel.active .hiw-verdict-card,
  .hiw-panel.active .hiw-gate{
    transition:none;
    transform:none;
  }
}
@media (max-width:760px){
  .hiw{
    margin:18px 0 20px;
  }
  .hiw-head{
    align-items:flex-start;
    flex-direction:column;
    gap:8px;
    padding:14px;
  }
  .hiw-head b{
    white-space:normal;
  }
  .hiw-live{
    min-height:28px;
  }
  .hiw-tabs{
    grid-template-columns:repeat(4,minmax(0,1fr));
    gap:4px;
    padding:8px;
  }
  .hiw-tab{
    padding:8px 7px 11px;
  }
  .hiw-tab .n{
    width:17px;
    height:17px;
  }
  .hiw-stage{
    grid-template-columns:1fr;
    gap:12px;
    padding:13px;
  }
  .hiw-panels{
    min-height:306px;
  }
  .hiw-ruleboard,
  .hiw-gates{
    grid-template-columns:1fr;
  }
  .hiw-gate{
    min-height:64px;
  }
  .hiw-proofrail{
    display:grid;
    grid-template-columns:1fr;
    gap:10px;
  }
  .hiw-proof-chart{
    height:58px;
    margin:2px 0 0;
  }
  .hiw-proof-stats{
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:7px;
  }
  .hiw-proof-stats b{
    font-size:15px;
  }
  .hiw-proof-note{
    display:none;
  }
}
@media (max-width:560px){
  .hiw-intro-proof{
    display:none;
  }
  .hiw-start{
    min-height:54px;
  }
  .hiw-h{
    font-size:16px;
  }
  .hiw-panels{
    min-height:300px;
  }
  .hiw-source{
    grid-template-columns:auto minmax(0,1fr);
  }
  .hiw-source .hiw-caret{
    display:none;
  }
  .hiw-verdict-card strong{
    font-size:32px;
  }
  .hiw-vchip{
    font-size:10px;
  }
  .hiw-cta{
    align-items:stretch;
    flex-wrap:nowrap;
    gap:8px;
  }
  .hiw-cta .btn{
    flex:1 1 auto;
    min-height:48px;
    padding:10px 12px;
  }
  .hiw-cta .hiw-replay{
    flex:0 0 94px;
  }
  .hiw-cta .btn:first-child{
    min-width:0;
  }
  .hiw-proofrail{
    display:none;
  }
}

/* v5.57: engaged hero mode. When the demo starts, the large marketing headline
   yields the stage so the test, mascot, and CTA read as one coordinated UI. */
.hiw-intro-proof{
  display:none!important;
}
#landing-view .hero.hiw-engaged{
  min-height:min(640px,calc(100vh - var(--nav-h) - 64px))!important;
  padding:clamp(22px,4vw,42px) 0!important;
}
#landing-view .hero.hiw-engaged .hero-grid{
  grid-template-columns:minmax(0,720px) minmax(240px,360px)!important;
  align-items:center!important;
  gap:clamp(18px,4vw,54px)!important;
  transform:none!important;
}
#landing-view .hero.hiw-engaged .hero-copy{
  width:min(100%,720px)!important;
  padding:0!important;
}
#landing-view .hero.hiw-engaged .hero-copy>.eyebrow,
#landing-view .hero.hiw-engaged .hero-copy>h1,
#landing-view .hero.hiw-engaged .hero-copy>.lead{
  display:none!important;
}
#landing-view .hero.hiw-engaged .hiw{
  width:min(100%,720px)!important;
  margin:0!important;
}
#landing-view .hero.hiw-engaged .hero-visual{
  min-height:420px!important;
  margin:0 auto!important;
  opacity:.76;
  transform:scale(.9)!important;
}
#landing-view .hero.hiw-engaged .hero-visual img{
  width:min(100%,360px)!important;
  max-height:420px!important;
}
#landing-view .hero.hiw-engaged .xhair{
  opacity:.58;
}
@media (max-width:1080px){
  #landing-view .hero.hiw-engaged{
    min-height:auto!important;
    padding:22px 0 28px!important;
  }
  #landing-view .hero.hiw-engaged .hero-grid{
    grid-template-columns:1fr!important;
  }
  #landing-view .hero.hiw-engaged .hero-copy{
    width:min(100%,760px)!important;
    margin:0 auto!important;
  }
  #landing-view .hero.hiw-engaged .hero-visual{
    display:none!important;
  }
}
@media (max-width:560px){
  #landing-view .hero.hiw-engaged{
    margin-top:8px!important;
    padding-top:8px!important;
  }
}

/* Hero demo · the right-side visual swaps the active step's process image while the
   demo runs (.hero.hiw-engaged); idle shows the mascot. All imgs stack in one cell. */
.hero-visual img{grid-area:1/1;transition:opacity .45s var(--ease)}
/* #landing-view + !important to beat the prior `.hiw-engaged .hero-visual img` overrides */
#landing-view .hero-visual .hv-step{opacity:0;pointer-events:none}
#landing-view .hero.hiw-engaged .hv-mascot{opacity:0!important}
#landing-view .hero.hiw-engaged .hv-step.on{opacity:1!important}

/* Story · verdict visual (equity curve + badge) — replaces the old process-image swap.
   Desktop renders into #story-stage (sticky); mobile injects .story-step-vis per step. */
.story-stage{position:relative;width:min(100%,560px);margin:0 auto}
.verdict-visual{
  position:relative;display:grid;gap:14px;padding:20px;
  border:1px solid var(--line-2);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 92%,transparent),color-mix(in srgb,var(--surface) 94%,transparent));
  box-shadow:var(--elev-2);
  animation:vvIn .42s var(--ease) both;
}
@keyframes vvIn{from{opacity:0;transform:translateY(10px) scale(.99)}to{opacity:1;transform:none}}
.vv-spark{position:relative;height:clamp(150px,24vh,290px);border-radius:var(--radius-md);overflow:hidden}
.vv-spark .spark{width:100%;height:100%;display:block}
.vv-nodata{
  display:grid;place-items:center;height:100%;
  border:1px dashed color-mix(in srgb,var(--ink-3) 55%,transparent);border-radius:var(--radius-md);
  color:var(--ink-3);font-family:var(--mono);font-size:12.5px;text-transform:uppercase;letter-spacing:.09em;
}
.vv-badge{display:flex;align-items:center;gap:12px}
.vv-ic{flex:none;display:grid;place-items:center;width:36px;height:36px;border-radius:50%;font-weight:900;font-size:17px;line-height:1}
.vv-word{font-family:var(--display);font-size:24px;font-weight:700;letter-spacing:.02em;line-height:1}
.vv-tag{margin-left:auto;color:var(--ink-3);font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.05em;text-align:right}
.verdict-visual.real .vv-word{color:var(--real)}
.verdict-visual.real .vv-ic{color:#06120a;background:var(--real)}
.verdict-visual.marginal .vv-word{color:var(--marginal)}
.verdict-visual.marginal .vv-ic{color:#1a1304;background:var(--marginal)}
.verdict-visual.humo .vv-word{color:var(--humo)}
.verdict-visual.humo .vv-ic{color:#fff;background:var(--humo)}
.verdict-visual.untestable{border-style:dashed}
.verdict-visual.untestable .vv-word{color:var(--ink-2)}
.verdict-visual.untestable .vv-ic{color:var(--ink);background:color-mix(in srgb,var(--ink-3) 38%,transparent)}
/* mobile: show the per-step verdict visual inline (desktop uses the sticky #story-stage) */
.story-step-vis{display:none;margin-bottom:14px}
@media (max-width:1080px){.story-step-vis{display:block}}

/* ===================== HERO · TRADING DEMO CARD (v7) ===================== */
/* Clean, ALIGNED two-column hero — no big wrapper card; .hdemo IS the card (a trading
   terminal). Plays in place; the headline never hides. Visual lives inside the card. */

/* align the hero with the nav: drop the hero's horizontal padding and make the grid a
   centered max-width wrap with the same 16px gutter the nav uses → edges line up. Also
   kills the leftover "big card" (bg/border/texture) so .hdemo is the only card. */
#landing-view .hero{width:100%!important;max-width:none!important;padding-left:0!important;padding-right:0!important;margin-left:0!important;margin-right:0!important;background:none!important;border:0!important;border-radius:0!important;box-shadow:none!important;align-items:center!important;justify-content:center!important}
#landing-view .hero::before,#landing-view .hero::after{display:none!important}
#landing-view .hero-grid{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) minmax(0,clamp(360px,40%,470px))!important;
  align-items:center!important;
  gap:clamp(32px,5vw,72px)!important;
  width:min(100%,var(--maxw))!important;
  max-width:none!important;
  margin:auto!important;
  padding:0 16px!important;
  min-height:0!important;
  align-self:center!important;
  transform:none!important;
  background:none!important;border:0!important;border-radius:0!important;
  backdrop-filter:none!important;box-shadow:none!important;
}
#landing-view .hero-grid::before,#landing-view .hero-grid::after{display:none!important}
#landing-view .hero-copy{position:static!important;width:auto!important;max-width:560px;padding:0!important;transform:none!important}

/* ---- trading terminal card ---- */
.hdemo{
  position:relative;
  display:flex;flex-direction:column;gap:14px;
  padding-bottom:16px;
  border:1px solid color-mix(in srgb,var(--line-2) 62%,transparent);
  border-radius:var(--radius-lg);
  background:linear-gradient(180deg,rgba(13,18,14,.84),rgba(6,9,7,.72));
  box-shadow:0 36px 92px -36px rgba(0,0,0,.72),inset 0 1px 0 rgba(255,255,255,.06);
  backdrop-filter:blur(18px) saturate(126%);
  overflow:hidden;
}
/* faint terminal grid, fading from the top */
.hdemo::before{
  content:"";position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.55;
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--line) 55%,transparent) 1px,transparent 1px),
    linear-gradient(180deg,color-mix(in srgb,var(--line) 55%,transparent) 1px,transparent 1px);
  background-size:34px 34px;
  -webkit-mask-image:radial-gradient(130% 95% at 50% -5%,#000,transparent 76%);
  mask-image:radial-gradient(130% 95% at 50% -5%,#000,transparent 76%);
}
.hdemo>*{position:relative;z-index:1}

/* terminal header */
.hdemo-top{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:11px 16px;
  border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent);
  background:color-mix(in srgb,var(--surface-2) 30%,transparent);
  font-family:var(--mono);
}
.hdemo-path{display:inline-flex;align-items:center;gap:9px;color:var(--ink-2);font-size:11.5px;font-weight:600;letter-spacing:.01em}
.hdemo-path b{color:var(--accent);font-weight:700}
.hdemo-sym{display:inline-flex;align-items:center;gap:7px;color:var(--ink-3);font-size:10px;font-weight:700;letter-spacing:.07em;text-transform:uppercase}
.hdemo-livedot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--accent);animation:hdpulse 1.9s var(--ease) infinite}
.hdemo-sym .hdemo-livedot{width:6px;height:6px;animation-delay:.4s}
@keyframes hdpulse{0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}70%{box-shadow:0 0 0 6px transparent}100%{box-shadow:0 0 0 0 transparent}}

/* terminal status bar — the audit metrics, revealed once the run starts (full-bleed footer) */
.hdemo-status{
  display:flex;flex-wrap:wrap;gap:6px 22px;
  padding:10px 16px;
  border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);
  background:color-mix(in srgb,var(--surface-2) 26%,transparent);
  font-family:var(--mono);
  opacity:0;transform:translateY(4px);transition:opacity .45s var(--ease),transform .45s var(--ease);
}
.hdemo.is-running .hdemo-status,.hdemo.is-done .hdemo-status{opacity:1;transform:none}
.hst{display:inline-flex;align-items:baseline;gap:7px}
.hst em{color:var(--ink-3);font-style:normal;font-size:10px;font-weight:600;text-transform:uppercase;letter-spacing:.05em}
.hst b{color:var(--ink);font-size:12px;font-weight:700}
.hst b.bad{color:var(--humo)}

/* body sections share side padding (the titlebar + status bar are full-bleed) */
.hdemo-bar,.hdemo-stage,.hdemo-caps,.hdemo-foot{margin-inline:16px}

/* step badge (space reserved in idle via opacity so the run never shifts layout) */
.hdemo-bar{display:flex;align-items:center;gap:12px;font-family:var(--mono);opacity:0;transition:opacity .4s var(--ease)}
.hdemo:not(.is-idle) .hdemo-bar{opacity:1}
.hdemo-ix{color:var(--ink-3);font-size:12px;font-weight:700}
.hdemo-ix b{color:var(--accent);font-size:14px}
.hdemo-name{color:var(--ink);font-size:11.5px;font-weight:700;text-transform:uppercase;letter-spacing:.07em}
.hdemo-dots{margin-left:auto;display:flex;gap:6px}
.hdemo-dots i{width:7px;height:7px;border-radius:50%;background:color-mix(in srgb,var(--line-2) 92%,transparent);transition:background .3s var(--ease),transform .3s var(--ease),box-shadow .3s var(--ease)}
.hdemo-dots i.done{background:color-mix(in srgb,var(--accent) 55%,transparent)}
.hdemo-dots i.on{background:var(--accent);transform:scale(1.25);box-shadow:0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}

/* visual stage */
.hdemo-stage{position:relative;height:clamp(200px,28vh,272px);border-radius:var(--radius-md);overflow:hidden}
.hdemo-stage img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity .55s var(--ease)}
.hdemo.is-idle .hdemo-mascot{opacity:1}
.hdemo:not(.is-idle) .hdemo-shot.on{opacity:1}
.hdemo-stamp{
  position:absolute;left:6px;bottom:6px;
  padding:5px 13px;border-radius:var(--radius);
  font-family:var(--display);font-size:21px;font-weight:800;letter-spacing:.04em;color:#fff;background:var(--humo);
  box-shadow:0 12px 30px -8px color-mix(in srgb,var(--humo) 60%,transparent);
  opacity:0;transform:translateY(8px) rotate(-3deg);transition:opacity .4s var(--ease),transform .45s var(--ease-spring);
}
.hdemo.at-verdict .hdemo-stamp{opacity:1;transform:rotate(-3deg)}

/* caption — crossfade, height reserved so nothing jumps */
.hdemo-caps{position:relative;display:grid;min-height:40px}
.hdemo-cap{grid-area:1/1;margin:0;color:var(--ink-2);font-size:13.5px;line-height:1.5;opacity:0;transform:translateY(4px);transition:opacity .4s var(--ease),transform .4s var(--ease)}
.hdemo:not(.is-idle) .hdemo-cap.on{opacity:1;transform:none}

/* controls */
.hdemo-foot{display:flex;flex-wrap:wrap;gap:10px}
.hdemo-play{min-height:46px}
.hdemo-play svg{width:13px;height:13px}
.hdemo-play:hover svg{transform:scale(1.12)}
.hdemo-cta,.hdemo-replay{display:none}
.hdemo.is-done .hdemo-play{display:none}
.hdemo.is-done .hdemo-cta,.hdemo.is-done .hdemo-replay{display:inline-flex}
.hdemo-cta{flex:1 1 auto}
.hdemo-replay svg{width:15px;height:15px}

/* light theme card */
[data-theme="light"] .hdemo{
  background:linear-gradient(180deg,rgba(255,255,255,.94),rgba(244,247,246,.86));
  box-shadow:0 26px 70px -34px rgba(13,18,15,.22),inset 0 1px 0 rgba(255,255,255,.92);
  border-color:color-mix(in srgb,var(--line-2) 62%,transparent);
}
[data-theme="light"] .hdemo-top{background:color-mix(in srgb,var(--surface-2) 60%,transparent)}

@media (prefers-reduced-motion:reduce){
  .hdemo-bar,.hdemo-stage img,.hdemo-cap,.hdemo-stamp,.hdemo-dots i,.hdemo-live i{transition:none;animation:none}
}
/* stack on smaller screens — card is self-contained so the visual still shows */
@media (max-width:980px){
  #landing-view .hero-grid{grid-template-columns:1fr!important;gap:24px!important;padding:0 20px!important}
  #landing-view .hero-copy{max-width:none}
  .hdemo{max-width:540px}
}
@media (max-width:560px){
  .hdemo-stage{height:clamp(176px,42vw,236px)}
  .hdemo-foot .btn{flex:1 1 100%;justify-content:center}
}

/* ============================================================================
   Hero — live edge-audit animation (markup in index.html, logic in hero-anim.js)
   ============================================================================ */
.tvhero{
  position:relative;
  min-height:calc(100vh - var(--nav-h));
  display:flex;
  align-items:flex-start;
  overflow:hidden;
  isolation:isolate;
  border-bottom:1px solid color-mix(in srgb,var(--line-2) 36%,transparent);
  background:transparent;
  font-family:var(--font);
  color:var(--ink);
}
/* visual layer — full-bleed behind copy on desktop */
.tvhero-stage{position:absolute;inset:0;z-index:0}
.tvhero-canvas{position:absolute;inset:0;width:100%;height:100%;z-index:0}
.tvhero-grid{
  position:absolute;inset:0;z-index:0;pointer-events:none;opacity:.2;
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--line-2) 42%,transparent) 1px,transparent 1px),
    linear-gradient(180deg,color-mix(in srgb,var(--line-2) 42%,transparent) 1px,transparent 1px);
  background-size:60px 60px;
  -webkit-mask-image:radial-gradient(120% 100% at 78% 34%,#000,transparent 72%);
  mask-image:radial-gradient(120% 100% at 78% 34%,#000,transparent 72%);
}
.tvhero-fade{position:absolute;pointer-events:none;z-index:1}
.tvhero-fade-l{inset:0;background:linear-gradient(90deg,
  color-mix(in srgb,var(--bg) 95%,transparent) 0%,
  color-mix(in srgb,var(--bg) 80%,transparent) 26%,transparent 50%)}
.tvhero-fade-t{left:0;right:0;top:0;height:120px;
  background:linear-gradient(180deg,color-mix(in srgb,var(--bg) 85%,transparent),transparent)}
.tvhero-fade-b{left:0;right:0;bottom:0;height:140px;
  background:linear-gradient(0deg,color-mix(in srgb,var(--bg) 85%,transparent),transparent)}

.tvhero-overlay{position:absolute;inset:0;z-index:3;pointer-events:none}

.tvhero-dot{width:7px;height:7px;border-radius:50%;background:var(--accent);animation:tvpulse 1.9s cubic-bezier(.22,.61,.36,1) infinite}
@keyframes tvpulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)}
  70%{box-shadow:0 0 0 7px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}

/* headline / copy */
.tvhero .wrap{position:relative;z-index:5;padding-top:clamp(40px,8vh,104px)}
.tvhero-head{max-width:min(40vw,500px)}
.tvhero-eyebrow{
  display:inline-flex;align-items:center;gap:8px;margin-bottom:22px;
  font:700 11px/1 var(--mono);
  letter-spacing:.18em;text-transform:uppercase;color:var(--accent);
}
.tvhero-head h1{
  margin:0 0 22px;
  font-family:var(--display);font-weight:700;
  font-size:clamp(40px,4.6vw,66px);line-height:1.02;letter-spacing:-.02em;
}
.tvhero-head h1 span{display:inline}
.tvhero-head h1 em{font-style:normal;color:var(--accent)}
.tvhero-lead{
  margin:0 0 30px;font-size:17px;line-height:1.62;color:var(--ink-2);max-width:34ch;
}
.tvhero-actions{display:flex;flex-wrap:wrap;gap:12px;align-items:center}
.tvhero-primary{
  display:inline-flex;align-items:center;gap:9px;padding:14px 24px;border-radius:var(--radius);
  background:var(--accent);color:#fff;
  font:700 14px var(--font);text-decoration:none;border:none;
  box-shadow:0 4px 14px -10px color-mix(in srgb,var(--accent) 40%,transparent);
  transition:filter .2s,transform .2s;
}
.tvhero-primary:hover{filter:brightness(1.06);transform:translateY(-1px)}
.tvhero-ghost{
  display:inline-flex;align-items:center;padding:14px 20px;border-radius:var(--radius);
  border:1px solid color-mix(in srgb,var(--line-2) 70%,transparent);
  background:color-mix(in srgb,var(--surface) 50%,transparent);
  color:var(--ink-2);font:600 14px var(--font);text-decoration:none;
  transition:border-color .2s,color .2s;
}
.tvhero-ghost:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line-2));color:var(--ink)}
.tvhero-foot{
  margin-top:24px;display:flex;align-items:center;flex-wrap:wrap;gap:10px;
  font:600 11.5px var(--mono);color:var(--ink-3);
}
.tvhero-sep{opacity:.5}
.tvhero-replay{
  display:inline-flex;align-items:center;gap:6px;margin-left:4px;padding:6px 11px;border-radius:var(--radius-sm);
  border:1px solid color-mix(in srgb,var(--line-2) 70%,transparent);
  background:color-mix(in srgb,var(--surface) 60%,transparent);
  color:var(--ink-2);font:600 11px var(--mono);letter-spacing:.03em;
  cursor:pointer;transition:border-color .2s,color .2s;
}
.tvhero-replay:hover{border-color:color-mix(in srgb,var(--accent) 50%,var(--line-2));color:var(--ink)}

/* injected overlay nodes (positioned by hero-anim.js) */
.tvh-net{position:absolute;display:flex;align-items:baseline;gap:7px;opacity:0;will-change:transform,opacity}
.tvh-net-l{font:700 9px var(--mono);letter-spacing:.16em;color:color-mix(in srgb,var(--ink-2) 80%,var(--accent))}
.tvh-net-v{font:800 22px var(--mono)}
.tvh-mascot{position:absolute;height:auto;opacity:0;transform-origin:50% 84%}
.tvh-verdict{position:absolute;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center;opacity:0;will-change:transform,opacity}
.tvh-word{padding:6px 26px;border:2px solid var(--accent);border-radius:var(--radius-md);
  font:700 clamp(38px,4.6vw,58px) var(--display);letter-spacing:.04em}
.tvh-sub{font:500 13.5px var(--mono);letter-spacing:.02em;color:color-mix(in srgb,var(--ink-2) 90%,transparent);max-width:300px;line-height:1.55}

/* ---- mobile: stack copy on top, animation in its own banded panel below ---- */
@media (max-width:820px){
  .tvhero{
    flex-direction:column;
    align-items:stretch;
    min-height:auto;
    padding:58px 0 0;
  }
  .tvhero-head{max-width:none;width:auto}
  .tvhero-head h1{font-size:clamp(36px,9vw,52px)}
  .tvhero-lead{max-width:none}
  .tvhero .wrap{order:1;padding-top:0}
  /* the visual layer leaves full-bleed and becomes a contained panel under the copy */
  .tvhero-stage{
    order:2;
    position:relative;
    inset:auto;
    width:100%;
    /* width-based height: vertical scroll / address-bar toggles must NOT resize
       the canvas (that churned the backing store and stuttered the animation) */
    height:clamp(300px,58vw,430px);
    margin-top:26px;
    border-top:1px solid color-mix(in srgb,var(--line-2) 32%,transparent);
  }
  /* text no longer sits over the chart, so the left wipe isn't needed */
  .tvhero-fade-l{display:none}
  .tvhero-fade-t{height:52px}
  .tvhero-fade-b{height:60px}
  .tvhero-grid{mask-image:radial-gradient(120% 100% at 60% 50%,#000,transparent 78%);
    -webkit-mask-image:radial-gradient(120% 100% at 60% 50%,#000,transparent 78%)}
  /* verdict sits over the chart on mobile — give it a backdrop so the text stays
     legible, center it, and keep it clear of the mascot/line */
  .tvh-verdict{
    left:50% !important;
    top:46% !important;
    gap:10px;
    padding:16px 22px;
    max-width:min(88vw,360px);
    border-radius:var(--radius-lg);
    background:color-mix(in srgb,var(--bg) 90%,transparent);
    -webkit-backdrop-filter:blur(9px) saturate(120%);
    backdrop-filter:blur(9px) saturate(120%);
    box-shadow:0 6px 18px rgba(0,0,0,.28),inset 0 0 0 1px color-mix(in srgb,var(--line-2) 36%,transparent);
  }
  .tvh-word{font-size:clamp(30px,8.6vw,42px);padding:5px 18px}
  .tvh-sub{font-size:12px;max-width:none}
  /* the live NET readout is small and overlaps the head on a narrow band — drop it */
  .tvh-net{display:none !important}
}
@media (max-width:560px){
  .tvhero-primary,.tvhero-ghost{flex:1 1 100%;justify-content:center}
  .tvhero-stage{height:clamp(280px,52vw,360px)}
}
@media (prefers-reduced-motion: reduce){
  .tvhero-dot{animation:none}
}

/* ============================================================================
   #methods reworked — anatomy of one real edge vs one overfit edge
   ============================================================================ */
.edgex-section .section-head{max-width:760px}
.edgex-lead{margin-top:14px}
.edgex-card{
  position:relative;margin-top:22px;padding:clamp(20px,3vw,34px);
  border:1.5px solid var(--line);border-radius:var(--radius-xl);overflow:hidden;
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 60%,transparent),color-mix(in srgb,var(--bg) 60%,transparent));
}
/* verdict read by a full tone border + a soft top wash — not a single-side bar */
.edgex-real{
  border-color:color-mix(in srgb,var(--real) 42%,var(--line));
  background:
    radial-gradient(120% 44% at 50% 0%,color-mix(in srgb,var(--real) 9%,transparent),transparent 60%),
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 60%,transparent),color-mix(in srgb,var(--bg) 60%,transparent));
}
.edgex-fake{
  border-color:color-mix(in srgb,var(--humo) 36%,var(--line));
  background:
    radial-gradient(120% 44% at 50% 0%,color-mix(in srgb,var(--humo) 7%,transparent),transparent 60%),
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 60%,transparent),color-mix(in srgb,var(--bg) 60%,transparent));
}

.edgex-head{margin-bottom:20px}
.edgex-tags{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:12px}
.edgex-live,.edgex-dead,.edgex-audit{
  font:800 .62rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;
  display:inline-flex;align-items:center;gap:7px;
}
.edgex-live{color:var(--real)}
.edgex-dead{color:var(--ink-3)}
.edgex-audit{color:var(--real)}
.edgex-audit::before{content:"✓";font:800 .78rem/1 var(--mono);color:var(--real)}
.edgex-live::before{content:"";width:7px;height:7px;border-radius:50%;background:var(--real);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--real) 60%,transparent);animation:tvpulse 1.9s var(--ease-out) infinite}
.edgex-head h3{margin:0 0 10px;font-size:clamp(1.2rem,2.4vw,1.6rem);line-height:1.15;color:var(--ink)}
.edgex-mech{margin:0;max-width:72ch;color:var(--ink-2);font-size:.95rem;line-height:1.6}

/* metric tiles */
.edgex-metrics{
  display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:4px 0 22px;
}
.edgex-metric{
  padding:12px 14px;border:1px solid var(--line);border-radius:var(--radius-md);
  background:color-mix(in srgb,var(--bg) 40%,transparent);
  display:flex;flex-direction:column;gap:6px;
}
.edgex-metric span{font:800 .6rem/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.edgex-metric b{font:800 1.32rem/1 var(--mono);color:var(--ink)}
.edgex-metric.hl b{color:var(--accent)}
.edgex-metric.up b{color:var(--real)}
.edgex-metric.down b{color:var(--humo)}

/* reasons */
.edgex-why{margin-top:8px}
.edgex-why h4{margin:0 0 14px;font-size:1rem;color:var(--ink);letter-spacing:.01em}
.edgex-reasons{margin:0;padding:0;list-style:none;display:grid;gap:14px;counter-reset:edgex}
.edgex-reasons li{
  position:relative;padding-left:42px;counter-increment:edgex;
}
.edgex-reasons li::before{
  content:counter(edgex);position:absolute;left:0;top:0;
  width:28px;height:28px;border-radius:var(--radius);display:grid;place-items:center;
  font:800 .85rem/1 var(--mono);
  color:var(--accent-deep);background:color-mix(in srgb,var(--accent) 88%,transparent);
}
.edgex-fake .edgex-reasons li::before{color:#fff;background:color-mix(in srgb,var(--humo) 86%,transparent)}
.edgex-reasons b{display:block;color:var(--ink);font-size:.96rem;margin-bottom:3px}
.edgex-reasons span{display:block;color:var(--ink-2);font-size:.9rem;line-height:1.58;max-width:78ch}

/* frequency trap */
.edgex-trap{
  margin-top:24px;padding:18px;border:1px dashed color-mix(in srgb,var(--line-2) 70%,transparent);
  border-radius:var(--radius-lg);background:color-mix(in srgb,var(--bg) 30%,transparent);
}
.edgex-trap h4{margin:0 0 6px;font-size:1rem;color:var(--ink)}
.edgex-trap-lead{margin:0 0 16px;color:var(--ink-2);font-size:.9rem;line-height:1.55}
.edgex-vs{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:14px}
.edgex-vs-col{padding:14px 16px;border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 50%,transparent)}
.edgex-vs-col.bad{border-color:color-mix(in srgb,var(--humo) 30%,var(--line))}
.edgex-vs-col.good{border-color:color-mix(in srgb,var(--real) 38%,var(--line))}
.edgex-vs-tag{display:inline-block;margin-bottom:10px;font:800 .62rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase}
.edgex-vs-col.bad .edgex-vs-tag{color:var(--humo)}
.edgex-vs-col.good .edgex-vs-tag{color:var(--real)}
.edgex-vs-col ul{margin:0 0 10px;padding:0;list-style:none;display:grid;gap:7px}
.edgex-vs-col li{display:flex;align-items:baseline;justify-content:space-between;gap:12px;border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);padding-bottom:6px}
.edgex-vs-col li:last-child{border-bottom:0;padding-bottom:0}
.edgex-vs-col em{font:800 .6rem/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--ink-3);font-style:normal}
.edgex-vs-col li b{font:800 1.05rem/1 var(--mono);color:var(--ink)}
.edgex-vs-col li b.up{color:var(--real)}
.edgex-vs-col li b.down{color:var(--humo)}
.edgex-vs-col>p{margin:0;color:var(--ink-2);font-size:.82rem;line-height:1.5}
.edgex-vs-sep{font:800 .8rem/1 var(--mono);color:var(--ink-3);text-transform:uppercase}
.edgex-trap-note{margin:14px 0 0;color:var(--ink);font-size:.9rem;line-height:1.55;font-weight:600}

/* cross-market proof strip (3 held-out indices, same rules) */
.edgex-markets{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.edgex-mkt{
  display:flex;flex-direction:column;gap:5px;padding:14px 16px;
  border:1px solid color-mix(in srgb,var(--real) 24%,var(--line));
  border-radius:var(--radius-md);background:color-mix(in srgb,var(--real) 5%,transparent);
}
.edgex-mkt-name{font:800 .62rem/1.2 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.edgex-mkt b{font:800 1.35rem/1 var(--mono);color:var(--ink)}
.edgex-mkt b.up{color:var(--real)}
.edgex-mkt em{font:600 .74rem/1.3 var(--mono);font-style:normal;color:var(--ink-2)}

/* decay bars (overfit) */
.edgex-decay{display:grid;gap:9px;margin:4px 0 22px}
.edgex-decay-row{display:grid;grid-template-columns:minmax(150px,230px) 1fr 46px;align-items:center;gap:12px}
.edgex-decay-lab{font:700 .76rem/1.2 var(--mono);color:var(--ink-2)}
.edgex-bar{height:14px;border-radius:var(--radius-sm);width:var(--w);min-width:6px;
  background:color-mix(in srgb,var(--ink-3) 50%,transparent)}
.edgex-bar.ok{background:linear-gradient(90deg,color-mix(in srgb,var(--real) 70%,transparent),var(--real))}
.edgex-bar.warn{background:linear-gradient(90deg,color-mix(in srgb,var(--marginal) 60%,transparent),var(--marginal))}
.edgex-bar.bad{background:linear-gradient(90deg,color-mix(in srgb,var(--humo) 55%,transparent),var(--humo))}
.edgex-bar.dead{background:var(--humo);opacity:.85}
.edgex-decay-row>b{font:800 .9rem/1 var(--mono);color:var(--ink);text-align:right}

/* footer */
.edgex-foot{
  margin-top:24px;padding-top:20px;border-top:1px solid var(--line);
  display:flex;align-items:center;justify-content:space-between;gap:18px;flex-wrap:wrap;
}
.edgex-foot>p{margin:0;max-width:54ch;color:var(--ink-2);font-size:.9rem;line-height:1.55}
.edgex-foot-actions{display:flex;gap:10px;flex-wrap:wrap}

@media (max-width:760px){
  .edgex-metrics{grid-template-columns:repeat(2,1fr)}
  .edgex-markets{grid-template-columns:1fr}
  .edgex-vs{grid-template-columns:1fr;gap:10px}
  .edgex-vs-sep{justify-self:center}
  .edgex-decay-row{grid-template-columns:1fr 40px;grid-template-areas:"lab val" "bar bar"}
  .edgex-decay-lab{grid-area:lab}
  .edgex-decay-row>b{grid-area:val}
  .edgex-bar{grid-area:bar}
  .edgex-foot{flex-direction:column;align-items:flex-start}
}

/* ============================================================================
   Proof bar (#3), methodology depth (#1), credibility strip (#6), FAQ (#5)
   ============================================================================ */
/* --- proof bar: bold stats band under the hero (numbers count up on scroll) --- */
.proofbar{
  border-top:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));
  border-bottom:1px solid var(--line);
  background:
    radial-gradient(120% 200% at 50% -60%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 62%),
    color-mix(in srgb,var(--surface) 58%,transparent);
}
.proofbar-row{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;padding-top:30px;padding-bottom:30px}
.proofbar-stat{display:flex;flex-direction:column;gap:8px;text-align:center;align-items:center;justify-content:flex-start;padding:0 10px}
.proofbar-stat + .proofbar-stat{border-left:1px solid color-mix(in srgb,var(--line) 80%,transparent)}
.proofbar-stat b{
  font:900 clamp(2.4rem,6.2vw,4rem)/.95 var(--mono);
  color:var(--accent);letter-spacing:-.02em;font-variant-numeric:tabular-nums;
}
.proofbar-stat span{
  font-size:.72rem;font-weight:800;text-transform:uppercase;letter-spacing:.07em;
  color:var(--ink-2);line-height:1.3;max-width:20ch;
}
@media (max-width:700px){
  .proofbar-row{grid-template-columns:repeat(2,1fr);gap:26px 12px}
  .proofbar-stat:nth-child(odd){border-left:0}
  .proofbar-stat b{font-size:clamp(2.4rem,13vw,3.2rem)}
}

/* --- FAQ accordion --- */
.faq-list{max-width:820px;margin:26px auto 0;display:grid;gap:10px}
.faq-item{border:1px solid var(--line);border-radius:var(--radius-md);background:color-mix(in srgb,var(--surface) 40%,transparent);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;padding:16px 18px;font-weight:650;color:var(--ink);
  display:flex;align-items:center;justify-content:space-between;gap:14px}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary::after{content:"+";font:700 1.25rem/1 var(--mono);color:var(--accent);flex:none}
.faq-item[open] summary::after{content:"–"}
.faq-item summary:hover{color:var(--accent)}
.faq-a{padding:0 18px 16px}
.faq-a p{margin:0;color:var(--ink-2);line-height:1.62;max-width:78ch}

/* ============================================================================
   CONSOLIDATION LAYER (v242) — hero platforms + GROSS tag, product showcase
   mockups, compare table, pro footer.
   ============================================================================ */

/* --- hero: supported-platforms strip under the CTAs --- */
.tvhero-platforms{display:flex;align-items:center;gap:9px;margin-top:20px;flex-wrap:wrap}
.tvhero-platforms .platform-pill{opacity:.78;transition:opacity .2s var(--ease),transform .2s var(--ease)}
.tvhero-platforms .platform-pill:hover{opacity:1;transform:translateY(-1px)}
.tvp-txt{font:700 .64rem/1.5 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);margin-left:4px}

/* --- hero: GROSS tag riding the dashed reference line (pairs with .tvh-net) --- */
.tvh-gross{
  position:absolute;opacity:0;will-change:transform,opacity;white-space:nowrap;
  font:700 9.5px var(--mono);letter-spacing:.14em;
  color:var(--ink-3);padding:4px 7px;border-radius:var(--radius-sm);
  border:1px dashed color-mix(in srgb,var(--ink-3) 42%,transparent);
  background:color-mix(in srgb,var(--bg) 42%,transparent);
}
@media (max-width:820px){.tvh-gross{display:none !important}}

/* --- product showcase: window-chrome mockups on the path cards --- */
.path-lead{margin-top:10px}
.path-grid{align-items:stretch}
.path-card{padding:0;gap:0;overflow:hidden}
.path-body{padding:18px 22px 22px;display:flex;flex-direction:column;gap:10px;flex:1}
.path-card h3{font-size:1.16rem}
.path-kicker{display:flex;align-items:center;gap:9px}
.path-kicker b{
  font:800 .64rem/1 var(--mono);letter-spacing:.1em;color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);border-radius:var(--radius-pill);
  padding:5px 8px;background:color-mix(in srgb,var(--accent) 8%,transparent);
}
.path-kicker em{font:700 .64rem/1 var(--mono);font-style:normal;letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3)}
.path-feats{list-style:none;margin:2px 0 8px;padding:0;display:flex;flex-direction:column;gap:7px}
.path-feats li{position:relative;padding-left:17px;font-size:.82rem;color:var(--ink-2);line-height:1.5}
.path-feats li::before{
  content:"";position:absolute;left:1px;top:.5em;width:7px;height:7px;border-radius:2px;
  background:color-mix(in srgb,var(--accent) 72%,transparent);
}
.path-visual{
  position:relative;border-bottom:1px solid var(--line);
  background:
    linear-gradient(color-mix(in srgb,var(--line) 42%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--line) 42%,transparent) 1px,transparent 1px),
    color-mix(in srgb,var(--bg) 74%,transparent);
  background-size:34px 34px;
}
.path-visual p{flex:0 0 auto}
.pv-bar{display:flex;align-items:center;gap:5px;padding:10px 13px;border-bottom:1px solid color-mix(in srgb,var(--line) 82%,transparent)}
.pv-bar i{width:8px;height:8px;border-radius:50%;background:color-mix(in srgb,var(--ink-3) 32%,transparent)}
.pv-bar-t{margin-left:auto;font:700 .58rem/1 var(--mono);letter-spacing:.14em;color:var(--ink-3)}
.pv-body{padding:13px 14px 14px;display:flex;flex-direction:column;gap:10px;min-height:212px}

/* ═══ unified mockup skeleton — every tool reads the same way:
   window bar (static live dot) → input chip → screen → outcome. No looping
   motion inside the card; the only animation is the cursor-tilt on hover
   (fx.js). Only the screen's inner visual and the outcome differ per tool. ═══ */
.pv-bar .pv-live{
  width:7px;height:7px;border-radius:50%;background:var(--accent);flex:none;margin-left:auto;
  box-shadow:0 0 8px color-mix(in srgb,var(--accent) 45%,transparent);
}
.pv-bar-t{font:700 .58rem/1 var(--mono);letter-spacing:.14em;color:var(--ink-3)}
/* zone 1 — input chip */
.pv-src{
  display:flex;align-items:center;gap:8px;padding:8px 10px;flex:none;min-width:0;
  border:1px solid var(--line);border-radius:var(--radius);
  background:color-mix(in srgb,var(--surface-2) 66%,transparent);
}
.pv-src-ic{
  width:19px;height:19px;flex:none;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line-2));border-radius:var(--radius-sm);
  background:color-mix(in srgb,var(--accent) 10%,transparent);
}
.pv-src-ic svg{width:11px;height:11px}
.pv-src-t{font:600 .66rem/1.1 var(--mono);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;min-width:0}
/* zone 2 — screen (holds the tool's visual) */
.pv-screen{
  position:relative;flex:1;min-height:66px;overflow:hidden;
  border:1px solid var(--line);border-radius:var(--radius);
  background:color-mix(in srgb,var(--bg) 66%,transparent);
}
.pv-screen>svg{position:absolute;inset:0;width:100%;height:100%;display:block}
.pv-area{fill:color-mix(in srgb,var(--real) 13%,transparent)}
.pv-lab{position:absolute;z-index:3;font:700 .52rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;padding:3px 6px;border-radius:var(--radius-sm)}
.pv-lab.tl{top:9px;left:10px}.pv-lab.tr{top:9px;right:10px}.pv-lab.bl{left:10px;bottom:9px}.pv-lab.br{right:10px;bottom:9px}
.pv-lab.muted{color:var(--ink-3);background:color-mix(in srgb,var(--surface) 88%,var(--bg))}
.pv-lab.bad{color:var(--humo);background:color-mix(in srgb,var(--humo) 16%,var(--surface))}
.pv-lab.good{color:var(--real);background:color-mix(in srgb,var(--real) 16%,var(--surface))}
/* zone 3 — outcome */
.pv-out{display:flex;align-items:center;gap:10px;flex:none;min-height:34px}
.pv-tag{font:800 .74rem/1 var(--mono);letter-spacing:.04em;flex:none;border-radius:var(--radius-sm);padding:7px 10px}
.pv-tag.smoke{color:var(--humo);border:1px solid color-mix(in srgb,var(--humo) 42%,transparent);background:color-mix(in srgb,var(--humo) 12%,transparent)}
.pv-cap{font-size:.72rem;color:var(--ink-2);font-weight:600;min-width:0}
/* trainer-only: hidden-future overlay + the 3-choice action row (its outcome) */
.pvt-hidden{
  position:absolute;top:0;right:0;bottom:0;width:34%;z-index:3;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;
  background:repeating-linear-gradient(-45deg,color-mix(in srgb,var(--ink-3) 11%,transparent) 0 6px,transparent 6px 12px);
  border-left:1px dashed color-mix(in srgb,var(--ink-3) 44%,transparent);
  backdrop-filter:blur(2.5px);-webkit-backdrop-filter:blur(2.5px);
}
.pvt-hidden b{font:800 1.1rem/1 var(--mono);color:var(--ink-2)}
.pvt-hidden span{font:700 .5rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);text-align:center}
.pvt-btns{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;flex:none}
.pvt-btns span{text-align:center;font:800 .66rem/1 var(--mono);letter-spacing:.05em;padding:10px 4px;border-radius:var(--radius);border:1px solid;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.pvt-buy{color:var(--real);border-color:color-mix(in srgb,var(--real) 46%,transparent);background:color-mix(in srgb,var(--real) 10%,transparent)}
.pvt-sell{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 46%,transparent);background:color-mix(in srgb,var(--humo) 9%,transparent)}
.pvt-pass{color:var(--ink-2);border-color:var(--line-2);background:color-mix(in srgb,var(--surface-2) 58%,transparent)}
@media (max-width:1080px){
  .path-grid{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto}
  .pv-body{min-height:0}
}

/* --- compare: faith vs DIY vs the battery --- */
.compare-section .section-head .lead{max-width:60ch}
/* align-items:start lets the winner be legitimately taller (it carries a CTA) while the
   five comparison rows line up across all three columns — start; do not stretch */
.compare-grid{display:grid;grid-template-columns:1fr 1fr 1.12fr;gap:16px;margin-top:28px;align-items:start}
.compare-col{
  position:relative;display:flex;flex-direction:column;overflow:hidden;
  border:1.5px solid var(--line);
  border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 52%,transparent);
  transition:transform .28s var(--ease),border-color .28s var(--ease);
}
/* each column is read by its full tone-coloured border — no top bar, no shadow */
.compare-col.cmp-lo{border-color:color-mix(in srgb,var(--humo) 38%,var(--line))}
.compare-col.cmp-mid{border-color:color-mix(in srgb,var(--marginal) 38%,var(--line))}
.compare-col:hover{transform:translateY(-4px)}
.compare-col.cmp-lo:hover{border-color:color-mix(in srgb,var(--humo) 60%,var(--line))}
.compare-col.cmp-mid:hover{border-color:color-mix(in srgb,var(--marginal) 60%,var(--line))}
/* the winner: taller at rest, framed by a strong accent border + an accent-tinted wash (no glow) */
.compare-col.cmp-hi{
  transform:translateY(-8px);
  border-color:color-mix(in srgb,var(--accent) 72%,var(--line));
  background:
    radial-gradient(130% 56% at 50% 0%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 62%),
    color-mix(in srgb,var(--surface) 60%,transparent);
}
.compare-col.cmp-hi:hover{transform:translateY(-12px);border-color:var(--accent)}
/* "Recommended" badge — .compare-col clips overflow (for the bg/top-bar radius), so this stays inside the card */
.cmp-badge{
  position:absolute;top:14px;right:14px;z-index:2;
  font:700 .56rem/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;
  color:#fff;background:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);
  padding:6px 10px;border-radius:var(--radius-pill);
}
.cmp-head{padding:18px 18px 15px;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:6px}
.cmp-head h3{display:flex;align-items:center;gap:9px;margin:0;font-size:1.05rem;color:var(--ink);font-family:var(--display);font-weight:600}
/* the losing/mid options recede a touch so the eye settles on the winner */
.compare-col.cmp-lo .cmp-head h3,.compare-col.cmp-mid .cmp-head h3{color:color-mix(in srgb,var(--ink) 82%,var(--ink-3))}
.cmp-head h3::before{content:"";width:9px;height:9px;border-radius:50%;background:var(--ink-3);flex:0 0 auto}
.compare-col.cmp-lo .cmp-head h3::before{background:var(--humo);box-shadow:0 0 10px color-mix(in srgb,var(--humo) 55%,transparent)}
.compare-col.cmp-mid .cmp-head h3::before{background:var(--marginal);box-shadow:0 0 10px color-mix(in srgb,var(--marginal) 50%,transparent)}
.compare-col.cmp-hi .cmp-head h3::before{background:var(--accent);box-shadow:0 0 10px color-mix(in srgb,var(--accent) 55%,transparent)}
.compare-col.cmp-hi .cmp-head h3{color:var(--accent)}
.cmp-head span{font:700 .62rem/1.4 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);padding-left:18px}
.compare-col ul{list-style:none;margin:0;padding:6px 0 0;display:flex;flex-direction:column;flex:1}
.compare-col li{display:grid;grid-template-columns:20px 1fr;grid-template-rows:auto auto;align-items:center;column-gap:11px;row-gap:2px;padding:13px 18px;transition:background .16s var(--ease)}
.compare-col li:not(.cmp-cost):hover{background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.compare-col li + li{border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
/* status chip — spans both text rows, vertically centred */
.compare-col li::before{
  content:"—";grid-column:1;grid-row:1 / 3;align-self:center;
  width:20px;height:20px;border-radius:50%;display:grid;place-items:center;
  font:800 .72rem/1 var(--mono);
  background:color-mix(in srgb,var(--ink-3) 16%,transparent);color:var(--ink-3);
}
.compare-col li.no::before{content:"✕";background:color-mix(in srgb,var(--humo) 15%,transparent);color:var(--humo)}
.compare-col li.mid::before{content:"~";background:color-mix(in srgb,var(--marginal) 15%,transparent);color:var(--marginal)}
.compare-col li.yes::before{content:"✓";background:color-mix(in srgb,var(--real) 16%,transparent);color:var(--real)}
.compare-col li em{grid-column:2;grid-row:1;font:700 .58rem/1.2 var(--mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.compare-col li span{grid-column:2;grid-row:2;font-size:.88rem;color:var(--ink-2);line-height:1.45}
.compare-col li.yes span{color:var(--ink)}
/* the payoff row — flows right after the 4 test rows so it stays aligned across columns */
.compare-col li.cmp-cost{background:color-mix(in srgb,var(--bg) 42%,transparent);border-top:1px solid color-mix(in srgb,var(--line-2) 60%,var(--line))}
.compare-col li.cmp-cost em{color:var(--ink-2)}
.compare-col li.cmp-cost span{font-weight:700;font-size:.92rem}
.compare-col.cmp-hi li.cmp-cost{background:color-mix(in srgb,var(--accent) 9%,transparent);border-top-color:color-mix(in srgb,var(--accent) 42%,var(--line))}
.compare-col.cmp-hi li.cmp-cost span{color:var(--accent);font-size:1.05rem;font-weight:800}
/* closing CTA in the winning column — the decision has a next step right here */
/* flat CTA to match the shadow-free cards — solid fill, no drop shadow */
.cmp-cta,.cmp-cta:hover{margin:14px 18px 18px;justify-content:center;font-size:.86rem;min-height:42px;box-shadow:none}
@media (max-width:940px){
  .compare-grid{grid-template-columns:1fr;max-width:560px;margin-left:auto;margin-right:auto}
  .compare-col.cmp-hi{order:-1;transform:none;margin-top:8px}
  .compare-col:hover,.compare-col.cmp-hi:hover{transform:none}
}

/* --- footer: brand + link columns + legal --- */
footer{padding:52px 0 30px}
.foot-main{display:grid;grid-template-columns:minmax(240px,1.1fr) 2fr;gap:38px;padding-bottom:30px}
.foot-brand{display:flex;flex-direction:column;gap:13px;align-items:flex-start}
.foot-tag{margin:0;color:var(--ink-2);font-size:.87rem;line-height:1.6;max-width:36ch}
.foot-verdicts{display:flex;gap:7px}
.foot-verdicts .tag{
  font:800 .62rem/1 var(--mono);letter-spacing:.06em;border:1px solid var(--line);
  border-radius:var(--radius-sm);padding:5px 7px;background:color-mix(in srgb,var(--surface-2) 55%,transparent);
}
.foot-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.foot-col{display:flex;flex-direction:column;gap:10px;align-items:flex-start}
.foot-col b{font:700 .62rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:3px}
.foot-col a{color:var(--ink-2);font-size:.86rem;line-height:1.4;transition:color .16s var(--ease)}
.foot-col a:hover{color:var(--accent)}
.foot-legal{
  display:flex;align-items:baseline;justify-content:space-between;gap:18px;flex-wrap:wrap;
  border-top:1px solid var(--line);padding-top:20px;color:var(--ink-3);font-size:12px;
}
.foot-legal p{margin:0;max-width:80ch;line-height:1.6}
.foot-copy{font:700 .66rem/1 var(--mono);letter-spacing:.08em;white-space:nowrap}
@media (max-width:860px){
  .foot-main{grid-template-columns:1fr;gap:28px}
  .foot-cols{grid-template-columns:repeat(2,minmax(140px,1fr));gap:22px 16px}
}

/* --- story crossfade: outgoing leaves fast, incoming lands after --- */
@media (min-width:1081px){
  #landing-view #story .story-step{
    transition:opacity .12s var(--ease),transform .4s var(--ease),filter .26s var(--ease);
  }
  #landing-view #story .story-step.active{
    transition:opacity .3s var(--ease) .08s,transform .44s var(--ease) .06s,filter .26s var(--ease) .06s;
  }
}

/* ============================================================================
   VISUAL-FIRST LAYER (v243) — collapsed edge-showcase analysis, less text.
   ============================================================================ */

/* --- edge showcase: one-line punch + collapsed point-by-point analysis --- */
.edgex-punch{margin:16px 0 0;font-weight:650;color:var(--ink);font-size:.95rem;line-height:1.55}
.edgex-more{margin-top:16px;border-top:1px solid var(--line)}
.edgex-more summary{
  list-style:none;cursor:pointer;display:flex;align-items:center;gap:10px;padding:13px 2px;
  font:700 .7rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-2);
}
.edgex-more summary::-webkit-details-marker{display:none}
.edgex-more summary::before{content:"+";font:700 1rem/1 var(--mono);color:var(--accent)}
.edgex-more[open] summary::before{content:"–"}
.edgex-more summary:hover{color:var(--accent)}

/* ============================================================================
   VISUAL POLISH LAYER (v249) — depth, glow & elevation (ui-ux-pro-max: Modern Dark)
   Additive; overrides earlier rules by cascade order. Tuned for dark + light.
   ============================================================================ */
/* richer, more cinematic ambient depth (the flat canvas gets life) */
.au-1{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 17%,transparent),transparent 70%)}
.au-2{background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 12%,transparent),transparent 70%)}
.au-3{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 12%,transparent),transparent 72%)}
[data-theme="light"] .au-1{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 13%,transparent),transparent 70%)}
[data-theme="light"] .au-2{background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 10%,transparent),transparent 70%)}
[data-theme="light"] .au-3{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 9%,transparent),transparent 72%)}

/* luminous accent inside the hero headline */
.tvhero-head h1 em{text-shadow:0 0 20px color-mix(in srgb,var(--accent) 18%,transparent)}

/* primary CTA: accent glow that lifts on hover (skill: "accent glow behind primary button") */
.tvhero-primary{
  box-shadow:0 6px 18px -10px color-mix(in srgb,var(--accent) 42%,transparent);
  transition:filter .2s var(--ease),transform .2s var(--ease),box-shadow .2s var(--ease);
}
.tvhero-primary:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 26px -10px color-mix(in srgb,var(--accent) 52%,transparent);
}

/* section cards gain an accent-tinted glow on hover */
.path-card:hover,#landing-view .price-card:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--line));
  box-shadow:var(--elev-2);
}
/* toolkit cards — IDENTICAL hover on all three. The entrance stagger
   (--fxd: 0 / .09 / .18s) was baked into the transform transition, so each card
   lifted with a different delay — that's why the hover felt different card-to-card.
   Pin ONE consistent transition once revealed, and use a uniform lift (not the
   per-cursor tilt) so every card behaves the same regardless of pointer position. */
html.fx-on .path-card.fxv{
  transform:translateY(0);   /* explicit rest value so the hover transition interpolates 0 -> -6px (Chrome won't animate from `none`) */
  transition:opacity .55s var(--ease-out),transform .28s var(--ease),
             border-color .22s var(--ease),box-shadow .28s var(--ease);
}
.path-card:hover,html.fx-on .path-card.fxv:hover{transform:translateY(-8px)}

/* the featured plan reads as "the pick" with a persistent accent halo */
#landing-view .price-card.featured{
  box-shadow:var(--elev-2),0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);
}

/* the live signal dot glows */
.tvhero-dot{box-shadow:0 0 12px color-mix(in srgb,var(--accent) 60%,transparent)}

/* --- light theme: depth from structure, not glow (keeps the clean-room white) --- */
[data-theme="light"] body{
  background:linear-gradient(180deg,var(--bg) 0%,var(--surface-2) 58%,var(--surface-3) 100%);
}
[data-theme="light"] .au-1{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 17%,transparent),transparent 66%)}
[data-theme="light"] .au-2{background:radial-gradient(circle,color-mix(in srgb,var(--accent-2) 13%,transparent),transparent 66%)}
[data-theme="light"] .au-3{background:radial-gradient(circle,color-mix(in srgb,var(--accent) 11%,transparent),transparent 68%)}
[data-theme="light"] .path-card:hover,[data-theme="light"] #landing-view .price-card:hover{
  box-shadow:0 26px 56px -30px rgba(18,40,24,.26),0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent);
}
[data-theme="light"] #landing-view .price-card.featured{
  box-shadow:0 20px 46px -32px rgba(18,40,24,.20),0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent);
}

/* --- bolder statement typography & more air (exaggerated minimalism, not effects) --- */
#landing-view .section-head h2,#landing-view .story-copy h2{
  font-size:clamp(34px,4.6vw,60px);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.0;
}
#landing-view .section-head{margin-bottom:46px}
#landing-view .cta-final h2{font-weight:800;letter-spacing:-.03em}

/* --- SOLID page background per theme, no green wash (per feedback: white/black, not green) --- */
.bg-aurora{display:none}                              /* remove the green ambient blobs */
body,[data-theme="light"] body{background:var(--bg)}  /* solid page: white in light, obsidian in dark */
.terminal-grid-bg{                                    /* neutral grid lines, no green tint */
  background:
    linear-gradient(90deg,color-mix(in srgb,var(--ink) 5%,transparent) 1px,transparent 1px),
    linear-gradient(180deg,color-mix(in srgb,var(--ink) 5%,transparent) 1px,transparent 1px);
  background-size:64px 64px;
}
#landing-view .story-section{background:var(--bg)}    /* drop the green radial glow */

/* --- toolkit cards: each tool wears its own mascot (the character that greets
   you inside that view) instead of an abstract glyph (ui-ux-pro-max: recognition
   over abstraction — the icon becomes the guide you'll actually meet) --- */
.path-kicker{gap:12px}
.path-icon{
  width:58px;height:58px;flex:none;display:grid;place-items:center;overflow:visible;
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
  border-radius:var(--radius-md);
  background:radial-gradient(122% 112% at 50% 14%,
            color-mix(in srgb,var(--accent) 17%,var(--surface-2)) 0%,
            var(--surface-2) 82%);
  transition:border-color .22s var(--ease),box-shadow .22s var(--ease);
}
.path-icon img{
  width:52px;height:52px;object-fit:contain;object-position:center bottom;
  filter:drop-shadow(0 2px 3px color-mix(in srgb,#000 34%,transparent));
  transition:transform .28s var(--ease);
}
.path-kicker b{border:none;background:none;padding:0;border-radius:0;color:var(--ink-3);font:800 .72rem/1 var(--mono);letter-spacing:.06em}
.path-kicker em{color:var(--ink-2)}
.path-card:hover .path-icon{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--line));
  box-shadow:0 6px 16px -8px color-mix(in srgb,var(--accent) 50%,transparent);
}
.path-card:hover .path-icon img{transform:scale(1.09) translateY(-2px)}

/* ============================================================================
   AUDIT CONSOLE (v255) — the analyzer reads as a focused tool: compact hero so
   the input surfaces immediately, and the input panel becomes the protagonist.
   Analyzer-specific selectors only — the shared trainer/reverse hero is untouched.
   ============================================================================ */
/* kill the forced full-viewport dead space below the intake */
body.is-analyzer .analyzer-top{min-height:auto!important;padding:16px 0 48px!important}
/* compact the idle hero band so the input is reachable at a glance */
body.is-analyzer.analyzer-idle .intake-overview{min-height:clamp(166px,18vw,224px)!important;align-items:center!important}
body.is-analyzer.analyzer-idle .analyzer-static-art{width:clamp(122px,13.5vw,170px)!important;height:clamp(146px,16vw,198px)!important}
body.is-analyzer.analyzer-idle .intake-overview h2{margin:6px 0 10px!important}
/* the input panel is the protagonist: accent-edged so the eye lands on it */
body.is-analyzer .input-console{border-color:color-mix(in srgb,var(--accent) 22%,var(--line-2))!important}

/* ============================================================================
   MOBILE NAV — hamburger + dropdown panel (<=760px)
   Desktop nav-links are hidden below 760px; this gives phones a real menu
   instead of a bare bar. Kept in its own late block so it wins the cascade
   over the layered nav rules above without touching them.
   ============================================================================ */
.nav-burger{display:none}
.mnav{display:none}
@media (max-width:760px){
  /* --- top bar: brand · theme · burger (declutter: links/CTA/lang move into the panel) --- */
  #hdr .nav-links{margin-left:auto;gap:6px}
  #hdr .nav-links>a,
  #hdr .nav-links .seg{display:none}          /* Open detector + lang seg → into the panel */
  #hdr .nav-links #theme{display:grid}         /* keep the theme toggle one tap away in the bar */

  #hdr .nav-burger{
    display:inline-flex;align-items:center;justify-content:center;
    width:44px;height:44px;flex:0 0 auto;padding:0;
    border:1px solid var(--line);border-radius:var(--radius);
    background:var(--surface-2);color:var(--ink-2);cursor:pointer;
    transition:color .18s var(--ease),border-color .18s var(--ease);
  }
  #hdr .nav-burger:hover,#hdr.nav-open .nav-burger{color:var(--ink);border-color:var(--line-2)}
  .nav-burger-box{position:relative;display:block;width:20px;height:14px}
  .nav-burger-box span{
    position:absolute;left:0;width:100%;height:2px;border-radius:2px;background:currentColor;
    transition:transform .28s var(--ease),opacity .18s var(--ease),top .28s var(--ease);
  }
  .nav-burger-box span:nth-child(1){top:0}
  .nav-burger-box span:nth-child(2){top:6px}
  .nav-burger-box span:nth-child(3){top:12px}
  #hdr.nav-open .nav-burger-box span:nth-child(1){top:6px;transform:rotate(45deg)}
  #hdr.nav-open .nav-burger-box span:nth-child(2){opacity:0}
  #hdr.nav-open .nav-burger-box span:nth-child(3){top:6px;transform:rotate(-45deg)}

  /* --- dropdown panel --- */
  #hdr .mnav{
    display:flex;flex-direction:column;gap:2px;overflow:hidden;
    max-height:0;opacity:0;visibility:hidden;padding:0 16px;
    transition:max-height .32s var(--ease),opacity .22s var(--ease),
               visibility .32s var(--ease),padding .32s var(--ease);
  }
  #hdr.nav-open .mnav{
    max-height:78vh;opacity:1;visibility:visible;
    padding:6px 16px 14px;border-top:1px solid var(--line);
  }
  #hdr .mnav-link{
    display:flex;align-items:center;min-height:50px;padding:12px;
    color:var(--ink);font-family:var(--font);font-weight:600;font-size:16px;
    border-radius:var(--radius-md);
    border-bottom:1px solid color-mix(in srgb,var(--line) 55%,transparent);
  }
  #hdr .mnav-link[data-i]::before{
    content:attr(data-i);margin-right:13px;min-width:20px;
    font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);opacity:.75;
  }
  #hdr .mnav-link:hover,#hdr .mnav-link:active{background:var(--surface-2)}
  #hdr .mnav-cta{
    justify-content:center;margin-top:10px;border-bottom:0;
    color:#fff;background:var(--accent);
    border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);
  }
  #hdr .mnav-seg{align-self:flex-start;margin-top:12px}
}

/* ============================================================
   TRADING GYM v1 — arcade drills (flat, full tone borders)
   ============================================================ */
.gym-top{padding:calc(var(--nav-h) + 44px) 0 64px}
.gym-wrap{display:flex;flex-direction:column;gap:34px}

.gym-head{display:grid;grid-template-columns:1.5fr .9fr;gap:34px;align-items:start}
.gym-head-copy h1{
  font-family:var(--display);font-weight:800;letter-spacing:-.02em;
  font-size:clamp(2rem,4.2vw,3.1rem);line-height:1.06;margin:14px 0 16px;
}
.gym-lead{color:var(--ink-2);font-size:1.02rem;line-height:1.6;max-width:56ch}

.gym-profile{
  display:flex;align-items:center;gap:18px;padding:18px 20px;
  border:1.5px solid color-mix(in srgb,var(--accent) 38%,var(--line));
  border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
}
#gym-radar{width:230px;height:210px;flex:none}
.gym-agility{display:flex;flex-direction:column;gap:4px;font-family:var(--mono)}
.gym-agility span{font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3)}
.gym-agility b{font-size:2.6rem;font-weight:900;color:var(--accent);line-height:1}
.gym-agility em{font-style:normal;font-size:11px;color:var(--ink-3)}

.gr{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.08em}
.gr-sniper{color:var(--accent)}
.gr-hunter{color:var(--accent-2)}
.gr-operator{color:var(--marginal)}
.gr-rookie{color:var(--ink-3)}

/* hub cards */
.gym-hub{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
.gym-card{
  --game-accent:var(--ink-2);
  position:relative;isolation:isolate;display:flex;flex-direction:column;gap:0;padding:0;cursor:pointer;overflow:hidden;
  border-radius:var(--radius-lg);
  border:1.5px solid var(--line);
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  box-shadow:0 16px 40px rgba(0,0,0,.2);
  transition:transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease);
}
.gym-card[data-hue="lime"]{--game-accent:var(--accent);border-color:color-mix(in srgb,var(--accent) 42%,var(--line))}
.gym-card[data-hue="cyan"]{--game-accent:var(--accent-2);border-color:color-mix(in srgb,var(--accent-2) 42%,var(--line))}
.gym-card[data-hue="amber"]{--game-accent:var(--marginal);border-color:color-mix(in srgb,var(--marginal) 42%,var(--line))}
.gym-card[data-hue="coral"]{--game-accent:var(--humo);border-color:color-mix(in srgb,var(--humo) 42%,var(--line))}
.gym-card:hover,.gym-card:focus-visible{transform:translateY(-5px);box-shadow:0 24px 58px rgba(0,0,0,.36),0 0 0 1px color-mix(in srgb,var(--game-accent) 22%,transparent)}
.gym-card[data-hue="lime"]:hover{border-color:color-mix(in srgb,var(--accent) 72%,var(--line))}
.gym-card[data-hue="cyan"]:hover{border-color:color-mix(in srgb,var(--accent-2) 72%,var(--line))}
.gym-card[data-hue="amber"]:hover{border-color:color-mix(in srgb,var(--marginal) 72%,var(--line))}
.gym-card[data-hue="coral"]:hover{border-color:color-mix(in srgb,var(--humo) 72%,var(--line))}
.gym-card:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.gc-cover{position:relative;aspect-ratio:16/9;overflow:hidden;background:#07090a;border-bottom:1px solid color-mix(in srgb,var(--game-accent) 27%,var(--line))}
.gc-cover::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 33%,rgba(255,255,255,.11) 49%,transparent 64%);transform:translateX(-125%);transition:transform .7s var(--ease);pointer-events:none}
.gym-card:hover .gc-cover::after,.gym-card:focus-visible .gc-cover::after{transform:translateX(125%)}
.gc-cover img{display:block;width:100%;height:100%;object-fit:cover;transform:scale(1.002);transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s ease}
.gym-card:hover .gc-cover img,.gym-card:focus-visible .gc-cover img{transform:scale(1.045);filter:saturate(1.12) contrast(1.04)}
.gc-cover-no,.gc-cover-mode{position:absolute;z-index:1;top:14px;font-family:var(--mono);font-weight:800;line-height:1;letter-spacing:.1em;text-transform:uppercase;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px)}
.gc-cover-no{left:14px;min-width:31px;padding:8px 9px;text-align:center;font-size:11px;color:var(--bg);background:var(--game-accent);border-radius:7px;box-shadow:0 7px 20px color-mix(in srgb,var(--game-accent) 24%,transparent)}
/* Always light on dark cover art — never inherit theme ink (dark theme was unreadable) */
.gc-cover-mode{right:14px;padding:7px 9px;font-size:9px;color:#f3f7f5;background:rgba(4,7,8,.78);border:1px solid rgba(255,255,255,.22);border-radius:999px;text-shadow:0 1px 2px rgba(0,0,0,.45)}
.gc-top{display:flex;align-items:center;justify-content:space-between;padding:16px 18px 0}
.gc-icon{width:34px;height:34px;display:grid;place-items:center;border-radius:var(--radius);border:1px solid currentColor}
.gc-icon svg{width:18px;height:18px}
.gym-card[data-hue="lime"] .gc-icon{color:var(--accent)}
.gym-card[data-hue="cyan"] .gc-icon{color:var(--accent-2)}
.gym-card[data-hue="amber"] .gc-icon{color:var(--marginal)}
.gym-card[data-hue="coral"] .gc-icon{color:var(--humo)}
.gc-skill{font-family:var(--mono);font-size:10.5px;font-weight:700;text-transform:uppercase;letter-spacing:.1em;color:var(--ink-3)}
.gym-card h3{font-family:var(--display);font-weight:800;font-size:1.23rem;letter-spacing:-.015em;margin:12px 18px 0}
.gym-card p{color:var(--ink-2);font-size:.88rem;line-height:1.55;margin:7px 18px 0;flex:1}
.gc-foot{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:16px 18px 16px;padding-top:13px;border-top:1px solid var(--line)}
.gc-best{font-family:var(--mono);font-size:11.5px;color:var(--ink-2)}
.gc-best b{color:var(--ink)}
.gc-unplayed{color:var(--ink-3)}
.gc-play{font-family:var(--mono);font-size:12px;font-weight:800;color:var(--game-accent);white-space:nowrap;transition:transform var(--dur-1) var(--ease)}
.gym-card:hover .gc-play,.gym-card:focus-visible .gc-play{transform:translateX(3px)}

/* stage */
.gym-stage{display:flex;flex-direction:column;gap:14px}
.gym-stage-head{display:flex;align-items:center;gap:14px;flex-wrap:wrap}
#gym-stage-title{font-family:var(--display);font-weight:800;font-size:1.25rem;letter-spacing:-.01em}
.gym-hud{display:flex;gap:8px;margin-left:auto;flex-wrap:wrap}
.gh-chip{
  display:flex;align-items:baseline;gap:7px;padding:6px 11px;
  border:1px solid var(--line);border-radius:var(--radius);
  font-family:var(--mono);font-size:11px;
}
.gh-chip span{text-transform:uppercase;letter-spacing:.08em;color:var(--ink-3)}
.gh-chip b{font-size:14px;color:var(--ink)}
.gh-chip.warn b{color:var(--marginal)}
.gym-sound{font-size:15px}

.gym-arena{
  position:relative;height:clamp(380px,56vh,560px);overflow:hidden;
  border:1.5px solid color-mix(in srgb,var(--accent) 30%,var(--line));
  border-radius:var(--radius-lg);
  background:var(--chart-bg,var(--surface));
}
#gym-canvas{position:absolute;inset:0;display:block;touch-action:none}
.gym-dom{position:absolute;inset:0;pointer-events:none}
.gym-dom>*{pointer-events:auto}
.gym-overlay{
  position:absolute;inset:0;z-index:5;display:grid;place-items:center;padding:18px;
  background:color-mix(in srgb,var(--bg) 90%,transparent);
}
.gym-overlay.is-count{background:color-mix(in srgb,var(--bg) 72%,transparent)}
.gym-count{
  font-family:var(--mono);font-weight:900;font-size:clamp(4rem,12vw,7rem);
  color:var(--ink);line-height:1;
}
.gym-count.go{color:var(--accent)}

.gym-panel{
  width:min(540px,94%);max-height:100%;overflow:auto;padding:26px 28px;
  border:1.5px solid color-mix(in srgb,var(--accent) 36%,var(--line));
  border-radius:var(--radius-lg);background:var(--surface);
  display:flex;flex-direction:column;gap:14px;text-align:left;
}
.gp-tag{font-family:var(--mono);font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:.12em;color:var(--ink-3)}
.gym-panel h3{font-family:var(--display);font-weight:800;font-size:1.5rem;margin:0;letter-spacing:-.01em}
.gp-how{color:var(--ink-2);font-size:.95rem;line-height:1.6;margin:0}
.gp-how b{color:var(--ink)}
.gp-best{font-family:var(--mono);font-size:12px;color:var(--ink-2);margin:0}
.gp-best b{color:var(--accent);font-size:14px}
.gp-start{align-self:flex-start;padding:12px 26px}
.gp-start small,.gp-retry small,.gp-back small{font-family:var(--mono);font-size:10px;opacity:.65;margin-left:8px}
.gp-esc{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);margin:0}
.gym-results .gp-score{display:flex;align-items:baseline;gap:14px}
.gym-results .gp-score b{font-family:var(--mono);font-weight:900;font-size:3.4rem;color:var(--accent);line-height:1}
.gym-results .gp-score .gr{font-size:14px}
.gp-pb{
  align-self:flex-start;font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;
  color:var(--bg);background:var(--accent);padding:4px 10px;border-radius:var(--radius-pill);
}
.gp-rows{display:flex;flex-direction:column;border-top:1px solid var(--line)}
.gp-row{display:flex;justify-content:space-between;gap:14px;padding:9px 0;border-bottom:1px solid var(--line);font-size:.92rem}
.gp-row span{color:var(--ink-2)}
.gp-row b{font-family:var(--mono)}
.gp-row.good b{color:var(--real)}
.gp-row.bad b{color:var(--humo)}
.gp-insight{
  margin:0;padding:10px 14px;color:var(--ink-2);font-size:.88rem;line-height:1.55;
  border-left:2px solid var(--accent);background:color-mix(in srgb,var(--accent) 6%,transparent);
}
.gp-btns{display:flex;gap:10px;flex-wrap:wrap}

.gym-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.gym-abtn{
  display:flex;align-items:center;gap:10px;justify-content:center;cursor:pointer;
  min-height:56px;padding:10px 30px;border-radius:var(--radius-md);
  font-family:var(--mono);font-weight:800;font-size:16px;letter-spacing:.04em;
  border:1.5px solid var(--line);background:var(--surface);color:var(--ink);
  user-select:none;-webkit-user-select:none;touch-action:manipulation;
}
.gym-abtn small{font-size:10px;font-weight:600;color:var(--ink-3)}
.gym-abtn.up{border-color:color-mix(in srgb,var(--real) 55%,var(--line));color:var(--real)}
.gym-abtn.down{border-color:color-mix(in srgb,var(--humo) 55%,var(--line));color:var(--humo)}
.gym-abtn.big{flex:1;max-width:300px}
.gym-abtn:active{transform:translateY(1px)}
.gym-tip{text-align:center;font-family:var(--mono);font-size:11px;color:var(--ink-3);margin:0;min-height:14px}

/* reflex */
.gym-roundchips{position:absolute;left:12px;bottom:10px;display:flex;gap:6px;flex-wrap:wrap;max-width:80%;pointer-events:none!important}
.grc{font-family:var(--mono);font-size:10.5px;font-weight:700;padding:3px 8px;border-radius:var(--radius-sm);border:1px solid currentColor}
.grc.good{color:var(--real)}
.grc.mid{color:var(--marginal)}
.grc.bad{color:var(--humo)}

/* patterns */
.gym-mask{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none!important}
.gym-mask span{font-family:var(--mono);font-weight:900;font-size:5rem;color:var(--ink-3);opacity:.5}
.gym-opts{
  position:absolute;left:50%;bottom:14px;transform:translateX(-50%);
  display:grid;grid-template-columns:1fr 1fr;gap:8px;width:min(560px,94%);
}
.gym-opt{
  display:flex;align-items:center;gap:9px;cursor:pointer;text-align:left;
  padding:11px 13px;border-radius:var(--radius);font-size:.88rem;font-weight:600;
  border:1.5px solid var(--line);background:var(--surface);color:var(--ink);
  touch-action:manipulation;user-select:none;-webkit-user-select:none;
}
.gym-opt i{
  font-style:normal;font-family:var(--mono);font-size:10.5px;font-weight:700;color:var(--ink-3);
  border:1px solid var(--line);border-radius:4px;padding:1px 6px;flex:none;
}
.gym-opt.good{border-color:var(--real);color:var(--real)}
.gym-opt.bad{border-color:var(--humo);color:var(--humo)}
.gym-opt:disabled{cursor:default;opacity:.9}

/* risk math */
.gym-mathcard{
  position:absolute;inset:0;display:flex;flex-direction:column;justify-content:center;
  gap:18px;padding:20px;max-width:640px;margin:0 auto;
}
.gm-q{font-family:var(--display);font-weight:700;font-size:clamp(1.05rem,2.4vw,1.45rem);line-height:1.4;text-align:center}
.gm-opts{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.gm-opts .gym-opt{justify-content:flex-start;font-family:var(--mono);font-size:1rem}
.gm-hint{min-height:20px;text-align:center;font-family:var(--mono);font-size:12.5px;color:var(--marginal)}

/* discipline */
.gym-discwrap{position:absolute;inset:0;display:flex;flex-direction:column;padding:14px}
.gym-rulebar{
  display:flex;gap:10px;flex-wrap:wrap;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:11px;color:var(--ink-2);
  padding:8px 10px;border:1px solid var(--line);border-radius:var(--radius);
}
.gym-rulebar b{color:var(--accent);letter-spacing:.1em}
.gym-signal{flex:1;display:grid;place-items:center}
.gs-card{
  width:min(400px,92%);padding:20px 22px;cursor:pointer;
  border:1.5px solid var(--line);border-radius:var(--radius-lg);background:var(--surface);
  display:flex;flex-direction:column;gap:12px;user-select:none;-webkit-user-select:none;touch-action:manipulation;
}
.gs-card.good{border-color:var(--real)}
.gs-card.bad{border-color:var(--humo)}
.gs-card.mid{border-color:var(--marginal)}
.gs-rows{display:flex;flex-direction:column;gap:8px;font-family:var(--mono);font-size:14.5px}
.gs-bar{height:4px;border-radius:2px;background:var(--line);overflow:hidden}
.gs-bar i{display:block;height:100%;background:var(--accent-2);transform-origin:left center}
.gs-verdict{min-height:22px;font-family:var(--mono);font-weight:800;font-size:15px;opacity:0}
.gs-verdict.show{opacity:1}
.gs-verdict.good{color:var(--real)}
.gs-verdict.bad{color:var(--humo)}
.gs-verdict.mid{color:var(--marginal)}

/* levels */
.gym-lvlprompt{
  position:absolute;top:10px;left:50%;transform:translateX(-50%);
  font-family:var(--mono);font-size:12.5px;color:var(--ink);
  padding:7px 14px;border:1px solid var(--line);border-radius:var(--radius-pill);
  background:color-mix(in srgb,var(--bg) 82%,transparent);
  pointer-events:none!important;white-space:nowrap;
}
.gym-lvlprompt b{color:var(--accent)}
.gym-lvlprompt b.good{color:var(--real)}
.gym-lvlprompt b.bad{color:var(--humo)}
.gym-lvlprompt i{font-style:normal;color:var(--ink-3)}

/* anti-tilt */
.gym-stroop{position:absolute;inset:0;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:26px}
.st-rule{
  font-family:var(--mono);font-size:12px;font-weight:700;letter-spacing:.06em;
  padding:8px 16px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink-2);
}
.st-rule.flipped{border-color:var(--marginal);color:var(--marginal)}
.st-word{
  font-family:var(--display);font-weight:900;font-size:clamp(3rem,9vw,5.2rem);
  letter-spacing:.02em;line-height:1;min-height:1em;
}
.st-word.pop{animation:gymPop .14s var(--ease-out)}
.st-word.err{animation:gymShake .3s var(--ease)}
.st-word.hit{animation:gymHit .12s var(--ease-out)}
@keyframes gymPop{from{transform:scale(.82);opacity:.4}to{transform:scale(1);opacity:1}}
@keyframes gymShake{0%,100%{transform:translateX(0)}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
@keyframes gymHit{from{transform:scale(1.14)}to{transform:scale(1)}}

/* trainer page cross-link */
.gym-cta{
  display:flex;align-items:center;gap:12px;margin:18px 0 6px;padding:12px 16px;
  border:1.5px solid color-mix(in srgb,var(--accent-2) 45%,var(--line));
  border-radius:var(--radius-md);color:var(--ink);text-decoration:none;
  font-family:var(--mono);font-size:12.5px;
}
.gym-cta:hover{border-color:var(--accent-2)}
.gym-cta-new{
  flex:none;font-weight:800;font-size:10px;letter-spacing:.12em;
  color:var(--bg);background:var(--accent-2);padding:3px 8px;border-radius:var(--radius-pill);
}
.gym-cta b{margin-left:auto;color:var(--accent-2)}

/* honesty note */
.gym-note{border-top:1px solid var(--line);padding-top:22px;display:flex;flex-direction:column;gap:14px}
.gym-note p{margin:0;color:var(--ink-3);font-size:.88rem;max-width:74ch}
.gym-note-links{display:flex;gap:10px;flex-wrap:wrap}

@media (max-width:1080px){
  .gym-hub{grid-template-columns:1fr 1fr}
}
@media (max-width:760px){
  .gym-top{padding-top:calc(var(--nav-h) + 26px)}
  .gym-head{grid-template-columns:1fr}
  .gym-profile{justify-content:flex-start}
  #gym-radar{width:200px;height:184px}
  .gym-hub{grid-template-columns:1fr}
  .gym-arena{height:clamp(340px,58vh,480px)}
  .gym-hud{margin-left:0;width:100%}
  .gym-abtn.big{max-width:none}
  .gym-opts,.gm-opts{grid-template-columns:1fr}
  .gym-opts{bottom:10px}
  .gs-rows{font-size:13.5px}
}
@media (prefers-reduced-motion:reduce){
  .st-word.pop,.st-word.err,.st-word.hit{animation:none}
  .gym-card,.gym-card:hover{transform:none;transition:none}
}

/* ============================================================
   TRADING GYM v2 — juice, tutorials, levels/XP, real-data chips
   ============================================================ */

/* ---- FX layer ---- */
.gym-fx{position:absolute;inset:0;pointer-events:none;z-index:6;overflow:hidden}
.gfx-pop{
  position:absolute;transform:translate(-50%,-50%);
  font:800 15px 'JetBrains Mono',monospace;letter-spacing:.4px;
  color:var(--ink);white-space:nowrap;
  animation:gfxPop .95s cubic-bezier(.2,.7,.3,1) forwards;
  text-shadow:0 1px 0 rgba(0,0,0,.45);
}
.gfx-pop.good{color:var(--accent)}
.gfx-pop.bad{color:var(--humo)}
.gfx-pop.big{font-size:20px}
@keyframes gfxPop{
  0%{opacity:0;transform:translate(-50%,-30%) scale(.6)}
  18%{opacity:1;transform:translate(-50%,-50%) scale(1.12)}
  30%{transform:translate(-50%,-55%) scale(1)}
  100%{opacity:0;transform:translate(-50%,-150%) scale(.94)}
}
.gfx-ring{
  position:absolute;width:14px;height:14px;border-radius:50%;
  transform:translate(-50%,-50%);border:2px solid var(--accent-2);
  animation:gfxRing .65s ease-out forwards;
}
@keyframes gfxRing{
  0%{opacity:.9;width:10px;height:10px}
  100%{opacity:0;width:64px;height:64px}
}
.gfx-combo{
  position:absolute;top:10px;left:50%;transform:translateX(-50%);
  font:800 12.5px 'JetBrains Mono',monospace;letter-spacing:1.2px;
  color:var(--marginal);border:1px solid color-mix(in srgb,var(--marginal) 55%,transparent);
  background:color-mix(in srgb,var(--marginal) 12%,transparent);
  padding:4px 12px;border-radius:999px;
}
.gfx-combo.bump{animation:gfxBump .28s ease-out}
@keyframes gfxBump{
  0%{transform:translateX(-50%) scale(1)}
  45%{transform:translateX(-50%) scale(1.22)}
  100%{transform:translateX(-50%) scale(1)}
}
#gym-arena.gfx-good{animation:gfxGoodA .34s ease-out}
#gym-arena.gfx-bad{animation:gfxBadA .34s ease-out}
@keyframes gfxGoodA{
  0%{box-shadow:inset 0 0 0 3px var(--accent), inset 0 0 42px color-mix(in srgb,var(--accent) 22%,transparent)}
  100%{box-shadow:inset 0 0 0 0 transparent}
}
@keyframes gfxBadA{
  0%{box-shadow:inset 0 0 0 3px var(--humo), inset 0 0 42px color-mix(in srgb,var(--humo) 24%,transparent)}
  100%{box-shadow:inset 0 0 0 0 transparent}
}
#gym-arena.gfx-shake{animation:gymShake .38s ease-in-out}
.gfx-confetti{position:absolute;inset:0;pointer-events:none;overflow:hidden;border-radius:inherit}
.gfx-confetti i{
  position:absolute;top:-10px;width:6px;height:11px;opacity:.95;
  animation:gfxFall 1.4s linear forwards;
}
@keyframes gfxFall{
  0%{transform:translate(0,-10px) rotate(0)}
  100%{transform:translate(var(--dx,0),240px) rotate(340deg);opacity:0}
}

/* ---- tutorial bar ---- */
.gym-tutbar{
  position:absolute;left:0;right:0;bottom:0;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  border-top:1px solid var(--line);
  padding:12px 16px 14px;display:flex;flex-direction:column;gap:6px;
  backdrop-filter:blur(6px);
}
.tut-dots{display:flex;gap:6px}
.tut-dots i{width:22px;height:3px;background:var(--line);border-radius:2px}
.tut-dots i.on{background:var(--accent)}
.tut-h{font:700 15px var(--display),sans-serif;color:var(--ink)}
.tut-b{font-size:13.5px;line-height:1.5;color:var(--ink-2);max-width:70ch}
.tut-b b{color:var(--ink)}
.tut-btns{display:flex;gap:8px;margin-top:4px}
.tut-btns .tut-next small{opacity:.6;margin-left:6px}

/* ---- stage header: level chips in HUD already styled; tut button ---- */
#gym-tut{font-weight:800}

/* ---- intro panel: level badge + tutorial link ---- */
.gp-lvl{
  display:inline-block;align-self:flex-start;
  font:800 11px 'JetBrains Mono',monospace;letter-spacing:1.4px;
  color:var(--accent-2);border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);
  padding:3px 9px;border-radius:999px;
}
.gp-tutlink{
  background:none;border:none;padding:0;cursor:pointer;
  color:var(--accent-2);font:inherit;text-decoration:underline;text-underline-offset:3px;
}
.gp-tutlink:hover{color:var(--ink)}

/* ---- results: level-up banner, XP line, next-level bar, count-up ---- */
/* position only — v1's overflow:auto must survive so tall panels scroll on mobile;
   confetti clips itself via .gfx-confetti's own overflow:hidden + border-radius */
.gym-panel{position:relative}
.gp-lvlup{
  display:block;font:800 13px 'JetBrains Mono',monospace;letter-spacing:1.6px;
  color:var(--bg);background:var(--accent);
  padding:7px 12px;border-radius:6px;margin-bottom:12px;
  animation:gfxBump2 .5s ease-out;
}
@keyframes gfxBump2{
  0%{transform:scale(.85);opacity:0}
  55%{transform:scale(1.06);opacity:1}
  100%{transform:scale(1)}
}
.gp-xp{
  font:700 13px 'JetBrains Mono',monospace;color:var(--accent);
  margin:2px 0 8px;
}
.gp-xp span{color:var(--ink-3);font-weight:600}
.gp-xp .gp-fire{color:var(--marginal);margin-left:6px}
.gp-next{
  display:flex;align-items:center;gap:10px;margin:0 0 12px;
  font:600 11.5px 'JetBrains Mono',monospace;color:var(--ink-3);
}
.gp-next.max{color:var(--marginal);justify-content:center}
.gp-nextbar{flex:1;height:5px;background:var(--line);border-radius:3px;overflow:hidden;min-width:60px}
.gp-nextbar i{display:block;height:100%;background:var(--accent-2);border-radius:3px}

/* ---- hub cards: level badge + mastery bar ---- */
.gc-best{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.gc-lvl{
  font:800 10.5px 'JetBrains Mono',monospace;letter-spacing:.8px;
  color:var(--accent-2);border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);
  padding:2px 7px;border-radius:999px;white-space:nowrap;
}
.gc-lvl.max{color:var(--marginal);border-color:color-mix(in srgb,var(--marginal) 55%,transparent)}
.gc-mbar{
  flex:0 1 74px;min-width:44px;height:4px;background:var(--line);
  border-radius:2px;overflow:hidden;
}
.gc-mbar i{display:block;height:100%;background:var(--accent);border-radius:2px}

/* ---- profile: rank / XP / streak ---- */
.gym-profile{flex-wrap:wrap}   /* lets the width:100% xpline wrap below the radar row */
.gym-xpline{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  width:100%;margin-top:12px;padding-top:12px;border-top:1px solid var(--line);
  font:700 12px 'JetBrains Mono',monospace;color:var(--ink-2);
}
.gym-xpline .xp-rank{
  color:var(--accent);letter-spacing:1.2px;text-transform:uppercase;
  border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);
  padding:3px 10px;border-radius:999px;font-size:11px;
}
.gym-xpline .xp-bar{flex:1;min-width:70px;height:5px;background:var(--line);border-radius:3px;overflow:hidden}
.gym-xpline .xp-bar i{display:block;height:100%;background:var(--accent);border-radius:3px}
.gym-xpline .xp-num{color:var(--ink-3);font-weight:600;font-size:11.5px}
.gym-xpline .xp-fire{color:var(--marginal)}

@media (max-width:760px){
  .gym-tutbar{padding:10px 12px 12px}
  .tut-b{font-size:12.5px}
  .gfx-pop{font-size:13.5px}
  .gfx-pop.big{font-size:17px}
}
@media (prefers-reduced-motion:reduce){
  .gfx-pop{animation:gfxPopReduced .9s ease-out forwards}
  .gfx-ring,.gfx-confetti i{display:none}
  #gym-arena.gfx-shake{animation:none}
  .gp-lvlup{animation:none}
  .gfx-combo.bump{animation:none}
}
@keyframes gfxPopReduced{
  0%{opacity:0}15%{opacity:1}80%{opacity:1}100%{opacity:0}
}

/* ============================================================
   ENTRY TRAINER v2 — catalog combobox, replay bar, blitz timer,
   XP/badges, transfer chips, free-read verdicts
   ============================================================ */
/* ---- instrument combobox ---- */
.icombo{position:relative;min-width:210px}
.icombo input{width:100%;text-transform:uppercase}
.icombo input::placeholder{text-transform:none;color:var(--ink-3)}
.icombo-drop{
  position:absolute;z-index:40;top:calc(100% + 4px);left:0;min-width:300px;max-width:360px;
  max-height:340px;overflow-y:auto;background:var(--surface);border:1px solid var(--line);
  border-radius:10px;box-shadow:0 14px 34px rgba(0,0,0,.45);padding:4px;
}
.ic-group{
  font-size:.62rem;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
  padding:8px 10px 4px;font-weight:700;
}
.ic-item{
  display:flex;align-items:baseline;gap:8px;width:100%;text-align:left;
  background:none;border:0;border-radius:7px;padding:7px 10px;cursor:pointer;
  color:var(--ink-2);font:inherit;font-size:.86rem;
}
.ic-item b{color:var(--ink);font-family:var(--mono);font-size:.84rem;min-width:52px}
.ic-item span{flex:1;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:.78rem;color:var(--ink-3)}
.ic-item em{font-style:normal;font-size:.66rem;color:var(--ink-3);border:1px solid var(--line);border-radius:5px;padding:1px 6px;white-space:nowrap}
.ic-item:hover,.ic-item.active{background:rgba(86,205,255,.08)}
.ic-item:hover b,.ic-item.active b{color:var(--accent-2)}
.ic-empty{padding:14px 12px;color:var(--ink-3);font-size:.84rem}
.ic-count{
  position:sticky;bottom:0;background:var(--surface);border-top:1px solid var(--line);
  padding:6px 10px;font-size:.68rem;color:var(--ink-3);font-family:var(--mono);
}
/* ---- transfer badges on job mode ---- */
.tc-group label{display:flex;align-items:center;gap:6px}
.tc-trbadge{
  display:none;font-style:normal;font-size:.6rem;letter-spacing:.1em;text-transform:uppercase;
  color:var(--marginal);border:1px solid color-mix(in srgb,var(--marginal) 45%,transparent);
  border-radius:5px;padding:0 5px;font-weight:700;
}
.tc-group.transfer .tc-trbadge{display:inline-block}
.tcx-transfer{
  font-size:.64rem;font-weight:800;letter-spacing:.12em;color:var(--marginal);
  border:1px solid color-mix(in srgb,var(--marginal) 50%,transparent);border-radius:6px;padding:2px 7px;
}
.tcx-trnote{color:var(--marginal)}
/* ---- replay bar ---- */
.replay-bar{display:flex;align-items:center;gap:6px;margin-left:auto;flex-wrap:wrap}
.rb-btn{
  background:var(--surface);border:1px solid var(--line);border-radius:7px;color:var(--ink);
  font:700 .78rem/1 var(--mono);padding:5px 9px;cursor:pointer;min-width:32px;
}
.rb-btn:hover{border-color:var(--accent-2);color:var(--accent-2)}
.rb-close{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 45%,transparent)}
.rb-close:hover{color:var(--humo);border-color:var(--humo)}
.rb-info{font-size:.7rem;color:var(--ink-3);font-family:var(--mono);white-space:nowrap}
.chart-top{flex-wrap:wrap}
.trainer-mute{
  background:none;border:1px solid var(--line);border-radius:7px;cursor:pointer;
  font-size:.85rem;line-height:1;padding:4px 7px;margin-left:6px;
}
.trainer-mute.muted{opacity:.55}
/* ---- blitz timer ---- */
.blitz-box{
  display:flex;align-items:center;gap:10px;margin-bottom:12px;
  border:1px solid color-mix(in srgb,var(--marginal) 40%,transparent);border-radius:10px;padding:8px 12px;
}
.blitz-box i.blitz-ring{
  width:30px;height:30px;border-radius:50%;flex:none;
  background:conic-gradient(var(--marginal) var(--bfrac,360deg), var(--line) 0);
  -webkit-mask:radial-gradient(circle at 50% 50%, transparent 8px, #000 9px);
          mask:radial-gradient(circle at 50% 50%, transparent 8px, #000 9px);
}
.blitz-box b{font:800 1.15rem/1 var(--mono);color:var(--marginal);min-width:2ch}
.blitz-box.low b{color:var(--humo)}
.blitz-box.low{border-color:color-mix(in srgb,var(--humo) 55%,transparent);animation:blitzPulse .9s ease-in-out infinite}
@keyframes blitzPulse{50%{box-shadow:0 0 0 3px color-mix(in srgb,var(--humo) 22%,transparent)}}
/* ---- verdict extras ---- */
.vd-timeout{
  display:inline-block;font-size:.68rem;font-weight:800;letter-spacing:.08em;color:var(--marginal);
  border:1px dashed color-mix(in srgb,var(--marginal) 55%,transparent);border-radius:6px;padding:2px 8px;margin:2px 0 6px;
}
.vd-mmfe i{font-style:normal}
/* ---- progress panel v2: rank, xp, streak, badges ---- */
.tp-rank{
  font-size:.66rem;font-weight:800;letter-spacing:.12em;text-transform:uppercase;color:var(--accent-2);
  border:1px solid color-mix(in srgb,var(--accent-2) 45%,transparent);border-radius:6px;padding:2px 8px;
}
.tp-flame{font-size:.72rem;font-weight:700;color:var(--marginal);font-family:var(--mono)}
.tp-xpline{display:flex;align-items:center;gap:10px;margin:8px 0 2px}
.tp-xpbar{flex:1;height:6px;border-radius:4px;background:var(--line);overflow:hidden;max-width:280px}
.tp-xpbar i{display:block;height:100%;background:linear-gradient(90deg,var(--accent-2),var(--accent));border-radius:4px}
.tp-xptxt{font-size:.68rem;color:var(--ink-3);font-family:var(--mono);white-space:nowrap}
.tp-badges{display:flex;align-items:center;gap:6px;flex-wrap:wrap;margin:10px 0 2px}
.tpb-count{font-size:.66rem;color:var(--ink-3);font-family:var(--mono);margin-right:2px}
.tbadge{
  font-size:1rem;line-height:1;border:1px solid var(--line);border-radius:8px;padding:5px 7px;cursor:help;
  background:var(--surface);
}
.tbadge.locked{opacity:.28;filter:grayscale(1)}
/* ---- summary award ---- */
.sum-award{display:flex;align-items:center;gap:8px;flex-wrap:wrap;margin:2px 0 10px}
.sum-award:empty{display:none}
.sa-xp{
  font:800 .8rem/1 var(--mono);color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 45%,transparent);border-radius:7px;padding:4px 9px;
}
.sa-badge{
  font-size:.76rem;font-weight:700;color:var(--marginal);
  border:1px solid color-mix(in srgb,var(--marginal) 45%,transparent);border-radius:7px;padding:4px 9px;
}
/* ---- misc ---- */
.tf-btn[disabled]{opacity:.32;cursor:not-allowed;text-decoration:line-through}
.tl-retry{margin-top:10px}
.ei-decoys b{color:var(--marginal)}
@media (max-width:760px){
  .icombo{min-width:0;flex:1}
  .icombo-drop{min-width:260px;max-width:calc(100vw - 40px)}
  .replay-bar{margin-left:0;width:100%}
}
@media (prefers-reduced-motion:reduce){
  .blitz-box.low{animation:none}
}

/* ============================================================
   ENTRY TRAINER v3 — portal dropdown, tutorial, coach, profile
   ============================================================ */
/* the market dropdown lives in <body> (the glass controls card clips + traps fixed) */
.icombo-drop.ic-portal{position:fixed;z-index:1300;top:auto;left:auto;min-width:0;max-width:none}

/* mode note under the controls */
.mode-note{
  display:flex;gap:12px;align-items:baseline;flex-wrap:wrap;
  margin:-6px 2px 0;font-size:.78rem;color:var(--ink-3);line-height:1.5;
}
.mode-note:empty{display:none}
.mode-note a{color:var(--accent-2);text-decoration:none;font-weight:700;white-space:nowrap}
.mode-note a:hover{text-decoration:underline}

/* "?" help button next to the mute */
.trainer-help{font:800 .85rem/1 var(--mono);color:var(--accent-2)}

/* ---- tutorial modal ---- */
.tut-card{width:min(600px,100%)}
#tut-x{
  position:absolute;top:12px;right:12px;width:34px;height:34px;z-index:2;
  border:1px solid var(--line);border-radius:var(--radius-sm);
  background:var(--surface-2);color:var(--ink);font-size:22px;cursor:pointer;
}
.tut-head{display:flex;align-items:center;gap:12px;margin:0 42px 10px 0}
.tut-em{font-size:1.7rem;line-height:1}
.tut-head h2{margin:0;font-size:1.18rem;letter-spacing:-.01em}
.tut-p{color:var(--ink-2);font-size:.9rem;line-height:1.6;margin:9px 0}
.tut-why{border-left:3px solid var(--accent);padding-left:11px;color:var(--ink)}
.tut-modes{display:flex;flex-direction:column;gap:8px;margin:10px 0}
.tut-mode{border:1px solid var(--line);border-radius:10px;padding:10px 13px;background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.tut-mode b{font-size:.87rem;color:var(--ink)}
.tut-mode p{margin:4px 0 0;font-size:.8rem;color:var(--ink-3);line-height:1.5}
.tut-steps{margin:8px 0;padding-left:20px;display:flex;flex-direction:column;gap:9px}
.tut-steps li{font-size:.86rem;color:var(--ink-2);line-height:1.55}
.tut-steps li b{color:var(--ink)}
.tut-list{list-style:none;margin:8px 0;padding:0;display:flex;flex-direction:column;gap:8px}
.tut-list li{font-size:.86rem;color:var(--ink-2);line-height:1.5}
.tut-list li b{color:var(--ink)}
.tut-chopviz{
  display:flex;align-items:flex-end;gap:16px;margin:12px 0;padding:14px 16px 10px;
  border:1px dashed var(--line);border-radius:10px;flex-wrap:wrap;
}
.tcv-col{display:flex;flex-direction:column;align-items:center;gap:5px;font-size:.68rem;color:var(--ink-3)}
.tcv-col i{width:36px;border-radius:4px 4px 0 0;display:block}
.tcv-move{background:var(--accent-2)}
.tcv-cost{background:var(--humo)}
.tcv-vs{color:var(--ink-3);font-size:.72rem;padding-bottom:20px;font-family:var(--mono)}
.tcv-eq{font-size:.8rem;color:var(--ink-2);padding-bottom:16px}
.tcv-eq b{color:var(--humo);font-family:var(--mono)}
.tut-nav{display:flex;justify-content:space-between;align-items:center;margin-top:16px;gap:12px}
.tut-dots{display:flex;gap:7px}
.tut-dot{width:9px;height:9px;border-radius:50%;border:1px solid var(--ink-3);background:none;cursor:pointer;padding:0}
.tut-dot.on{background:var(--accent);border-color:var(--accent)}
.tut-btns{display:flex;gap:8px}

/* ---- verdict coach ---- */
.vd-coach{border-top:1px dashed var(--line);margin-top:9px;padding-top:9px}
.vdc-t{font-size:.6rem;letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);font-weight:700}
.vdc-row{display:flex;flex-wrap:wrap;gap:6px;margin:7px 0 0}
.vdc{
  font:600 .7rem/1.3 var(--mono);color:var(--ink-2);
  border:1px solid var(--line);border-radius:6px;padding:3px 8px;white-space:nowrap;
}
.vdc.up{color:var(--real);border-color:color-mix(in srgb,var(--real) 40%,transparent)}
.vdc.down{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 40%,transparent)}
.vdc-take{margin:8px 0 0;font-size:.79rem;color:var(--ink);line-height:1.5}
/* v4: coach chips are buttons — click lights the matching tool on the chart */
.vdc[data-act]{cursor:pointer;transition:border-color .15s,color .15s}
.vdc[data-act]:hover{border-color:var(--accent-2);color:var(--accent-2)}
.vdc[data-act].lit{border-color:var(--accent);color:var(--accent)}
.vdc[data-act]::after{content:"👁";margin-left:5px;opacity:.45;font-size:.62rem}
/* fuel-vs-toll gauge in the chart legend */
.ema-chip.gauge{
  color:var(--ink-2);border:1px solid color-mix(in srgb,var(--marginal) 40%,transparent);
  border-radius:6px;padding:3px 8px;
}

/* ---- trader profile v3 ---- */
.tp-sw{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-top:10px}
.tp-sw>div{border:1px solid var(--line);border-radius:8px;padding:8px 10px;display:flex;flex-direction:column;gap:2px}
.tp-sw span{font-size:.6rem;color:var(--ink-3);text-transform:uppercase;letter-spacing:.07em;font-weight:700}
.tp-sw b{font:700 .88rem/1.2 var(--mono);color:var(--ink)}
.tp-sw b.up{color:var(--real)} .tp-sw b.down{color:var(--humo)}
.tp-sw em{font-style:normal;font-size:.62rem;color:var(--ink-3)}
.tp-curve{margin-top:10px;position:relative;border:1px solid var(--line);border-radius:8px;padding:6px 6px 2px}
.tp-curve canvas{width:100%;height:56px;display:block}
.tp-curve>span{
  position:absolute;top:6px;left:10px;font-size:.6rem;color:var(--ink-3);
  letter-spacing:.07em;text-transform:uppercase;font-weight:700;pointer-events:none;
}
.tp-advice{
  margin:10px 0 0;font-size:.8rem;color:var(--ink);line-height:1.5;
  border-left:3px solid var(--accent);padding-left:11px;
}
@media (max-width:720px){
  .tp-sw{grid-template-columns:repeat(2,1fr)}
  .tut-chopviz{gap:10px}
}

/* ============================================================================
   REVERSE ENGINEERING v2 (2026-07) — live run console, readiness bar, useful
   idle panel (how-it-works + legend + sample + history), result anchors.
   Everything token-based so dark/light themes work unchanged.
   ============================================================================ */

/* ── readiness bar above the Run button ── */
.rv-runsum{display:flex;flex-wrap:wrap;align-items:center;gap:6px;padding:10px 12px;border-radius:var(--radius);
  border:1px dashed var(--line-2);background:color-mix(in srgb,var(--surface-2) 72%,transparent)}
.rv-rs-chip{font-family:var(--mono);font-size:11px;color:var(--ink-2);padding:3px 8px;border-radius:var(--radius-pill);
  border:1px solid var(--line);background:var(--surface);white-space:nowrap}
.rv-rs-chip.rv-rs-data{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,transparent);font-weight:700}
.rv-rs-chip.rv-rs-dim{color:var(--ink-3)}
.rv-rs-state{flex:1 1 100%;font-size:11.5px;line-height:1.35;margin-top:2px}
.rv-rs-state.rv-rs-ok{color:var(--real,#3fd68f);font-family:var(--mono)}
.rv-rs-state.rv-rs-warn{color:var(--ink-3)}
.rv-run.rv-run-off{opacity:.55;cursor:not-allowed}
.rv-retry{margin-left:6px;padding:3px 10px;border-radius:var(--radius);border:1px solid var(--line-2);
  background:var(--surface-2);color:var(--ink);font-size:12px;cursor:pointer}
.rv-retry:hover{border-color:var(--accent);color:var(--accent)}

/* ── paste feedback ── */
.rv-detected.rv-parsing .rv-det-busy{position:relative;overflow:hidden;color:var(--ink-2);font-size:12px;
  padding:4px 10px;border-radius:var(--radius-pill);border:1px dashed var(--line-2);background:var(--surface-2)}
.rv-detected.rv-parsing .rv-det-busy::after{content:"";position:absolute;inset:0;
  background:linear-gradient(100deg,transparent 20%,color-mix(in srgb,var(--accent) 14%,transparent) 50%,transparent 80%);
  animation:rvShimmer 1.15s linear infinite}
@keyframes rvShimmer{from{transform:translateX(-100%)}to{transform:translateX(100%)}}
.rv-quickrun{margin-left:auto;padding:6px 13px;border-radius:var(--radius);border:1px solid var(--accent);
  background:color-mix(in srgb,var(--accent) 16%,var(--surface-2));color:var(--accent);font-weight:700;font-size:12.5px;
  cursor:pointer;transition:.14s;white-space:nowrap}
.rv-quickrun:hover{background:color-mix(in srgb,var(--accent) 26%,var(--surface-2));box-shadow:var(--glow)}

/* ── live run console ── */
.rv-runcon{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:20px 20px 18px;
  display:flex;flex-direction:column;gap:14px}
.rv-rc-top{display:flex;align-items:center;gap:12px}
.rv-rc-title{font-weight:700;font-size:15px}
.rv-rc-clock{font-family:var(--mono);font-size:13px;color:var(--accent);margin-left:auto;
  padding:2px 9px;border-radius:var(--radius-pill);border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);
  background:color-mix(in srgb,var(--accent) 8%,transparent);font-variant-numeric:tabular-nums}
.rv-cancel{padding:5px 12px;border-radius:var(--radius);border:1px solid var(--line-2);background:transparent;
  color:var(--ink-3);font-size:12px;cursor:pointer;transition:.14s}
.rv-cancel:hover{border-color:var(--humo,#ff7a7a);color:var(--humo,#ff7a7a)}
.rv-phases{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.rv-ph{display:flex;align-items:center;gap:7px}
.rv-ph i{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;font-style:normal;
  font-family:var(--mono);font-size:11.5px;border:1px solid var(--line-2);color:var(--ink-3);background:var(--surface-2);flex:none}
.rv-ph span{font-size:12.5px;color:var(--ink-3);white-space:nowrap}
.rv-ph-done i{border-color:color-mix(in srgb,var(--real,#3fd68f) 55%,transparent);color:var(--real,#3fd68f);
  background:color-mix(in srgb,var(--real,#3fd68f) 10%,transparent)}
.rv-ph-done span{color:var(--ink-2)}
.rv-ph-active i{border-color:var(--accent);color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent);animation:rvPulse 1.6s ease-in-out infinite}
.rv-ph-active span{color:var(--ink);font-weight:600}
@keyframes rvPulse{0%,100%{box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 10%,transparent)}
  50%{box-shadow:0 0 0 6px color-mix(in srgb,var(--accent) 18%,transparent)}}
.rv-ph-sep{flex:1 0 12px;height:1px;background:var(--line);min-width:12px}
.rv-pctbar{height:6px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden}
.rv-pctbar i{display:block;height:100%;border-radius:inherit;width:1%;
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 70%,transparent),var(--accent));
  transition:width .5s ease}
.rv-stageline{margin:0;font-family:var(--mono);font-size:12.5px;color:var(--ink-2);min-height:1.4em}
.rv-rc-hint{margin:-6px 0 0;font-size:11.5px;color:var(--ink-3);line-height:1.4}
.rv-err-row{display:flex;gap:10px;justify-content:center;margin-top:8px}
.rv-retry-run{border-color:var(--accent)}

/* ── idle panel (how it works + legend + sample + recent) ── */
.rv-idle{display:flex;flex-direction:column;gap:14px}
.rv-howit{background:var(--surface);border:1px solid var(--line);border-radius:var(--radius-lg);padding:18px 20px}
.rv-hi-head{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-bottom:12px}
.rv-hi-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px}
.rv-hi-step{display:flex;gap:10px;align-items:flex-start}
.rv-hi-step i{font-style:normal;font-family:var(--mono);font-size:12px;font-weight:700;color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 40%,transparent);border-radius:var(--radius-sm);padding:2px 6px;flex:none;
  background:color-mix(in srgb,var(--accent) 8%,transparent)}
.rv-hi-step b{display:block;font-size:13px;margin-bottom:2px}
.rv-hi-step span{display:block;font-size:11.5px;color:var(--ink-3);line-height:1.45}
.rv-legendbox{display:flex;flex-direction:column;gap:7px;padding:14px 18px;border:1px dashed var(--line-2);
  border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface-2) 60%,transparent)}
.rv-lg-row{display:flex;align-items:baseline;gap:9px;font-size:12px;color:var(--ink-3);line-height:1.45}
.rv-lg-row b{font-family:var(--mono);font-size:11.5px;color:var(--ink);letter-spacing:.06em;flex:none}
.rv-lg-dot{width:9px;height:9px;border-radius:50%;flex:none;align-self:center}
.rv-lg-real{background:var(--real,#3fd68f)}
.rv-lg-marginal{background:var(--marginal,#e3b341)}
.rv-lg-humo{background:var(--humo,#ff7a7a)}
.rv-sample{align-self:flex-start;padding:11px 18px;border-radius:var(--radius);border:1px solid var(--accent);
  background:color-mix(in srgb,var(--accent) 14%,var(--surface));color:var(--accent);font-weight:700;font-size:13.5px;
  cursor:pointer;transition:.14s}
.rv-sample:hover{background:color-mix(in srgb,var(--accent) 24%,var(--surface));box-shadow:var(--glow)}
.rv-recent-head{display:flex;align-items:baseline;gap:10px;margin-bottom:8px}
.rv-recent-head span{font-family:var(--mono);font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.rv-hist-clear{border:none;background:none;color:var(--ink-3);font-size:11px;cursor:pointer;text-decoration:underline;padding:0}
.rv-hist-clear:hover{color:var(--humo,#ff7a7a)}
.rv-recent-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:8px}
.rv-recent-item{display:flex;align-items:center;gap:8px;padding:9px 12px;border-radius:var(--radius);
  border:1px solid var(--line);background:var(--surface);cursor:pointer;transition:.14s;text-align:left;min-width:0}
.rv-recent-item:hover{border-color:var(--accent)}
.rv-recent-item b{font-family:var(--mono);font-size:12.5px;color:var(--ink);flex:none}
.rv-ri-name{font-size:11.5px;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;flex:1 1 auto;min-width:0}
.rv-recent-item em{font-style:normal;font-size:10.5px;color:var(--ink-3);white-space:nowrap;flex:none}
.rv-backbtn{margin-top:10px}

/* ── result 2.0: anchors, numbered sections, legend popover, copy ── */
.rv-resnav{display:flex;flex-wrap:wrap;gap:6px;position:sticky;top:calc(var(--nav-h) + 8px);z-index:5;
  padding:8px;border-radius:var(--radius-lg);border:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 88%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}
.rv-rn{display:inline-flex;align-items:center;gap:6px;padding:5px 11px;border-radius:var(--radius-pill);
  border:1px solid var(--line);background:var(--surface-2);color:var(--ink-2);font-size:12px;cursor:pointer;transition:.14s}
.rv-rn i{font-style:normal;font-family:var(--mono);font-size:10px;color:var(--accent)}
.rv-rn:hover{border-color:var(--accent);color:var(--ink)}
.rv-results{counter-reset:rvsec}
.rv-sec{scroll-margin-top:calc(var(--nav-h) + 64px)}
.rv-sec .rv-card-head h3::before{counter-increment:rvsec;content:counter(rvsec,decimal-leading-zero);
  font-family:var(--mono);font-size:10.5px;color:var(--accent);border:1px solid color-mix(in srgb,var(--accent) 35%,transparent);
  border-radius:var(--radius-sm);padding:1px 5px;margin-right:8px;vertical-align:2px;
  background:color-mix(in srgb,var(--accent) 7%,transparent)}
#rv-results{scroll-margin-top:calc(var(--nav-h) + 14px)}
.rv-leg-btn{width:22px;height:22px;border-radius:50%;border:1px solid var(--line-2);background:var(--surface-2);
  color:var(--ink-2);font-size:12px;line-height:1;cursor:pointer;flex:none;transition:.14s}
.rv-leg-btn:hover{border-color:var(--accent);color:var(--accent)}
/* in-flow collapsible (NOT absolute: .rv-verdict is overflow:hidden and its glass skin
   forces position/z-index on children with ID specificity — a floating popover gets clipped) */
.rv-legpop{display:flex;flex-direction:column;gap:7px;margin-top:-6px;
  padding:14px 16px;border-radius:var(--radius-lg);border:1px solid var(--line-2);background:var(--surface);
  box-shadow:0 10px 32px rgba(0,0,0,.25)}
.rv-legpop.hidden{display:none}
.rv-copy{margin-left:auto;padding:5px 11px;border-radius:var(--radius);border:1px solid var(--line-2);
  background:transparent;color:var(--ink-2);font-size:11.5px;cursor:pointer;transition:.14s;white-space:nowrap}
.rv-copy:hover{border-color:var(--accent);color:var(--accent)}
.rv-copy.rv-copied{border-color:var(--real,#3fd68f);color:var(--real,#3fd68f)}
.rv-reopen-note{margin:0 0 10px;font-size:12px;color:var(--ink-3)}
.rv-linkbtn{border:none;background:none;color:var(--accent);font-size:12px;cursor:pointer;text-decoration:underline;padding:0}

/* verdict banner top row must accommodate the two new buttons */
.rv-verdict-top{flex-wrap:wrap;row-gap:8px}

@media(max-width:700px){
  .rv-phases{gap:6px}
  .rv-ph span{font-size:11px}
  .rv-ph-sep{min-width:6px;flex-basis:6px}
  .rv-resnav{position:static;overflow-x:auto;flex-wrap:nowrap;scrollbar-width:none}
  .rv-resnav::-webkit-scrollbar{display:none}
  .rv-rn{white-space:nowrap;flex:none}
  .rv-legpop{left:8px;right:8px;top:52px}
  .rv-copy{margin-left:0}
  .rv-hi-grid{grid-template-columns:1fr}
  .rv-recent-list{grid-template-columns:1fr}
}

/* ============================================================================
   GYM LEXICON (2026-07) — 7th drill: term bank questions, learning ficha,
   lightning round, codex modal. Violet hue for the card.
   ============================================================================ */
.gym-card[data-hue="violet"]{--game-accent:#b78bff;border-color:color-mix(in srgb,#b78bff 42%,var(--line))}
.gym-card[data-hue="violet"]:hover{border-color:color-mix(in srgb,#b78bff 72%,var(--line))}
.gym-card[data-hue="violet"] .gc-icon{color:#b78bff}
.gym-card[data-hue="forecast"]{--game-accent:#74e2ff;border-color:color-mix(in srgb,#74e2ff 42%,var(--line))}
.gym-card[data-hue="forecast"]:hover{border-color:color-mix(in srgb,#74e2ff 72%,var(--line))}
.gym-card[data-hue="forecast"] .gc-icon{color:#74e2ff}
.gym-card[data-hue="circuit"]{--game-accent:#bbf455;border-color:color-mix(in srgb,#bbf455 44%,var(--line))}
.gym-card[data-hue="circuit"]:hover{border-color:color-mix(in srgb,#bbf455 76%,var(--line))}
.gym-card[data-hue="circuit"] .gc-icon{color:#bbf455}
.gc-icon-glyph{font:800 23px/1 var(--mono)}

/* question card */
.gym-lexcard{gap:12px}
.lex-meta{display:flex;align-items:center;gap:8px;justify-content:center;flex-wrap:wrap}
.lex-mode{font-family:var(--mono);font-size:10.5px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;
  color:#b78bff;border:1px solid color-mix(in srgb,#b78bff 40%,transparent);border-radius:var(--radius-pill);
  padding:3px 10px;background:color-mix(in srgb,#b78bff 10%,transparent)}
.lex-cat{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase}
.lex-q{font-size:clamp(.98rem,2.1vw,1.28rem)}
.lex-q .lex-term{font-family:var(--mono);font-size:clamp(1.15rem,2.6vw,1.6rem);color:var(--accent)}
.lex-opts .lex-opt{white-space:normal;text-align:left;line-height:1.35;font-size:.86rem;align-items:flex-start;font-family:var(--font)}
.lex-opts .lex-opt i{margin-top:1px}
.lex-opts.lex-imp{grid-template-columns:1fr}
.lex-opts.lex-imp .lex-opt{font-size:.83rem}
.lex-timer{height:5px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden;margin-top:2px}
.lex-timer i{display:block;height:100%;width:100%;border-radius:inherit;background:var(--accent);transition:width .18s linear}
.lex-timer i.low{background:var(--humo)}

/* learning ficha (miss freeze) */
.lex-ficha{display:flex;flex-direction:column;align-items:center;gap:7px;text-align:center;padding:6px 4px}
.lf-tag{font-family:var(--mono);font-size:11px;font-weight:700;letter-spacing:.1em;text-transform:uppercase;color:var(--humo)}
.lf-term{font-family:var(--mono);font-size:clamp(1.15rem,2.6vw,1.55rem);color:var(--accent)}
.lf-cat{font-family:var(--mono);font-size:10.5px;color:var(--ink-3);letter-spacing:.05em;text-transform:uppercase}
.lf-def{margin:2px 0 0;font-size:.95rem;line-height:1.5;color:var(--ink);max-width:560px}
.lf-note{margin:0;font-size:.8rem;line-height:1.45;color:var(--ink-3);max-width:560px}
.lf-note b{color:var(--accent)}

/* lightning round */
.lex-inter{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:18px 6px}
.lex-inter b{font-family:var(--display);font-size:clamp(1.3rem,3vw,1.9rem);letter-spacing:.04em}
.lex-inter p{margin:0;color:var(--ink-2)}
.lex-flash{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;padding:8px 4px}
.lex-flash b{font-family:var(--mono);font-size:clamp(1.1rem,2.5vw,1.5rem);color:var(--accent)}
.lex-flash p{margin:0;font-size:.95rem;line-height:1.5;max-width:560px;color:var(--ink)}
.lf-verdict{font-family:var(--mono);font-size:12px;font-weight:700;color:var(--humo);letter-spacing:.06em}

/* codex modal */
.gym-codex{position:fixed;inset:0;z-index:1200;display:flex;align-items:center;justify-content:center;
  padding:22px;background:color-mix(in srgb,#000 62%,transparent);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.gym-codex.hidden{display:none}
.cx-panel{width:min(860px,100%);max-height:min(80vh,720px);display:flex;flex-direction:column;gap:10px;
  background:var(--surface);border:1px solid var(--line-2);border-radius:var(--radius-lg);padding:18px 20px;
  box-shadow:0 30px 80px rgba(0,0,0,.5)}
.cx-head{display:flex;align-items:center;gap:12px}
.cx-head b{font-size:16px}
.cx-total{font-family:var(--mono);font-size:12px;color:#b78bff;margin-left:auto}
.cx-close{width:28px;height:28px;border-radius:var(--radius-sm);border:1px solid var(--line-2);background:var(--surface-2);
  color:var(--ink-2);font-size:17px;line-height:1;cursor:pointer;flex:none}
.cx-close:hover{color:var(--humo);border-color:var(--humo)}
.cx-hint{margin:0;font-size:12px;color:var(--ink-3)}
.cx-def{border:1px solid color-mix(in srgb,var(--accent) 35%,var(--line));border-radius:var(--radius);
  background:color-mix(in srgb,var(--accent) 6%,var(--surface-2));padding:10px 14px}
.cx-def.hidden{display:none}
.cx-def b{font-family:var(--mono);color:var(--accent);font-size:14px;margin-right:8px}
.cxd-cat{font-family:var(--mono);font-size:10px;color:var(--ink-3);text-transform:uppercase;letter-spacing:.05em}
.cx-def p{margin:5px 0 0;font-size:13px;line-height:1.5;color:var(--ink)}
.cx-body{overflow-y:auto;display:flex;flex-direction:column;gap:14px;padding-right:4px}
.cx-cat header{display:flex;align-items:center;gap:10px;margin-bottom:7px}
.cx-cat header b{font-size:13px}
.cx-bar{flex:1;height:5px;border-radius:var(--radius-pill);background:var(--surface-3);overflow:hidden;max-width:180px}
.cx-bar i{display:block;height:100%;border-radius:inherit;background:#b78bff}
.cx-cat header em{font-style:normal;font-family:var(--mono);font-size:11px;color:var(--ink-3)}
.cx-terms{display:flex;flex-wrap:wrap;gap:6px}
.cx-term{padding:4px 10px;border-radius:var(--radius-pill);border:1px solid var(--line);background:var(--surface-2);
  font-size:11.5px;color:var(--ink-3);cursor:pointer;transition:.12s}
.cx-term:hover{border-color:#b78bff;color:var(--ink)}
.cx-term.cx-s{color:var(--ink-2);border-color:var(--line-2)}
.cx-term.cx-m{color:#b78bff;border-color:color-mix(in srgb,#b78bff 55%,transparent);
  background:color-mix(in srgb,#b78bff 10%,var(--surface-2));font-weight:600}

@media(max-width:640px){
  .gym-codex{padding:10px}
  .cx-panel{padding:14px;max-height:88vh}
  .lex-opts .lex-opt{font-size:.8rem}
}

/* ==========================================================================
   TAPELAB MARKET REPLAY — 8th game, real multi-market 5m forecasting
   ========================================================================== */
.gym-arena.tl-active{height:clamp(620px,76vh,760px);border-color:color-mix(in srgb,#74e2ff 34%,var(--line))}
.tl-game{position:absolute;inset:0;z-index:2;pointer-events:none;font-family:var(--font)}
.tl-game button,.tl-game input{pointer-events:auto}
.tl-mode-picker{
  width:min(800px,calc(100% - 36px));height:100%;margin:auto;display:flex;flex-direction:column;justify-content:center;
  pointer-events:auto;padding:28px;text-align:center;
}
.tl-kicker{font:750 10px/1 var(--mono);letter-spacing:.14em;color:#74e2ff}
.tl-mode-picker h3{margin:10px 0 0;font:800 clamp(1.45rem,3vw,2.1rem)/1.1 var(--display);letter-spacing:-.025em}
.tl-mode-picker>p{max-width:620px;margin:10px auto 0;color:var(--ink-2);font-size:.86rem;line-height:1.55}
.tl-mode-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:24px}
.tl-mode-grid button{
  min-height:160px;padding:18px 16px;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:6px;
  text-align:left;cursor:pointer;border:1px solid var(--line);border-radius:var(--radius-lg);background:color-mix(in srgb,var(--surface) 90%,transparent);color:var(--ink)
}
.tl-mode-grid button:hover,.tl-mode-grid button:focus-visible{border-color:#74e2ff;transform:translateY(-2px)}
.tl-mode-grid button.recommended{border-color:color-mix(in srgb,#74e2ff 60%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,#74e2ff 16%,transparent)}
.tl-mode-grid button>i{width:25px;height:25px;display:grid;place-items:center;border:1px solid currentColor;border-radius:7px;color:#74e2ff;font:700 10px var(--mono);font-style:normal}
.tl-mode-grid button>b{margin-top:5px;font:750 .98rem var(--display)}
.tl-mode-grid button>span{color:var(--ink-3);font:600 10px var(--mono)}
.tl-mode-grid button>em{margin-top:auto;color:#74e2ff;font:650 9px var(--mono);font-style:normal;text-transform:uppercase;letter-spacing:.07em}
.tl-proof{margin:22px auto 0;display:flex;justify-content:center;gap:8px;flex-wrap:wrap}
.tl-proof span{padding:5px 9px;border:1px solid var(--line);border-radius:var(--radius-pill);color:var(--ink-3);font:600 9px var(--mono);text-transform:uppercase;letter-spacing:.05em}

.tl-market-meta{
  position:absolute;top:14px;left:18px;right:372px;height:42px;display:flex;align-items:center;gap:10px;
  color:var(--ink-3);font:550 10px var(--mono);pointer-events:none
}
.tl-symbol{color:var(--ink);font-size:14px;font-weight:800}
.tl-symbol i{margin-left:4px;padding:2px 5px;border-radius:4px;background:var(--surface-3);color:var(--ink-3);font-size:8px;font-style:normal}
.tl-market-meta>b{margin-left:auto;color:var(--ink);font-size:15px}
.tl-market-meta>em{font-style:normal;font-weight:700}
.tl-market-meta>em.up{color:var(--real)}
.tl-market-meta>em.down{color:var(--humo)}
.tl-sealed{padding-left:9px;border-left:1px solid var(--line);color:#74e2ff!important;font-size:9px!important}

.tl-decision{
  position:absolute;z-index:3;top:14px;right:14px;bottom:14px;width:344px;overflow:auto;padding:16px;
  pointer-events:auto;border:1px solid color-mix(in srgb,#74e2ff 24%,var(--line));border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 18px 48px rgba(0,0,0,.24);backdrop-filter:blur(12px)
}
.tl-dhead{display:grid;gap:4px}
.tl-dhead>span,.tl-result-tag{color:#74e2ff;font:700 9px var(--mono);letter-spacing:.1em}
.tl-dhead>b{font:760 1.05rem var(--display);letter-spacing:-.01em}
.tl-decision>p{margin:7px 0 11px;color:var(--ink-3);font-size:.72rem;line-height:1.45}
.tl-paths{display:grid;gap:6px}
.tl-path{
  height:58px;padding:5px 7px;display:grid;grid-template-columns:28px 1fr 18px;align-items:center;gap:5px;
  cursor:pointer;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--bg) 55%,transparent);color:var(--ink)
}
.tl-path:hover{border-color:color-mix(in srgb,#74e2ff 55%,var(--line))}
.tl-path.selected{border-color:#74e2ff;box-shadow:inset 3px 0 0 #74e2ff;background:color-mix(in srgb,#74e2ff 7%,var(--surface))}
.tl-path>span{display:grid;gap:3px;font:800 12px var(--mono)}
.tl-path kbd{width:17px;height:15px;display:grid;place-items:center;border:1px solid var(--line);border-radius:3px;color:var(--ink-3);font:600 8px var(--mono)}
.tl-path canvas{width:100%;height:44px;display:block}
.tl-path>i{width:17px;height:17px;display:grid;place-items:center;border-radius:50%;background:#74e2ff;color:#07100e;font:900 10px var(--mono);font-style:normal}
.tl-path:not(.selected)>i{background:transparent}
.tl-lbl{margin:10px 0 5px;display:flex;justify-content:space-between;color:var(--ink-3);font:700 8.5px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.tl-lbl small{font-size:8px;color:var(--ink-3)}
.tl-bias{display:grid;grid-template-columns:repeat(3,1fr);gap:5px}
.tl-bias button{padding:7px 3px;cursor:pointer;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-3);font-size:9px;font-weight:650}
.tl-bias button.active.long{color:var(--real);border-color:color-mix(in srgb,var(--real) 60%,var(--line));background:color-mix(in srgb,var(--real) 8%,var(--surface))}
.tl-bias button.active.neutral{color:#74e2ff;border-color:color-mix(in srgb,#74e2ff 60%,var(--line));background:color-mix(in srgb,#74e2ff 8%,var(--surface))}
.tl-bias button.active.short{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 60%,var(--line));background:color-mix(in srgb,var(--humo) 8%,var(--surface))}
.tl-theses{display:flex;gap:4px;flex-wrap:wrap}
.tl-theses button{padding:5px 7px;cursor:pointer;border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-3);font-size:8px}
.tl-theses button.active{color:var(--ink);border-color:var(--ink-2);background:var(--surface-3)}
.tl-sliders{margin-top:10px;display:grid;grid-template-columns:1fr 1fr;gap:12px}
.tl-sliders label>span{display:flex;justify-content:space-between;color:var(--ink-3);font:650 8px var(--mono);text-transform:uppercase}
.tl-sliders label b{color:var(--ink);font-size:9px}
.tl-sliders input{width:100%;height:3px;min-height:0!important;margin-top:7px;border:0!important;appearance:none;background:var(--line-2);accent-color:#74e2ff;cursor:pointer}
.tl-sliders input::-webkit-slider-thumb{width:12px;height:12px;appearance:none;border:2px solid var(--surface);border-radius:50%;background:#74e2ff;box-shadow:0 0 0 1px #74e2ff}
.tl-lock,.tl-next{width:100%;min-height:38px;margin-top:12px;padding:9px 11px;display:flex;align-items:center;justify-content:center;gap:7px;cursor:pointer;border:0;border-radius:8px;background:var(--accent);color:var(--bg);font:800 9px var(--mono);letter-spacing:.04em}
.tl-lock>span{margin-left:auto;font-size:8px;opacity:.65}
.tl-lock:disabled{background:var(--surface-3);color:var(--ink-3);cursor:not-allowed}
.tl-honesty{display:block;margin-top:6px;text-align:center;color:var(--ink-3);font-size:7.5px;line-height:1.3}

.tl-result-tag{display:flex;justify-content:space-between}
.tl-result-tag span{color:var(--ink-3);font-size:8px}
.tl-score{margin-top:12px;display:flex;align-items:baseline;gap:5px}
.tl-score>b{color:var(--accent);font:850 38px/1 var(--mono);letter-spacing:-.06em}
.tl-score>span{color:var(--ink-3);font:650 10px var(--mono)}
.tl-scorebars{margin-top:12px;display:grid;gap:7px}
.tl-scorebars>div{display:grid;grid-template-columns:70px 1fr 26px;align-items:center;gap:7px}
.tl-scorebars span{color:var(--ink-3);font-size:8px}
.tl-scorebars i{height:4px;overflow:hidden;border-radius:99px;background:var(--line)}
.tl-scorebars i b{height:100%;display:block;border-radius:inherit;background:var(--accent)}
.tl-scorebars strong{text-align:right;color:var(--ink-2);font:650 8px var(--mono)}
.tl-facts{margin-top:13px;padding:9px 0;display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.tl-facts span{display:grid;gap:3px;color:var(--ink-3);font-size:8px}
.tl-facts span+span{padding-left:12px;border-left:1px solid var(--line)}
.tl-facts b{font:700 10px var(--mono);color:var(--ink)}
.tl-facts b.long{color:var(--real)} .tl-facts b.short{color:var(--humo)} .tl-facts b.neutral{color:#74e2ff}
.tl-coach{margin-top:12px;padding:10px;border:1px solid var(--line);border-radius:8px;background:color-mix(in srgb,var(--bg) 55%,transparent)}
.tl-coach>b{color:#74e2ff;font:700 8px var(--mono);letter-spacing:.08em}
.tl-coach>p{margin:4px 0 0;color:var(--ink-2);font-size:8.5px;line-height:1.45}

@media(max-width:790px){
  .gym-arena.tl-active{height:860px}
  .tl-market-meta{top:12px;left:14px;right:14px}
  .tl-market-meta>span:nth-child(2){display:none}
  .tl-decision{top:410px;left:12px;right:12px;bottom:12px;width:auto}
}
@media(max-width:640px){
  .tl-mode-picker{padding:18px 12px;justify-content:flex-start;padding-top:30px;overflow:auto}
  .tl-mode-grid{grid-template-columns:1fr;margin-top:17px}
  .tl-mode-grid button{min-height:104px}
  .tl-proof{margin-top:15px;padding-bottom:20px}
  .tl-market-meta{gap:6px}
  .tl-market-meta>b{font-size:12px}
  .tl-sealed{font-size:7px!important}
  .tl-decision{padding:13px}
}

/* ==========================================================================
   MARKET CIRCUIT — SEASON 2 (9th game)
   Own `mk-` namespace on purpose: the old gym block shared `mc-` with the
   analyzer's Monte Carlo card, so `.mc-stats` / `.mc-legend` were quietly
   restyling that panel from 10k lines away. Nothing here leaks.
   ========================================================================== */
.gym-arena.mk-active{height:clamp(600px,72vh,760px);border-color:color-mix(in srgb,#bbf455 34%,var(--line));background:#07100f}
/* swipe surface is the canvas only — the garage and the debrief still scroll */
.gym-arena.mk-active>canvas{touch-action:none}
.mk-game{position:absolute;inset:0;z-index:2;pointer-events:none;font-family:var(--font)}
.mk-game button{pointer-events:auto}
.mk-bay,.mk-license,.mk-debrief{touch-action:pan-y}

/* ---- garage ---- */
.mk-garage{width:100%;height:100%;display:grid;grid-template-columns:minmax(0,1.25fr) minmax(272px,.75fr);pointer-events:auto;overflow:hidden}
.mk-bay{padding:clamp(16px,2.4vw,30px);display:flex;flex-direction:column;overflow:auto;
  background:radial-gradient(circle at 12% 12%,rgba(116,226,255,.07),transparent 34%)}
.mk-kicker{color:#74e2ff;font:750 9.5px/1.35 var(--mono);letter-spacing:.13em;text-transform:uppercase}
.mk-bay h3{margin:8px 0 0;max-width:19ch;font:850 clamp(1.5rem,3.1vw,2.35rem)/1.02 var(--display);letter-spacing:-.038em}
.mk-pitch{margin:10px 0 0;max-width:60ch;color:var(--ink-2);font-size:.86rem;line-height:1.55}
.mk-pitch b{color:var(--ink);font-weight:700}

/* the loop, in three beats — this is the part that was missing entirely */
.mk-how{margin:14px 0 0;padding:0;display:grid;grid-template-columns:repeat(3,1fr);gap:7px;list-style:none;counter-reset:mk}
.mk-how li{padding:10px 11px;display:grid;grid-template-columns:auto 1fr;gap:2px 9px;
  border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 45%,transparent)}
.mk-how i{grid-row:span 2;align-self:start;width:22px;height:22px;display:grid;place-content:center;
  border-radius:50%;background:color-mix(in srgb,#74e2ff 13%,transparent);color:#74e2ff;font:800 10px var(--mono);font-style:normal}
.mk-how b{font:800 10px var(--mono);letter-spacing:.06em;text-transform:uppercase}
.mk-how span{color:var(--ink-3);font-size:.74rem;line-height:1.45}

.mk-sec{margin:18px 0 8px;display:flex;align-items:center;gap:9px}
.mk-sec::after{content:"";flex:1;height:1px;background:var(--line)}
.mk-sec>span{color:var(--ink-3);font:750 8px var(--mono);letter-spacing:.14em;text-transform:uppercase}

.mk-modes{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}
.mk-modes button{min-height:88px;padding:11px 12px;display:grid;gap:3px;align-content:start;text-align:left;cursor:pointer;
  border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--ink)}
.mk-modes button:hover,.mk-modes button:focus-visible{border-color:color-mix(in srgb,#74e2ff 58%,var(--line))}
.mk-modes button.active{border-color:#bbf455;background:color-mix(in srgb,#bbf455 9%,var(--surface));box-shadow:inset 0 -2px 0 #bbf455}
.mk-modes em{justify-self:start;padding:2px 7px;border-radius:999px;background:color-mix(in srgb,var(--ink-3) 18%,transparent);
  color:var(--ink-2);font:750 8px var(--mono);font-style:normal;letter-spacing:.06em}
.mk-modes button.active em{background:color-mix(in srgb,#bbf455 22%,transparent);color:#bbf455}
.mk-modes b{font:850 11.5px var(--mono);letter-spacing:.04em}
.mk-modes span{color:var(--ink-3);font:600 8.5px/1.4 var(--mono)}

.mk-assets{display:grid;grid-template-columns:repeat(6,1fr);gap:5px}
.mk-assets button{min-height:48px;padding:7px 6px;display:grid;gap:1px;text-align:left;cursor:pointer;
  border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--ink)}
.mk-assets button:hover,.mk-assets button:focus-visible{border-color:color-mix(in srgb,#74e2ff 58%,var(--line))}
.mk-assets button.active{border-color:#bbf455;background:color-mix(in srgb,#bbf455 8%,var(--surface));box-shadow:inset 0 -2px 0 #bbf455}
.mk-assets b{font:800 10.5px var(--mono)}
.mk-assets span{color:var(--ink-2);font-size:7.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}

/* the track picker is a power-user detail — folded away, default is "surprise me" */
.mk-adv{margin-top:12px;border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 40%,transparent)}
.mk-adv>summary{padding:10px 12px;display:flex;align-items:center;gap:9px;cursor:pointer;list-style:none}
.mk-adv>summary::-webkit-details-marker{display:none}
.mk-adv>summary>span{color:var(--ink-3);font:750 8px var(--mono);letter-spacing:.13em;text-transform:uppercase}
.mk-adv>summary>b{flex:1;color:var(--ink-2);font:700 9.5px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-adv>summary>i{color:var(--ink-3);font:700 10px var(--mono);font-style:normal;transition:rotate .18s ease}
.mk-adv[open]>summary>i{rotate:180deg}
.mk-adv[open]>summary{border-bottom:1px solid var(--line)}
.mk-adv>*:not(summary){margin:10px 12px 12px}
.mk-adv>.mk-fine{margin-top:10px}

.mk-tracks{display:grid;gap:5px}
.mk-tracks button{padding:8px 11px;display:grid;grid-template-columns:110px 42px 1fr auto;gap:9px;align-items:center;text-align:left;cursor:pointer;
  border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--bg) 50%,transparent);color:var(--ink-2)}
.mk-tracks button:hover,.mk-tracks button:focus-visible{border-color:color-mix(in srgb,#74e2ff 55%,var(--line))}
.mk-tracks button.active{border-color:#bbf455;background:color-mix(in srgb,#bbf455 7%,var(--surface));box-shadow:inset 3px 0 0 #bbf455;color:var(--ink)}
.mk-tracks button.mk-rand{grid-template-columns:auto 1fr auto;border-style:dashed;border-color:color-mix(in srgb,#74e2ff 40%,var(--line))}
.mk-tracks button.mk-rand b{color:#74e2ff;font-size:10.5px}
.mk-tracks button.mk-rand small{display:inline;padding:3px 7px;border:1px solid color-mix(in srgb,#bbf455 45%,var(--line));border-radius:999px;color:#bbf455;letter-spacing:.08em}
.mk-tracks button.mk-rand.active{border-style:solid;border-color:#bbf455;background:color-mix(in srgb,#bbf455 8%,var(--surface));box-shadow:inset 3px 0 0 #bbf455}
.mk-tracks button.mk-rand.active b{color:var(--ink)}
.mk-tracks b{font:800 10px var(--mono);letter-spacing:.02em}
.mk-tracks i{color:var(--marginal);font:700 9px var(--mono);font-style:normal;letter-spacing:.12em}
.mk-tracks span{color:var(--ink-3);font:600 8.5px var(--mono);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-tracks em{color:#74e2ff;font:700 8.5px var(--mono);font-style:normal}
.mk-tracks small{color:var(--ink-3);font:650 7.5px var(--mono);letter-spacing:.06em}

.mk-start{width:100%;min-height:52px;margin-top:16px;padding:10px 16px;display:flex;align-items:center;justify-content:center;gap:8px;
  cursor:pointer;border:0;border-radius:10px;background:#bbf455;color:#07100e;font:850 12.5px var(--mono);letter-spacing:.05em}
.mk-start span{margin-left:auto;font-size:8px;opacity:.62}
.mk-start:hover{filter:brightness(1.06)}
.mk-fine{margin:9px 0 0;color:var(--ink-3);font-size:10.5px;line-height:1.5}

/* ---- right rail: the promise, not a trophy case ---- */
.mk-license{padding:clamp(14px,2vw,20px);display:flex;flex-direction:column;gap:10px;overflow:auto;
  border-left:1px solid var(--line);background:color-mix(in srgb,var(--bg) 55%,transparent)}
.mk-art{margin:0;height:118px;flex:none;border-radius:10px;
  background:linear-gradient(180deg,rgba(5,13,12,.15),rgba(5,13,12,.8)),url('/static/img/gym/market-circuit-v2.webp') center/cover no-repeat}
.mk-licbox .mk-stamps{margin:10px 12px 12px}
.mk-lic-head{display:grid;gap:2px;padding:10px 12px;border:1px solid color-mix(in srgb,#bbf455 24%,var(--line));border-radius:10px;background:rgba(7,16,13,.78)}
.mk-lic-head>span{color:var(--ink-3);font:750 7.5px var(--mono);letter-spacing:.13em;text-transform:uppercase}
.mk-lic-head>b{font:900 1.05rem/1 var(--display);letter-spacing:-.02em}
.mk-lic-head>em{color:var(--ink-3);font:650 8px var(--mono);font-style:normal}
.mk-lic-rookie{color:var(--ink-2)}.mk-lic-nat{color:#74e2ff}.mk-lic-intl{color:var(--marginal)}.mk-lic-super{color:#bbf455}

.mk-verdict{display:grid;gap:3px;padding:10px 12px;border:1px solid var(--line);border-left-width:3px;border-radius:10px;background:rgba(7,16,13,.78)}
.mk-verdict>span{color:var(--ink-3);font:750 7.5px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.mk-verdict>b{font:900 1.1rem/1 var(--display);letter-spacing:-.02em}
.mk-verdict>small{color:var(--ink-2);font:650 8.5px/1.5 var(--mono)}
.mk-verdict.big{padding:14px 16px}.mk-verdict.big>b{font-size:1.5rem}
/* in the garage the verdict IS the pitch — give it hero weight */
.mk-license>.mk-verdict{padding:13px 15px;gap:4px}
.mk-license>.mk-verdict>b{font-size:1.45rem}
.mk-license>.mk-verdict>small{font:650 10px/1.55 var(--mono)}
.mk-v-real{border-left-color:var(--real)}.mk-v-real>b{color:var(--real)}
.mk-v-humo{border-left-color:var(--humo)}.mk-v-humo>b{color:var(--humo)}
.mk-v-marginal{border-left-color:var(--marginal)}.mk-v-marginal>b{color:var(--marginal)}
.mk-v-measuring{border-left-color:#74e2ff}.mk-v-measuring>b{color:#74e2ff}

.mk-stamps{margin:0;padding:0;display:grid;gap:4px;list-style:none}
.mk-stamps li{padding:7px 9px;display:grid;grid-template-columns:16px 1fr;gap:2px 8px;align-items:center;
  border:1px solid var(--line);border-radius:8px;background:rgba(7,16,13,.88);opacity:.72}
.mk-stamps li.got{opacity:1;border-color:color-mix(in srgb,#bbf455 42%,var(--line));background:color-mix(in srgb,#bbf455 8%,rgba(7,16,13,.8))}
.mk-stamps i{grid-row:span 2;color:var(--ink-3);font:800 13px var(--mono);font-style:normal;text-align:center}
.mk-stamps li.got i{color:#bbf455}
.mk-stamps b{font:800 9px var(--mono);letter-spacing:.08em}
.mk-stamps span{color:var(--ink-3);font:600 8px/1.4 var(--mono)}

/* last-laps form guide: one bar per lap, the loop at a glance */
.mk-form{padding:11px 13px;display:grid;gap:8px;border:1px solid var(--line);border-radius:10px;background:rgba(7,16,13,.66)}
.mk-form>span{display:flex;justify-content:space-between;gap:8px;flex-wrap:wrap;
  color:var(--ink-3);font:750 7.5px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.mk-form>span>em{color:#bbf455;font-style:normal;letter-spacing:.04em}
.mk-form>p{margin:0;color:var(--ink-3);font-size:10.5px;line-height:1.5}
.mk-form>b{color:var(--ink-3);font:650 8px var(--mono);letter-spacing:.05em}
.mk-bars{height:100px;display:flex;align-items:center;justify-content:flex-start;gap:4px;position:relative}
.mk-bars::before{content:"";position:absolute;left:0;right:0;top:50%;height:1px;background:var(--line)}
/* max-width keeps a single early lap from rendering as a full-width slab */
.mk-bars>i{flex:1 1 0;min-width:5px;max-width:34px;border-radius:2px;position:relative}
.mk-bars>i.up{align-self:flex-end;margin-bottom:50px;background:color-mix(in srgb,var(--real) 82%,transparent)}
.mk-bars>i.dn{align-self:flex-start;margin-top:50px;background:color-mix(in srgb,var(--humo) 78%,transparent)}

.mk-ghostbox{padding:9px 11px;display:flex;flex-wrap:wrap;gap:5px;align-items:center;
  border:1px dashed var(--line);border-radius:9px;background:rgba(7,16,13,.66)}
.mk-ghostbox>span{width:100%;color:var(--ink-3);font:750 7.5px var(--mono);letter-spacing:.12em;text-transform:uppercase}
.mk-ghostbox>em{padding:3px 8px;border:1px solid color-mix(in srgb,var(--gt) 45%,var(--line));border-radius:999px;
  color:var(--gt);font:700 8px var(--mono);font-style:normal}

/* ---- race chrome ---- */
.mk-toast{position:absolute;top:52px;left:50%;transform:translateX(-50%);z-index:4;padding:7px 14px;
  border:1px solid color-mix(in srgb,#bbf455 40%,var(--line));border-radius:999px;background:rgba(7,16,13,.92);
  color:#d9efc4;font:700 10px var(--mono);letter-spacing:.05em;white-space:nowrap;animation:mkToast 2.4s ease forwards}
@keyframes mkToast{0%{opacity:0;translate:0 -8px}12%{opacity:1;translate:0 0}82%{opacity:1}100%{opacity:0;translate:0 -6px}}

.mk-commit{position:absolute;z-index:5;left:50%;bottom:16px;transform:translateX(-50%);width:min(520px,calc(100% - 24px));
  padding:14px 16px;display:grid;gap:5px;pointer-events:auto;
  border:1px solid color-mix(in srgb,var(--marginal) 40%,var(--line));border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--surface) 95%,transparent);box-shadow:0 16px 44px rgba(0,0,0,.4);backdrop-filter:blur(10px)}
.mk-commit>span{color:var(--marginal);font:750 8.5px var(--mono);letter-spacing:.11em;text-transform:uppercase}
.mk-commit>b{font:800 .98rem var(--display);letter-spacing:-.02em}
.mk-commit>p{margin:0;color:var(--ink-2);font-size:.76rem;line-height:1.5}
.mk-go{width:100%;min-height:42px;margin-top:5px;display:flex;align-items:center;justify-content:center;gap:8px;
  cursor:pointer;border:0;border-radius:8px;background:var(--marginal);color:#0d0b05;font:850 10px var(--mono);letter-spacing:.06em}
.mk-go span{margin-left:auto;font-size:8px;opacity:.6}

/* ---- control deck ---- */
.gym-actions:has(.mk-deck){display:block}
.mk-deck{width:100%;max-width:760px;margin:0 auto;display:grid;grid-template-columns:1fr auto;gap:8px;align-items:stretch}
.mk-thr{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}
.mk-thrb{position:relative;min-height:40px;padding:5px 8px;display:grid;gap:1px;place-content:center;cursor:pointer;
  border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink-2)}
.mk-thrb b{font:850 12px var(--mono);letter-spacing:-.01em}
.mk-thrb small{font:650 7.5px var(--mono);letter-spacing:.08em;opacity:.7}
.mk-thrb i{position:absolute;top:4px;right:6px;font:700 7px var(--mono);font-style:normal;opacity:.4}
.mk-thrb.on{border-color:var(--marginal);background:color-mix(in srgb,var(--marginal) 16%,var(--surface));color:var(--marginal);
  box-shadow:inset 0 -2px 0 var(--marginal)}
.mk-stance{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}
.mk-st{min-height:52px;padding:6px 10px;display:grid;gap:2px;place-content:center;cursor:pointer;
  border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 88%,transparent);
  color:var(--ink);font:800 12px var(--mono);letter-spacing:.05em}
.mk-st small{font:600 7.5px var(--mono);opacity:.55}
.mk-st:hover{border-color:color-mix(in srgb,#74e2ff 45%,var(--line))}
.mk-st-long.on{color:#07100e;border-color:var(--real);background:var(--real);box-shadow:0 0 20px color-mix(in srgb,var(--real) 45%,transparent)}
.mk-st-short.on{color:#07100e;border-color:var(--humo);background:var(--humo);box-shadow:0 0 20px color-mix(in srgb,var(--humo) 45%,transparent)}
.mk-st-flat.on{color:#07100e;border-color:#74e2ff;background:#74e2ff;box-shadow:0 0 20px rgba(116,226,255,.4)}
.mk-pause{min-width:92px;min-height:52px;padding:6px 12px;display:grid;gap:1px;place-content:center;cursor:pointer;
  border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--surface) 88%,transparent);
  color:var(--ink-3);font:800 11px var(--mono)}
.mk-pause span{font:650 7.5px var(--mono);letter-spacing:.1em}
.mk-pause i{font:700 7px var(--mono);font-style:normal;opacity:.45}
.mk-pause.on{border-color:#bbf455;color:#bbf455}

/* ---- debrief ---- */
.mk-debrief{position:absolute;z-index:5;top:50%;left:50%;transform:translate(-50%,-50%);width:min(680px,calc(100% - 20px));
  max-height:calc(100% - 16px);overflow:auto;padding:15px;pointer-events:auto;
  border:1px solid color-mix(in srgb,#bbf455 30%,var(--line));border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 18px 48px rgba(0,0,0,.36);backdrop-filter:blur(10px)}
.mk-deb-head{display:flex;justify-content:space-between;align-items:flex-start;gap:10px}
.mk-deb-head>div{display:grid;gap:3px}
.mk-deb-head span{color:#74e2ff;font:750 8.5px var(--mono);letter-spacing:.1em;text-transform:uppercase}
.mk-deb-head b{font:800 1rem var(--display);letter-spacing:-.02em}
.mk-deb-head>i{color:#bbf455;font:900 19px var(--mono);font-style:normal}
/* auto-flow: the tab count changes when a duel adds the head-to-head */
.mk-tabs{margin:12px 0 11px;display:grid;grid-auto-flow:column;grid-auto-columns:1fr;gap:4px;padding:3px;
  border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 55%,transparent)}
.mk-tabs button{min-height:32px;cursor:pointer;border:0;border-radius:7px;background:transparent;color:var(--ink-3);
  font:800 8.5px var(--mono);letter-spacing:.1em}
.mk-tabs button.active{background:color-mix(in srgb,#bbf455 14%,var(--surface));color:#bbf455}
.mk-pane.hidden{display:none}
.mk-map{width:100%;height:150px;display:block;border:1px solid var(--line);border-radius:9px}
.mk-eq{width:100%;height:150px;display:block;border:1px solid var(--line);border-radius:9px}
.mk-maplegend{margin-top:7px;display:flex;flex-wrap:wrap;gap:11px;color:var(--ink-3);font:650 8px var(--mono);letter-spacing:.05em}
.mk-maplegend .l{color:var(--real)}.mk-maplegend .s{color:var(--humo)}.mk-maplegend .c{color:var(--marginal)}
.mk-stats{margin-top:11px;padding:10px 0;display:grid;grid-template-columns:repeat(4,1fr);gap:9px 6px;
  border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mk-stats>span{padding:0 6px;display:grid;gap:3px;color:var(--ink-3);font:650 7.5px/1.3 var(--mono);letter-spacing:.05em;text-transform:uppercase}
.mk-stats b{color:var(--ink);font:750 12px var(--mono);letter-spacing:-.02em}
.mk-stats b.good{color:var(--real)}.mk-stats b.bad{color:var(--humo)}
.mk-coach{margin-top:11px;padding:10px 12px;border:1px solid var(--line);border-radius:9px;background:color-mix(in srgb,var(--bg) 55%,transparent)}
.mk-coach>b{color:#74e2ff;font:750 8px var(--mono);letter-spacing:.1em}
.mk-coach>p{margin:4px 0 0;color:var(--ink-2);font-size:.76rem;line-height:1.5}

.mk-tab{width:100%;margin-top:11px;border-collapse:collapse;font:650 9px var(--mono)}
.mk-tab th{padding:5px 7px;text-align:left;color:var(--ink-3);font-weight:750;letter-spacing:.08em;border-bottom:1px solid var(--line)}
.mk-tab td{padding:6px 7px;color:var(--ink-2);border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.mk-tab td:first-child{color:var(--ink);font-weight:700}
.mk-tab td i{display:inline-block;width:9px;height:3px;margin-right:6px;border-radius:2px;vertical-align:middle}
.mk-tab td.good{color:var(--real)}.mk-tab td.bad{color:var(--humo)}
.mk-tab tr.push td{background:color-mix(in srgb,var(--marginal) 7%,transparent)}
.mk-corners tr.ok td:last-child{color:var(--real)}.mk-corners tr.no td:last-child{color:var(--ink-3)}
.mk-note{margin:9px 0 0;padding-left:9px;border-left:2px solid var(--marginal);color:var(--ink-3);font-size:11px;line-height:1.5}
.mk-pane .mk-lic-head{margin-top:12px}
.mk-pane .mk-stamps{margin-top:8px;grid-template-columns:1fr 1fr}
/* the action bar sticks to the bottom of the scrolling debrief — the challenge
   button was below the fold, so in practice it did not exist */
.mk-actbar{position:sticky;bottom:-15px;z-index:2;margin:13px -15px -15px;padding:12px 15px;
  display:grid;grid-template-columns:auto 1fr;gap:8px;
  border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface) 97%,transparent)}
.mk-chalopen{min-height:44px;padding:0 16px;cursor:pointer;white-space:nowrap;
  border:1px solid #ff7fc4;border-radius:9px;background:color-mix(in srgb,#ff7fc4 14%,transparent);
  color:#ff7fc4;font:850 11px var(--mono);letter-spacing:.05em}
.mk-chalopen:hover{background:color-mix(in srgb,#ff7fc4 24%,transparent)}
.mk-see{width:100%;min-height:44px;padding:0 14px;display:flex;align-items:center;justify-content:center;gap:8px;
  cursor:pointer;border:0;border-radius:9px;background:#bbf455;color:#07100e;font:850 11px var(--mono);letter-spacing:.06em}
.mk-see span{margin-left:auto;font-size:8px;opacity:.62}
.mk-selfghost{min-height:40px;margin-top:2px;cursor:pointer;border:1px solid var(--line);border-radius:9px;
  background:color-mix(in srgb,var(--bg) 55%,transparent);color:var(--ink);font:800 10.5px var(--mono);letter-spacing:.04em}
.mk-selfghost:hover{border-color:#bbf455;color:#bbf455}
.mk-makechal{min-height:44px;cursor:pointer;border:1px solid color-mix(in srgb,#ff7fc4 45%,var(--line));border-radius:9px;
  background:color-mix(in srgb,#ff7fc4 10%,transparent);color:#ff7fc4;font:850 10.5px var(--mono);letter-spacing:.05em}
.mk-makechal:hover{background:color-mix(in srgb,#ff7fc4 20%,transparent)}

/* ---- duels: async multiplayer by ghost ---- */
.mk-duelbar{margin-bottom:14px;padding:12px 14px;display:grid;gap:3px;
  border:1px solid color-mix(in srgb,#ff7fc4 45%,var(--line));border-left-width:3px;border-radius:11px;
  background:color-mix(in srgb,#ff7fc4 8%,var(--surface))}
.mk-duelbar.is-bad{border-color:color-mix(in srgb,var(--marginal) 55%,var(--line));background:color-mix(in srgb,var(--marginal) 8%,var(--surface))}
.mk-duelbar.is-bad>span{color:var(--marginal)}
.mk-duelbar>span{color:#ff7fc4;font:800 8px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.mk-duelbar>b{font:800 1rem var(--display);letter-spacing:-.02em}
.mk-duelbar>em{color:var(--ink);font:700 10px var(--mono);font-style:normal}
.mk-duelbar>small{color:var(--ink-3);font-size:10.5px;line-height:1.45}
.mk-dueldrop{justify-self:start;margin-top:6px;padding:5px 10px;cursor:pointer;
  border:1px solid var(--line);border-radius:999px;background:transparent;color:var(--ink-3);font:700 8.5px var(--mono);letter-spacing:.06em}
.mk-dueldrop:hover{color:var(--ink-2);border-color:var(--ink-3)}

/* what is at stake, before the lights */
.mk-stake{margin-top:7px;padding:8px 10px;border-radius:8px;font:650 10px/1.5 var(--mono)}
.mk-stake b{font-weight:850;letter-spacing:.06em}
.mk-stake.warn{border:1px solid color-mix(in srgb,var(--marginal) 45%,var(--line));
  background:color-mix(in srgb,var(--marginal) 10%,transparent);color:var(--marginal)}
.mk-stake.anon{border:1px dashed var(--line);background:color-mix(in srgb,var(--bg) 45%,transparent);color:var(--ink-3)}
.mk-stake.anon b{color:var(--ink-2)}
.mk-stake.done{border:1px solid color-mix(in srgb,var(--real) 40%,var(--line));
  background:color-mix(in srgb,var(--real) 8%,transparent);color:var(--real)}
.mk-sent{margin:0;padding:9px 11px;border-radius:8px;font:750 10px/1.5 var(--mono);text-align:center}
.mk-sent.pending{border:1px dashed var(--line);color:var(--ink-3)}
.mk-sent.ok{border:1px solid color-mix(in srgb,var(--real) 45%,var(--line));
  background:color-mix(in srgb,var(--real) 9%,transparent);color:var(--real)}
.mk-sent.bad{border:1px solid color-mix(in srgb,var(--marginal) 45%,var(--line));color:var(--marginal)}
.mk-synced{margin-left:auto;color:var(--real);font:700 8px var(--mono);font-style:normal;letter-spacing:.08em}

.mk-duelres{margin:0 0 12px;padding:12px 14px;display:grid;gap:3px;
  border:1px solid var(--line);border-left-width:3px;border-radius:10px;background:color-mix(in srgb,var(--bg) 45%,transparent)}
.mk-duelres>b{font:900 1.15rem/1 var(--display);letter-spacing:-.02em}
.mk-duelres>span{color:var(--ink-2);font:650 10px/1.5 var(--mono)}
.mk-d-win{border-left-color:var(--real);background:color-mix(in srgb,var(--real) 8%,transparent)}
.mk-d-win>b{color:var(--real)}
.mk-d-loss{border-left-color:#ff7fc4;background:color-mix(in srgb,#ff7fc4 8%,transparent)}
.mk-d-loss>b{color:#ff7fc4}
.mk-d-void{border-left-color:var(--marginal)}.mk-d-void>b{color:var(--marginal);font-size:.95rem}

.mk-challenge{margin-top:13px;padding:12px 13px;display:grid;gap:8px;
  border:1px dashed color-mix(in srgb,#ff7fc4 40%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--bg) 45%,transparent)}
.mk-challenge label{display:grid;gap:4px}
.mk-challenge label>span{color:var(--ink-3);font:750 7.5px var(--mono);letter-spacing:.13em;text-transform:uppercase}
.mk-nameinput,.mk-chalurl{width:100%;min-height:36px;padding:7px 10px;border:1px solid var(--line);border-radius:8px;
  background:var(--bg);color:var(--ink);font:700 11px var(--mono)}
.mk-nameinput:focus,.mk-chalurl:focus{outline:none;border-color:#ff7fc4}
.mk-chalurl{margin-top:6px;font-size:9.5px;color:var(--ink-3)}
.mk-chal{min-height:42px;cursor:pointer;border:0;border-radius:9px;background:#ff7fc4;color:#1a0714;
  font:850 11px var(--mono);letter-spacing:.05em}
.mk-chal:hover{filter:brightness(1.07)}
.mk-chalnote{margin:0;color:var(--ink-3);font-size:10.5px;line-height:1.5}
.mk-chalok{display:block;color:var(--real);font:750 10px var(--mono)}

/* duel verdict carried onto the gym's own results card */
.mk-resduel{margin:4px 0 14px;padding:12px 14px;display:grid;gap:6px;justify-items:center;text-align:center;
  border:1px solid var(--line);border-radius:10px;background:color-mix(in srgb,var(--bg) 45%,transparent)}
.mk-resduel>b{font:900 .95rem/1 var(--display);letter-spacing:.02em}
.mk-resduel.w{border-color:color-mix(in srgb,var(--real) 45%,var(--line));background:color-mix(in srgb,var(--real) 8%,transparent)}
.mk-resduel.w>b{color:var(--real)}
.mk-resduel.l{border-color:color-mix(in srgb,#ff7fc4 45%,var(--line));background:color-mix(in srgb,#ff7fc4 8%,transparent)}
.mk-resduel.l>b{color:#ff7fc4}
.mk-resduel.v{border-color:color-mix(in srgb,var(--marginal) 45%,var(--line))}.mk-resduel.v>b{color:var(--marginal)}
.mk-resduel-grid{display:flex;align-items:center;justify-content:center;gap:14px;flex-wrap:wrap}
.mk-resduel-grid>span{display:grid;gap:2px;color:var(--ink-3);font:700 8.5px var(--mono);letter-spacing:.06em}
.mk-resduel-grid>span>b{color:var(--ink);font:800 1.15rem/1 var(--mono)}
.mk-resduel-grid>i{color:var(--ink-3);font:700 9px var(--mono);font-style:normal}
.mk-resduel>em{color:var(--ink-3);font:650 9px var(--mono);font-style:normal}

/* ---- challenges section ---- */
.mk-challenges{display:grid;gap:8px}
.mk-h-score{display:flex;align-items:baseline;gap:7px;padding:8px 12px;
  border:1px solid color-mix(in srgb,#ff7fc4 30%,var(--line));border-radius:9px;background:color-mix(in srgb,#ff7fc4 6%,transparent)}
.mk-h-score>b{color:#ff7fc4;font:900 1.35rem/1 var(--display)}
.mk-h-score>span{color:var(--ink-3);font:700 9px var(--mono);letter-spacing:.05em}
.mk-h-empty{margin:0;padding:11px 13px;border:1px dashed var(--line);border-radius:9px;
  color:var(--ink-3);font-size:11px;line-height:1.6;background:color-mix(in srgb,var(--bg) 40%,transparent)}
.mk-h-empty b{color:var(--ink-2)}
.mk-halllist{margin:0;padding:0;display:grid;gap:5px;list-style:none}
.mk-halllist li{padding:9px 11px;display:grid;grid-template-columns:1fr auto;gap:3px 10px;align-items:center;
  border:1px solid var(--line);border-left-width:3px;border-radius:9px;background:rgba(7,16,13,.6)}
.mk-h-badge{grid-column:1;font:800 8px var(--mono);letter-spacing:.1em}
.mk-halllist b{grid-column:1;font:800 10.5px var(--mono)}
.mk-h-meta{grid-column:1;color:var(--ink-3);font:650 8.5px var(--mono)}
.mk-halllist button{grid-column:2;grid-row:1/4;padding:7px 12px;cursor:pointer;border:1px solid var(--line);border-radius:999px;
  background:transparent;color:#ff7fc4;font:750 8.5px var(--mono);letter-spacing:.06em;white-space:nowrap}
.mk-halllist button:hover{border-color:#ff7fc4;background:color-mix(in srgb,#ff7fc4 8%,transparent)}
.mk-h-win{border-left-color:var(--real)}.mk-h-win .mk-h-badge{color:var(--real)}
.mk-h-loss{border-left-color:#ff7fc4}.mk-h-loss .mk-h-badge{color:#ff7fc4}
.mk-h-void{border-left-color:var(--marginal)}.mk-h-void .mk-h-badge{color:var(--marginal)}
.mk-h-open{border-left-color:#74e2ff}.mk-h-open .mk-h-badge{color:#74e2ff}
.mk-h-sent{border-left-color:var(--ink-3)}.mk-h-sent .mk-h-badge{color:var(--ink-3)}

/* ---- the answer view: what the challenger sees when the result comes back ---- */
.mk-answer{position:absolute;z-index:5;top:50%;left:50%;transform:translate(-50%,-50%);
  width:min(680px,calc(100% - 20px));max-height:calc(100% - 16px);overflow:auto;padding:15px;pointer-events:auto;
  border:1px solid color-mix(in srgb,#ff7fc4 34%,var(--line));border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--surface) 96%,transparent);box-shadow:0 18px 48px rgba(0,0,0,.4);backdrop-filter:blur(10px)}
.mk-ans-head{display:grid;gap:3px;margin-bottom:12px}
.mk-ans-head>span{color:#ff7fc4;font:800 8.5px var(--mono);letter-spacing:.13em;text-transform:uppercase}
.mk-ans-head>b{font:800 1.1rem var(--display);letter-spacing:-.02em}
.mk-ans-head>em{color:var(--ink-3);font:650 9px var(--mono);font-style:normal}
.mk-att{margin-top:4px;color:var(--real);font:700 9px/1.4 var(--mono);font-style:normal}
.mk-att.warn{color:var(--marginal)}
.mk-official{padding:9px 11px;display:grid;gap:3px;border:1px solid var(--line);border-left-width:3px;border-radius:8px;
  background:color-mix(in srgb,var(--bg) 50%,transparent)}
.mk-official>b{font:800 9px var(--mono);letter-spacing:.09em}
.mk-official>span{color:var(--ink-3);font-size:10.5px;line-height:1.5}
.mk-official.is-first{border-left-color:var(--real)}.mk-official.is-first>b{color:var(--real)}
.mk-official.is-practice{border-left-color:var(--marginal)}.mk-official.is-practice>b{color:var(--marginal)}
.mk-ansagain{min-height:44px;padding:0 16px;cursor:pointer;white-space:nowrap;
  border:1px solid #ff7fc4;border-radius:9px;background:color-mix(in srgb,#ff7fc4 14%,transparent);
  color:#ff7fc4;font:850 11px var(--mono);letter-spacing:.05em}
.mk-ansagain:hover{background:color-mix(in srgb,#ff7fc4 24%,transparent)}
.mk-ansclose{width:100%;min-height:44px;padding:0 14px;cursor:pointer;border:0;border-radius:9px;
  background:#bbf455;color:#07100e;font:850 11px var(--mono);letter-spacing:.06em}
.mk-answer .mk-actbar{margin:13px -15px -15px}
.mk-sendback{margin-top:13px;padding:12px 13px;display:grid;gap:7px;
  border:1px dashed color-mix(in srgb,#ff7fc4 40%,var(--line));border-radius:10px;background:color-mix(in srgb,var(--bg) 45%,transparent)}
.mk-reply{min-height:44px;cursor:pointer;border:0;border-radius:9px;background:#ff7fc4;color:#1a0714;
  font:850 10.5px var(--mono);letter-spacing:.04em}
.mk-reply:hover{filter:brightness(1.07)}

/* ---- head to head ---- */
.mk-h2h-head{display:grid;grid-template-columns:1.25fr 1fr 1fr;gap:8px;padding:0 2px 8px;
  border-bottom:1px solid var(--line)}
.mk-h2h-head>b{font:800 11px var(--mono);letter-spacing:.05em;text-align:center;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mk-h2h-head>b.me{color:#bbf455}.mk-h2h-head>b.them{color:#ff7fc4}
.mk-h2h{width:100%;border-collapse:collapse;table-layout:fixed}
.mk-h2h th{width:auto;padding:8px 2px;text-align:left;color:var(--ink-3);font:650 10px var(--mono);font-weight:650;
  border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.mk-h2h th>em{display:block;color:var(--ink-3);font:650 8px var(--mono);font-style:normal;opacity:.65}
.mk-h2h td{width:26%;padding:8px 4px;text-align:center;color:var(--ink-2);font:750 12px var(--mono);
  border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.mk-h2h td.w{color:var(--real);background:color-mix(in srgb,var(--real) 9%,transparent)}
.mk-h2h td.l{color:var(--ink-3)}

/* ---- responsive: the phone is a cockpit, not a shrunken desktop ---- */
@media(max-width:940px){
  /* one column, ONE scroll — nested overflow panes make a phone feel broken */
  .mk-garage{grid-template-columns:1fr;overflow:auto}
  .mk-bay,.mk-license{overflow:visible}
  .mk-license{border-left:0;border-top:1px solid var(--line);background:rgba(5,13,12,.55)}
  .mk-stamps{grid-template-columns:1fr 1fr}
  .mk-assets{grid-template-columns:repeat(3,1fr)}
  .mk-ghostbox{margin-top:0}
}
@media(max-width:790px){
  .gym-arena.mk-active{height:min(70vh,600px)}
  .mk-tracks button{grid-template-columns:96px 38px 1fr auto;gap:7px}
  .mk-tracks small{display:none}
  .mk-stats{grid-template-columns:repeat(2,1fr)}
  .mk-how{grid-template-columns:1fr;gap:5px}
  .mk-how li{padding:8px 10px}
  .mk-modes{grid-template-columns:1fr}
  .mk-modes button{min-height:0;grid-template-columns:1fr auto;grid-template-areas:"name time" "desc desc";align-items:center}
  .mk-modes b{grid-area:name}
  .mk-modes em{grid-area:time;justify-self:end}
  .mk-modes span{grid-area:desc}
  .mk-deck{max-width:none;grid-template-columns:1fr}
  .mk-pause{min-height:42px}
}
@media(max-width:560px){
  .gym-arena.mk-active{height:min(58vh,480px)}
  .mk-bay{padding:14px 12px}
  .mk-bay h3{max-width:none}
  .mk-assets{grid-template-columns:repeat(3,1fr)}
  .mk-art{height:88px}
  .mk-tracks button{grid-template-columns:88px 1fr auto;gap:6px}
  .mk-tracks button.mk-rand{grid-template-columns:1fr auto}
  .mk-tracks i,.mk-tracks span{display:none}
  .mk-map,.mk-eq{height:124px}
  .mk-debrief{width:calc(100% - 12px);padding:12px}
  .mk-pane .mk-stamps{grid-template-columns:1fr}
  .mk-st{min-height:60px;font-size:13px}
  .mk-thrb{min-height:44px}
  .mk-tabs{grid-auto-flow:row;grid-template-columns:1fr 1fr}
  .mk-tabs button{font-size:8px;letter-spacing:.06em}
  .mk-h2h-head{grid-template-columns:1fr .8fr .8fr}
  .mk-h2h th{font-size:9px}
  .mk-h2h td{width:28%;font-size:11px;padding:7px 2px}
  .mk-commit{bottom:10px;padding:12px 13px}
  .mk-commit>p{font-size:.72rem}
  /* one row, not two: on a short phone panel a stacked bar ate half the table */
  .mk-actbar{grid-template-columns:auto 1fr;gap:6px;margin:11px -12px -12px;padding:9px 12px;bottom:-12px}
  .mk-chalopen{min-height:44px;padding:0 11px;font-size:10px}
  .mk-see{min-height:44px;font-size:10px}
  .mk-see span{display:none}
}
@media(max-width:380px){
  .mk-st small,.mk-thrb i{display:none}
  .mk-stats{grid-template-columns:repeat(2,1fr);gap:8px 4px}
}

/* ============================================================
   TRAINER EVIDENCE (v5) — measured statistical base panel
   (#edge-panel) + measured notes in the verdict coach chips.
   Anti-humo: every coach claim shows its measured rate; the
   panel gives per-condition verdicts on THIS market+timeframe.
   ============================================================ */
.edge-panel{
  margin:2px 2px 0;border:1px solid var(--line);border-radius:14px;
  background:color-mix(in srgb, var(--surface) 82%, transparent);
  overflow:hidden;
}
.ep-head{
  display:flex;align-items:center;gap:10px;width:100%;
  padding:9px 14px;background:none;border:0;cursor:pointer;text-align:left;
  font-family:inherit;
}
.ep-head:hover{background:color-mix(in srgb, var(--ink) 4%, transparent)}
.ep-kicker{font-weight:750;color:var(--ink);font-size:.86rem;letter-spacing:.1px}
.ep-sub{color:var(--ink-3);font-size:.74rem;margin-left:auto;white-space:nowrap}
.ep-chev{color:var(--ink-3);font-style:normal;font-size:.8rem}
.ep-body{padding:0 14px 12px}
.ep-facts{
  display:flex;flex-wrap:wrap;gap:4px 18px;margin:0 0 10px;
  color:var(--ink-2);font-size:.78rem;line-height:1.5;
}
.ep-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:8px}
.ep-cond{
  border:1px solid var(--line);border-radius:10px;padding:8px 10px;
  display:grid;grid-template-columns:1fr auto;align-items:center;gap:2px 10px;
  background:color-mix(in srgb, var(--ink) 3%, transparent);
}
.ep-cond.real{border-color:color-mix(in srgb, var(--real) 40%, var(--line))}
.ep-cond.inv{border-color:color-mix(in srgb, var(--accent-2) 38%, var(--line))}
.epc-name{grid-column:1/-1;font-size:.76rem;color:var(--ink-2);line-height:1.35}
.epc-hit{font-size:1.02rem;font-weight:760;color:var(--ink);font-variant-numeric:tabular-nums}
.epc-verdict{
  justify-self:end;font-size:.62rem;font-weight:800;letter-spacing:.5px;
  padding:2.5px 8px;border-radius:20px;border:1px solid currentColor;white-space:nowrap;
}
.epc-verdict.real{color:var(--real);background:color-mix(in srgb, var(--real) 12%, transparent)}
.epc-verdict.none{color:color-mix(in srgb, var(--humo) 82%, var(--ink-2));background:color-mix(in srgb, var(--humo) 9%, transparent)}
.epc-verdict.inv{color:var(--accent-2);background:color-mix(in srgb, var(--accent-2) 12%, transparent)}
.epc-verdict.short{color:var(--marginal);background:color-mix(in srgb, var(--marginal) 10%, transparent)}
.epc-n{grid-column:1/-1;font-size:.68rem;color:var(--ink-3);font-style:normal;font-variant-numeric:tabular-nums}
.ep-note{margin:10px 0 0;font-size:.72rem;color:var(--ink-3);line-height:1.55}
/* measured note inside a coach chip: "54.4% vs 51%" */
.vdc-m{font-style:normal;font-weight:650;font-size:.86em;opacity:.78;margin-left:2px;font-variant-numeric:tabular-nums}
.vdc.vdc-link{cursor:pointer;color:var(--accent-2);border-color:color-mix(in srgb, var(--accent-2) 45%, var(--line))}
.vdc.vdc-link:hover{background:color-mix(in srgb, var(--accent-2) 12%, transparent)}
/* per-strategy evidence disclosure in the mode note */
.mn-evid{font-style:normal;color:var(--ink-2)}
@media(max-width:640px){
  .ep-sub{display:none}
  .ep-grid{grid-template-columns:1fr 1fr}
  .epc-name{font-size:.72rem}
}
@media(max-width:430px){
  .ep-grid{grid-template-columns:1fr}
}

/* ============================================================
   TRAINER VERIFIED EDGE (v6) — OOS-validated panel additions
   (TL;DR line, PAYS/DOESN'T-PAY chips, "died off" verdict),
   the measured-system banner (#edge-system), the honest
   no-edge screen with alternatives, and the PROCESS verdict
   row of the edge drill.
   ============================================================ */
/* panel v2 */
.ep-tldr{
  margin:0 0 10px;padding:8px 12px;border-radius:10px;
  font-size:.8rem;line-height:1.5;color:var(--ink);
  background:color-mix(in srgb, var(--accent-2) 7%, transparent);
  border:1px solid color-mix(in srgb, var(--accent-2) 22%, var(--line));
}
.ep-cond.off{border-color:color-mix(in srgb, var(--marginal) 45%, var(--line))}
.epc-verdict.off{color:var(--marginal);background:color-mix(in srgb, var(--marginal) 12%, transparent)}
.epc-pay{
  grid-column:1/-1;justify-self:start;font-size:.64rem;font-weight:800;letter-spacing:.4px;
  padding:2.5px 8px;border-radius:20px;white-space:nowrap;
}
.epc-pay.yes{color:var(--real);background:color-mix(in srgb, var(--real) 14%, transparent);border:1px solid color-mix(in srgb, var(--real) 45%, transparent)}
.epc-pay.no{color:var(--ink-2);background:color-mix(in srgb, var(--humo) 10%, transparent);border:1px dashed color-mix(in srgb, var(--humo) 45%, var(--line))}
/* measured-system banner (edge mode) */
.edge-system{
  margin:2px 2px 0;padding:10px 14px;border-radius:14px;
  border:1px solid color-mix(in srgb, var(--real) 30%, var(--line));
  background:color-mix(in srgb, var(--real) 5%, var(--surface));
}
.es-kicker{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-weight:750;font-size:.84rem;color:var(--ink)}
.es-badge{
  font-style:normal;font-size:.6rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  color:var(--real);border:1px solid color-mix(in srgb, var(--real) 50%, transparent);
  border-radius:20px;padding:2px 8px;background:color-mix(in srgb, var(--real) 10%, transparent);
}
.es-lines{display:flex;flex-direction:column;gap:2px;margin:7px 0 0}
.es-cond{font-size:.8rem;color:var(--ink-2);line-height:1.5;font-variant-numeric:tabular-nums}
.es-cond b{color:var(--ink)}
.es-net{font-style:normal;font-weight:700;color:var(--real)}
.es-note{margin:7px 0 0;font-size:.73rem;color:var(--ink-3);line-height:1.55}
/* honest no-edge screen (inside #trainer-loading) */
.noedge{display:flex;flex-direction:column;gap:8px;max-width:560px;margin:0 auto;text-align:left}
.ne-title{font-size:.95rem;color:var(--ink)}
.ne-p{margin:0;font-size:.8rem;color:var(--ink-2);line-height:1.6}
.ne-k{font-size:.68rem;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:var(--ink-3);margin-top:4px}
.ne-alts{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:8px}
.ne-alt{
  display:flex;flex-direction:column;gap:3px;text-align:left;cursor:pointer;
  border:1px solid color-mix(in srgb, var(--real) 32%, var(--line));border-radius:10px;
  padding:8px 11px;background:color-mix(in srgb, var(--real) 5%, transparent);
  font-family:inherit;color:var(--ink);
}
.ne-alt:hover{background:color-mix(in srgb, var(--real) 11%, transparent)}
.ne-alt b{font-size:.8rem}
.ne-alt span{font-size:.71rem;color:var(--ink-2);line-height:1.4;font-variant-numeric:tabular-nums}
/* process verdict row (edge drill) */
.vd-row.vd-proc b{letter-spacing:.3px}
/* edge block in the summary */
.sum-edge h3{display:flex;align-items:center;gap:6px}
@media(max-width:640px){
  .es-kicker{font-size:.8rem}
  .ne-alts{grid-template-columns:1fr}
}

/* ============================================================
   TRAINER MEASURED DISCRETION (v7) — the 🧠 track picker with
   its earned-unlock state, the persistent filter-ledger card
   (#dledger: taken/skipped/Δ-vs-mechanical/stratified z with
   ADDS/SUBTRACTS/MEASURING verdicts), the per-question filter
   row on the verdict card, and the discretionary summary block.
   ============================================================ */
/* track picker (inside the controls row, edge mode only) */
.track-seg .seg-btn.locked{opacity:.55;cursor:pointer}
.track-seg .seg-btn.locked::after{content:" 🔒";font-size:.85em}
.track-note{
  margin:6px 0 0;font-size:.7rem;line-height:1.5;color:var(--ink-2);
  padding:6px 10px;border-radius:9px;
  border:1px dashed color-mix(in srgb, var(--marginal) 45%, var(--line));
  background:color-mix(in srgb, var(--marginal) 7%, transparent);
}
/* the filter ledger card */
.dledger{
  margin:2px 2px 0;padding:10px 14px;border-radius:14px;
  border:1px solid color-mix(in srgb, var(--accent-2) 30%, var(--line));
  background:color-mix(in srgb, var(--accent-2) 5%, var(--surface));
}
.dl-head{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.dl-kicker{font-weight:750;font-size:.84rem;color:var(--ink)}
.dl-verdict,.dl-mini{
  font-style:normal;font-size:.62rem;font-weight:800;letter-spacing:.5px;text-transform:uppercase;
  border-radius:20px;padding:2.5px 9px;white-space:nowrap;
}
.dl-verdict.adds,.dl-mini.adds{color:var(--real);border:1px solid color-mix(in srgb, var(--real) 50%, transparent);background:color-mix(in srgb, var(--real) 12%, transparent)}
.dl-verdict.subtracts,.dl-mini.subtracts{color:var(--humo);border:1px solid color-mix(in srgb, var(--humo) 50%, transparent);background:color-mix(in srgb, var(--humo) 10%, transparent)}
.dl-verdict.measuring,.dl-mini.measuring{color:var(--ink-2);border:1px dashed color-mix(in srgb, var(--ink-3) 55%, var(--line));background:color-mix(in srgb, var(--ink-3) 8%, transparent)}
.dl-head .tp-reset{margin-left:auto}
.dl-grid{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:8px;margin:9px 0 0;
}
.dl-grid>div{
  display:flex;flex-direction:column;gap:1px;padding:7px 10px;border-radius:10px;
  border:1px solid var(--line);background:color-mix(in srgb, var(--surface) 60%, transparent);
}
.dl-grid span{font-size:.62rem;font-weight:700;letter-spacing:.4px;text-transform:uppercase;color:var(--ink-3)}
.dl-grid b{font-size:1rem;color:var(--ink);font-variant-numeric:tabular-nums}
.dl-grid b.up{color:var(--real)}
.dl-grid b.down{color:var(--humo)}
.dl-grid em{font-style:normal;font-size:.66rem;color:var(--ink-3);font-variant-numeric:tabular-nums}
.dl-buckets{display:flex;flex-wrap:wrap;gap:6px;margin:8px 0 0}
.dl-b{
  font-size:.68rem;font-weight:650;color:var(--ink-2);font-variant-numeric:tabular-nums;
  border:1px solid var(--line);border-radius:20px;padding:2.5px 9px;
  background:color-mix(in srgb, var(--surface) 70%, transparent);
}
.dl-b.up{color:var(--real);border-color:color-mix(in srgb, var(--real) 40%, var(--line))}
.dl-b.down{color:var(--humo);border-color:color-mix(in srgb, var(--humo) 40%, var(--line))}
.dl-b em{font-style:normal;opacity:.7;margin-left:2px}
.dl-note{margin:9px 0 0;font-size:.72rem;color:var(--ink-3);line-height:1.55}
/* verdict-card filter row + banner variants */
.vd-row.vd-filter b{letter-spacing:.2px}
.vd-row.vd-filter i{font-style:normal;font-weight:750}
.es-badge-disc{color:var(--accent-2);border-color:color-mix(in srgb, var(--accent-2) 50%, transparent);background:color-mix(in srgb, var(--accent-2) 10%, transparent)}
.es-note.es-disc{color:var(--ink-2)}
/* discretionary summary block */
.sum-disc .rs-grid b small{font-weight:600}
.sum-disc .dl-mini{vertical-align:1px;margin:0 2px}
@media(max-width:640px){
  .dl-grid{grid-template-columns:1fr 1fr}
  .dl-kicker{font-size:.78rem}
  .dl-head .tp-reset{margin-left:0}
}

/* ============================================================================
   LANDING NAV + UI POLISH (v295)
   Professional scroll-driven command bar: transparent at top → dense glass +
   progress hairline + compact height when scrolled. Active section highlight.
   Landing-only selectors so analyzer/trainer/reverse keep their floating pill.
   ============================================================================ */

/* ---- scroll-driven header (landing only) ---- */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr{
  --hdr-pad-y: 0px;
  --hdr-bg: color-mix(in srgb, var(--bg) 0%, transparent);
  --hdr-border: transparent;
  --hdr-shadow: 0 0 0 transparent;
  --hdr-blur: 0px;
  --nav-h-live: 72px;
  position: sticky;
  top: 0;
  z-index: 80;
  padding: var(--hdr-pad-y) 0;
  background: var(--hdr-bg);
  border-bottom: 1px solid var(--hdr-border);
  box-shadow: var(--hdr-shadow);
  backdrop-filter: blur(var(--hdr-blur)) saturate(160%);
  -webkit-backdrop-filter: blur(var(--hdr-blur)) saturate(160%);
  transition:
    background .38s var(--ease),
    border-color .38s var(--ease),
    box-shadow .42s var(--ease),
    backdrop-filter .38s var(--ease),
    -webkit-backdrop-filter .38s var(--ease),
    padding .32s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled{
  --hdr-bg: color-mix(in srgb, var(--bg) 82%, transparent);
  --hdr-border: color-mix(in srgb, var(--line) 88%, transparent);
  --hdr-shadow: 0 10px 36px -20px rgba(0,0,0,.55);
  --hdr-blur: 18px;
  --nav-h-live: 60px;
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled-deep{
  --hdr-bg: color-mix(in srgb, var(--bg) 94%, transparent);
  --hdr-border: color-mix(in srgb, var(--line-2) 70%, transparent);
  --hdr-shadow:
    0 14px 40px -22px rgba(0,0,0,.62),
    0 1px 0 color-mix(in srgb, var(--accent) 8%, transparent);
  --hdr-blur: 24px;
  --nav-h-live: 56px;
}
[data-theme="light"] body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled{
  --hdr-bg: color-mix(in srgb, #ffffff 88%, transparent);
  --hdr-border: color-mix(in srgb, var(--line) 92%, transparent);
  --hdr-shadow: 0 12px 32px -22px rgba(13,18,15,.14);
}
[data-theme="light"] body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled-deep{
  --hdr-bg: color-mix(in srgb, #ffffff 96%, transparent);
  --hdr-border: color-mix(in srgb, var(--line-2) 80%, transparent);
  --hdr-shadow: 0 16px 40px -24px rgba(13,18,15,.16);
}

/* content row: height compresses on scroll */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .wrap.nav{
  min-height: var(--nav-h-live);
  padding: 0 28px;
  background: none !important;
  border: 0 !important;
  border-radius: 0 !important;
  box-shadow: none !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  overflow: visible;
  transition: min-height .32s var(--ease);
}
@media (max-width:760px){
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .wrap.nav{
    padding: 0 16px;
  }
}

/* brand: subtle scale-in when scrolled */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .brand{
  transition: transform .32s var(--ease), opacity .32s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .logo-mark{
  width: 40px;
  height: 40px;
  transition: width .32s var(--ease), height .32s var(--ease), box-shadow .32s var(--ease), transform .32s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled .logo-mark{
  width: 34px;
  height: 34px;
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .brand-txt{
  transition: font-size .32s var(--ease), letter-spacing .32s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled .brand-txt{
  font-size: 16px;
}

/* scroll progress hairline — re-enabled, lives on the bar bottom */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr::after{
  content: "";
  display: block !important;
  position: absolute;
  left: 0;
  bottom: 0;
  height: 2px;
  width: calc(var(--scrollp, 0) * 100%);
  max-width: 100%;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  box-shadow: 0 0 14px color-mix(in srgb, var(--accent) 50%, transparent);
  opacity: 0;
  transform: scaleX(1);
  transform-origin: left center;
  transition: opacity .28s var(--ease), width .1s linear;
  pointer-events: none;
  z-index: 2;
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled::after{
  opacity: 1;
}

/* nav links: refined underline + active section state */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary){
  position: relative;
  color: var(--ink-2);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 500;
  letter-spacing: .12em;
  text-transform: uppercase;
  padding: 8px 12px;
  border-radius: var(--radius-sm);
  transition:
    color .22s var(--ease),
    background .22s var(--ease),
    transform .22s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary)::after{
  content: "";
  position: absolute;
  left: 12px;
  right: 12px;
  bottom: 4px;
  height: 1.5px;
  border-radius: 2px;
  background: linear-gradient(90deg, var(--accent), var(--accent-2));
  transform: scaleX(0);
  transform-origin: left center;
  transition: transform .28s var(--ease-out);
  opacity: .95;
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary):hover{
  color: var(--ink);
  background: color-mix(in srgb, var(--ink) 5%, transparent);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary):hover::after,
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary).is-active::after{
  transform: scaleX(1);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary).is-active{
  color: var(--ink);
  background: color-mix(in srgb, var(--accent) 8%, transparent);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a[data-i]::before{
  transition: opacity .22s var(--ease), color .22s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a.is-active[data-i]::before{
  opacity: 1;
  color: var(--accent);
}

/* primary CTA in nav: micro lift on scroll */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links .nav-primary{
  position: relative;
  overflow: hidden;
  padding: 9px 16px;
  border-radius: var(--radius-md);
  font-weight: 700;
  letter-spacing: -.01em;
  box-shadow: 0 8px 22px -10px color-mix(in srgb, var(--accent) 38%, transparent);
  transition:
    transform .28s var(--ease),
    box-shadow .28s var(--ease),
    filter .22s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled .nav-links .nav-primary{
  box-shadow: 0 10px 26px -10px color-mix(in srgb, var(--accent) 48%, transparent);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links .nav-primary:hover{
  transform: translateY(-1px);
  filter: brightness(1.05);
}

/* theme + lang controls soft transition */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .icon-btn,
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .seg{
  transition:
    background .28s var(--ease),
    border-color .28s var(--ease),
    color .22s var(--ease),
    transform .22s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled .icon-btn,
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.scrolled .seg{
  background: color-mix(in srgb, var(--surface-2) 70%, transparent);
  border-color: color-mix(in srgb, var(--line-2) 70%, transparent);
}

/* mobile menu polish */
@media (max-width:760px){
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.nav-open{
    --hdr-bg: color-mix(in srgb, var(--bg) 96%, transparent);
    --hdr-blur: 22px;
    --hdr-border: color-mix(in srgb, var(--line) 90%, transparent);
  }
  [data-theme="light"] body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr.nav-open{
    --hdr-bg: color-mix(in srgb, #ffffff 98%, transparent);
  }
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .mnav-link.is-active{
    color: var(--ink);
    background: color-mix(in srgb, var(--accent) 10%, transparent);
  }
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .mnav-link{
    transition: background .2s var(--ease), color .2s var(--ease), padding .2s var(--ease);
  }
}

/* ---- landing visual polish ---- */
#landing-view .tvhero{
  min-height: calc(100dvh - var(--nav-h));
}
#landing-view .tvhero-head h1{
  font-size: clamp(42px, 5vw, 72px);
  letter-spacing: -.035em;
  line-height: .98;
}
#landing-view .tvhero-lead{
  font-size: 17.5px;
  line-height: 1.65;
  max-width: 36ch;
  color: color-mix(in srgb, var(--ink-2) 96%, var(--ink));
}
#landing-view .tvhero-eyebrow{
  padding: 6px 12px 6px 10px;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
  background: color-mix(in srgb, var(--accent) 8%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
#landing-view .tvhero-primary{
  min-height: 48px;
  padding: 14px 26px;
  border-radius: var(--radius-md);
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 12px 28px -12px color-mix(in srgb, var(--accent) 48%, transparent);
}
#landing-view .tvhero-ghost{
  min-height: 48px;
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}

/* proof bar: instrument strip */
#landing-view .proofbar{
  position: relative;
  border-top: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background:
    linear-gradient(180deg,
      color-mix(in srgb, var(--surface) 40%, transparent) 0%,
      color-mix(in srgb, var(--bg) 70%, transparent) 100%);
}
#landing-view .proofbar-stat b{
  font-family: var(--display);
  font-weight: 800;
  letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(180deg, var(--ink) 20%, color-mix(in srgb, var(--accent) 55%, var(--ink)) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
#landing-view .proofbar-stat span{
  max-width: 18ch;
  font-size: 12.5px;
  line-height: 1.45;
  color: var(--ink-3);
}

/* section rhythm + reveals feel more deliberate */
#landing-view .section{
  padding-top: clamp(72px, 10vw, 120px);
  padding-bottom: clamp(72px, 10vw, 120px);
}
#landing-view .section-head .eyebrow,
#landing-view .story-copy .eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 16px;
}
#landing-view .path-card,
#landing-view .price-card,
#landing-view .compare-col,
#landing-view .edgex-card{
  transition:
    transform .32s var(--ease),
    border-color .28s var(--ease),
    box-shadow .32s var(--ease);
}
#landing-view .compare-col.cmp-hi{
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line));
  box-shadow:
    0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent),
    var(--elev-2);
}

/* focus rings for keyboard users (landing nav) */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr a:focus-visible,
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr button:focus-visible{
  outline: none;
  box-shadow: var(--focus-ring);
}

/* reduced motion: keep structure, drop movement */
@media (prefers-reduced-motion: reduce){
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr,
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .wrap.nav,
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .logo-mark,
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr .brand-txt,
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) #hdr::after,
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary),
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links > a:not(.nav-primary)::after,
  body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .nav-links .nav-primary{
    transition: none !important;
  }
}

/* ============================================================================
   LANDING PAGE FULL UX (v296)
   Cohesive redesign pass for the entire main landing: rhythm, hierarchy,
   cards, proof bar, toolkit, edges, compare, pricing, FAQ, CTA, footer.
   Landing-only (#landing-view) — does not restyle analyzer/trainer/reverse.
   ============================================================================ */

/* ---- page canvas & section rhythm ---- */
#landing-view{
  --lp-gap: clamp(72px, 9vw, 120px);
  --lp-card-radius: 18px;
  --lp-card-pad: clamp(18px, 2.2vw, 26px);
  --lp-ink-soft: color-mix(in srgb, var(--ink-2) 94%, var(--ink));
  position: relative;
  isolation: isolate;
  background:
    radial-gradient(60% 40% at 12% 0%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 70%),
    radial-gradient(50% 36% at 88% 8%, color-mix(in srgb, var(--accent-2) 5%, transparent), transparent 68%),
    var(--bg);
}
[data-theme="light"] #landing-view{
  background:
    radial-gradient(55% 34% at 10% 0%, color-mix(in srgb, var(--accent) 6%, transparent), transparent 72%),
    radial-gradient(48% 30% at 90% 4%, color-mix(in srgb, var(--accent-2) 5%, transparent), transparent 70%),
    var(--bg);
}
#landing-view .section{
  padding-top: var(--lp-gap);
  padding-bottom: var(--lp-gap);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 72%, transparent);
  background: transparent;
}
#landing-view .section:nth-of-type(even){
  background: color-mix(in srgb, var(--surface) 28%, transparent);
}
[data-theme="light"] #landing-view .section:nth-of-type(even){
  background: color-mix(in srgb, var(--surface-2) 55%, transparent);
}
#landing-view .section-head{
  max-width: 760px;
  margin-bottom: clamp(28px, 4vw, 48px);
  padding-bottom: 0;
  border-bottom: 0;
}
#landing-view .section-head h2,
#landing-view .story-copy h2{
  max-width: 16ch;
  font-family: var(--display);
  font-size: clamp(32px, 4.4vw, 56px);
  font-weight: 800;
  letter-spacing: -.034em;
  line-height: 1.02;
  color: var(--ink);
}
#landing-view .section-head .lead,
#landing-view .section-head.split p,
#landing-view .story-lead,
#landing-view .path-lead,
#landing-view .edgex-lead{
  margin-top: 14px;
  max-width: 54ch;
  font-size: 17px;
  line-height: 1.65;
  color: var(--lp-ink-soft);
}
#landing-view .section-head .eyebrow,
#landing-view .story-copy .eyebrow,
#landing-view .cta-final .eyebrow{
  display: inline-flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 14px;
  padding: 6px 12px 6px 10px;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in srgb, var(--accent) 26%, var(--line));
  background: color-mix(in srgb, var(--accent) 8%, transparent);
  color: var(--accent);
  font-family: var(--mono);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: .16em;
  text-transform: uppercase;
}
#landing-view .section-head .eyebrow::before,
#landing-view .story-copy .eyebrow::before,
#landing-view .cta-final .eyebrow::before{
  content: "";
  width: 6px;
  height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 10px color-mix(in srgb, var(--accent) 70%, transparent);
}
/* kill the blinking terminal underscore on landing eyebrows for a calmer product feel */
#landing-view .section-head .eyebrow::after,
#landing-view .story-copy .eyebrow::after,
#landing-view .cta-final .eyebrow::after{
  content: none;
  animation: none;
}

/* ---- hero ---- */
#landing-view .tvhero{
  min-height: calc(100dvh - var(--nav-h));
  border-bottom: 1px solid color-mix(in srgb, var(--line) 70%, transparent);
  background:
    radial-gradient(42% 48% at 78% 42%, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%),
    transparent;
}
#landing-view .tvhero .wrap{
  padding-top: clamp(24px, 4.5vh, 56px);
  padding-bottom: clamp(28px, 4vh, 48px);
}
#landing-view .tvhero-head{
  max-width: min(44vw, 540px);
}
#landing-view .tvhero-eyebrow{
  margin-bottom: 20px;
  padding: 7px 13px 7px 11px;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  backdrop-filter: blur(12px) saturate(140%);
  -webkit-backdrop-filter: blur(12px) saturate(140%);
  box-shadow: inset 0 1px 0 rgba(255,255,255,.06);
}
#landing-view .tvhero-head h1{
  margin: 0 0 20px;
  font-size: clamp(42px, 5.2vw, 74px);
  font-weight: 800;
  letter-spacing: -.038em;
  line-height: .98;
}
#landing-view .tvhero-head h1 em{
  display: inline;
  background: linear-gradient(100deg, var(--accent) 0%, color-mix(in srgb, var(--accent-hi) 80%, var(--accent-2)) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
  text-shadow: none;
  filter: drop-shadow(0 0 18px color-mix(in srgb, var(--accent) 22%, transparent));
}
#landing-view .tvhero-lead{
  margin: 0 0 28px;
  max-width: 38ch;
  font-size: 17.5px;
  line-height: 1.66;
  color: var(--lp-ink-soft);
}
#landing-view .tvhero-actions{
  gap: 12px;
  margin-bottom: 4px;
}
#landing-view .tvhero-primary{
  min-height: 50px;
  padding: 14px 26px;
  border-radius: 12px;
  font-weight: 750;
  letter-spacing: -.01em;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.32),
    0 14px 34px -14px color-mix(in srgb, var(--accent) 52%, transparent);
  transition: transform .22s var(--ease), box-shadow .22s var(--ease), filter .22s var(--ease);
}
#landing-view .tvhero-primary:hover{
  transform: translateY(-2px);
  filter: brightness(1.05);
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.38),
    0 18px 40px -12px color-mix(in srgb, var(--accent) 58%, transparent);
}
#landing-view .tvhero-ghost{
  min-height: 50px;
  padding: 14px 22px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--line-2) 80%, transparent);
  background: color-mix(in srgb, var(--surface) 42%, transparent);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  color: var(--ink);
  font-weight: 650;
  transition: border-color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
}
#landing-view .tvhero-ghost:hover{
  border-color: color-mix(in srgb, var(--accent) 48%, var(--line-2));
  background: color-mix(in srgb, var(--accent) 8%, var(--surface));
  transform: translateY(-1px);
}
#landing-view .tvhero-platforms{
  margin-top: 22px;
  padding: 10px 12px;
  width: fit-content;
  max-width: 100%;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background: color-mix(in srgb, var(--surface) 35%, transparent);
  backdrop-filter: blur(10px);
  -webkit-backdrop-filter: blur(10px);
}
#landing-view .tvhero-foot{
  margin-top: 18px;
  gap: 8px;
}
#landing-view .tvhero-chip{
  display: inline-flex;
  align-items: center;
  min-height: 30px;
  padding: 6px 11px;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in srgb, var(--line-2) 70%, transparent);
  background: color-mix(in srgb, var(--surface-2) 48%, transparent);
  color: var(--ink-2);
  font: 650 11px/1.2 var(--mono);
  letter-spacing: .04em;
}
#landing-view .tvhero-replay{
  margin-left: 2px;
  min-height: 30px;
  border-radius: var(--radius-pill);
  transition: border-color .2s var(--ease), color .2s var(--ease), background .2s var(--ease), transform .2s var(--ease);
}
#landing-view .tvhero-replay:hover{
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  transform: translateY(-1px);
}
@media (max-width:820px){
  #landing-view .tvhero-head{max-width: none}
  #landing-view .tvhero-platforms{width: 100%}
  #landing-view .tvhero-chip{font-size: 10.5px}
}

/* ---- proof bar ---- */
#landing-view .proofbar{
  position: relative;
  border-top: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-bottom: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 50%, transparent), color-mix(in srgb, var(--bg) 70%, transparent));
  padding: clamp(28px, 4vw, 42px) 0;
}
#landing-view .proofbar-kicker{
  text-align: center;
  margin: 0 0 22px;
  font: 700 11px/1 var(--mono);
  letter-spacing: .18em;
  text-transform: uppercase;
  color: var(--ink-3);
}
#landing-view .proofbar-row{
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 12px;
  padding: 0;
}
#landing-view .proofbar-stat{
  position: relative;
  gap: 10px;
  padding: 18px 14px;
  border-radius: 16px;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background:
    linear-gradient(165deg, rgba(255,255,255,.04), transparent 48%),
    color-mix(in srgb, var(--surface) 40%, transparent);
  transition: transform .28s var(--ease), border-color .28s var(--ease), box-shadow .28s var(--ease);
}
#landing-view .proofbar-stat + .proofbar-stat{border-left: 1px solid color-mix(in srgb, var(--line) 85%, transparent)}
#landing-view .proofbar-stat:hover{
  transform: translateY(-3px);
  border-color: color-mix(in srgb, var(--accent) 38%, var(--line));
  box-shadow: 0 16px 36px -22px color-mix(in srgb, var(--accent) 30%, transparent);
}
#landing-view .proofbar-stat b{
  font: 800 clamp(2.1rem, 4.8vw, 3.2rem)/.95 var(--display);
  letter-spacing: -.04em;
  font-variant-numeric: tabular-nums;
  background: linear-gradient(180deg, var(--ink) 10%, color-mix(in srgb, var(--accent) 62%, var(--ink)) 100%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
  color: transparent;
}
#landing-view .proofbar-stat span{
  max-width: 18ch;
  font: 650 12px/1.4 var(--font);
  letter-spacing: .01em;
  text-transform: none;
  color: var(--ink-3);
}
@media (max-width:700px){
  #landing-view .proofbar-row{grid-template-columns: 1fr 1fr; gap: 10px}
  #landing-view .proofbar-stat + .proofbar-stat{border-left: 1px solid color-mix(in srgb, var(--line) 85%, transparent)}
}

/* ---- story / four verdicts ---- */
#landing-view .story-section{
  background:
    radial-gradient(48% 40% at 85% 20%, color-mix(in srgb, var(--accent) 7%, transparent), transparent 70%),
    transparent;
}
#landing-view .story-step{
  border-radius: 14px;
  transition: background .28s var(--ease), box-shadow .28s var(--ease), padding .28s var(--ease);
}
#landing-view .story-step span{
  font-family: var(--mono);
  font-weight: 700;
  letter-spacing: .08em;
  color: var(--accent);
}
#landing-view .story-step p{
  color: var(--lp-ink-soft);
  line-height: 1.62;
  max-width: 48ch;
}
@media (max-width:1080px){
  #landing-view .story-step{
    padding: 16px 16px 16px 18px;
    border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
    background: color-mix(in srgb, var(--surface) 36%, transparent);
    margin-bottom: 10px;
  }
  #landing-view .story-step.active{
    border-color: color-mix(in srgb, var(--accent) 36%, var(--line));
    box-shadow: inset 3px 0 0 var(--accent);
    background: linear-gradient(90deg, color-mix(in srgb, var(--accent) 8%, transparent), transparent 70%);
  }
}

/* ---- toolkit path cards ---- */
#landing-view .path-grid{
  gap: clamp(14px, 1.8vw, 18px);
  margin-top: 8px;
}
#landing-view .path-card{
  border-radius: var(--lp-card-radius);
  border: 1px solid color-mix(in srgb, var(--line-2) 55%, transparent);
  background:
    linear-gradient(165deg, rgba(255,255,255,.045) 0%, transparent 42%),
    color-mix(in srgb, var(--surface) 52%, transparent);
  box-shadow: var(--elev-1);
  overflow: hidden;
  transition: transform .3s var(--ease), border-color .28s var(--ease), box-shadow .3s var(--ease);
}
#landing-view .path-card:hover{
  border-color: color-mix(in srgb, var(--accent) 42%, var(--line));
  box-shadow:
    var(--elev-2),
    0 0 0 1px color-mix(in srgb, var(--accent) 12%, transparent);
}
#landing-view .path-body{
  padding: var(--lp-card-pad);
  gap: 12px;
}
#landing-view .path-card h3{
  font-family: var(--display);
  font-size: clamp(1.15rem, 1.5vw, 1.35rem);
  font-weight: 750;
  letter-spacing: -.02em;
  line-height: 1.15;
}
#landing-view .path-card p{
  font-size: .92rem;
  line-height: 1.58;
  color: var(--lp-ink-soft);
}
#landing-view .path-feats li{
  font-size: .84rem;
  color: var(--ink-2);
}
#landing-view .path-card .btn{
  margin-top: 4px;
  min-height: 42px;
  border-radius: 11px;
  font-weight: 700;
}
#landing-view .path-visual{
  min-height: 0;
  border-bottom-color: color-mix(in srgb, var(--line) 80%, transparent);
}
#landing-view .pv-body{min-height: 220px}

/* ---- methods / edge anatomy ---- */
#landing-view .edgex-card{
  margin-top: 18px;
  padding: clamp(22px, 3vw, 36px);
  border-radius: 20px;
  border-width: 1px;
  transition: transform .28s var(--ease), box-shadow .28s var(--ease), border-color .28s var(--ease);
}
#landing-view .edgex-card:hover{
  transform: translateY(-2px);
  box-shadow: var(--elev-2);
}
#landing-view .edgex-real{
  border-color: color-mix(in srgb, var(--real) 40%, var(--line));
  background:
    radial-gradient(90% 50% at 50% 0%, color-mix(in srgb, var(--real) 10%, transparent), transparent 60%),
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 58%, transparent), color-mix(in srgb, var(--bg) 55%, transparent));
}
#landing-view .edgex-fake{
  border-color: color-mix(in srgb, var(--humo) 34%, var(--line));
  background:
    radial-gradient(90% 50% at 50% 0%, color-mix(in srgb, var(--humo) 8%, transparent), transparent 60%),
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 55%, transparent), color-mix(in srgb, var(--bg) 55%, transparent));
}
#landing-view .edgex-metrics{
  grid-template-columns: repeat(3, 1fr);   /* 6 metrics → balanced 3×2 */
  gap: 12px;
  margin: 8px 0 24px;
}
@media (max-width:760px){
  #landing-view .edgex-metrics{grid-template-columns:repeat(2,1fr)}
}
#landing-view .edgex-metric{
  padding: 14px 15px;
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: color-mix(in srgb, var(--bg) 48%, transparent);
  transition: border-color .2s var(--ease), background .2s var(--ease);
}
#landing-view .edgex-metric:hover{
  border-color: color-mix(in srgb, var(--accent) 28%, var(--line));
  background: color-mix(in srgb, var(--surface-2) 40%, transparent);
}
#landing-view .edgex-metric b{
  font-size: clamp(1.1rem, 1.6vw, 1.35rem);
  letter-spacing: -.02em;
}
#landing-view .edgex-mkt{
  border-radius: 14px;
  padding: 16px 18px;
  transition: transform .22s var(--ease), border-color .22s var(--ease);
}
#landing-view .edgex-mkt:hover{
  transform: translateY(-2px);
  border-color: color-mix(in srgb, var(--real) 48%, var(--line));
}
#landing-view .edgex-more summary{
  border-radius: 10px;
  padding: 14px 8px;
  transition: color .2s var(--ease), background .2s var(--ease);
}
#landing-view .edgex-more summary:hover{
  background: color-mix(in srgb, var(--ink) 3%, transparent);
}
#landing-view .edgex-foot{
  margin-top: 28px;
  padding: 20px 22px;
  border: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  border-radius: 16px;
  background: color-mix(in srgb, var(--surface) 40%, transparent);
}
#landing-view .edgex-foot .btn{
  min-height: 46px;
  border-radius: 12px;
}

/* ---- compare ---- */
#landing-view .compare-grid{
  gap: 16px;
  margin-top: 12px;
}
#landing-view .compare-col{
  border-radius: 18px;
  border-width: 1px;
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 55%, transparent), color-mix(in srgb, var(--bg) 45%, transparent));
  box-shadow: var(--elev-1);
  transition: transform .3s var(--ease), border-color .28s var(--ease), box-shadow .3s var(--ease);
}
#landing-view .compare-col.cmp-hi{
  box-shadow:
    var(--elev-2),
    0 0 0 1px color-mix(in srgb, var(--accent) 20%, transparent);
}
#landing-view .cmp-head{
  padding: 20px 20px 16px;
  background: color-mix(in srgb, var(--bg) 22%, transparent);
}
#landing-view .cmp-head h3{
  font-size: 1.12rem;
  font-weight: 750;
  letter-spacing: -.015em;
}
#landing-view .compare-col li{
  padding: 14px 20px;
}
#landing-view .cmp-cta{
  margin: 16px 20px 20px;
  min-height: 46px;
  border-radius: 12px;
  font-weight: 750;
}
#landing-view .cmp-badge{
  top: 16px;
  right: 16px;
  box-shadow: 0 8px 18px -8px color-mix(in srgb, var(--accent) 50%, transparent);
}

/* ---- pricing ---- */
#landing-view .pricing-section .section-head h2{
  max-width: 14ch;
}
#landing-view .pricing-toolbar{
  border-radius: 18px;
  padding: 14px 16px;
  border: 1px solid color-mix(in srgb, var(--line-2) 55%, transparent);
  background:
    linear-gradient(120deg, rgba(255,255,255,.05), transparent 50%),
    color-mix(in srgb, var(--surface) 48%, transparent);
  box-shadow: var(--elev-1);
}
#landing-view .pricing-grid{
  gap: clamp(14px, 1.8vw, 18px);
}
#landing-view .price-card{
  min-height: 460px;
  border-radius: 18px;
  padding: clamp(22px, 2.6vw, 30px);
  border: 1px solid color-mix(in srgb, var(--line-2) 55%, transparent);
  background:
    linear-gradient(165deg, rgba(255,255,255,.05) 0%, transparent 45%),
    color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: var(--elev-1);
  transition: transform .3s var(--ease), border-color .28s var(--ease), box-shadow .3s var(--ease);
}
#landing-view .price-card:hover{
  transform: translateY(-4px);
  border-color: color-mix(in srgb, var(--accent) 36%, var(--line));
  box-shadow: var(--elev-2);
}
#landing-view .price-card.featured{
  transform: translateY(-10px);
  border-color: color-mix(in srgb, var(--accent) 58%, var(--line)) !important;
  background:
    radial-gradient(90% 50% at 20% 0%, color-mix(in srgb, var(--accent) 14%, transparent), transparent 55%),
    linear-gradient(165deg, rgba(255,255,255,.06) 0%, transparent 45%),
    color-mix(in srgb, var(--surface) 62%, transparent) !important;
  box-shadow:
    var(--elev-2),
    0 0 0 1px color-mix(in srgb, var(--accent) 18%, transparent),
    0 28px 60px -28px color-mix(in srgb, var(--accent) 28%, transparent) !important;
}
#landing-view .price-card.featured:hover{
  transform: translateY(-12px);
}
#landing-view .price-card h3{
  font-family: var(--display);
  font-style: normal;
  font-weight: 800;
  font-size: 28px;
  letter-spacing: -.03em;
}
#landing-view .price{
  font-family: var(--display);
  font-size: clamp(40px, 4vw, 48px);
  letter-spacing: -.04em;
}
#landing-view .price-card p{
  min-height: 0;
  font-size: .92rem;
  line-height: 1.6;
}
#landing-view .sales-list{
  display: grid;
  gap: 9px;
  margin: 4px 0 8px;
  padding: 0;
  list-style: none;
}
#landing-view .sales-list li{
  position: relative;
  padding-left: 22px;
  font-size: .88rem;
  color: var(--ink-2);
  line-height: 1.45;
}
#landing-view .sales-list li::before{
  content: "";
  position: absolute;
  left: 0;
  top: .45em;
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: color-mix(in srgb, var(--accent) 75%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 12%, transparent);
}
#landing-view .price-card .btn,
#landing-view .price-card .btn-block{
  min-height: 48px;
  border-radius: 12px;
  font-weight: 750;
  justify-content: center;
}
#landing-view .pricing-proof-strip{
  display: grid;
  gap: 8px;
  margin-top: 4px;
  padding: 18px 20px;
  border-radius: 16px;
  border: 1px dashed color-mix(in srgb, var(--accent) 28%, var(--line));
  background: color-mix(in srgb, var(--accent) 6%, transparent);
}
#landing-view .pricing-proof-strip b{
  font-size: 15px;
  font-weight: 650;
  line-height: 1.5;
  color: var(--ink);
}
@media (max-width:940px){
  #landing-view .price-card,
  #landing-view .price-card.featured,
  #landing-view .price-card.featured:hover{
    transform: none;
    min-height: 0;
  }
}

/* ---- FAQ ---- */
#landing-view .faq-section .section-head{
  max-width: 640px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}
#landing-view .faq-section .section-head h2{
  max-width: none;
  margin-left: auto;
  margin-right: auto;
}
#landing-view .faq-section .eyebrow{justify-content: center}
#landing-view .faq-list{
  max-width: 780px;
  margin: 8px auto 0;
  gap: 12px;
}
#landing-view .faq-item{
  border-radius: 14px;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background:
    linear-gradient(165deg, rgba(255,255,255,.035), transparent 50%),
    color-mix(in srgb, var(--surface) 42%, transparent);
  transition: border-color .22s var(--ease), box-shadow .22s var(--ease), background .22s var(--ease);
}
#landing-view .faq-item:hover{
  border-color: color-mix(in srgb, var(--accent) 28%, var(--line));
}
#landing-view .faq-item[open]{
  border-color: color-mix(in srgb, var(--accent) 40%, var(--line));
  box-shadow: 0 14px 34px -24px color-mix(in srgb, var(--accent) 35%, transparent);
  background:
    linear-gradient(165deg, color-mix(in srgb, var(--accent) 6%, transparent), transparent 55%),
    color-mix(in srgb, var(--surface) 52%, transparent);
}
#landing-view .faq-item summary{
  padding: 18px 20px;
  font-size: 15.5px;
  font-weight: 700;
  letter-spacing: -.01em;
  transition: color .2s var(--ease);
}
#landing-view .faq-item summary::after{
  width: 28px;
  height: 28px;
  display: grid;
  place-items: center;
  border-radius: 50%;
  border: 1px solid color-mix(in srgb, var(--accent) 30%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, transparent);
  font-size: 1.05rem;
  transition: transform .22s var(--ease), background .22s var(--ease);
}
#landing-view .faq-item[open] summary::after{
  transform: rotate(0deg);
  background: color-mix(in srgb, var(--accent) 18%, transparent);
}
#landing-view .faq-a{
  padding: 0 20px 18px;
}
#landing-view .faq-a p{
  font-size: 15px;
  line-height: 1.68;
  color: var(--lp-ink-soft);
}

/* ---- final CTA ---- */
#landing-view .cta-section{
  border-bottom: 0;
  padding-bottom: clamp(64px, 8vw, 100px);
  background:
    radial-gradient(60% 70% at 50% 100%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 70%);
}
#landing-view .cta-final{
  padding: clamp(48px, 7vw, 88px) clamp(22px, 5vw, 64px);
  border-radius: 24px;
  border: 1px solid color-mix(in srgb, var(--accent) 28%, var(--line));
  background:
    radial-gradient(80% 70% at 50% 0%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 60%),
    linear-gradient(165deg, rgba(255,255,255,.05), transparent 50%),
    color-mix(in srgb, var(--surface) 55%, transparent);
  box-shadow: var(--elev-2);
}
#landing-view .cta-final h2{
  font-size: clamp(36px, 5.2vw, 68px);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.02;
}
#landing-view .cta-final h2 em{
  background: linear-gradient(94deg, var(--ink) 4%, color-mix(in srgb, var(--accent) 88%, var(--ink)) 52%, var(--accent-hi) 90%);
  -webkit-background-clip: text;
  background-clip: text;
  -webkit-text-fill-color: transparent;
}
#landing-view .cta-btns{
  margin-top: 32px;
  gap: 12px;
}
#landing-view .cta-btns .btn{
  min-height: 50px;
  padding: 14px 26px;
  border-radius: 12px;
  font-weight: 750;
}

/* ---- footer polish (landing context: always present) ---- */
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) footer{
  padding: 64px 0 36px;
  border-top: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--surface) 35%, transparent), var(--bg));
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .foot-main{
  gap: clamp(28px, 4vw, 48px);
  padding-bottom: 36px;
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .foot-tag{
  font-size: .9rem;
  line-height: 1.65;
  max-width: 38ch;
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .foot-col a{
  min-height: 32px;
  display: inline-flex;
  align-items: center;
  border-radius: 6px;
  transition: color .18s var(--ease), transform .18s var(--ease);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .foot-col a:hover{
  color: var(--accent);
  transform: translateX(2px);
}
body:not(.is-analyzer):not(.is-trainer):not(.is-reverse):not(.is-gym) .foot-legal{
  padding-top: 22px;
  font-size: 12.5px;
}

/* ---- light theme landing refinements ---- */
[data-theme="light"] #landing-view .path-card,
[data-theme="light"] #landing-view .price-card,
[data-theme="light"] #landing-view .compare-col,
[data-theme="light"] #landing-view .faq-item,
[data-theme="light"] #landing-view .proofbar-stat,
[data-theme="light"] #landing-view .edgex-card,
[data-theme="light"] #landing-view .cta-final{
  background:
    linear-gradient(165deg, rgba(255,255,255,.92), rgba(255,255,255,.72)),
    color-mix(in srgb, #fff 40%, transparent);
  border-color: color-mix(in srgb, var(--line) 90%, transparent);
  box-shadow: 0 16px 40px -28px rgba(13,18,15,.16);
}
[data-theme="light"] #landing-view .price-card.featured{
  background:
    radial-gradient(90% 50% at 20% 0%, color-mix(in srgb, var(--accent) 12%, transparent), transparent 55%),
    linear-gradient(165deg, #fff, #f7faf7) !important;
}
[data-theme="light"] #landing-view .proofbar-stat b{
  background: linear-gradient(180deg, var(--ink) 0%, color-mix(in srgb, var(--accent) 70%, var(--ink)) 100%);
  -webkit-background-clip: text;
  background-clip: text;
}
[data-theme="light"] #landing-view .tvhero-chip,
[data-theme="light"] #landing-view .tvhero-platforms,
[data-theme="light"] #landing-view .tvhero-ghost{
  background: rgba(255,255,255,.72);
  border-color: color-mix(in srgb, var(--line) 88%, transparent);
}

/* ---- scroll reveal polish for new targets ---- */
html.fx-on #landing-view .fx-r{
  opacity: 0;
  transform: translateY(22px);
  transition:
    opacity .65s var(--ease-out) var(--fxd, 0s),
    transform .7s var(--ease-out) var(--fxd, 0s);
  will-change: opacity, transform;
}
html.fx-on #landing-view .fx-r.fxv{
  opacity: 1;
  transform: none;
}
/* path cards keep their own hover transform once revealed */
html.fx-on #landing-view .path-card.fxv{
  transition:
    opacity .55s var(--ease-out),
    transform .28s var(--ease),
    border-color .22s var(--ease),
    box-shadow .28s var(--ease);
}
html.fx-on #landing-view .path-card.fxv:hover{
  transform: translateY(-8px);
}
html.fx-on #landing-view .price-card.fxv:hover{
  transform: translateY(-4px);
}
html.fx-on #landing-view .price-card.featured.fxv{
  transform: translateY(-10px);
}
html.fx-on #landing-view .price-card.featured.fxv:hover{
  transform: translateY(-12px);
}
@media (max-width:940px){
  html.fx-on #landing-view .price-card.featured.fxv,
  html.fx-on #landing-view .price-card.featured.fxv:hover,
  html.fx-on #landing-view .price-card.fxv:hover{
    transform: none;
  }
}
@media (prefers-reduced-motion: reduce){
  html.fx-on #landing-view .fx-r,
  html.fx-on #landing-view .fx-r.fxv{
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }
  #landing-view .path-card:hover,
  #landing-view .price-card:hover,
  #landing-view .proofbar-stat:hover,
  #landing-view .compare-col:hover,
  #landing-view .edgex-card:hover{
    transform: none;
  }
}

/* ---- mobile spacing tighten ---- */
@media (max-width:760px){
  #landing-view{
    --lp-gap: 64px;
  }
  #landing-view .section-head h2,
  #landing-view .story-copy h2{
    font-size: clamp(30px, 8.4vw, 40px);
    max-width: 14ch;
  }
  #landing-view .tvhero-primary,
  #landing-view .tvhero-ghost{
    width: 100%;
    justify-content: center;
  }
  #landing-view .pricing-toolbar{
    flex-direction: column;
    align-items: stretch;
  }
  #landing-view .billing-toggle{
    min-width: 0;
    width: 100%;
  }
  #landing-view .faq-item summary{
    font-size: 15px;
    padding: 16px;
  }
}

/* ============================================================================
   GLOBAL UI SYSTEM (v297) — one language for the entire product
   Unifies header/menu, glass surfaces, buttons, eyebrows, inputs, footers
   and tool shells (analyzer / trainer / reverse / gym) with the landing.
   Highest cascade priority within style.css.
   ============================================================================ */

/* ---- shared tokens (alias landing + app glass into one system) ---- */
:root{
  --glass-radius:18px;
  --glass-radius-lg:22px;
  --glass-bg:
    linear-gradient(165deg,rgba(255,255,255,.055) 0%,rgba(255,255,255,.012) 42%,transparent 70%),
    color-mix(in srgb,var(--surface) 52%,transparent);
  --glass-filter:blur(18px) saturate(150%);
  --glass-border:color-mix(in srgb,var(--line-2) 55%,transparent);
  --glass-border-strong:color-mix(in srgb,var(--accent) 36%,var(--line));
  --glass-shadow:var(--elev-1);
  --glass-shadow-lg:var(--elev-2);
  --control-h:42px;
  --control-h-lg:48px;
  --nav-h-live:68px;
  --hdr-bg:color-mix(in srgb,var(--bg) 72%,transparent);
  --hdr-border:color-mix(in srgb,var(--line) 70%,transparent);
  --hdr-shadow:0 0 0 transparent;
  --hdr-blur:14px;
}
[data-theme="light"]{
  --glass-bg:
    linear-gradient(165deg,rgba(255,255,255,.92) 0%,rgba(255,255,255,.74) 50%),
    color-mix(in srgb,#fff 30%,transparent);
  --glass-border:color-mix(in srgb,var(--line) 88%,transparent);
  --glass-border-strong:color-mix(in srgb,var(--accent) 40%,var(--line));
  --hdr-bg:color-mix(in srgb,#ffffff 82%,transparent);
  --hdr-border:color-mix(in srgb,var(--line) 90%,transparent);
}

/* keep older aliases in sync so prior rules inherit the same surface language */
#landing-view,
body.is-analyzer,
body.is-trainer,
body.is-reverse,
body.is-gym,
.modal{
  --landing-glass-radius:var(--glass-radius-lg);
  --landing-glass-bg:var(--glass-bg);
  --landing-glass-filter:var(--glass-filter);
  --landing-glass-border:var(--glass-border);
  --landing-glass-border-bottom:color-mix(in srgb,var(--line) 70%,transparent);
  --landing-glass-shadow:var(--glass-shadow);
  --landing-inner-bg:color-mix(in srgb,var(--surface-2) 45%,transparent);
  --landing-inner-border:var(--glass-border);
  --landing-inner-shadow:var(--edge);
  --app-glass-radius:var(--glass-radius-lg);
  --app-glass-bg:var(--glass-bg);
  --app-glass-filter:var(--glass-filter);
  --app-glass-border:var(--glass-border);
  --app-glass-border-bottom:color-mix(in srgb,var(--line) 70%,transparent);
  --app-glass-shadow:var(--glass-shadow);
  --app-inner-bg:color-mix(in srgb,var(--surface-2) 45%,transparent);
  --app-inner-border:var(--glass-border);
  --app-inner-shadow:var(--edge);
}

/* ============================================================================
   GLOBAL HEADER — same full-width glass bar on landing + every tool page
   Kills the floating pill on analyzer/trainer/reverse.
   ============================================================================ */
body #hdr,
body.is-analyzer #hdr,
body.is-trainer #hdr,
body.is-reverse #hdr,
body.is-gym #hdr{
  position:sticky !important;
  top:0 !important;
  z-index:80 !important;
  padding:0 !important;
  background:var(--hdr-bg) !important;
  border-bottom:1px solid var(--hdr-border) !important;
  box-shadow:var(--hdr-shadow) !important;
  backdrop-filter:blur(var(--hdr-blur)) saturate(160%) !important;
  -webkit-backdrop-filter:blur(var(--hdr-blur)) saturate(160%) !important;
  transition:
    background .36s var(--ease),
    border-color .36s var(--ease),
    box-shadow .4s var(--ease),
    backdrop-filter .36s var(--ease),
    -webkit-backdrop-filter .36s var(--ease) !important;
}
body #hdr.scrolled,
body.is-analyzer #hdr.scrolled,
body.is-trainer #hdr.scrolled,
body.is-reverse #hdr.scrolled,
body.is-gym #hdr.scrolled{
  --hdr-bg:color-mix(in srgb,var(--bg) 90%,transparent);
  --hdr-border:color-mix(in srgb,var(--line) 88%,transparent);
  --hdr-shadow:0 10px 34px -20px rgba(0,0,0,.55);
  --hdr-blur:18px;
  --nav-h-live:60px;
}
body #hdr.scrolled-deep,
body.is-analyzer #hdr.scrolled-deep,
body.is-trainer #hdr.scrolled-deep,
body.is-reverse #hdr.scrolled-deep,
body.is-gym #hdr.scrolled-deep{
  --hdr-bg:color-mix(in srgb,var(--bg) 96%,transparent);
  --hdr-border:color-mix(in srgb,var(--line-2) 72%,transparent);
  --hdr-shadow:0 14px 40px -22px rgba(0,0,0,.6);
  --hdr-blur:22px;
  --nav-h-live:56px;
}
[data-theme="light"] body #hdr.scrolled,
[data-theme="light"] body.is-analyzer #hdr.scrolled,
[data-theme="light"] body.is-trainer #hdr.scrolled,
[data-theme="light"] body.is-reverse #hdr.scrolled,
[data-theme="light"] body.is-gym #hdr.scrolled{
  --hdr-bg:color-mix(in srgb,#ffffff 92%,transparent);
  --hdr-border:color-mix(in srgb,var(--line) 92%,transparent);
  --hdr-shadow:0 12px 32px -22px rgba(13,18,15,.14);
}
[data-theme="light"] body #hdr.scrolled-deep,
[data-theme="light"] body.is-analyzer #hdr.scrolled-deep,
[data-theme="light"] body.is-trainer #hdr.scrolled-deep,
[data-theme="light"] body.is-reverse #hdr.scrolled-deep,
[data-theme="light"] body.is-gym #hdr.scrolled-deep{
  --hdr-bg:color-mix(in srgb,#ffffff 97%,transparent);
  --hdr-shadow:0 16px 40px -24px rgba(13,18,15,.16);
}

/* content row — never a floating pill, anywhere */
body #hdr .wrap.nav,
body.is-analyzer #hdr .wrap.nav,
body.is-trainer #hdr .wrap.nav,
body.is-reverse #hdr .wrap.nav,
body.is-gym #hdr .wrap.nav,
body #hdr.scrolled .wrap.nav,
body.is-analyzer #hdr.scrolled .wrap.nav,
body.is-trainer #hdr.scrolled .wrap.nav,
body.is-reverse #hdr.scrolled .wrap.nav,
body.is-gym #hdr.scrolled .wrap.nav,
body .nav,
body.is-analyzer .nav,
body.is-trainer .nav,
body.is-reverse .nav,
body.is-gym .nav{
  position:relative !important;
  min-height:var(--nav-h-live) !important;
  padding:0 28px !important;
  border:0 !important;
  border-radius:0 !important;
  background:none !important;
  box-shadow:none !important;
  backdrop-filter:none !important;
  -webkit-backdrop-filter:none !important;
  overflow:visible !important;
  transition:min-height .3s var(--ease) !important;
}
@media (max-width:760px){
  body #hdr .wrap.nav,
  body.is-analyzer #hdr .wrap.nav,
  body.is-trainer #hdr .wrap.nav,
  body.is-reverse #hdr .wrap.nav,
  body.is-gym #hdr .wrap.nav{
    padding:0 16px !important;
  }
}

/* progress hairline on every page */
body #hdr::after,
body.is-analyzer #hdr::after,
body.is-trainer #hdr::after,
body.is-reverse #hdr::after,
body.is-gym #hdr::after{
  content:"" !important;
  display:block !important;
  position:absolute !important;
  left:0 !important;
  bottom:0 !important;
  height:2px !important;
  width:calc(var(--scrollp,0)*100%) !important;
  max-width:100% !important;
  background:linear-gradient(90deg,var(--accent),var(--accent-2)) !important;
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 48%,transparent) !important;
  opacity:0;
  transition:opacity .28s var(--ease),width .1s linear !important;
  pointer-events:none !important;
  z-index:3 !important;
}
body #hdr.scrolled::after,
body.is-analyzer #hdr.scrolled::after,
body.is-trainer #hdr.scrolled::after,
body.is-reverse #hdr.scrolled::after,
body.is-gym #hdr.scrolled::after{opacity:1}
/* kill pill progress line */
body .nav::after,
body.is-analyzer .nav::after,
body.is-trainer .nav::after,
body.is-reverse .nav::after{display:none !important}

/* brand scale on scroll — global */
body #hdr .logo-mark{
  width:40px;height:40px;
  transition:width .3s var(--ease),height .3s var(--ease),box-shadow .3s var(--ease),transform .3s var(--ease);
}
body #hdr.scrolled .logo-mark{width:34px;height:34px}
body #hdr .brand-txt{
  font-family:var(--display);
  font-weight:700;
  font-size:18px;
  letter-spacing:-.02em;
  transition:font-size .3s var(--ease);
}
body #hdr.scrolled .brand-txt{font-size:16px}

/* nav links — one style everywhere */
body .nav-links{gap:4px}
body .nav-links>a:not(.nav-primary),
body .nav-links>a.nav-tool{
  position:relative;
  min-height:36px;
  display:inline-flex;
  align-items:center;
  padding:8px 11px;
  border-radius:var(--radius-sm);
  color:var(--ink-2);
  font-family:var(--mono);
  font-size:11px;
  font-weight:500;
  letter-spacing:.11em;
  text-transform:uppercase;
  background:transparent;
  transition:color .2s var(--ease),background .2s var(--ease);
}
body .nav-links>a:not(.nav-primary)::after,
body .nav-links>a.nav-tool::after{
  content:"";
  position:absolute;
  left:11px;right:11px;bottom:4px;
  height:1.5px;border-radius:2px;
  background:linear-gradient(90deg,var(--accent),var(--accent-2));
  transform:scaleX(0);
  transform-origin:left center;
  transition:transform .26s var(--ease-out);
}
body .nav-links>a:not(.nav-primary):hover,
body .nav-links>a.nav-tool:hover{
  color:var(--ink);
  background:color-mix(in srgb,var(--ink) 5%,transparent);
}
body .nav-links>a:not(.nav-primary):hover::after,
body .nav-links>a.nav-tool:hover::after,
body .nav-links>a:not(.nav-primary).is-active::after,
body .nav-links>a.nav-tool.is-active::after,
body .nav-links>a.nav-primary.is-active{
  /* primary uses its own treatment */
}
body .nav-links>a:not(.nav-primary).is-active,
body .nav-links>a.nav-tool.is-active{
  color:var(--ink);
  background:color-mix(in srgb,var(--accent) 9%,transparent);
}
body .nav-links>a:not(.nav-primary).is-active::after,
body .nav-links>a.nav-tool.is-active::after{
  transform:scaleX(1);
}
body .nav-links .nav-primary{
  min-height:38px;
  padding:9px 15px;
  border-radius:11px;
  font-family:var(--font);
  font-size:13px;
  font-weight:750;
  letter-spacing:-.01em;
  text-transform:none;
  color:#071006 !important;
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 94%,#fff),var(--accent)) !important;
  border:1px solid color-mix(in srgb,var(--accent) 70%,#fff);
  box-shadow:0 10px 24px -12px color-mix(in srgb,var(--accent) 45%,transparent);
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),filter .22s var(--ease);
}
body .nav-links .nav-primary:hover{
  transform:translateY(-1px);
  filter:brightness(1.04);
  box-shadow:0 14px 28px -12px color-mix(in srgb,var(--accent) 52%,transparent);
}
body .nav-links .nav-primary.is-active{
  box-shadow:
    0 0 0 2px color-mix(in srgb,var(--bg) 80%,transparent),
    0 0 0 4px color-mix(in srgb,var(--accent) 55%,transparent),
    0 12px 26px -12px color-mix(in srgb,var(--accent) 48%,transparent);
}
body .nav-links>a[data-i]::before{
  content:attr(data-i) / "";
  margin-right:6px;
  font-size:10px;
  color:var(--accent);
  opacity:.9;
}

/* controls in header */
body #hdr .seg{
  min-height:36px;
  padding:3px;
  border-radius:11px;
  border:1px solid var(--glass-border);
  background:color-mix(in srgb,var(--surface-2) 55%,transparent);
  transition:background .28s var(--ease),border-color .28s var(--ease);
}
body #hdr .seg-btn{
  min-height:30px;
  border-radius:8px;
  font-size:11px;
  font-weight:700;
  letter-spacing:.06em;
}
body #hdr .seg-btn.active{
  color:var(--ink);
  background:color-mix(in srgb,var(--surface) 80%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 28%,transparent);
}
body #hdr .icon-btn{
  width:40px;height:40px;
  border-radius:11px;
  border:1px solid var(--glass-border);
  background:color-mix(in srgb,var(--surface-2) 55%,transparent);
  color:var(--ink-2);
  transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease),transform .2s var(--ease);
}
body #hdr .icon-btn:hover{
  color:var(--ink);
  border-color:color-mix(in srgb,var(--accent) 35%,var(--line));
  background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));
}
body #hdr.scrolled .seg,
body #hdr.scrolled .icon-btn{
  background:color-mix(in srgb,var(--surface-2) 72%,transparent);
  border-color:color-mix(in srgb,var(--line-2) 70%,transparent);
}

/* mobile menu — same language on every route */
body #hdr .nav-burger{
  width:42px;height:42px;
  border-radius:11px;
  border:1px solid var(--glass-border);
  background:color-mix(in srgb,var(--surface-2) 55%,transparent);
  transition:color .2s var(--ease),border-color .2s var(--ease),background .2s var(--ease);
}
body #hdr.nav-open{
  --hdr-bg:color-mix(in srgb,var(--bg) 97%,transparent);
  --hdr-blur:22px;
}
body #hdr .mnav-link{
  min-height:50px;
  border-radius:12px;
  font-weight:650;
  transition:background .2s var(--ease),color .2s var(--ease);
}
body #hdr .mnav-link.is-active{
  color:var(--ink);
  background:color-mix(in srgb,var(--accent) 10%,transparent);
}
body #hdr .mnav-cta{
  border-radius:12px !important;
  font-weight:750 !important;
  color:#071006 !important;
  background:var(--accent) !important;
}
body #hdr .mnav-cta.is-active{
  box-shadow:0 0 0 2px color-mix(in srgb,var(--accent) 40%,transparent);
}

/* hide Trainer desktop link below ~1100px to avoid overcrowding; still in mobile menu */
@media (max-width:1100px){
  body .nav-links>a.nav-tool{display:none}
}
@media (max-width:760px){
  body .nav-links>a:not(.nav-primary),
  body .nav-links>a.nav-tool,
  body .nav-links .seg{display:none}
  body .nav-links #theme{display:grid}
  body .nav-burger{display:inline-flex}
}

/* ============================================================================
   SHARED CONTROLS — buttons, eyebrows, segments, focus (whole site)
   ============================================================================ */
.btn{
  min-height:var(--control-h);
  border-radius:12px;
  font-weight:750;
  letter-spacing:-.01em;
  transition:transform .22s var(--ease),box-shadow .22s var(--ease),filter .22s var(--ease),border-color .22s var(--ease),background .22s var(--ease);
}
.btn:hover{transform:translateY(-1px)}
.btn:active{transform:translateY(0) scale(.985)}
.btn.quiet{
  background:color-mix(in srgb,var(--surface) 55%,transparent);
  border:1px solid var(--glass-border);
  color:var(--ink);
  box-shadow:none;
}
.btn.quiet:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--line));
  background:color-mix(in srgb,var(--accent) 8%,var(--surface));
}
.btn:focus-visible,
.icon-btn:focus-visible,
.seg-btn:focus-visible,
.nav-links a:focus-visible,
.mnav-link:focus-visible{
  outline:none;
  box-shadow:var(--focus-ring);
}

/* product eyebrows — calm badge, no terminal blink */
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:8px;
  padding:6px 12px 6px 10px;
  border-radius:var(--radius-pill);
  border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));
  background:color-mix(in srgb,var(--accent) 8%,transparent);
  color:var(--accent);
  font-family:var(--mono);
  font-size:11px;
  font-weight:700;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.eyebrow::before{
  content:"";
  width:6px;height:6px;border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 10px color-mix(in srgb,var(--accent) 65%,transparent);
}
.eyebrow::after{content:none !important;animation:none !important}

/* segment controls */
.seg{
  border-radius:12px;
  border:1px solid var(--glass-border);
  background:color-mix(in srgb,var(--surface-2) 55%,transparent);
}
.seg-btn{
  min-height:36px;
  border-radius:9px;
  transition:color .18s var(--ease),background .18s var(--ease),box-shadow .18s var(--ease);
}
.seg-btn.active{
  color:var(--ink);
  background:color-mix(in srgb,var(--surface) 78%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 30%,transparent);
}

/* ============================================================================
   TOOL SHELLS — same canvas + card language as landing
   ============================================================================ */
body.is-analyzer,
body.is-trainer,
body.is-reverse,
body.is-gym{
  background:var(--bg);
}
body.is-analyzer .analyzer-view,
body.is-trainer .trainer-view,
body.is-reverse .reverse-view{
  background:
    radial-gradient(55% 34% at 12% 0%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 70%),
    radial-gradient(46% 30% at 90% 4%,color-mix(in srgb,var(--accent-2) 5%,transparent),transparent 68%),
    linear-gradient(180deg,var(--bg) 0%,var(--bg-2) 48%,var(--bg) 100%) !important;
  min-height:calc(100dvh - var(--nav-h));
}
/* Games: transparent shell so fixed ambient + hero portrait show through */
body.is-gym .gym-view{
  background:transparent!important;
  padding-top:var(--nav-h)!important;
  min-height:calc(100dvh - var(--nav-h));
  position:relative;
  isolation:isolate;
  overflow:clip;
}

/* shared glass surface for tool panels */
body.is-analyzer .console,
body.is-analyzer .analyzer-title,
body.is-trainer .trainer-head,
body.is-trainer .trainer-controls,
body.is-trainer .scoreboard .sb,
body.is-trainer .draw-toolbar,
body.is-trainer .chart-top,
body.is-trainer .trainer-chart,
body.is-trainer .decision-panel,
body.is-trainer .trainer-context,
body.is-trainer .trainer-progress,
body.is-reverse .rv-panel,
body.is-reverse .reverse-head,
body.is-reverse .console,
body.is-gym .gym-profile,
body.is-gym .gym-card,
body.is-gym .cx-panel,
.modal-card{
  border-radius:var(--glass-radius-lg) !important;
  border:1px solid var(--glass-border) !important;
  background:var(--glass-bg) !important;
  backdrop-filter:var(--glass-filter) !important;
  -webkit-backdrop-filter:var(--glass-filter) !important;
  box-shadow:var(--glass-shadow) !important;
}

/* tool page titles match landing typography hierarchy */
body.is-analyzer .analyzer-title h1,
body.is-trainer .trainer-head h1,
body.is-reverse .reverse-head h1,
body.is-gym .gym-head-copy h1{
  font-family:var(--display);
  font-weight:800;
  letter-spacing:-.03em;
  line-height:1.05;
}
body.is-analyzer .analyzer-title p,
body.is-trainer .trainer-head p,
body.is-reverse .reverse-head p,
body.is-gym .gym-lead{
  color:color-mix(in srgb,var(--ink-2) 94%,var(--ink));
  line-height:1.62;
  font-size:15.5px;
}

/* inputs / shells */
body.is-analyzer input,
body.is-analyzer textarea,
body.is-trainer select,
body.is-trainer .trainer-select,
body.is-reverse input,
body.is-reverse textarea,
body.is-gym input,
body.is-gym select{
  border-radius:12px;
  border:1px solid var(--glass-border);
  background:color-mix(in srgb,var(--bg) 55%,transparent);
  min-height:var(--control-h);
  transition:border-color .2s var(--ease),box-shadow .2s var(--ease),background .2s var(--ease);
}
body.is-analyzer input:focus,
body.is-analyzer textarea:focus,
body.is-trainer select:focus,
body.is-reverse input:focus,
body.is-reverse textarea:focus,
body.is-gym input:focus,
body.is-gym select:focus{
  outline:none;
  border-color:color-mix(in srgb,var(--accent) 48%,var(--line));
  box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 14%,transparent);
}

/* console headers */
body.is-analyzer .console-head,
body.is-trainer .chart-top,
body.is-reverse .console-head{
  border-bottom:1px solid color-mix(in srgb,var(--line) 80%,transparent) !important;
  background:color-mix(in srgb,var(--surface-2) 35%,transparent) !important;
}
body.is-analyzer .console-head span,
body.is-trainer .chart-top span,
body.is-reverse .console-head span{
  font-family:var(--mono);
  font-size:10px;
  letter-spacing:.14em;
  text-transform:uppercase;
  color:var(--ink-3);
}
body.is-analyzer .console-head b,
body.is-trainer .chart-top b,
body.is-reverse .console-head b{
  font-family:var(--mono);
  font-size:11px;
  letter-spacing:.1em;
  text-transform:uppercase;
  color:var(--ink-2);
}

/* analyzer CTA / run button alignment with global buttons */
body.is-analyzer .input-console #run,
body.is-analyzer .btn,
body.is-trainer .btn,
body.is-reverse .btn,
body.is-gym .btn{
  border-radius:12px;
  min-height:var(--control-h);
  font-weight:750;
}

/* tags / verdict chips consistency */
.tag{
  border-radius:var(--radius-sm);
  font-family:var(--mono);
  font-weight:800;
  letter-spacing:.06em;
}

/* footer — always the same product chrome */
footer{
  border-top:1px solid color-mix(in srgb,var(--line) 80%,transparent);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface) 32%,transparent),var(--bg));
  padding:56px 0 34px;
}
.foot-col a{
  min-height:32px;
  display:inline-flex;
  align-items:center;
  border-radius:6px;
  transition:color .18s var(--ease),transform .18s var(--ease);
}
.foot-col a:hover{
  color:var(--accent);
  transform:translateX(2px);
}
.foot-col a.is-active,
.foot-col a[aria-current="page"]{
  color:var(--accent);
}

/* modal — same glass + radius */
.modal-card{
  border-radius:var(--glass-radius-lg) !important;
}
.modal-card button#modal-x,
.modal-card button#summary-x,
.modal-card button#tut-x{
  border-radius:10px;
  border:1px solid var(--glass-border);
  background:color-mix(in srgb,var(--surface-2) 60%,transparent);
  transition:background .2s var(--ease),border-color .2s var(--ease);
}

/* page shells padding under sticky header */
body.is-analyzer .analyzer-top,
body.is-trainer .trainer-top,
body.is-reverse .reverse-top{
  padding-top:clamp(18px,2.4vw,28px);
}

/* tool cards hover — same micro-lift as landing cards */
body.is-analyzer .source-card,
body.is-analyzer .pstage,
body.is-analyzer .sq,
body.is-trainer .scoreboard .sb,
body.is-gym .gym-card{
  transition:transform .24s var(--ease),border-color .24s var(--ease),box-shadow .24s var(--ease);
}
body.is-analyzer .source-card:hover,
body.is-analyzer .pstage:hover,
body.is-gym .gym-card:hover{
  transform:translateY(-2px);
  border-color:color-mix(in srgb,var(--accent) 32%,var(--line));
}

/* light theme tool shells */
[data-theme="light"] body.is-analyzer .console,
[data-theme="light"] body.is-analyzer .analyzer-title,
[data-theme="light"] body.is-trainer .trainer-head,
[data-theme="light"] body.is-trainer .trainer-controls,
[data-theme="light"] body.is-trainer .scoreboard .sb,
[data-theme="light"] body.is-trainer .trainer-chart,
[data-theme="light"] body.is-trainer .decision-panel,
[data-theme="light"] body.is-reverse .rv-panel,
[data-theme="light"] body.is-gym .gym-card,
[data-theme="light"] .modal-card{
  background:
    linear-gradient(165deg,rgba(255,255,255,.94),rgba(255,255,255,.78)),
    #fff !important;
  border-color:color-mix(in srgb,var(--line) 90%,transparent) !important;
  box-shadow:0 16px 40px -28px rgba(13,18,15,.14) !important;
}

/* reduced motion */
@media (prefers-reduced-motion:reduce){
  body #hdr,
  body #hdr .wrap.nav,
  body #hdr .logo-mark,
  body #hdr .brand-txt,
  body #hdr::after,
  body .nav-links>a,
  body .nav-links .nav-primary,
  .btn{
    transition:none !important;
  }
}

/* desktop density: keep tool nav usable */
@media (max-width:1240px){
  body .nav-links>a[data-i]::before{display:none}
  body .nav-links>a:not(.nav-primary){
    letter-spacing:.08em;
    padding:8px 9px;
  }
}

/* ============================================================================
   v298 — remove scroll-fill progress line from the menu
   User feedback: the filling animation on scroll was undesirable.
   Header still densifies on scroll; only the progress hairline is gone.
   ============================================================================ */
body #hdr::after,
body.is-analyzer #hdr::after,
body.is-trainer #hdr::after,
body.is-reverse #hdr::after,
body.is-gym #hdr::after,
body .nav::after,
body.is-analyzer .nav::after,
body.is-trainer .nav::after,
body.is-reverse .nav::after,
body.is-gym .nav::after{
  content:none !important;
  display:none !important;
  width:0 !important;
  opacity:0 !important;
  background:none !important;
  box-shadow:none !important;
}


/* ============================================================================
   SITE NAV v302 — sober professional bar
   Replaces the v299/v300/v301/pika stacks with ONE layer and ONE geometry:
   a full-width sticky glass bar. The only thing that changes on scroll is the
   surface (background density, hairline, shadow) — .22s. No island morph, no
   sliding indicator, no entrance animation, no resizing logo/text/buttons.
   Hover = color. Active = static underline. Burger/panel kept minimal.
   ============================================================================ */

:root{ --nav-h: 68px; }

/* ---- surface: one bar, two densities ---- */
body #hdr,
body.is-analyzer #hdr,
body.is-trainer #hdr,
body.is-reverse #hdr,
body.is-gym #hdr{
  --hdr-bg: color-mix(in srgb, var(--bg) 86%, transparent);
  --hdr-border: color-mix(in srgb, var(--line) 55%, transparent);
  --hdr-shadow: none;
  --hdr-blur: 14px;
  position: sticky !important;
  top: 0 !important;
  z-index: 100 !important;
  padding: 0 !important;
  background: color-mix(in srgb, var(--bg) 86%, transparent) !important;
  border: 0 !important;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 55%, transparent) !important;
  box-shadow: none !important;
  backdrop-filter: blur(14px) saturate(150%) !important;
  -webkit-backdrop-filter: blur(14px) saturate(150%) !important;
  transition: background .22s ease, border-color .22s ease, box-shadow .22s ease !important;
}
body #hdr.scrolled,
body.is-analyzer #hdr.scrolled,
body.is-trainer #hdr.scrolled,
body.is-reverse #hdr.scrolled,
body.is-gym #hdr.scrolled{
  background: color-mix(in srgb, var(--bg) 93%, transparent) !important;
  border-bottom-color: color-mix(in srgb, var(--line) 90%, transparent) !important;
  box-shadow: 0 10px 30px -24px rgba(0,0,0,.45) !important;
}
[data-theme="light"] body #hdr,
[data-theme="light"] body.is-analyzer #hdr,
[data-theme="light"] body.is-trainer #hdr,
[data-theme="light"] body.is-reverse #hdr,
[data-theme="light"] body.is-gym #hdr{
  background: color-mix(in srgb, #ffffff 88%, transparent) !important;
  border-bottom-color: color-mix(in srgb, var(--line) 75%, transparent) !important;
}
[data-theme="light"] body #hdr.scrolled,
[data-theme="light"] body.is-analyzer #hdr.scrolled,
[data-theme="light"] body.is-trainer #hdr.scrolled,
[data-theme="light"] body.is-reverse #hdr.scrolled,
[data-theme="light"] body.is-gym #hdr.scrolled{
  background: color-mix(in srgb, #ffffff 95%, transparent) !important;
  border-bottom-color: color-mix(in srgb, var(--line) 95%, transparent) !important;
  box-shadow: 0 10px 28px -24px rgba(13,18,15,.14) !important;
}
/* no progress hairlines / legacy pseudo layers */
body #hdr::before,
body #hdr::after,
body .nav::after{ content: none !important; display: none !important; }

/* ---- shell + row: fixed geometry, no transitions ---- */
.nav-shell{
  width: 100%; max-width: none; margin: 0; padding: 0 28px;
  box-sizing: border-box; transition: none;
}
.nav-island{
  position: relative;
  display: flex; align-items: center; gap: 12px;
  width: 100%; min-height: calc(var(--nav-h) - 1px);
  padding: 0; border: 0; border-radius: 0;
  background: transparent; box-shadow: none;
  backdrop-filter: none; -webkit-backdrop-filter: none;
  transform: none !important;
  animation: none !important;
  transition: none !important;
}

/* ---- brand: fixed size, quiet hover ---- */
.nav-island .brand,
body #hdr .brand{
  display: inline-flex; align-items: center; gap: 10px; flex: none;
  padding: 4px 6px 4px 0; border-radius: 10px;
  background: transparent !important;
  transition: opacity .15s ease;
}
.nav-island .brand:hover{ opacity: .9; transform: none; }
body #hdr .logo-mark,
body .brand .logo-mark{
  width: 30px !important; height: 30px !important;
  border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important;
  overflow: visible !important; display: grid !important; place-items: center;
  transform: none !important; transition: none !important;
}
body #hdr .logo-mark img{ width: 100% !important; height: 100% !important; object-fit: contain !important; filter: none !important; display: block; }
body #hdr .brand:hover .logo-mark{ transform: none !important; box-shadow: none !important; }
body #hdr .brand-txt{
  font-family: var(--display); font-weight: 750;
  font-size: 16px !important; letter-spacing: -.03em;
  transition: none !important;
}
body #hdr .brand-txt::after{ content: "."; color: var(--accent); }

/* ---- links: color hover, static underline for the active item ---- */
body #hdr .nav-links{
  position: relative; display: flex; align-items: center; justify-content: center;
  gap: 2px; flex: 1 1 auto; min-width: 0; margin: 0 8px; padding: 0;
  border-radius: 0; background: transparent !important;
  transition: none !important;
}
body #hdr .nav-links > a{
  position: relative; z-index: 1;
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 38px; padding: 0 13px; border-radius: 8px;
  color: var(--ink-2);
  font-family: var(--font) !important;
  font-size: 13.5px !important; font-weight: 600 !important;
  letter-spacing: -.01em !important; text-transform: none !important;
  white-space: nowrap; background: transparent !important;
  transform: none !important;
  transition: color .15s ease !important;
}
body #hdr .nav-links > a::before{ content: none !important; display: none !important; }
body #hdr .nav-links > a::after{
  content: "" !important; display: block !important;
  position: absolute; left: 13px !important; right: 13px !important; bottom: 5px;
  height: 2px; border-radius: 2px; background: var(--accent);
  transform: none !important; opacity: 0;
  transition: opacity .15s ease !important;
}
body #hdr .nav-links > a:hover{ color: var(--ink); background: transparent !important; }
body #hdr .nav-links > a.is-active{ color: var(--ink); }
body #hdr .nav-links > a.is-active::after{ opacity: 1; }
body #hdr .nav-links > a:focus-visible{
  outline: 2px solid color-mix(in srgb, var(--accent) 60%, transparent);
  outline-offset: 2px;
}
.nav-indicator{ display: none !important; }

/* ---- end cluster: fixed shapes, color-only hover ---- */
.nav-end{ display: inline-flex; align-items: center; gap: 8px; flex: none; margin-left: auto; }
body #hdr .seg{
  min-height: 36px; padding: 3px; border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: color-mix(in srgb, var(--surface-2) 55%, transparent);
  transition: none;
}
body #hdr .seg-btn{
  min-height: 30px; min-width: 34px; padding: 0 9px;
  border-radius: 7px; font-size: 11px; font-weight: 750;
}
body #hdr .seg-btn.active{ color: #fff; background: var(--btn-g2); box-shadow: none; }
body #hdr .icon-btn{
  width: 38px; height: 38px; border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: color-mix(in srgb, var(--surface-2) 55%, transparent);
  color: var(--ink-2);
  transform: none !important;
  transition: color .15s ease, border-color .15s ease, background .15s ease !important;
}
body #hdr .icon-btn:hover{
  color: var(--ink);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
  background: color-mix(in srgb, var(--accent) 9%, transparent);
  transform: none !important;
}
body #hdr .nav-primary{
  display: inline-flex; align-items: center; justify-content: center;
  min-height: 38px; padding: 0 16px; border-radius: 10px !important;
  font-family: var(--font); font-size: 13px; font-weight: 750;
  letter-spacing: -.01em; text-transform: none;
  color: #fff !important;
  background: linear-gradient(180deg, var(--btn-g1), var(--btn-g2)) !important;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent);
  box-shadow: 0 8px 18px -12px color-mix(in srgb, var(--btn-g2) 60%, transparent);
  transform: none !important;
  transition: filter .15s ease, box-shadow .2s ease !important;
}
body #hdr .nav-primary:hover{
  transform: none !important;
  filter: brightness(1.07);
  box-shadow: 0 10px 22px -12px color-mix(in srgb, var(--btn-g2) 70%, transparent);
}
body #hdr .nav-primary.is-active{ box-shadow: 0 0 0 2px color-mix(in srgb, var(--accent) 28%, transparent); }

/* ---- burger (mobile only) ---- */
body #hdr .nav-burger{
  display: none; width: 40px; height: 40px; border-radius: 10px;
  border: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background: color-mix(in srgb, var(--surface-2) 55%, transparent);
  color: var(--ink-2); cursor: pointer;
  transition: color .15s ease, border-color .15s ease, background .15s ease;
}
body #hdr.nav-open .nav-burger{
  color: var(--ink);
  border-color: color-mix(in srgb, var(--accent) 35%, var(--line));
  background: color-mix(in srgb, var(--accent) 10%, transparent);
}
.nav-burger-box{ position: relative; display: block; width: 18px; height: 12px; }
.nav-burger-box span{
  position: absolute; left: 0; width: 100%; height: 1.8px; border-radius: 2px; background: currentColor;
  transition: transform .18s ease, opacity .12s ease, top .18s ease;
}
.nav-burger-box span:nth-child(1){ top: 0; }
.nav-burger-box span:nth-child(2){ top: 5px; }
.nav-burger-box span:nth-child(3){ top: 10px; }
body #hdr.nav-open .nav-burger-box span:nth-child(1){ top: 5px; transform: rotate(45deg); }
body #hdr.nav-open .nav-burger-box span:nth-child(2){ opacity: 0; }
body #hdr.nav-open .nav-burger-box span:nth-child(3){ top: 5px; transform: rotate(-45deg); }

/* ---- mobile panel: one quick fade-slide ---- */
body #hdr .mnav{
  position: relative; z-index: 1;
  display: none; flex-direction: column; gap: 2px;
  width: 100%; margin: 0; padding: 0 16px;
  max-height: 0; opacity: 0; visibility: hidden; overflow: hidden;
  transition: max-height .22s ease, opacity .16s ease, visibility .22s;
}
body #hdr.nav-open .mnav{
  display: flex; max-height: 75vh; opacity: 1; visibility: visible;
  padding: 8px 16px 14px;
  border-top: 1px solid color-mix(in srgb, var(--line) 80%, transparent);
  background: color-mix(in srgb, var(--bg) 96%, transparent);
  overflow: auto; border-radius: 0; box-shadow: none;
}
[data-theme="light"] body #hdr.nav-open .mnav{ background: color-mix(in srgb, #fff 98%, transparent); }
body #hdr .mnav-link{
  display: flex; align-items: center; min-height: 48px; padding: 12px;
  border-radius: 12px; color: var(--ink);
  font-family: var(--font); font-weight: 650; font-size: 15.5px;
  border-bottom: 0; transition: background .15s ease;
}
body #hdr .mnav-link:hover,
body #hdr .mnav-link:active,
body #hdr .mnav-link.is-active{ background: color-mix(in srgb, var(--accent) 10%, transparent); transform: none; }
body #hdr .mnav-link::before{ display: none !important; content: none !important; }
body #hdr .mnav-cta{
  justify-content: center; margin-top: 8px; min-height: 46px;
  color: #fff !important;
  background: linear-gradient(180deg, var(--btn-g1), var(--btn-g2)) !important;
  font-weight: 750; border-radius: 12px !important;
}
body #hdr .mnav-heading{
  display:block;margin:10px 12px 2px;padding-top:13px;
  border-top:1px solid color-mix(in srgb,var(--line) 82%,transparent);
  font:800 .61rem/1 var(--mono);letter-spacing:.15em;color:var(--ink-3)
}
body #hdr .mnav-seg{ align-self: flex-start; margin-top: 10px; }

/* ---- breakpoints ---- */
@media (max-width:1100px){
  body #hdr .nav-links > a.nav-tool{ display: none; }
}
@media (max-width:980px){
  body #hdr .nav-links > a[href="/#compare"],
  body #hdr .nav-links > a[href="/#pricing"]{ display: none; }
}
@media (max-width:860px){
  :root{ --nav-h: 60px; }
  .nav-shell{ padding: 0 16px; }
  body #hdr .nav-links{ display: none !important; }
  body #hdr .nav-end .seg{ display: none; }
  body #hdr .nav-end .nav-primary{ display: none; }
  body #hdr .nav-burger{ display: inline-flex !important; align-items: center; justify-content: center; }
  /* Menu open: freeze the page and PIN the bar. overflow:hidden voids position:sticky
     (the scrollport disappears), which used to fling the header — and the whole menu —
     to the top of the document, thousands of px above the viewport. */
  html.nav-open{ overflow: hidden; }
  /* !important: the per-route header rules carry :not() chains (higher specificity),
     and "menu is open" must beat every one of them. */
  html.nav-open #hdr{
    position: fixed !important; top: 0 !important; left: 0; right: 0;
  }
}
@media (min-width:861px){
  body #hdr .mnav,
  body #hdr.nav-open .mnav{ display: none !important; max-height: 0 !important; }
  body #hdr .nav-burger{ display: none !important; }
}

/* footer brand logo stays frameless too */
footer .brand .logo-mark{
  width: 32px !important; height: 32px !important;
  border: 0 !important; border-radius: 0 !important;
  background: transparent !important; box-shadow: none !important;
}

@media (prefers-reduced-motion: reduce){
  body #hdr, body #hdr *{ transition: none !important; animation: none !important; }
}

/* ============================================================================
   GLOBAL BUTTONS v304 — one button green, white ink, sober motion (whole app)
   The lime accent keeps powering glows/borders/text accents; BUTTON FILLS use
   a deeper green (the REAL-verdict family) that carries white letters with
   real contrast — identical in dark and light, on every page.
   ============================================================================ */
:root{
  --btn-g1: #3aa315;   /* gradient top */
  --btn-g2: #2e8a10;   /* base — matches the REAL verdict green */
  --btn-ink: #ffffff;
}

/* ---- solid primaries (.btn) everywhere ---- */
.btn:not(.quiet){
  color: var(--btn-ink) !important;
  background: linear-gradient(180deg, var(--btn-g1), var(--btn-g2)) !important;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent) !important;
  box-shadow: 0 10px 24px -10px color-mix(in srgb, var(--btn-g2) 55%, transparent),
              inset 0 1px 0 rgba(255,255,255,.18);
  text-shadow: none;
}
.btn:not(.quiet):hover{
  color: var(--btn-ink) !important;
  background: linear-gradient(180deg, var(--btn-g1), var(--btn-g2)) !important;
  filter: brightness(1.07);
  box-shadow: 0 14px 30px -12px color-mix(in srgb, var(--btn-g2) 70%, transparent),
              inset 0 1px 0 rgba(255,255,255,.22);
}
/* motion sobriety: no hover lifts anywhere; keep the tactile press */
.btn:hover{ transform: none; }
.btn:active{ transform: scale(.985); }
#landing-view .tvhero-primary:hover{ transform: none; filter: brightness(1.07); }
.btn.is-disabled,
.btn:disabled{ filter: saturate(.55) brightness(.85); }

/* ---- landing controls ---- */
#landing-view .billing-btn.active{
  color: #fff;
  background: linear-gradient(180deg, var(--btn-g1), var(--btn-g2));
  box-shadow: 0 10px 24px -12px color-mix(in srgb, var(--btn-g2) 60%, transparent),
              inset 0 1px 0 rgba(255,255,255,.2);
}
#landing-view .price-ribbon{
  color: #fff;
  background: linear-gradient(135deg, var(--btn-g1), var(--btn-g2) 60%, color-mix(in srgb, var(--btn-g2) 82%, #000));
}
#landing-view .ribbon-main{ color: #fff; background: rgba(255,255,255,.14); }
.cmp-badge,
#landing-view .cmp-badge{
  color: #fff;
  background: var(--btn-g2);
  border-color: color-mix(in srgb, var(--accent) 55%, transparent);
}

/* ---- analyzer ---- */
.audit-mode-btn.active .mode-code{
  background: var(--btn-g2);
  border-color: color-mix(in srgb, var(--accent) 50%, transparent);
  color: #fff;
}
.hiw-tab.active .n,
.hiw-tab.done .n{
  background: var(--btn-g2);
  border-color: var(--btn-g2);
  color: #fff;
}

/* ---- reverse-engineering ---- */
.rv-run,
#reverse-view .rv-run{
  color: #fff !important;
  background: linear-gradient(180deg, var(--btn-g1), var(--btn-g2)) !important;
  border: 1px solid color-mix(in srgb, var(--accent) 55%, transparent) !important;
}
#reverse-view .rv-run:hover{ transform: none; filter: brightness(1.07); }
#reverse-view .rv-stepnum{
  background: linear-gradient(180deg, var(--btn-g1), var(--btn-g2));
  border: 1px solid color-mix(in srgb, var(--accent) 50%, transparent);
  color: #fff;
}

/* ---- consistent keyboard focus (whole app) ---- */
.btn:focus-visible,
.seg-btn:focus-visible,
.icon-btn:focus-visible,
.billing-btn:focus-visible,
.tool-btn:focus-visible,
.nav-burger:focus-visible{
  outline: 2px solid color-mix(in srgb, var(--accent) 65%, transparent);
  outline-offset: 2px;
}

/* ===================== ANALYZER Ω v310 — Forensic Instrument UI =====================
   Complete visual redesign of the analyzer only.
   JS contract preserved: ids, .pane/.active, .chart-gate(-btn), .audit-mode-*,
   .mode-cost-pill/.chart-pill, .frames-zone, .frame-drop, .upload-drop,
   .url-input-shell/.platform-*, .console-head b, #progress, .tool-btn,
   .chart-empty, .run-label, .az-journey / .azj-*, .run-checklist / .rc-*,
   .az-recent / .az-recent-item, .az-nowline, .vsum, .res-nav.
   Design language: forensic instrument — product chrome, layered glass, precision
   type, bento workspace, soft motion. Clean, advanced, professional.
   ============================================================================ */

/* ---- local tokens ---- */
body.is-analyzer{
  --ax-line: color-mix(in srgb, var(--ink) 10%, transparent);
  --ax-line-strong: color-mix(in srgb, var(--ink) 16%, transparent);
  --ax-glass: color-mix(in srgb, var(--surface) 78%, transparent);
  --ax-glass-2: color-mix(in srgb, var(--surface-2) 86%, transparent);
  --ax-well: color-mix(in srgb, var(--bg) 55%, transparent);
  --ax-well-2: color-mix(in srgb, var(--surface-3) 40%, transparent);
  --ax-accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);
  --ax-accent-mid: color-mix(in srgb, var(--accent) 28%, transparent);
  --ax-shadow:
    0 1px 0 rgba(255,255,255,.04) inset,
    0 30px 80px -48px rgba(0,0,0,.85),
    0 12px 28px -18px rgba(0,0,0,.55);
  --ax-shadow-sm:
    0 1px 0 rgba(255,255,255,.035) inset,
    0 14px 36px -22px rgba(0,0,0,.7);
  --ax-r: 18px;
  --ax-r-sm: 12px;
  --ax-r-xs: 9px;
}
[data-theme="light"] body.is-analyzer{
  --ax-line: rgba(12,18,16,.10);
  --ax-line-strong: rgba(12,18,16,.16);
  --ax-glass: rgba(255,255,255,.86);
  --ax-glass-2: rgba(255,255,255,.94);
  --ax-well: rgba(12,18,16,.035);
  --ax-well-2: rgba(12,18,16,.05);
  --ax-accent-soft: color-mix(in srgb, var(--accent) 9%, transparent);
  --ax-accent-mid: color-mix(in srgb, var(--accent) 20%, transparent);
  --ax-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 28px 70px -40px rgba(12,18,16,.22),
    0 10px 22px -14px rgba(12,18,16,.10);
  --ax-shadow-sm:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 12px 28px -16px rgba(12,18,16,.14);
}

/* ---- ambient stage ---- */
body.is-analyzer #bg-candles{opacity:.05!important}
body.is-analyzer .terminal-grid-bg{opacity:.07!important}
body.is-analyzer footer{display:none}

.ax-page{
  position:relative;
  isolation:isolate;
  padding:clamp(18px,3.2vh,36px) 0 110px;
  min-height:calc(100svh - var(--nav-h));
  overflow:clip;
}
/* Ambient + portrait are VIEWPORT-FIXED so pane height changes
   (Video URL ↔ Upload ↔ Write rules) never resize/distort the stage. */
.ax-ambient{
  position:fixed;
  top:var(--nav-h);
  left:0;right:0;bottom:0;
  pointer-events:none;
  z-index:0;
  overflow:hidden;
}
.ax-orb{
  position:absolute;border-radius:50%;filter:blur(60px);
  opacity:.55;will-change:transform;
}
.ax-orb-a{
  width:min(52vw,520px);height:min(52vw,520px);
  top:-12%;left:-8%;
  background:radial-gradient(circle at 40% 40%,
    color-mix(in srgb,var(--accent) 28%,transparent),
    transparent 68%);
  animation:ax-drift-a 18s ease-in-out infinite alternate;
}
.ax-orb-b{
  width:min(46vw,460px);height:min(46vw,460px);
  top:8%;right:-10%;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in srgb,var(--accent-2) 16%,transparent),
    transparent 70%);
  animation:ax-drift-b 22s ease-in-out infinite alternate;
}
.ax-grid-fade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, transparent 0%, var(--bg) 88%),
    repeating-linear-gradient(90deg,
      color-mix(in srgb,var(--ink) 3.5%,transparent) 0 1px,
      transparent 1px 72px),
    repeating-linear-gradient(0deg,
      color-mix(in srgb,var(--ink) 2.5%,transparent) 0 1px,
      transparent 1px 72px);
  mask-image:radial-gradient(ellipse 80% 55% at 50% 0%, #000 20%, transparent 75%);
  opacity:.55;
}
@keyframes ax-drift-a{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(4%,6%,0) scale(1.08)}
}
@keyframes ax-drift-b{
  from{transform:translate3d(0,0,0) scale(1)}
  to{transform:translate3d(-5%,4%,0) scale(1.06)}
}

.ax-shell{
  position:relative;z-index:1;
  width:min(100% - 40px, 1040px);
  margin-inline:auto;
}

/* ---- product chrome (tool-first) ---- */
.ax-chrome{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0;
  margin:0 0 clamp(14px,2.2vh,20px);
  padding:4px 2px 0;
  position:relative;
  z-index:2;
  max-width:min(560px, 72%);
}
.ax-kicker{
  display:flex;align-items:center;flex-wrap:wrap;gap:10px;
  margin-bottom:12px;
}
.ax-live-dot{
  width:8px;height:8px;border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);
  animation:ax-pulse 2s ease-in-out infinite;
}
@keyframes ax-pulse{
  0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 50%,transparent)}
  50%{box-shadow:0 0 0 7px transparent}
}
.ax-eyebrow{
  font-family:var(--mono);font-size:10.5px;font-weight:800;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);
}
.ax-chrome h1{
  margin:0 0 8px;
  font-family:var(--display);
  font-size:clamp(26px,3.2vw,36px);
  line-height:1.05;font-weight:780;letter-spacing:-.03em;
  color:var(--ink);
  max-width:16ch;
}
.ax-chrome p{
  margin:0;max-width:42ch;
  font-size:14.5px;line-height:1.55;color:var(--ink-2);
}

/* =========================================================
   DOTTED BACKGROUND PORTRAIT (advanced pointillist reveal)
   Base = soft blurred image sampled through a dot grid.
   Hover / pointer = local spotlight that sharpens & densifies.
   ========================================================= */
.ax-dotfield{
  --mx: 78%;
  --my: 48%;
  --dot-a: 5.5px;
  --dot-b: 4px;
  /* huge portrait anchored to the RIGHT — size locked to viewport, not form height */
  --hero-size: auto min(100svh, 1200px);
  --hero-pos: right 42%;
  position:fixed;
  top:var(--nav-h);
  left:0;right:0;bottom:0;
  z-index:0;
  pointer-events:none;
  overflow:hidden;
  opacity:1;
  /* isolate painting so hover never thrash-composites the form */
  isolation:isolate;
  contain:paint;
  transform:translateZ(0);
  transition:opacity .35s var(--ease);
}
/* Keep it on idle only — tool surface stays clean while running/result */
body.is-analyzer.analyzer-running .ax-dotfield,
body.is-analyzer.analyzer-result .ax-dotfield{
  opacity:0;
  visibility:hidden;
}
.ax-dotfield-layer{
  position:absolute;
  /* full-stage canvas; image itself sits on the right */
  inset:0;
  background-image: var(--ax-hero);
  background-repeat: no-repeat;
  background-position: var(--hero-pos);
  background-size: var(--hero-size);
  /* stable layer — avoid will-change on mask (causes form flicker) */
  transform:translateZ(0);
  backface-visibility:hidden;
}
/* Layer 1 — very soft atmospheric wash (no dots, heavy blur) */
.ax-dotfield-wash{
  filter: blur(40px) saturate(.7) brightness(.95);
  opacity:.3;
  transform: scale(1.1) translateZ(0);
  /* lock wash to same viewport-relative scale as the dotted body */
  background-size: auto min(108svh, 1280px);
  background-position: right 40%;
}
[data-theme="light"] .ax-dotfield-wash{opacity:.2;filter:blur(42px) saturate(.65) brightness(1.05)}

/* Layer 2 — the dotted / pointillist body (STATIC — never reacts to hover) */
.ax-dotfield-dots{
  opacity:.68;
  filter: blur(.25px) saturate(.92) contrast(1.08);
  /* circular halftone: each cell is a soft disk → advanced point field */
  -webkit-mask-image:
    radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  mask-image:
    radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  -webkit-mask-size: var(--dot-b) var(--dot-b);
  mask-size: var(--dot-b) var(--dot-b);
  -webkit-mask-repeat: repeat;
  mask-repeat: repeat;
  -webkit-mask-position: 0 0;
  mask-position: 0 0;
}
/* Slightly larger / softer dots as a second sampling pass */
.ax-dotfield-dots::before{
  content:"";
  position:absolute;inset:0;
  background-image: var(--ax-hero);
  background-repeat: no-repeat;
  background-position: var(--hero-pos);
  background-size: var(--hero-size);
  filter: blur(6px) saturate(.75);
  opacity:.45;
  -webkit-mask-image:
    radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  mask-image:
    radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  -webkit-mask-size: var(--dot-a) var(--dot-a);
  mask-size: var(--dot-a) var(--dot-a);
  -webkit-mask-repeat: repeat;
  mask-repeat: repeat;
  pointer-events:none;
}
[data-theme="light"] .ax-dotfield-dots{opacity:.48}

/* Layer 3 — mouse focus: ONLY this layer moves with the pointer.
   Opacity-only reveal (no filter/mask-size thrash) so the form never flickers. */
.ax-dotfield-focus{
  opacity:0;
  filter: saturate(1.08) contrast(1.04);
  /* fixed spotlight radius — only position vars update */
  -webkit-mask-image: radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  mask-image: radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  transition: opacity .2s ease;
  will-change: opacity;
}
.ax-dotfield.is-lit .ax-dotfield-focus{
  opacity:.92;
}
/* Form surfaces: own stacking context so background repaints never bleed in */
body.is-analyzer .ax-shell,
body.is-analyzer .ax-instrument,
body.is-analyzer .ax-chrome{
  isolation:isolate;
  position:relative;
  z-index:2;
}

/* Soft vignette: protect left form column, keep RIGHT portrait strong */
.ax-dotfield-vignette{
  position:absolute;inset:0;
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb, var(--bg) 78%, transparent) 22%,
      color-mix(in srgb, var(--bg) 28%, transparent) 48%,
      transparent 68%),
    linear-gradient(180deg,
      color-mix(in srgb, var(--bg) 38%, transparent) 0%,
      transparent 16%,
      transparent 80%,
      color-mix(in srgb, var(--bg) 65%, transparent) 100%);
  pointer-events:none;
}
[data-theme="light"] .ax-dotfield-vignette{
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb, var(--bg) 84%, transparent) 24%,
      color-mix(in srgb, var(--bg) 32%, transparent) 50%,
      transparent 70%),
    linear-gradient(180deg,
      color-mix(in srgb, var(--bg) 44%, transparent) 0%,
      transparent 18%,
      transparent 80%,
      color-mix(in srgb, var(--bg) 70%, transparent) 100%);
}

/* Ensure shell content stays above the field */
.ax-shell{position:relative;z-index:1}

/* ---- journey track ---- */
.az-journey{
  display:flex;align-items:stretch;gap:0;
  margin:0 0 18px;
  padding:6px;
  border:1px solid var(--ax-line);
  border-radius:16px;
  background:var(--ax-glass);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:var(--ax-shadow-sm);
  position:relative;
}
.az-journey:empty{display:none}
body.is-analyzer.analyzer-idle .az-journey{display:none}
.azj-link{
  flex:0 0 1px;align-self:center;height:42%;
  background:var(--ax-line);border-radius:1px;
}
.azj-node.done + .azj-link{
  background:color-mix(in srgb,var(--real) 45%,var(--ax-line));
}
.azj-node{
  position:relative;flex:1;
  display:flex;align-items:center;gap:10px;
  min-width:0;text-align:left;
  border:0;border-radius:12px;
  background:transparent;
  padding:11px 12px;cursor:pointer;color:var(--ink-2);
  transition:background .18s var(--ease), color .18s var(--ease);
}
.azj-node:hover{background:var(--ax-well);color:var(--ink)}
.azj-dot{
  width:28px;height:28px;flex:0 0 28px;border-radius:10px;
  display:inline-flex;align-items:center;justify-content:center;
  font-family:var(--mono);font-size:11px;font-weight:850;
  border:1px solid var(--ax-line);color:var(--ink-3);
  background:var(--ax-well);
  transition:all .2s var(--ease);
}
.azj-txt{display:flex;flex-direction:column;min-width:0;gap:1px}
.azj-txt b{
  font-size:12.5px;font-weight:780;color:var(--ink);line-height:1.2;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.azj-txt small{
  font-size:10.5px;color:var(--ink-3);line-height:1.3;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.azj-pct{
  margin-left:auto;
  font-family:var(--mono);font-size:11px;font-weight:850;
  color:var(--accent);font-style:normal;
  font-variant-numeric:tabular-nums;
}
.azj-node.active{
  background:linear-gradient(180deg,
    color-mix(in srgb,var(--accent) 14%,transparent),
    color-mix(in srgb,var(--accent) 5%,transparent));
}
.azj-node.active .azj-dot{
  border-color:transparent;color:#061208;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)));
  box-shadow:0 8px 18px -10px color-mix(in srgb,var(--accent) 70%,transparent);
}
.azj-node.done .azj-dot{
  border-color:color-mix(in srgb,var(--real) 45%,transparent);
  color:var(--real);
  background:color-mix(in srgb,var(--real) 10%,transparent);
}
.azj-node.todo{opacity:.58}
@media (max-width:820px){
  .az-journey{display:grid;grid-template-columns:1fr 1fr;gap:4px;padding:6px}
  body.is-analyzer.analyzer-idle .az-journey{display:none}
  .azj-link{display:none}
  .azj-txt small{display:none}
}

/* ---- workspace: instrument + intel ---- */
.ax-workspace{
  display:block;
  width:100%;
  max-width:920px;
  margin:0 auto;
}
.ax-instrument{
  width:100%;
}

/* ---- main instrument panel ---- */
.ax-instrument{
  border:1px solid var(--ax-line);
  border-radius:22px;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 92%, transparent),
      color-mix(in srgb,var(--surface-2) 88%, transparent));
  box-shadow:var(--ax-shadow);
  overflow:hidden;
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
}
.ax-instrument-top{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px clamp(16px,2.2vw,24px);
  border-bottom:1px solid var(--ax-line);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 5%, transparent),
      transparent);
}
.ax-instrument-label{min-width:0}
.ax-instrument-label span{
  display:block;
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
.ax-instrument-label b{
  display:block;margin-top:3px;
  font-size:14px;font-weight:780;color:var(--ink);letter-spacing:-.01em;
}
.ax-tabs{
  display:inline-grid;grid-template-columns:repeat(3,auto);
  gap:3px;padding:3px;
  border:1px solid var(--ax-line);
  border-radius:14px;
  background:var(--ax-well);
  max-width:100%;
}
.ax-tab{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;
  min-height:40px;padding:0 14px;border:0;border-radius:11px;
  background:transparent;color:var(--ink-2);
  font-size:13px;font-weight:720;cursor:pointer;
  transition:color .16s var(--ease), background .16s var(--ease), box-shadow .16s var(--ease), transform .16s var(--ease);
  white-space:nowrap;min-width:0;
}
.ax-tab svg{width:15px;height:15px;flex:0 0 15px;opacity:.78}
.ax-tab span{overflow:hidden;text-overflow:ellipsis}
.ax-tab:hover{color:var(--ink);background:color-mix(in srgb,var(--ink) 4%,transparent)}
.ax-tab.active{
  color:#061208;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)));
  box-shadow:
    0 1px 0 rgba(255,255,255,.25) inset,
    0 10px 22px -12px color-mix(in srgb,var(--accent) 65%,transparent);
}
.ax-tab.active svg{opacity:1}
.ax-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ax-tab:active{transform:scale(.98)}

.ax-instrument-body{
  padding:4px clamp(16px,2.2vw,24px) 8px;
}

/* panes */
body.is-analyzer .pane{padding:0}
body.is-analyzer.analyzer-idle #pane-yt.active,
body.is-analyzer.analyzer-idle #pane-up.active,
body.is-analyzer.analyzer-idle #pane-txt.active{
  display:flex;flex-direction:column;gap:0;align-items:stretch;
}

/* fields */
.ax-fld{display:flex;flex-direction:column;gap:8px;margin:18px 0 0}
.ax-lab{
  font-family:var(--mono);font-size:10px;font-weight:850;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
body.is-analyzer .ax-fld input,
body.is-analyzer .ax-fld textarea{
  width:100%;min-height:48px;padding:12px 14px;
  border:1px solid var(--ax-line)!important;border-radius:13px;
  background:var(--ax-well)!important;color:var(--ink);
  box-shadow:none!important;
  font-size:14.5px;font-family:inherit;
  transition:border-color .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease);
}
.ax-fld textarea{min-height:0;line-height:1.55;resize:vertical}
body.is-analyzer .ax-fld input:focus,
body.is-analyzer .ax-fld textarea:focus{
  outline:none;
  border-color:color-mix(in srgb,var(--accent) 55%,var(--ax-line))!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)!important;
  background:color-mix(in srgb,var(--surface) 70%,transparent)!important;
}
.ax-fld-opt .ax-lab{opacity:.8}
.ax-fld-opt input{min-height:44px;font-size:13.5px}

/* URL shell */
body.is-analyzer .ax-fld .ax-urlshell input,
body.is-analyzer .ax-fld .ax-urlshell input:focus{
  border:0!important;background:transparent!important;box-shadow:none!important;
  min-height:50px;padding:0!important;border-radius:0!important;
}
.ax-urlshell{
  min-height:58px!important;
  border-radius:14px!important;
  border-color:var(--ax-line)!important;
  background:var(--ax-well)!important;
  box-shadow:none!important;
  transition:border-color .16s var(--ease), box-shadow .16s var(--ease);
}
.ax-urlshell:focus-within{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--ax-line))!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)!important;
}
.ax-urlshell input{font-size:14.5px}
.ax-note{margin:14px 0 0}

/* ---- decision cards ---- */
body.is-analyzer .ax-q,
body.is-analyzer .chart-gate.ax-q,
body.is-analyzer .audit-mode-choice.ax-q{
  width:100%!important;max-width:100%!important;
  margin:20px 0 0!important;
  padding:16px!important;
  position:relative;
  border:1px solid var(--ax-line)!important;
  border-radius:16px!important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 40%, transparent),
      var(--ax-well))!important;
  box-shadow:none!important;
}
body.is-analyzer .ax-q.awaiting-choice{
  border-style:dashed!important;
  border-color:color-mix(in srgb,var(--accent) 35%,var(--ax-line))!important;
}
.ax-q-head{
  display:flex;align-items:flex-start;justify-content:space-between;gap:12px;
  margin:0 0 14px;
}
.ax-step{
  display:inline-block;
  font-family:var(--mono);font-size:10px;font-weight:850;
  letter-spacing:.14em;color:var(--accent);
  margin-bottom:5px;
}
.ax-q-title{
  display:block;font-size:15px;font-weight:780;color:var(--ink);
  letter-spacing:-.015em;line-height:1.25;
}
.ax-q-help{
  display:block;margin-top:4px;font-size:12.5px;line-height:1.5;
  color:var(--ink-3);max-width:56ch;
}
body.is-analyzer .ax-pill{
  flex:0 0 auto;display:inline-flex;align-items:center;
  min-height:24px!important;padding:0 10px!important;
  border:1px solid var(--ax-line)!important;border-radius:999px!important;
  background:var(--ax-well)!important;
  font-family:var(--mono)!important;font-size:9.5px!important;font-weight:850!important;
  letter-spacing:.1em;text-transform:uppercase;
  color:var(--ink-3)!important;box-shadow:none!important;
}
.ax-opts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}

/* option cards */
body.is-analyzer .ax-opt{
  display:flex!important;flex-direction:row!important;align-items:flex-start!important;
  gap:12px!important;min-height:0!important;
  grid-template-columns:none!important;
  padding:14px!important;
  text-align:left;position:relative;cursor:pointer;
  border:1px solid var(--ax-line)!important;
  border-radius:14px!important;
  background:var(--ax-glass-2)!important;
  box-shadow:none!important;
  transition:border-color .16s var(--ease), background .16s var(--ease), transform .16s var(--ease), box-shadow .16s var(--ease);
  font-family:inherit;
}
body.is-analyzer .ax-opt::before,
body.is-analyzer .ax-opt::after{display:none!important}
body.is-analyzer .ax-opt:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--ax-line))!important;
  transform:translateY(-1px);
  box-shadow:0 12px 28px -20px rgba(0,0,0,.55)!important;
}
.ax-opt-mark{
  width:18px;height:18px;flex:0 0 18px;margin-top:1px;border-radius:50%;
  border:1.5px solid var(--ax-line-strong);
  background:transparent;
  position:relative;
  transition:border-color .16s, background .16s, box-shadow .16s;
}
.ax-opt-mark::after{
  content:"";position:absolute;inset:4px;border-radius:50%;
  background:transparent;transition:background .16s;
}
.ax-opt-body{display:flex;flex-direction:column;gap:3px;min-width:0;flex:1}
body.is-analyzer .ax-opt b,
body.is-analyzer .ax-opt .ax-opt-body > b{
  font-size:13.5px;font-weight:780;color:var(--ink);line-height:1.3;letter-spacing:-.01em;
}
body.is-analyzer .ax-opt small,
body.is-analyzer .ax-opt .ax-opt-body > small{
  font-size:12px;line-height:1.45;color:var(--ink-3);
}
body.is-analyzer .ax-opt.active{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--ax-line))!important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 10%, transparent),
      color-mix(in srgb,var(--accent) 4%, var(--ax-glass-2)))!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent) inset!important;
}
body.is-analyzer .ax-opt.active .ax-opt-mark{
  border-color:transparent;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)));
  box-shadow:0 0 0 3.5px color-mix(in srgb,var(--surface) 92%,#fff) inset;
}
body.is-analyzer .ax-opt:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ax-opt-meta{display:flex;flex-wrap:wrap;gap:6px;margin-top:8px}
.ax-opt-meta i{
  font-style:normal;font-family:var(--mono);font-size:9.5px;font-weight:800;
  letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3);
  border:1px solid var(--ax-line);border-radius:7px;padding:3px 7px;
  background:var(--ax-well);
}
body.is-analyzer .ax-opt.active .ax-opt-meta i{
  color:color-mix(in srgb,var(--accent) 75%,var(--ink));
  border-color:color-mix(in srgb,var(--accent) 30%,transparent);
  background:color-mix(in srgb,var(--accent) 8%,transparent);
}
.ax-q-note{margin:12px 2px 0;font-size:12.5px;line-height:1.55;color:var(--ink-2)}
.ax-q .ax-q-note[data-mode-explain]{
  padding:11px 13px;margin:14px 0 0;
  border-left:2px solid color-mix(in srgb,var(--accent) 60%,transparent);
  background:color-mix(in srgb,var(--accent) 6%,transparent);
  border-radius:0 11px 11px 0;color:var(--ink-2);
}

/* frames */
.ax-frames{margin-top:14px}
.ax-frame-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;margin-top:10px}
body.is-analyzer .frame-drop{
  border-radius:14px!important;
  border-color:var(--ax-line)!important;
  background:var(--ax-glass-2)!important;
  box-shadow:none!important;
  transition:border-color .16s var(--ease), transform .16s var(--ease)!important;
}
body.is-analyzer .frame-drop:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--ax-line))!important;
  transform:translateY(-1px);
}
body.is-analyzer .frame-drop.dragging{border-color:var(--accent)!important}

/* upload */
body.is-analyzer .ax-drop{
  margin-top:0!important;
  min-height:200px;
  border-radius:16px!important;
  border:1.5px dashed color-mix(in srgb,var(--accent) 28%,var(--ax-line))!important;
  background:
    radial-gradient(420px 160px at 50% 0%,
      color-mix(in srgb,var(--accent) 8%,transparent),
      transparent 70%),
    var(--ax-well)!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  text-align:center;padding:24px 18px;
  transition:border-color .16s var(--ease), background .16s var(--ease), transform .16s var(--ease);
}
body.is-analyzer .ax-drop:hover,
body.is-analyzer .ax-drop.dragging{
  border-color:color-mix(in srgb,var(--accent) 62%,var(--ax-line))!important;
  transform:translateY(-1px);
}
.ax-drop-ring{
  width:52px;height:52px;border-radius:16px;
  display:inline-flex;align-items:center;justify-content:center;
  border:1px solid var(--ax-line);
  background:var(--ax-glass-2);
  color:var(--accent);
  margin-bottom:4px;
}
.ax-drop-ring svg{width:22px;height:22px}
body.is-analyzer .ax-drop b{font-size:14.5px;font-weight:750}
body.is-analyzer .ax-drop small{color:var(--ink-3);font-size:12px}

/* ---- action dock ---- */
.ax-dock{
  margin-top:8px;
  padding:14px clamp(16px,2.2vw,24px) 16px;
  border-top:1px solid var(--ax-line);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 55%, transparent),
      color-mix(in srgb,var(--surface-2) 92%, transparent));
  display:flex;flex-direction:column;gap:12px;
}
.run-checklist{display:flex;flex-wrap:wrap;align-items:center;gap:7px 12px}
.run-checklist:empty{display:none}
.rc-head{display:flex;align-items:center;gap:8px;margin-right:2px}
.rc-head span{
  font-family:var(--mono);font-size:10px;font-weight:850;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
}
.rc-head b{
  font-family:var(--mono);font-size:11px;font-weight:850;color:var(--ink);
  border:1px solid var(--ax-line);border-radius:999px;padding:2px 8px;
  background:var(--ax-well);
  font-variant-numeric:tabular-nums;
}
.rc-item{
  display:inline-flex;align-items:center;gap:7px;
  border:1px solid var(--ax-line);border-radius:999px;
  background:var(--ax-well);padding:6px 11px 6px 8px;
  color:var(--ink-2);font-size:12px;font-weight:650;cursor:pointer;
  transition:border-color .15s, color .15s, background .15s;
  text-align:left;
}
.rc-item i{
  font-style:normal;font-family:var(--mono);font-size:11px;font-weight:850;
  color:var(--marginal);
}
.rc-item.ok{color:var(--ink-3);background:color-mix(in srgb,var(--real) 6%,transparent)}
.rc-item.ok i{color:var(--real)}
.rc-item.info i{color:var(--accent)}
.rc-item:hover{border-color:color-mix(in srgb,var(--accent) 42%,var(--ax-line));color:var(--ink)}
.rc-item:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.rc-cost{
  margin-left:auto;
  font-family:var(--mono);font-size:11px;font-weight:750;color:var(--ink-3);
  white-space:nowrap;
}
.rc-cost b{color:var(--ink);font-weight:850}
.rc-flash{
  outline:2px solid var(--accent);outline-offset:3px;border-radius:12px;
  transition:outline-color .2s;
}
body.is-analyzer #run{
  width:100%;min-height:52px;border-radius:14px!important;
  font-size:15px;letter-spacing:.01em;margin:0!important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.18) inset,
    0 14px 30px -14px color-mix(in srgb,var(--accent) 55%,transparent)!important;
}
body.is-analyzer #run:disabled,
body.is-analyzer #run.is-disabled{
  cursor:not-allowed;opacity:.5;filter:saturate(.5);
  transform:none!important;box-shadow:none!important;
}
.ax-legal{
  margin:0;font-size:10.5px;line-height:1.5;color:var(--ink-3);
  text-align:center;letter-spacing:.01em;
}

/* ---- intel rail ---- */
.ax-card{
  border:1px solid var(--ax-line);
  border-radius:16px;
  background:var(--ax-glass);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:var(--ax-shadow-sm);
  padding:15px 15px;
}
.ax-microlabel{
  display:block;
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
.ax-card-title{
  display:block;margin-top:2px;
  font-size:13.5px;font-weight:780;color:var(--ink);letter-spacing:-.01em;
}
.ax-how-top{display:flex;align-items:center;gap:11px;margin-bottom:12px}
.ax-mascot{
  margin:0;width:44px;height:44px;flex:0 0 44px;border-radius:13px;overflow:hidden;
  border:1px solid var(--ax-line);background:var(--ax-well);
}
.ax-mascot img{width:100%;height:100%;object-fit:cover;object-position:top}
.ax-how-steps{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:0}
.ax-how-steps li{
  display:grid;grid-template-columns:34px minmax(0,1fr);gap:10px;align-items:start;
  padding:10px 0;position:relative;
}
.ax-how-steps li + li{border-top:1px solid var(--ax-line)}
.ax-how-n{
  font-family:var(--mono);font-size:11px;font-weight:850;color:var(--accent);
  line-height:1.4;padding-top:1px;
}
.ax-how-steps b{display:block;font-size:12.5px;font-weight:780;color:var(--ink)}
.ax-how-steps span{display:block;margin-top:2px;font-size:11.5px;color:var(--ink-3);line-height:1.4}
.ax-verdicts{display:flex;flex-direction:column;gap:10px}
.ax-v-grid{display:flex;flex-direction:column;gap:8px}
.ax-v-row{
  display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:center;
  padding:9px 10px;border-radius:12px;
  border:1px solid var(--ax-line);background:var(--ax-well);
}
.ax-v-row > span:last-child{font-size:11.5px;color:var(--ink-3);line-height:1.35;min-width:0}

.ax-demo{
  display:flex;align-items:center;gap:12px;text-align:left;cursor:pointer;
  transition:border-color .16s var(--ease), transform .16s var(--ease), background .16s var(--ease);
  font-family:inherit;
  background:
    linear-gradient(135deg,
      color-mix(in srgb,var(--accent) 10%, transparent),
      var(--ax-glass));
}
.ax-demo:hover{
  border-color:color-mix(in srgb,var(--accent) 48%,var(--ax-line));
  transform:translateY(-1px);
}
.ax-demo:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ax-demo-play{
  width:38px;height:38px;flex:0 0 38px;border-radius:12px;
  display:inline-flex;align-items:center;justify-content:center;
  color:#061208;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)));
  box-shadow:0 10px 20px -12px color-mix(in srgb,var(--accent) 70%,transparent);
}
.ax-demo-play svg{width:14px;height:14px}
.ax-demo-txt{display:flex;flex-direction:column;gap:2px;min-width:0;flex:1}
.ax-demo-txt b{font-size:13px;font-weight:780;color:var(--ink)}
.ax-demo-txt span{font-size:11.5px;color:var(--ink-3)}
.ax-demo-go{color:var(--accent);font-weight:800;font-size:16px;opacity:.75}

/* recent — compact tool strip, only when history exists */
.az-recent{
  max-width:920px;margin:0 auto 14px;
  border:1px solid var(--ax-line);border-radius:14px;
  background:var(--ax-glass);
  backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);
  box-shadow:var(--ax-shadow-sm);
  padding:10px 12px;
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
}
.az-recent.hidden{display:none!important}
.az-recent .rc-head{margin:0;width:100%;margin-bottom:2px}
.az-clear{
  background:transparent;border:0;cursor:pointer;
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
}
.az-clear:hover{color:var(--humo)}
.az-recent-item{
  display:flex;align-items:center;gap:8px;text-align:left;min-width:0;
  flex:1 1 220px;max-width:100%;
  border:1px solid var(--ax-line);border-radius:11px;
  background:var(--ax-well);padding:8px 10px;cursor:pointer;color:var(--ink-2);
  transition:border-color .15s, transform .15s;
}
.az-recent-item:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--ax-line));
  transform:translateY(-1px);
}
.az-recent-item .status-dot,
.az-recent-item .tag{flex:0 0 auto}
.azr-t{
  flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  font-size:12.5px;color:var(--ink);
}
body.is-analyzer.analyzer-running .az-recent,
body.is-analyzer.analyzer-result .az-recent{display:none!important}

/* ---- state machine ---- */
body.is-analyzer.analyzer-running #check,
body.is-analyzer.analyzer-result #check{display:none!important}
body.is-analyzer.analyzer-running .ax-workspace,
body.is-analyzer.analyzer-result .ax-workspace{display:block}
body.is-analyzer.analyzer-running .ax-chrome p,
body.is-analyzer.analyzer-result .ax-chrome p{display:none}
body.is-analyzer.analyzer-running .ax-chrome,
body.is-analyzer.analyzer-result .ax-chrome{margin-bottom:12px}
body.is-analyzer.analyzer-running .ax-chrome h1,
body.is-analyzer.analyzer-result .ax-chrome h1{
  font-size:clamp(22px,2.4vw,28px);max-width:none;margin-bottom:0;
}
/* running/result panels get full solid width */
body.is-analyzer.analyzer-running .ax-panel,
body.is-analyzer.analyzer-result .ax-panel,
body.is-analyzer.analyzer-running .az-journey,
body.is-analyzer.analyzer-result .az-journey{
  max-width:1080px;margin-left:auto;margin-right:auto;
}
body.is-analyzer.analyzer-running .az-journey,
body.is-analyzer.analyzer-result .az-journey{margin-bottom:14px}

/* ---- shared panel ---- */
.ax-panel{
  border:1px solid var(--ax-line);
  border-radius:22px;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 92%, transparent),
      color-mix(in srgb,var(--surface-2) 90%, transparent));
  box-shadow:var(--ax-shadow);
  margin-top:16px;
  overflow:hidden;
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
}

/* ---- live audit ---- */
body.is-analyzer #audit-process{overflow:hidden}
body.is-analyzer #audit-process .console-head{
  grid-area:head;
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px clamp(16px,2.2vw,24px);
  border-bottom:1px solid var(--ax-line);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 6%, transparent),
      transparent);
}
body.is-analyzer #audit-process .console-head span{
  font-family:var(--mono);font-size:10px;font-weight:850;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
body.is-analyzer #audit-process .console-head b{
  font-family:var(--mono);font-size:12px;font-weight:800;color:var(--ink);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.az-nowline{
  display:flex;align-items:center;gap:10px;
  margin:0 0 14px;padding:12px 14px;
  border:1px solid var(--ax-line);
  border-radius:12px;
  background:var(--ax-well);
  color:var(--ink);font-size:13.5px;font-weight:650;line-height:1.4;
}
.az-nowline.done{color:var(--ink)}
.az-now-dot{width:8px;height:8px;border-radius:50%;background:var(--real);flex:0 0 8px}
.az-now-dot.live{background:var(--accent);animation:ax-pulse 1.2s ease-in-out infinite}
#az-elapsed{
  margin-left:auto;font-family:var(--mono);font-size:11.5px;font-weight:850;
  color:var(--ink-3);font-variant-numeric:tabular-nums;
}
.az-retry-row{display:flex;justify-content:center;padding:6px 0 14px}
body.is-analyzer .audit-progress-meter{padding:0 0 14px}
body.is-analyzer .audit-progress-top{
  display:flex;align-items:baseline;justify-content:space-between;margin:0 0 8px;
}
body.is-analyzer .audit-progress-top span{
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
}
body.is-analyzer .audit-progress-top b{
  font-family:var(--mono);font-size:12px;font-weight:850;color:var(--accent);
  font-variant-numeric:tabular-nums;
}
body.is-analyzer .audit-bar{
  height:5px;border-radius:999px;overflow:hidden;
  background:var(--ax-line);border:0;
}
body.is-analyzer .audit-bar span{
  display:block;height:100%;width:var(--pct,0%);border-radius:inherit;
  background:linear-gradient(90deg,var(--btn-g1,var(--accent-hi)),var(--accent));
  box-shadow:0 0 12px color-mix(in srgb,var(--accent) 45%,transparent);
  transition:width .35s var(--ease);
}
body.is-analyzer #audit-process .stage-list{gap:0!important}
body.is-analyzer #audit-process .pstage{
  min-height:0!important;
  display:flex;align-items:center;gap:10px;
  padding:10px 4px!important;
  border:0!important;border-bottom:1px solid var(--ax-line)!important;
  border-radius:0!important;background:transparent!important;
  font-size:12.5px;color:var(--ink-2);
}
body.is-analyzer #audit-process .pstage:last-child{border-bottom:0!important}
body.is-analyzer #audit-process .pstage .pdot{
  width:8px;height:8px;flex:0 0 8px;border-radius:50%;
  background:var(--ax-line-strong);box-shadow:none;
}
body.is-analyzer #audit-process .pstage.done .pdot{background:var(--real)}
body.is-analyzer #audit-process .pstage.running{color:var(--ink)}
body.is-analyzer #audit-process .pstage.running .pdot{
  background:var(--accent);animation:ax-pulse 1.2s ease-in-out infinite;
}
body.is-analyzer #audit-process .pstage.fail{color:var(--ink)}
body.is-analyzer #audit-process .pstage.fail .pdot{background:var(--humo)}
body.is-analyzer #audit-process .pstage .pnote{
  margin-left:auto;font-family:var(--mono);font-size:10.5px;color:var(--ink-3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:46%;
}
body.is-analyzer #audit-process .source-card{
  border:1px solid var(--ax-line)!important;
  background:var(--ax-well)!important;
  box-shadow:none!important;
  border-radius:14px!important;
}
body.is-analyzer #audit-process .flow-node{
  background:var(--ax-well);border-color:var(--ax-line);box-shadow:none;
  border-radius:12px;
}
body.is-analyzer.analyzer-running #audit-process .audit-flow{display:none}
@media (min-width:821px){
  body.is-analyzer.analyzer-running #audit-process #progress{
    grid-template-rows:auto auto minmax(0,1fr);
  }
}
@media (max-width:640px){ .audit-flow{display:none} }
body.is-analyzer.analyzer-result #audit-process{
  display:grid;
  grid-template-columns:172px minmax(0,1fr);
  grid-template-areas:"head head" "visual source" "visual progress";
  grid-template-rows:auto auto minmax(0,1fr);
  column-gap:22px;align-items:start;
}
body.is-analyzer.analyzer-result #audit-process .console-head{grid-area:head}
body.is-analyzer.analyzer-result #audit-process .audit-anim{
  grid-area:visual;
  padding:18px 0 18px clamp(16px,2.2vw,24px);
  margin:0;
}
body.is-analyzer.analyzer-result #audit-process .audit-anim .audit-screen{
  width:100%;max-width:172px;border-radius:14px;
}
body.is-analyzer.analyzer-result #audit-process .audit-anim-cap{margin-top:8px;font-size:9.5px}
body.is-analyzer.analyzer-result #audit-process .audit-source{
  grid-area:source;
  padding:18px clamp(16px,2.2vw,24px) 0 0;
}
body.is-analyzer.analyzer-result #audit-process #progress{
  grid-area:progress;
  padding:18px clamp(16px,2.2vw,24px) 18px 0;
}
body.is-analyzer.analyzer-result #audit-process .audit-source ~ #progress,
body.is-analyzer.analyzer-result #audit-process .audit-source + #progress{padding-top:14px}
body.is-analyzer.analyzer-result #audit-process .stage-list{display:none}
body.is-analyzer.analyzer-result #audit-process .audit-progress-meter{display:none}
body.is-analyzer.analyzer-result #audit-process .az-nowline{
  border:0;margin:0 0 6px;padding:0;background:transparent;
}
body.is-analyzer.analyzer-result #audit-process .audit-flow{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin-top:12px;
}
@media (max-width:820px){
  body.is-analyzer.analyzer-result #audit-process{
    grid-template-columns:1fr;
    grid-template-areas:"head" "visual" "progress";
  }
  body.is-analyzer.analyzer-result #audit-process .audit-anim{padding:18px 18px 0}
  body.is-analyzer.analyzer-result #audit-process .audit-source,
  body.is-analyzer.analyzer-result #audit-process #progress{padding:16px 18px}
  body.is-analyzer.analyzer-result #audit-process .audit-flow{display:none}
}

/* ---- backtest ---- */
.ax-bt{padding:0 0 18px}
.ax-bt-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px clamp(16px,2.2vw,24px);
  border-bottom:1px solid var(--ax-line);
  margin-bottom:16px;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 5%, transparent),
      transparent);
}
.ax-bt-head .ax-microlabel{margin:0 0 3px}
.ax-bt-head b{
  display:block;
  font-family:var(--mono);font-size:13px;font-weight:800;color:var(--ink);
}
.ax-bt-badge{
  display:inline-flex;align-items:center;
  min-height:26px;padding:0 11px;border-radius:999px;
  border:1px solid var(--ax-line);
  background:var(--ax-well);
  font-family:var(--mono);font-size:10px;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
}
.ax-charts{
  display:grid;grid-template-columns:minmax(0,1.55fr) minmax(0,1fr);
  gap:12px;padding:0 clamp(14px,1.8vw,18px);
}
.ax-chart-card{
  border:1px solid var(--ax-line);border-radius:16px;
  background:var(--ax-well);
  overflow:hidden;min-width:0;
}
.ax-chart-head{
  display:flex;align-items:center;gap:10px;flex-wrap:wrap;
  padding:11px 14px;border-bottom:1px solid var(--ax-line);
}
.ax-chart-head span{
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3);
}
.ax-chart-head b{font-family:var(--mono);font-size:11px;font-weight:800;color:var(--ink)}
.ax-legend{margin-left:auto;display:inline-flex;align-items:center;gap:5px}
.ax-legend .mk{font-style:normal;font-size:9px}
.ax-legend .mk-buy{color:var(--real)}
.ax-legend .mk-exit{color:var(--ink-3)}
.ax-legend .mk-txt{font-style:normal;font-size:9.5px;color:var(--ink-3)}
body.is-analyzer #tv-chart{height:clamp(300px,36vh,380px)!important;min-height:0!important}
body.is-analyzer #equity-chart{height:clamp(300px,36vh,380px)!important;min-height:0!important}
body.is-analyzer .chart-empty{
  display:flex;align-items:center;justify-content:center;height:100%;
  padding:20px;text-align:center;font-size:12.5px;color:var(--ink-3);
}
.ax-bt-tools{
  display:flex;align-items:center;gap:7px;
  padding:12px clamp(14px,1.8vw,18px) 0;
}
body.is-analyzer .ax-bt-tools .tool-btn{
  min-width:36px;height:32px;padding:0 11px;
  border:1px solid var(--ax-line)!important;border-radius:10px!important;
  background:var(--ax-well)!important;color:var(--ink-2)!important;
  font-size:11.5px;font-weight:750;box-shadow:none!important;
  transition:border-color .15s, color .15s, background .15s!important;
}
body.is-analyzer .ax-bt-tools .tool-btn:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--ax-line))!important;
  color:var(--ink)!important;
}
body.is-analyzer .ax-bt-tools .tool-btn.active{
  border-color:transparent!important;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)))!important;
  color:#061208!important;
}
.ax-bt-tools > span{
  margin-left:auto;font-size:9.5px;color:var(--ink-3);letter-spacing:.02em;white-space:nowrap;
}
body.is-analyzer .ax-metrics{
  margin:14px clamp(14px,1.8vw,18px) 0!important;
  border:0!important;background:transparent!important;
  gap:10px!important;border-radius:0!important;overflow:visible!important;
}
body.is-analyzer .ax-metrics > div{
  border:1px solid var(--ax-line)!important;border-radius:14px!important;
  background:var(--ax-well)!important;
  padding:12px 13px!important;box-shadow:none!important;
}
body.is-analyzer .ax-metrics > div span{
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.11em;text-transform:uppercase;color:var(--ink-3);
}
body.is-analyzer .ax-metrics > div b{
  display:block;margin:4px 0 2px;
  font-family:var(--mono);font-size:18px;font-weight:850;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
body.is-analyzer .ax-metrics > div small{font-size:10.5px;line-height:1.4;color:var(--ink-3)}

/* ---- result ---- */
.ax-result-dock{padding:6px clamp(14px,1.8vw,18px) 0}
body.is-analyzer #result{max-width:940px;margin-left:auto;margin-right:auto}
body.is-analyzer #montecarlo-dock{
  max-width:940px;margin:16px auto 0;
}
.vsum{display:grid;grid-template-columns:repeat(auto-fit,minmax(118px,1fr));gap:8px;margin:12px 0 2px}
.vsum > div{
  border:1px solid var(--ax-line);border-radius:13px;
  background:var(--ax-well);
  padding:11px 12px;display:flex;flex-direction:column;gap:3px;min-width:0;
}
.vsum > div > span{
  font-family:var(--mono);font-size:9px;font-weight:850;letter-spacing:.1em;
  text-transform:uppercase;color:var(--ink-3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.vsum > div > b{
  font-family:var(--mono);font-size:17px;font-weight:850;color:var(--ink);
  font-variant-numeric:tabular-nums;
}
.vsum > div > b.up{color:var(--real)}
.vsum > div > b.down{color:var(--humo)}
.vsum > div > small{
  font-size:10.5px;color:var(--ink-3);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.res-nav{display:flex;flex-wrap:wrap;gap:7px;margin:10px 0 2px}
.res-nav button{
  border:1px solid var(--ax-line);background:var(--ax-well);
  color:var(--ink-2);border-radius:999px;padding:7px 12px;
  font-size:12px;font-weight:700;cursor:pointer;
  transition:border-color .15s, color .15s, background .15s;
}
.res-nav button:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--ax-line));
  color:var(--ink);
}
.res-nav button::before{content:"↓";margin-right:6px;color:var(--accent);font-weight:850}
.big-verdict .bv-word .info-btn{vertical-align:middle;margin-left:2px}

/* polish result surfaces inside analyzer */
body.is-analyzer .big-verdict,
body.is-analyzer .sq,
body.is-analyzer .takeaway,
body.is-analyzer .tech,
body.is-analyzer .mc-card{
  border-radius:16px;
}

/* ---- responsive ---- */
@media (max-width:900px){
  .ax-workspace{max-width:100%}
  .az-recent{max-width:100%}
}
@media (max-width:720px){
  .ax-shell{width:min(100% - 24px, 1220px)}
  .ax-page{padding-top:12px}
  .ax-chrome{margin-bottom:16px}
  .ax-chrome h1{font-size:clamp(26px,8vw,34px);max-width:none}
  .ax-instrument{border-radius:18px}
  .ax-instrument-top{
    flex-direction:column;align-items:stretch;gap:12px;
    padding:14px 14px 12px;
  }
  .ax-tabs{display:grid;grid-template-columns:repeat(3,1fr);width:100%}
  .ax-tab{padding:0 6px;font-size:12px;gap:6px}
  .ax-tab svg{width:14px;height:14px}
  .ax-instrument-body{padding:2px 14px 6px}
  .ax-opts{grid-template-columns:1fr}
  .ax-dock{
    padding:12px 14px 14px;
    position:sticky;bottom:0;z-index:4;
    background:color-mix(in srgb,var(--surface) 96%,transparent);
    backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
    border-top:1px solid var(--ax-line);
  }
  .ax-dock .rc-item{display:none}
  .rc-cost{margin-left:0}
  .ax-charts{grid-template-columns:1fr;padding:0 10px}
  body.is-analyzer #tv-chart{height:300px!important}
  body.is-analyzer #equity-chart{height:210px!important}
  .ax-bt-tools{flex-wrap:wrap}
  .ax-bt-tools > span{flex:1 1 100%;margin-left:0;text-align:right}
  body.is-analyzer .ax-metrics{grid-template-columns:repeat(2,minmax(0,1fr))!important}
  .ax-result-dock{padding:6px 10px 0}
}
@media (max-width:520px){
  .ax-frame-grid{grid-template-columns:1fr}
  .ax-tab{font-size:11.5px;gap:0;padding:0 4px}
  .ax-tab svg{display:none}
  .platform-strip{gap:6px;padding-right:10px}
  .ax-kicker{gap:8px}
}
@media (max-height:560px){
  .ax-dock{position:static}
}
@media (prefers-reduced-motion: reduce){
  .ax-orb-a,.ax-orb-b,
  .ax-live-dot,
  .az-now-dot.live,
  body.is-analyzer #audit-process .pstage.running .pdot{animation:none!important}
  .ax-proof li:hover,
  body.is-analyzer .ax-opt:hover,
  body.is-analyzer .frame-drop:hover,
  body.is-analyzer .ax-drop:hover,
  .ax-demo:hover,
  .az-recent-item:hover{transform:none}
}


/* ---- analyzer tag variants (HTML uses lowercase class names) ---- */
body.is-analyzer .tag.real,
body.is-analyzer .tag.REAL{
  color:var(--real);
  background:color-mix(in srgb,var(--real) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--real) 28%,transparent);
  margin-left:0;padding:3px 8px;border-radius:7px;
  font-size:10px;letter-spacing:.12em;
}
body.is-analyzer .tag.marginal,
body.is-analyzer .tag.MARGINAL{
  color:var(--marginal);
  background:color-mix(in srgb,var(--marginal) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--marginal) 28%,transparent);
  margin-left:0;padding:3px 8px;border-radius:7px;
  font-size:10px;letter-spacing:.12em;
}
body.is-analyzer .tag.humo,
body.is-analyzer .tag.HUMO{
  color:var(--humo);
  background:color-mix(in srgb,var(--humo) 12%,transparent);
  border:1px solid color-mix(in srgb,var(--humo) 28%,transparent);
  margin-left:0;padding:3px 8px;border-radius:7px;
  font-size:10px;letter-spacing:.12em;
}
/* kill legacy analyzer layout leftovers that still match generic selectors */
body.is-analyzer.analyzer-idle .input-console,
body.is-analyzer .analyzer-grid,
body.is-analyzer .analyzer-top,
body.is-analyzer .analyzer-wrap,
body.is-analyzer .analyzer-title{display:contents}
/* ensure instrument body panes don't inherit old grid leftovers */
body.is-analyzer #pane-yt.active,
body.is-analyzer #pane-up.active,
body.is-analyzer #pane-txt.active{
  display:flex!important;
  flex-direction:column!important;
  gap:0!important;
  align-items:stretch!important;
  grid-template-columns:none!important;
}


/* ---- v312 hard overrides: neutralize legacy idle "premium decision" layers ---- */
body.is-analyzer.analyzer-idle .chart-gate,
body.is-analyzer.analyzer-idle .audit-mode-choice,
body.is-analyzer .chart-gate.ax-q,
body.is-analyzer .audit-mode-choice.ax-q{
  display:block!important;
  width:100%!important;max-width:100%!important;
  margin:20px 0 0!important;
  padding:16px!important;
  border:1px solid var(--ax-line)!important;
  border-radius:16px!important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 40%, transparent),
      var(--ax-well))!important;
  box-shadow:none!important;
  min-height:0!important;
}
body.is-analyzer.analyzer-idle .chart-gate::before,
body.is-analyzer.analyzer-idle .audit-mode-choice::before,
body.is-analyzer.analyzer-idle .chart-gate-btn::after,
body.is-analyzer.analyzer-idle .audit-mode-btn::before,
body.is-analyzer.analyzer-idle .audit-mode-btn::after,
body.is-analyzer.analyzer-idle .chart-gate-btn.active::after,
body.is-analyzer.analyzer-idle .audit-mode-btn.active::after{
  content:none!important;display:none!important;
}
body.is-analyzer.analyzer-idle .chart-gate-btn,
body.is-analyzer.analyzer-idle .audit-mode-btn,
body.is-analyzer .chart-gate-btn.ax-opt,
body.is-analyzer .audit-mode-btn.ax-opt{
  display:flex!important;
  flex-direction:row!important;
  align-items:flex-start!important;
  gap:12px!important;
  min-height:0!important;
  height:auto!important;
  grid-template-columns:none!important;
  grid-template-rows:none!important;
  padding:14px!important;
  border:1px solid var(--ax-line)!important;
  border-radius:14px!important;
  background:var(--ax-glass-2)!important;
  box-shadow:none!important;
  transform:none!important;
}
body.is-analyzer.analyzer-idle .chart-gate-btn:hover,
body.is-analyzer.analyzer-idle .audit-mode-btn:hover,
body.is-analyzer .chart-gate-btn.ax-opt:hover,
body.is-analyzer .audit-mode-btn.ax-opt:hover{
  transform:translateY(-1px)!important;
  border-color:color-mix(in srgb,var(--accent) 42%,var(--ax-line))!important;
  box-shadow:0 12px 28px -20px rgba(0,0,0,.55)!important;
}
body.is-analyzer.analyzer-idle .chart-gate-btn.active,
body.is-analyzer.analyzer-idle .audit-mode-btn.active,
body.is-analyzer .chart-gate-btn.ax-opt.active,
body.is-analyzer .audit-mode-btn.ax-opt.active{
  border-color:color-mix(in srgb,var(--accent) 55%,var(--ax-line))!important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 10%, transparent),
      color-mix(in srgb,var(--accent) 4%, var(--ax-glass-2)))!important;
  box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 18%,transparent) inset!important;
  transform:none!important;
}
body.is-analyzer.analyzer-idle .chart-gate-btn b,
body.is-analyzer.analyzer-idle .audit-mode-btn b,
body.is-analyzer .chart-gate-btn.ax-opt b,
body.is-analyzer .audit-mode-btn.ax-opt b{
  font-size:13.5px!important;
  line-height:1.3!important;
  letter-spacing:-.01em!important;
  font-weight:780!important;
  align-self:auto!important;
  grid-column:auto!important;
}
body.is-analyzer.analyzer-idle .chart-gate-btn small,
body.is-analyzer.analyzer-idle .audit-mode-btn small,
body.is-analyzer .chart-gate-btn.ax-opt small,
body.is-analyzer .audit-mode-btn.ax-opt small{
  font-size:12px!important;
  line-height:1.45!important;
  color:var(--ink-3)!important;
  max-width:none!important;
  grid-column:auto!important;
}
body.is-analyzer.analyzer-idle .chart-gate-grid,
body.is-analyzer.analyzer-idle .audit-mode-grid,
body.is-analyzer .ax-opts{
  display:grid!important;
  grid-template-columns:repeat(2,minmax(0,1fr))!important;
  gap:10px!important;
}
@media (max-width:720px){
  body.is-analyzer.analyzer-idle .chart-gate-grid,
  body.is-analyzer.analyzer-idle .audit-mode-grid,
  body.is-analyzer .ax-opts{
    grid-template-columns:1fr!important;
  }
}

/* running/result: give charts more room */
body.is-analyzer.analyzer-running .ax-shell,
body.is-analyzer.analyzer-result .ax-shell{
  width:min(100% - 40px, 1120px);
}
body.is-analyzer.analyzer-idle .ax-page{
  /* pull focus onto the form — less empty stage */
  padding-top:clamp(14px,2.6vh,28px);
}

/* dotfield responsive — stay large + right-aligned (still viewport-locked) */
@media (max-width:900px){
  .ax-dotfield{
    --hero-size: auto min(100svh, 1040px);
    --hero-pos: right 40%;
  }
  .ax-dotfield-wash{
    background-size: auto min(108svh, 1120px);
    background-position: right 38%;
  }
  .ax-chrome{max-width:min(520px, 78%)}
  .ax-dotfield.is-lit .ax-dotfield-focus{/* radius fixed in base rule */}
}
@media (max-width:720px){
  .ax-chrome{
    max-width:100%;
    margin-bottom:14px;
  }
  .ax-chrome h1{font-size:clamp(24px,7vw,30px);max-width:14ch}
  .ax-chrome p{font-size:13.5px}
  .ax-dotfield{
    --hero-size: auto min(92svh, 820px);
    --hero-pos: right 36%;
  }
  .ax-dotfield-wash{
    opacity:.22;
    background-size: auto min(100svh, 900px);
    background-position: right 34%;
  }
  .ax-dotfield-dots{opacity:.55}
  .ax-dotfield-focus{
    -webkit-mask-image: radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
    mask-image: radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  }
  .ax-dotfield.is-lit .ax-dotfield-focus{opacity:.88}
}
@media (prefers-reduced-motion: reduce){
  .ax-dotfield-focus,
  .ax-dotfield-dots{transition:none}
  .ax-dotfield.is-lit .ax-dotfield-focus{
    /* still allow static reveal without motion flair */
    filter:none;
  }
}

/* ============================================================
   TOOLKIT BENTO v325 — advanced product command-center
   Asymmetric featured analyzer + side tools, whole-card CTAs,
   per-tool accents, light/dark parity, reduced-motion safe.
   ============================================================ */
#landing-view .path-section{
  position:relative;
  isolation:isolate;
}
#landing-view .path-section::before{
  content:"";
  position:absolute;
  inset:8% 0 auto 0;
  height:min(52%, 420px);
  pointer-events:none;
  z-index:0;
  background:
    radial-gradient(48% 70% at 18% 40%, color-mix(in srgb, var(--humo) 10%, transparent), transparent 70%),
    radial-gradient(40% 60% at 78% 30%, color-mix(in srgb, var(--accent) 9%, transparent), transparent 72%),
    radial-gradient(36% 50% at 92% 70%, color-mix(in srgb, var(--accent-2) 8%, transparent), transparent 70%);
  opacity:.9;
}
#landing-view .path-section > .wrap{position:relative;z-index:1}

/* --- header --- */
#landing-view .tk-head{
  max-width: 760px;
  margin-bottom: clamp(28px, 4vw, 48px);
}
#landing-view .tk-head h2{
  display:flex;
  flex-direction:column;
  gap:.08em;
  max-width: 16ch;
}
#landing-view .tk-head h2 .tk-h2-line{color:var(--ink)}
#landing-view .tk-head h2 em{
  font-style:normal;
  color: color-mix(in srgb, var(--ink-2) 72%, var(--ink));
  background: linear-gradient(90deg,
    color-mix(in srgb, var(--ink-2) 88%, var(--accent)),
    color-mix(in srgb, var(--ink-3) 55%, var(--ink-2)));
  -webkit-background-clip:text;
  background-clip:text;
  -webkit-text-fill-color:transparent;
  color:transparent;
}
#landing-view .tk-head .path-lead{
  margin-top: 14px;
  max-width: 52ch;
  color: var(--ink-2);
  font-size: clamp(.98rem, 1.2vw, 1.08rem);
  line-height: 1.6;
}
#landing-view .tk-meta{
  list-style:none;
  margin: 20px 0 0;
  padding: 0;
  display:flex;
  flex-wrap:wrap;
  gap: 8px;
}
#landing-view .tk-meta li{
  display:inline-flex;
  align-items:center;
  gap: 7px;
  min-height: 32px;
  padding: 6px 12px;
  border-radius: var(--radius-pill);
  border: 1px solid color-mix(in srgb, var(--line-2) 70%, transparent);
  background: color-mix(in srgb, var(--surface) 55%, transparent);
  font: 650 .72rem/1 var(--mono);
  letter-spacing: .04em;
  color: var(--ink-2);
}
#landing-view .tk-meta li::before{
  content:"";
  width: 6px; height: 6px;
  border-radius: 50%;
  background: var(--accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--accent) 18%, transparent);
  flex:none;
}
#landing-view .tk-meta li:nth-child(2)::before{background: var(--accent-2); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent-2) 18%,transparent)}
#landing-view .tk-meta li:nth-child(3)::before{background: var(--humo); box-shadow:0 0 0 3px color-mix(in srgb,var(--humo) 16%,transparent)}

/* --- bento grid --- */
#landing-view .tk-bento.path-grid{
  display:grid;
  grid-template-columns: minmax(0, 1.28fr) minmax(0, 1fr);
  grid-template-rows: auto auto;
  gap: clamp(12px, 1.6vw, 16px);
  margin-top: 0;
  align-items: stretch;
}
#landing-view .tk-featured{
  grid-row: 1 / span 2;
  grid-column: 1;
}
#landing-view .tk-side.pc-trainer{grid-column:2; grid-row:1}
#landing-view .tk-side.pc-reverse{grid-column:2; grid-row:2}

/* --- card shell (whole-card link) --- */
#landing-view a.path-card.tk-card{
  --tk-tone: var(--accent);
  --tk-tone-soft: color-mix(in srgb, var(--accent) 14%, transparent);
  position: relative;
  display: flex;
  flex-direction: column;
  padding: 0;
  gap: 0;
  overflow: hidden;
  color: inherit;
  text-decoration: none;
  cursor: pointer;
  border-radius: clamp(16px, 1.8vw, 22px);
  border: 1px solid color-mix(in srgb, var(--line-2) 60%, transparent);
  background:
    linear-gradient(165deg, rgba(255,255,255,.05) 0%, transparent 42%),
    color-mix(in srgb, var(--surface) 58%, transparent);
  box-shadow: var(--elev-1);
  transition:
    transform .32s var(--ease),
    border-color .28s var(--ease),
    box-shadow .32s var(--ease),
    background .28s var(--ease);
  outline: none;
  min-height: 0;
}
#landing-view a.path-card.tk-card:focus-visible{
  box-shadow: var(--focus-ring), var(--elev-2);
  border-color: color-mix(in srgb, var(--tk-tone) 55%, var(--line));
}
#landing-view .pc-detector{--tk-tone: var(--humo); --tk-tone-soft: color-mix(in srgb, var(--humo) 14%, transparent)}
#landing-view .pc-trainer{--tk-tone: var(--accent); --tk-tone-soft: color-mix(in srgb, var(--accent) 14%, transparent)}
#landing-view .pc-reverse{--tk-tone: var(--accent-2); --tk-tone-soft: color-mix(in srgb, var(--accent-2) 14%, transparent)}

#landing-view a.path-card.tk-card::before{
  content:"";
  position:absolute;
  inset:0 0 auto 0;
  height: 2px;
  z-index: 4;
  background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in srgb, var(--tk-tone) 70%, transparent) 22%,
    color-mix(in srgb, var(--tk-tone) 90%, #fff) 50%,
    color-mix(in srgb, var(--tk-tone) 70%, transparent) 78%,
    transparent 100%);
  opacity: .55;
  transition: opacity .28s var(--ease);
}
#landing-view a.path-card.tk-card:hover::before,
#landing-view a.path-card.tk-card:focus-visible::before{opacity:1}

#landing-view .tk-glow{
  position:absolute;
  inset: -20% -10% auto -10%;
  height: 55%;
  pointer-events:none;
  z-index: 0;
  background: radial-gradient(60% 80% at 50% 0%, var(--tk-tone-soft), transparent 72%);
  opacity: .55;
  transition: opacity .35s var(--ease), transform .45s var(--ease);
}
#landing-view a.path-card.tk-card:hover .tk-glow,
#landing-view a.path-card.tk-card:focus-visible .tk-glow{
  opacity: 1;
  transform: translateY(6%) scale(1.05);
}

/* scan line on featured only */
#landing-view .tk-scan{
  position:absolute;
  left:0; right:0;
  top: -30%;
  height: 38%;
  z-index: 3;
  pointer-events:none;
  background: linear-gradient(180deg,
    transparent 0%,
    color-mix(in srgb, var(--humo) 10%, transparent) 45%,
    transparent 100%);
  opacity: 0;
  transform: translateY(0);
}
#landing-view .tk-featured:hover .tk-scan,
#landing-view .tk-featured:focus-visible .tk-scan{
  opacity: 1;
  animation: tk-scan-sweep 1.4s var(--ease-out) 1;
}
@keyframes tk-scan-sweep{
  0%{ transform: translateY(0); opacity:0 }
  18%{ opacity:.85 }
  100%{ transform: translateY(280%); opacity:0 }
}

/* hover lift */
#landing-view a.path-card.tk-card:hover,
html.fx-on #landing-view a.path-card.tk-card.fxv:hover{
  transform: translateY(-8px);
  border-color: color-mix(in srgb, var(--tk-tone) 48%, var(--line));
  box-shadow:
    var(--elev-2),
    0 0 0 1px color-mix(in srgb, var(--tk-tone) 16%, transparent),
    0 28px 60px -28px color-mix(in srgb, var(--tk-tone) 28%, transparent);
}
#landing-view a.path-card.tk-featured:hover,
html.fx-on #landing-view a.path-card.tk-featured.fxv:hover{
  transform: translateY(-10px);
}

/* featured gets denser presence */
#landing-view .tk-featured{
  min-height: 100%;
  background:
    radial-gradient(90% 50% at 18% 0%, color-mix(in srgb, var(--humo) 11%, transparent), transparent 58%),
    linear-gradient(165deg, rgba(255,255,255,.055) 0%, transparent 42%),
    color-mix(in srgb, var(--surface) 62%, transparent);
  border-color: color-mix(in srgb, var(--humo) 28%, var(--line));
}

/* --- visual / mock --- */
#landing-view .tk-card .tk-visual,
#landing-view .tk-card .path-visual{
  position: relative;
  z-index: 1;
  border-bottom: 1px solid color-mix(in srgb, var(--line) 78%, transparent);
  background:
    linear-gradient(color-mix(in srgb, var(--line) 36%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--line) 36%, transparent) 1px, transparent 1px),
    color-mix(in srgb, var(--bg) 72%, transparent);
  background-size: 28px 28px;
  flex: none;
}
#landing-view .tk-featured .pv-body{min-height: 268px}
#landing-view .tk-side .pv-body{min-height: 168px; padding: 10px 12px 12px; gap: 8px}
#landing-view .tk-side .pv-screen{min-height: 72px}
#landing-view .tk-side .pvt-btns{gap: 6px}
#landing-view .tk-side .pvt-btns span{padding: 8px 3px; font-size: .6rem}

#landing-view .tk-screen{overflow:hidden}
#landing-view .tk-stamp{
  position:absolute;
  right: 12px;
  bottom: 12px;
  z-index: 4;
  font: 900 .78rem/1 var(--mono);
  letter-spacing: .12em;
  padding: 8px 11px;
  border-radius: 6px;
  border: 1.5px solid color-mix(in srgb, var(--humo) 55%, transparent);
  color: var(--humo);
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  transform: rotate(-8deg) scale(.92);
  opacity: .88;
  box-shadow: 0 10px 24px -14px color-mix(in srgb, var(--humo) 50%, transparent);
  transition: transform .35s var(--ease-spring), opacity .25s var(--ease);
}
#landing-view .tk-stamp.sm{
  font-size: .64rem;
  padding: 6px 8px;
  right: 10px;
  bottom: 10px;
}
#landing-view a.path-card.tk-card:hover .tk-stamp,
#landing-view a.path-card.tk-card:focus-visible .tk-stamp{
  transform: rotate(-4deg) scale(1.04);
  opacity: 1;
}
#landing-view .tk-curve-net,
#landing-view .tk-curve-break{
  stroke-dasharray: 280;
  stroke-dashoffset: 0;
  transition: stroke-dashoffset .8s var(--ease-out);
}
#landing-view a.path-card.tk-card:hover .tk-curve-net,
#landing-view a.path-card.tk-card:hover .tk-curve-break{
  animation: tk-draw .9s var(--ease-out) 1;
}
@keyframes tk-draw{
  from{ stroke-dashoffset: 280 }
  to{ stroke-dashoffset: 0 }
}

/* --- body / copy --- */
#landing-view .tk-card .tk-body,
#landing-view .tk-card .path-body{
  position: relative;
  z-index: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: clamp(16px, 2vw, 22px) clamp(16px, 2vw, 24px) clamp(18px, 2.2vw, 24px);
  flex: 1;
}
#landing-view .tk-featured .tk-body{gap: 12px; padding-bottom: 26px}
#landing-view .tk-kicker.path-kicker{
  display:flex;
  align-items:center;
  gap: 12px;
  width: 100%;
}
#landing-view .tk-tool-meta{
  display:flex;
  flex-direction:column;
  gap: 4px;
  min-width: 0;
  flex: 1;
}
#landing-view .tk-tool-meta b{
  font: 800 .68rem/1 var(--mono);
  letter-spacing: .1em;
  color: color-mix(in srgb, var(--tk-tone) 82%, var(--ink-3));
  border: none;
  background: none;
  padding: 0;
}
#landing-view .tk-tool-meta em{
  font: 750 .7rem/1.1 var(--mono);
  font-style: normal;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-2);
}
#landing-view .tk-pill{
  flex: none;
  margin-left: auto;
  align-self: flex-start;
  font: 800 .62rem/1 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: #0a120c;
  background: linear-gradient(135deg, var(--accent-hi), var(--accent));
  border-radius: var(--radius-pill);
  padding: 7px 10px;
  box-shadow: 0 8px 18px -10px color-mix(in srgb, var(--accent) 55%, transparent);
}
#landing-view .tk-card h3{
  font-family: var(--display);
  font-size: clamp(1.18rem, 1.7vw, 1.48rem);
  font-weight: 800;
  letter-spacing: -.025em;
  line-height: 1.12;
  margin: 2px 0 0;
  color: var(--ink);
}
#landing-view .tk-side h3{
  font-size: clamp(1.05rem, 1.35vw, 1.22rem);
}
#landing-view .tk-card p{
  margin: 0;
  font-size: .9rem;
  line-height: 1.55;
  color: var(--ink-2);
  flex: 1;
}
#landing-view .tk-side p{font-size: .84rem; line-height: 1.5}

#landing-view .tk-bullets{
  list-style: none;
  margin: 2px 0 6px;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 8px;
}
#landing-view .tk-bullets li{
  position: relative;
  padding-left: 18px;
  font-size: .84rem;
  font-weight: 600;
  color: var(--ink);
  line-height: 1.35;
}
#landing-view .tk-bullets li::before{
  content: "";
  position: absolute;
  left: 1px;
  top: .42em;
  width: 8px;
  height: 8px;
  border-radius: 2px;
  background: color-mix(in srgb, var(--tk-tone) 78%, transparent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--tk-tone) 14%, transparent);
}

/* CTA chip inside the card */
#landing-view .tk-cta{
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 8px;
  align-self: flex-start;
  min-height: 44px;
  margin-top: auto;
  padding: 11px 16px;
  border-radius: 12px;
  font: 750 .9rem/1 var(--font);
  color: #08100a;
  background: linear-gradient(135deg, var(--accent-hi), var(--accent));
  border: 1px solid color-mix(in srgb, var(--accent) 55%, #fff);
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 12px 24px -12px color-mix(in srgb, var(--accent) 48%, transparent);
  transition: transform .22s var(--ease), filter .22s var(--ease), box-shadow .22s var(--ease);
}
#landing-view .tk-cta svg{width:16px;height:16px;transition:transform .22s var(--ease)}
#landing-view a.path-card.tk-card:hover .tk-cta:not(.quiet),
#landing-view a.path-card.tk-card:focus-visible .tk-cta:not(.quiet){
  filter: brightness(1.06);
  box-shadow:
    0 1px 0 rgba(255,255,255,.32) inset,
    0 16px 28px -12px color-mix(in srgb, var(--accent) 55%, transparent);
}
#landing-view a.path-card.tk-card:hover .tk-cta svg,
#landing-view a.path-card.tk-card:focus-visible .tk-cta svg{
  transform: translateX(3px);
}
#landing-view .tk-cta.quiet{
  color: var(--ink);
  background: color-mix(in srgb, var(--surface-2) 70%, transparent);
  border: 1px solid color-mix(in srgb, var(--tk-tone) 28%, var(--line-2));
  box-shadow: var(--edge);
  min-height: 40px;
  padding: 9px 14px;
  font-size: .84rem;
}
#landing-view a.path-card.tk-card:hover .tk-cta.quiet,
#landing-view a.path-card.tk-card:focus-visible .tk-cta.quiet{
  border-color: color-mix(in srgb, var(--tk-tone) 55%, var(--line));
  background: color-mix(in srgb, var(--tk-tone) 10%, var(--surface-2));
  filter: none;
}

/* path icon accented per tool */
#landing-view .tk-card .path-icon{
  width: 52px;
  height: 52px;
  border-color: color-mix(in srgb, var(--tk-tone) 34%, var(--line));
  background: radial-gradient(122% 112% at 50% 14%,
    color-mix(in srgb, var(--tk-tone) 18%, var(--surface-2)) 0%,
    var(--surface-2) 82%);
}
#landing-view a.path-card.tk-card:hover .path-icon{
  border-color: color-mix(in srgb, var(--tk-tone) 58%, var(--line));
  box-shadow: 0 8px 18px -10px color-mix(in srgb, var(--tk-tone) 50%, transparent);
}
#landing-view a.path-card.tk-card:hover .path-icon img{
  transform: scale(1.08) translateY(-2px);
}

/* live outcome bar pops on hover */
#landing-view a.path-card.tk-card:hover .pv-tag.smoke{
  box-shadow: 0 0 0 1px color-mix(in srgb, var(--humo) 30%, transparent);
}
#landing-view a.path-card.tk-card:hover .pvt-buy{
  transform: translateY(-1px);
  box-shadow: 0 6px 14px -10px color-mix(in srgb, var(--real) 55%, transparent);
}
#landing-view .pvt-btns span{
  transition: transform .2s var(--ease), box-shadow .2s var(--ease), border-color .2s var(--ease);
}

/* --- light theme --- */
[data-theme="light"] #landing-view a.path-card.tk-card{
  background:
    linear-gradient(165deg, rgba(255,255,255,.95), rgba(255,255,255,.78)),
    color-mix(in srgb, #fff 50%, transparent);
  border-color: color-mix(in srgb, var(--line) 92%, transparent);
  box-shadow: 0 16px 40px -28px rgba(13,18,15,.14);
}
[data-theme="light"] #landing-view .tk-featured{
  background:
    radial-gradient(90% 50% at 18% 0%, color-mix(in srgb, var(--humo) 9%, transparent), transparent 58%),
    linear-gradient(165deg, #fff, #f7f9f7);
  border-color: color-mix(in srgb, var(--humo) 24%, var(--line));
}
[data-theme="light"] #landing-view a.path-card.tk-card:hover,
[data-theme="light"] html.fx-on #landing-view a.path-card.tk-card.fxv:hover{
  box-shadow:
    0 26px 56px -30px rgba(18,40,24,.22),
    0 0 0 1px color-mix(in srgb, var(--tk-tone) 28%, transparent);
}
[data-theme="light"] #landing-view .tk-head h2 em{
  background: linear-gradient(90deg, var(--ink-2), color-mix(in srgb, var(--ink-3) 70%, var(--ink-2)));
  -webkit-background-clip:text;
  background-clip:text;
}
[data-theme="light"] #landing-view .tk-meta li{
  background: rgba(255,255,255,.8);
  border-color: color-mix(in srgb, var(--line) 95%, transparent);
}
[data-theme="light"] #landing-view .tk-pill{
  color: #0c160e;
}
[data-theme="light"] #landing-view .tk-cta:not(.quiet){
  color: #0c160e;
}
[data-theme="light"] #landing-view .path-section::before{
  opacity: .55;
}

/* --- responsive --- */
@media (max-width: 1080px){
  #landing-view .tk-bento.path-grid{
    grid-template-columns: 1fr;
    grid-template-rows: auto;
    max-width: 640px;
    margin-left: auto;
    margin-right: auto;
  }
  #landing-view .tk-featured,
  #landing-view .tk-side.pc-trainer,
  #landing-view .tk-side.pc-reverse{
    grid-column: 1;
    grid-row: auto;
  }
  #landing-view .tk-featured .pv-body{min-height: 220px}
  #landing-view .tk-side .pv-body{min-height: 180px}
  #landing-view .tk-head{max-width: none}
  #landing-view .tk-head h2{max-width: 14ch}
}
@media (max-width: 760px){
  #landing-view .tk-meta{gap: 6px}
  #landing-view .tk-meta li{font-size: .66rem; padding: 5px 10px}
  #landing-view .tk-card h3{font-size: 1.18rem}
  #landing-view .tk-featured .tk-body,
  #landing-view .tk-side .tk-body{padding: 16px}
  #landing-view .tk-cta{width: 100%; justify-content: center}
  #landing-view .tk-cta.quiet{width: 100%}
  #landing-view a.path-card.tk-card:hover,
  html.fx-on #landing-view a.path-card.tk-card.fxv:hover,
  #landing-view a.path-card.tk-featured:hover,
  html.fx-on #landing-view a.path-card.tk-featured.fxv:hover{
    transform: none;
  }
  #landing-view a.path-card.tk-card:active{
    transform: scale(.992);
  }
}
@media (prefers-reduced-motion: reduce){
  #landing-view .tk-featured:hover .tk-scan,
  #landing-view .tk-featured:focus-visible .tk-scan{
    animation: none;
    opacity: 0;
  }
  #landing-view a.path-card.tk-card:hover .tk-curve-net,
  #landing-view a.path-card.tk-card:hover .tk-curve-break{
    animation: none;
  }
  #landing-view a.path-card.tk-card,
  #landing-view a.path-card.tk-card:hover,
  #landing-view .tk-stamp,
  #landing-view .tk-cta svg,
  #landing-view .tk-glow{
    transition: none !important;
  }
  #landing-view a.path-card.tk-card:hover,
  html.fx-on #landing-view a.path-card.tk-card.fxv:hover,
  #landing-view a.path-card.tk-featured:hover{
    transform: none;
  }
}

/* ============================================================
   TOOLKIT BENTO overrides — beat the legacy glass !important
   block (#landing-view .path-card) so the new design actually shows.
   ============================================================ */
#landing-view a.path-card.tk-card{
  border-radius: clamp(16px, 1.8vw, 22px) !important;
  border: 1px solid color-mix(in srgb, var(--line-2) 60%, transparent) !important;
  border-bottom-color: color-mix(in srgb, var(--line-2) 60%, transparent) !important;
  background:
    linear-gradient(165deg, rgba(255,255,255,.05) 0%, transparent 42%),
    color-mix(in srgb, var(--surface) 58%, transparent) !important;
  backdrop-filter: none !important;
  -webkit-backdrop-filter: none !important;
  box-shadow: var(--elev-1) !important;
}
#landing-view a.path-card.tk-featured{
  background:
    radial-gradient(90% 50% at 18% 0%, color-mix(in srgb, var(--humo) 11%, transparent), transparent 58%),
    linear-gradient(165deg, rgba(255,255,255,.055) 0%, transparent 42%),
    color-mix(in srgb, var(--surface) 62%, transparent) !important;
  border-color: color-mix(in srgb, var(--humo) 28%, var(--line)) !important;
  border-bottom-color: color-mix(in srgb, var(--humo) 28%, var(--line)) !important;
}
#landing-view a.path-card.tk-card:hover,
#landing-view a.path-card.tk-card:focus-visible{
  border-color: color-mix(in srgb, var(--tk-tone) 48%, var(--line)) !important;
  border-bottom-color: color-mix(in srgb, var(--tk-tone) 48%, var(--line)) !important;
  box-shadow:
    var(--elev-2),
    0 0 0 1px color-mix(in srgb, var(--tk-tone) 16%, transparent),
    0 28px 60px -28px color-mix(in srgb, var(--tk-tone) 28%, transparent) !important;
}

/* repurpose the glass ::before into a thin top accent bar */
#landing-view a.path-card.tk-card::before{
  content: "" !important;
  position: absolute !important;
  inset: 0 0 auto 0 !important;
  height: 2px !important;
  width: 100% !important;
  z-index: 4 !important;
  pointer-events: none !important;
  padding: 0 !important;
  border-radius: 0 !important;
  opacity: .7 !important;
  -webkit-mask: none !important;
  mask: none !important;
  background: linear-gradient(90deg,
    transparent 0%,
    color-mix(in srgb, var(--tk-tone) 70%, transparent) 22%,
    color-mix(in srgb, var(--tk-tone) 92%, #fff) 50%,
    color-mix(in srgb, var(--tk-tone) 70%, transparent) 78%,
    transparent 100%) !important;
  transition: opacity .28s var(--ease) !important;
}
#landing-view a.path-card.tk-card:hover::before,
#landing-view a.path-card.tk-card:focus-visible::before{
  opacity: 1 !important;
}

/* quiet the glass inset sheen so mockups stay crisp */
#landing-view a.path-card.tk-card::after{
  content: "" !important;
  position: absolute !important;
  inset: 0 !important;
  z-index: 0 !important;
  pointer-events: none !important;
  border-radius: inherit !important;
  background: transparent !important;
  opacity: 1 !important;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.04),
    inset 0 -24px 48px rgba(0,0,0,.08) !important;
}

[data-theme="light"] #landing-view a.path-card.tk-card{
  background:
    linear-gradient(165deg, rgba(255,255,255,.96), rgba(255,255,255,.82)),
    #fff !important;
  border-color: color-mix(in srgb, var(--line) 92%, transparent) !important;
  border-bottom-color: color-mix(in srgb, var(--line) 92%, transparent) !important;
  box-shadow: 0 16px 40px -28px rgba(13,18,15,.14) !important;
}
[data-theme="light"] #landing-view a.path-card.tk-featured{
  background:
    radial-gradient(90% 50% at 18% 0%, color-mix(in srgb, var(--humo) 9%, transparent), transparent 58%),
    linear-gradient(165deg, #fff, #f7f9f7) !important;
  border-color: color-mix(in srgb, var(--humo) 24%, var(--line)) !important;
  border-bottom-color: color-mix(in srgb, var(--humo) 24%, var(--line)) !important;
}
[data-theme="light"] #landing-view a.path-card.tk-card:hover,
[data-theme="light"] #landing-view a.path-card.tk-card:focus-visible{
  box-shadow:
    0 26px 56px -30px rgba(18,40,24,.22),
    0 0 0 1px color-mix(in srgb, var(--tk-tone) 28%, transparent) !important;
}
[data-theme="light"] #landing-view a.path-card.tk-card::after{
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.9),
    inset 0 -18px 40px rgba(13,18,15,.03) !important;
}

/* Featured card: mock grows into the tall bento cell; copy stays compact (no dead air) */
#landing-view a.path-card.tk-featured{
  justify-content: stretch;
}
#landing-view .tk-featured .tk-visual,
#landing-view .tk-featured .path-visual{
  flex: 1 1 auto;
  min-height: 0;
  display: flex;
  flex-direction: column;
}
#landing-view .tk-featured .pv-body{
  flex: 1 1 auto;
  min-height: 280px;
}
#landing-view .tk-featured .pv-screen{
  flex: 1 1 auto;
  min-height: 120px;
}
#landing-view .tk-featured .tk-body,
#landing-view .tk-featured .path-body{
  flex: 0 0 auto;
  gap: 10px;
}
#landing-view .tk-featured .tk-body p{
  flex: none;
}
#landing-view .tk-featured .tk-cta{
  margin-top: 6px;
}
#landing-view .tk-side .tk-body p{
  flex: none;
}
#landing-view .tk-side .tk-cta{
  margin-top: 4px;
}
/* side cards: keep mock compact so copy is primary */
#landing-view .tk-side .tk-visual{
  flex: 0 0 auto;
}
@media (max-width: 1080px){
  #landing-view .tk-featured .pv-body{min-height: 220px}
  #landing-view .tk-featured .tk-visual{flex: 0 0 auto}
}


/* ==========================================================================
   TRAINER HERO v326 — analyzer parity: GIANT full-bleed background portrait
   The dotfield is a FIXED, viewport-filling backdrop (not a header band): a
   huge pointillist lifter anchored right, exactly the full-page treatment the
   analyzer's ax-dotfield gives its whole view. All tool content floats on top
   in its glass surfaces. Behavior of the trainer is unchanged.
   Lives in #trainer-view as its own layer (moved out of .trainer-head).
   ========================================================================== */

/* the view is the stacking context; content sits above the fixed portrait */
body.is-trainer .trainer-view{
  isolation:isolate!important;
  position:relative!important;
}
body.is-trainer .trainer-top{
  position:relative!important;
  z-index:1!important;
}

/* --- GIANT pointillist portrait: fixed, fills the whole viewport, anchored right --- */
body.is-trainer .trainer-dotfield{
  --mx:78%;
  --my:48%;
  --dot-a:5.5px;
  --dot-b:4px;
  --tr-size:auto min(116vh, 1240px);
  --tr-pos:right -4% top 42%;
  position:fixed!important;
  top:var(--nav-h)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  isolation:isolate;
  contain:paint;
  transform:translateZ(0);
  transition:opacity .35s var(--ease);
}
body.is-trainer .tr-df-wash,
body.is-trainer .tr-df-dots,
body.is-trainer .tr-df-focus{
  position:absolute;
  inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  transform:translateZ(0);
  backface-visibility:hidden;
}
/* Layer 1 — soft blurred atmospheric wash */
body.is-trainer .tr-df-wash{
  filter:blur(40px) saturate(.72) brightness(.96);
  opacity:.28;
  transform:scale(1.06) translateZ(0);
}
/* Layer 2 — halftone / pointillist body (static) */
body.is-trainer .tr-df-dots{
  opacity:.66;
  filter:blur(.25px) saturate(.95) contrast(1.06);
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  -webkit-mask-size:var(--dot-b) var(--dot-b); mask-size:var(--dot-b) var(--dot-b);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
body.is-trainer .tr-df-dots::before{
  content:"";
  position:absolute;inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  filter:blur(6px) saturate(.78);
  opacity:.42;
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  -webkit-mask-size:var(--dot-a) var(--dot-a); mask-size:var(--dot-a) var(--dot-a);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
  pointer-events:none;
}
/* Layer 3 — mouse focus spotlight (analyzer ax-dotfield-focus parity) */
body.is-trainer .tr-df-focus{
  opacity:0;
  filter:saturate(1.08) contrast(1.04);
  -webkit-mask-image:radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  mask-image:radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  transition:opacity .2s ease;
  will-change:opacity;
}
body.is-trainer .trainer-dotfield.is-lit .tr-df-focus{
  opacity:.92;
}
/* Layer 4 — vignette: protect left content, keep right portrait strong */
body.is-trainer .tr-df-vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 82%,transparent) 22%,
      color-mix(in srgb,var(--bg) 44%,transparent) 44%,
      color-mix(in srgb,var(--bg) 12%,transparent) 64%,
      transparent 82%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 50%,transparent) 0%,
      transparent 12%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 62%,transparent) 100%);
  pointer-events:none;
}

/* --- open hero header: no card, restrained chrome copy on the left --- */
body.is-trainer .trainer-head{
  display:block!important;
  position:relative!important;
  z-index:1!important;
  overflow:visible!important;
  min-height:0!important;
  padding:clamp(16px,2.6vw,26px) 2px clamp(18px,2.6vw,26px)!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  border-bottom:0!important;
}
body.is-trainer .trainer-head .trainer-chrome{
  position:relative!important;
  z-index:2!important;
  min-width:0!important;
  max-width:min(560px,60%)!important;
  margin:0!important;
}
body.is-trainer .trainer-head h1{
  max-width:16ch!important;
  margin:0 0 10px!important;
  font-family:var(--display)!important;
  font-size:clamp(26px,3.3vw,38px)!important;
  line-height:1.04!important;
  letter-spacing:-.03em!important;
  color:var(--ink)!important;
}
body.is-trainer .trainer-head p{
  max-width:46ch!important;
  margin:0!important;
  font-size:14.5px!important;
  line-height:1.55!important;
  color:var(--ink-2)!important;
}

/* --- light theme parity --- */
[data-theme="light"] body.is-trainer .tr-df-wash{
  opacity:.2;
  filter:blur(42px) saturate(.66) brightness(1.04);
}
[data-theme="light"] body.is-trainer .tr-df-dots{opacity:.5}
[data-theme="light"] body.is-trainer .tr-df-vignette{
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 86%,transparent) 24%,
      color-mix(in srgb,var(--bg) 48%,transparent) 46%,
      color-mix(in srgb,var(--bg) 14%,transparent) 66%,
      transparent 84%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 54%,transparent) 0%,
      transparent 14%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 64%,transparent) 100%);
}

/* --- responsive: keep the giant portrait, just scale + fade for small screens --- */
@media (max-width:760px){
  body.is-trainer .trainer-head .trainer-chrome{max-width:100%!important}
  body.is-trainer .trainer-dotfield{
    --tr-size:auto min(82vh, 760px);
    --tr-pos:right -12% top 14%;
  }
  body.is-trainer .tr-df-wash{opacity:.16}
  body.is-trainer .tr-df-dots{opacity:.44}
  body.is-trainer .tr-df-focus{
    -webkit-mask-image:radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
    mask-image:radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  }
  body.is-trainer .trainer-dotfield.is-lit .tr-df-focus{opacity:.88}
  body.is-trainer .tr-df-vignette{
    background:
      linear-gradient(180deg,
        transparent 0%,
        transparent 30%,
        color-mix(in srgb,var(--bg) 66%,transparent) 60%,
        var(--bg) 92%),
      linear-gradient(90deg,
        var(--bg) 0%,
        color-mix(in srgb,var(--bg) 46%,transparent) 44%,
        transparent 80%);
  }
}
@media (prefers-reduced-motion:reduce){
  body.is-trainer .tr-df-focus,
  body.is-trainer .tr-df-dots{transition:none}
  body.is-trainer .trainer-dotfield.is-lit .tr-df-focus{opacity:.55}
}


/* ============================================================
   MISSION CONSOLE v330 — full redesign of #path toolkit
   One interactive stage + mission rail. Not a card grid.
   ============================================================ */
#landing-view .mission-section{
  position: relative;
  isolation: isolate;
  padding-top: clamp(72px, 10vw, 120px);
  padding-bottom: clamp(72px, 10vw, 120px);
  overflow: hidden;
}
#landing-view .mission-section::before{
  content: "";
  position: absolute;
  inset: 0;
  pointer-events: none;
  z-index: 0;
  background:
    radial-gradient(55% 45% at 12% 20%, color-mix(in srgb, var(--humo) 12%, transparent), transparent 70%),
    radial-gradient(40% 40% at 88% 70%, color-mix(in srgb, var(--accent) 10%, transparent), transparent 72%),
    radial-gradient(35% 35% at 70% 15%, color-mix(in srgb, var(--accent-2) 8%, transparent), transparent 70%);
  opacity: .85;
}
#landing-view .mission-section > .wrap{position:relative;z-index:1}

/* --- intro --- */
#landing-view .mission-intro{margin-bottom: clamp(22px, 3vw, 36px)}
#landing-view .mission-intro .eyebrow{margin-bottom: 14px}
#landing-view .mission-intro-row{
  display: grid;
  grid-template-columns: minmax(0, 1.15fr) minmax(0, .85fr);
  gap: clamp(18px, 3vw, 40px);
  align-items: end;
}
#landing-view .mission-intro h2{
  font-family: var(--display);
  font-size: clamp(32px, 4.8vw, 56px);
  font-weight: 800;
  letter-spacing: -.035em;
  line-height: 1.02;
  max-width: 14ch;
  margin: 0;
}
#landing-view .mission-intro .lead{
  margin: 0;
  color: var(--ink-2);
  font-size: clamp(.95rem, 1.15vw, 1.05rem);
  line-height: 1.6;
  max-width: 38ch;
}

/* --- console shell --- */
#landing-view .mission-console{position:relative}
#landing-view .mc-radio{
  position: absolute;
  opacity: 0;
  pointer-events: none;
  width: 1px; height: 1px;
}
#landing-view .mission-shell{
  display: grid;
  grid-template-columns: minmax(240px, 300px) minmax(0, 1fr);
  gap: 0;
  min-height: clamp(480px, 58vh, 620px);
  border-radius: 22px;
  border: 1px solid color-mix(in srgb, var(--line-2) 70%, transparent);
  background:
    linear-gradient(165deg, rgba(255,255,255,.04), transparent 40%),
    color-mix(in srgb, var(--surface) 72%, var(--bg));
  box-shadow: var(--elev-2);
  overflow: hidden;
}

/* --- rail --- */
#landing-view .mission-rail{
  display: flex;
  flex-direction: column;
  gap: 6px;
  padding: 14px;
  border-right: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
  background:
    linear-gradient(180deg, color-mix(in srgb, var(--bg) 40%, transparent), transparent),
    color-mix(in srgb, var(--surface-2) 55%, transparent);
}
#landing-view .mission-tab{
  display: grid;
  grid-template-columns: auto 1fr auto;
  gap: 12px;
  align-items: center;
  padding: 14px 14px;
  border-radius: 14px;
  border: 1px solid transparent;
  cursor: pointer;
  transition: background .2s var(--ease), border-color .2s var(--ease), transform .2s var(--ease);
  min-height: 76px;
}
#landing-view .mission-tab:hover{
  background: color-mix(in srgb, var(--ink) 4%, transparent);
}
#landing-view .mission-tab:focus-visible{
  outline: none;
  box-shadow: var(--focus-ring);
}
#landing-view .mt-idx{
  font: 800 .72rem/1 var(--mono);
  letter-spacing: .08em;
  color: var(--ink-3);
  width: 28px;
}
#landing-view .mt-body{display:flex;flex-direction:column;gap:4px;min-width:0}
#landing-view .mt-body b{
  font-family: var(--display);
  font-size: .95rem;
  font-weight: 750;
  letter-spacing: -.015em;
  color: var(--ink);
  line-height: 1.15;
}
#landing-view .mt-body em{
  font-style: normal;
  font-size: .75rem;
  line-height: 1.35;
  color: var(--ink-3);
}
#landing-view .mt-tag{
  font: 750 .58rem/1 var(--mono);
  letter-spacing: .1em;
  text-transform: uppercase;
  color: var(--ink-3);
  padding: 5px 7px;
  border-radius: var(--radius-pill);
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 40%, transparent);
}

/* active tab states driven by radios */
#landing-view #mc-analyzer:checked ~ .mission-shell .mission-tab[for="mc-analyzer"],
#landing-view #mc-trainer:checked ~ .mission-shell .mission-tab[for="mc-trainer"],
#landing-view #mc-reverse:checked ~ .mission-shell .mission-tab[for="mc-reverse"]{
  border-color: color-mix(in srgb, var(--tk-active, var(--accent)) 40%, var(--line));
  background:
    linear-gradient(90deg, color-mix(in srgb, var(--tk-active, var(--accent)) 12%, transparent), transparent 80%),
    color-mix(in srgb, var(--surface) 50%, transparent);
  box-shadow: inset 3px 0 0 var(--tk-active, var(--accent));
}
#landing-view .mission-tab[data-tone="humo"]{--tk-active: var(--humo)}
#landing-view .mission-tab[data-tone="real"]{--tk-active: var(--accent)}
#landing-view .mission-tab[data-tone="cyan"]{--tk-active: var(--accent-2)}

#landing-view #mc-analyzer:checked ~ .mission-shell .mission-tab[for="mc-analyzer"] .mt-idx,
#landing-view #mc-analyzer:checked ~ .mission-shell .mission-tab[for="mc-analyzer"] .mt-tag{color: var(--humo); border-color: color-mix(in srgb, var(--humo) 40%, var(--line))}
#landing-view #mc-trainer:checked ~ .mission-shell .mission-tab[for="mc-trainer"] .mt-idx,
#landing-view #mc-trainer:checked ~ .mission-shell .mission-tab[for="mc-trainer"] .mt-tag{color: var(--accent); border-color: color-mix(in srgb, var(--accent) 40%, var(--line))}
#landing-view #mc-reverse:checked ~ .mission-shell .mission-tab[for="mc-reverse"] .mt-idx,
#landing-view #mc-reverse:checked ~ .mission-shell .mission-tab[for="mc-reverse"] .mt-tag{color: var(--accent-2); border-color: color-mix(in srgb, var(--accent-2) 40%, var(--line))}

/* --- stage --- */
#landing-view .mission-stage{
  position: relative;
  min-height: 100%;
  background:
    linear-gradient(color-mix(in srgb, var(--line) 28%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--line) 28%, transparent) 1px, transparent 1px),
    color-mix(in srgb, var(--bg) 55%, transparent);
  background-size: 40px 40px;
}
#landing-view .mission-panel{
  display: none;
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.05fr);
  gap: clamp(18px, 2.5vw, 32px);
  align-items: center;
  padding: clamp(22px, 3vw, 36px);
  min-height: 100%;
  animation: mp-in .38s var(--ease-out);
}
#landing-view #mc-analyzer:checked ~ .mission-shell .mp-analyzer,
#landing-view #mc-trainer:checked ~ .mission-shell .mp-trainer,
#landing-view #mc-reverse:checked ~ .mission-shell .mp-reverse{
  display: grid;
}
@keyframes mp-in{
  from{opacity:0; transform: translateY(10px)}
  to{opacity:1; transform: none}
}

/* --- copy column --- */
#landing-view .mp-copy{
  display: flex;
  flex-direction: column;
  gap: 14px;
  max-width: 42ch;
}
#landing-view .mp-kicker{
  font: 750 .68rem/1 var(--mono);
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--ink-3);
}
#landing-view .mp-analyzer .mp-kicker{color: color-mix(in srgb, var(--humo) 80%, var(--ink-3))}
#landing-view .mp-trainer .mp-kicker{color: color-mix(in srgb, var(--accent) 80%, var(--ink-3))}
#landing-view .mp-reverse .mp-kicker{color: color-mix(in srgb, var(--accent-2) 80%, var(--ink-3))}
#landing-view .mp-copy h3{
  font-family: var(--display);
  font-size: clamp(1.45rem, 2.2vw, 2rem);
  font-weight: 800;
  letter-spacing: -.03em;
  line-height: 1.08;
  margin: 0;
  color: var(--ink);
}
#landing-view .mp-copy p{
  margin: 0;
  color: var(--ink-2);
  font-size: .95rem;
  line-height: 1.58;
}
#landing-view .mp-facts{
  list-style: none;
  margin: 4px 0 6px;
  padding: 0;
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}
#landing-view .mp-facts li{
  display: inline-flex;
  align-items: baseline;
  gap: 6px;
  padding: 8px 12px;
  border-radius: 999px;
  border: 1px solid color-mix(in srgb, var(--line-2) 75%, transparent);
  background: color-mix(in srgb, var(--surface) 60%, transparent);
  font-size: .78rem;
  color: var(--ink-2);
}
#landing-view .mp-facts strong{
  font: 800 .82rem/1 var(--mono);
  color: var(--ink);
  letter-spacing: -.02em;
}
#landing-view .mp-cta{
  align-self: flex-start;
  min-height: 48px;
  padding: 13px 20px;
  border-radius: 12px;
  font-weight: 750;
  gap: 8px;
  margin-top: 4px;
  box-shadow:
    0 1px 0 rgba(255,255,255,.22) inset,
    0 14px 28px -14px color-mix(in srgb, var(--accent) 50%, transparent);
}
#landing-view .mp-cta svg{width:16px;height:16px;transition:transform .2s var(--ease)}
#landing-view .mp-cta:hover svg{transform:translateX(3px)}
#landing-view .mp-analyzer .mp-cta{
  background: linear-gradient(135deg, color-mix(in srgb, var(--humo) 88%, #fff), var(--humo));
  border-color: color-mix(in srgb, var(--humo) 50%, #fff);
  color: #1a0805;
  box-shadow: 0 1px 0 rgba(255,255,255,.25) inset, 0 14px 28px -14px color-mix(in srgb, var(--humo) 45%, transparent);
}
#landing-view .mp-trainer .mp-cta{
  background: linear-gradient(135deg, var(--accent-hi), var(--accent));
  border-color: color-mix(in srgb, var(--accent) 50%, #fff);
  color: #08100a;
}
#landing-view .mp-reverse .mp-cta{
  background: linear-gradient(135deg, color-mix(in srgb, var(--accent-2) 80%, #fff), var(--accent-2));
  border-color: color-mix(in srgb, var(--accent-2) 45%, #fff);
  color: #041018;
  box-shadow: 0 1px 0 rgba(255,255,255,.25) inset, 0 14px 28px -14px color-mix(in srgb, var(--accent-2) 45%, transparent);
}

/* --- viz column shared --- */
#landing-view .mp-viz{min-width:0}
#landing-view .mz-audit,
#landing-view .mz-train,
#landing-view .mz-rev{
  position: relative;
  border-radius: 18px;
  border: 1px solid color-mix(in srgb, var(--line-2) 70%, transparent);
  background:
    linear-gradient(165deg, rgba(255,255,255,.05), transparent 50%),
    color-mix(in srgb, var(--surface) 70%, var(--bg));
  box-shadow: var(--elev-1);
  overflow: hidden;
}

/* ANALYZER viz */
#landing-view .mz-audit{padding: 16px; display:flex; flex-direction:column; gap:14px}
#landing-view .mz-paste{
  display:flex; align-items:center; gap:10px;
  padding: 12px 14px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--humo) 28%, var(--line));
  background: color-mix(in srgb, var(--bg) 55%, transparent);
  font: 600 .8rem/1.2 var(--mono);
  color: var(--ink-2);
  white-space: nowrap;
  overflow: hidden;
}
#landing-view .mz-paste-ic{
  width: 22px; height: 22px; flex:none;
  display:grid; place-items:center;
  border-radius: 6px;
  background: color-mix(in srgb, var(--humo) 16%, transparent);
  color: var(--humo);
  font-size: .65rem;
}
#landing-view .mz-cursor{
  width: 2px; height: 1em;
  background: var(--humo);
  margin-left: 2px;
  animation: mz-blink 1s steps(1) infinite;
}
@keyframes mz-blink{50%{opacity:0}}
#landing-view .mz-equity{
  position: relative;
  height: 170px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: color-mix(in srgb, var(--bg) 70%, transparent);
  overflow: hidden;
}
#landing-view .mz-equity svg{position:absolute;inset:0;width:100%;height:100%}
#landing-view .mz-promised{
  stroke: var(--ink-3);
  stroke-width: 2;
  stroke-dasharray: 5 6;
  opacity: .55;
}
#landing-view .mz-net{
  stroke: var(--humo);
  stroke-width: 3;
  stroke-linecap: round;
  stroke-dasharray: 360;
  stroke-dashoffset: 360;
}
#landing-view #mc-analyzer:checked ~ .mission-shell .mz-net{
  animation: mz-draw 1.1s var(--ease-out) .15s forwards;
}
@keyframes mz-draw{to{stroke-dashoffset:0}}
#landing-view .mz-lab{
  position: absolute;
  font: 750 .58rem/1 var(--mono);
  letter-spacing: .1em;
  padding: 4px 7px;
  border-radius: 5px;
}
#landing-view .mz-lab.promised{
  top: 12px; right: 12px;
  color: var(--ink-3);
  background: color-mix(in srgb, var(--surface) 80%, transparent);
}
#landing-view .mz-lab.net{
  bottom: 12px; left: 12px;
  color: var(--humo);
  background: color-mix(in srgb, var(--humo) 14%, var(--surface));
}
#landing-view .mz-verdict,
#landing-view .mz-rev-out{
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 4px 2px 2px;
}
#landing-view .mz-seal{
  font: 900 1.05rem/1 var(--mono);
  letter-spacing: .14em;
  padding: 12px 14px;
  border-radius: 8px;
  border: 2px solid color-mix(in srgb, var(--humo) 60%, transparent);
  color: var(--humo);
  background: color-mix(in srgb, var(--humo) 10%, transparent);
  transform: rotate(-6deg);
  box-shadow: 0 12px 28px -16px color-mix(in srgb, var(--humo) 55%, transparent);
}
#landing-view #mc-analyzer:checked ~ .mission-shell .mz-seal,
#landing-view #mc-reverse:checked ~ .mission-shell .mz-seal{
  animation: mz-stamp .55s var(--ease-spring) .45s both;
}
@keyframes mz-stamp{
  0%{ opacity:0; transform: rotate(-18deg) scale(1.35) }
  100%{ opacity:1; transform: rotate(-6deg) scale(1) }
}
#landing-view .mz-seal-sub{
  font-size: .82rem;
  font-weight: 650;
  color: var(--ink-2);
  line-height: 1.35;
}

/* TRAINER viz */
#landing-view .mz-train{padding: 16px; display:flex; flex-direction:column; gap:12px}
#landing-view .mz-tape{
  position: relative;
  display: grid;
  grid-template-columns: 1.4fr 1fr;
  min-height: 160px;
  border-radius: 12px;
  border: 1px solid var(--line);
  overflow: hidden;
  background: color-mix(in srgb, var(--bg) 70%, transparent);
}
#landing-view .mz-candles{
  display: flex;
  align-items: flex-end;
  gap: 8px;
  padding: 18px 14px 16px;
}
#landing-view .mz-candles i{
  flex: 1;
  height: var(--h, 50%);
  border-radius: 3px 3px 2px 2px;
  position: relative;
  min-width: 8px;
}
#landing-view .mz-candles i.up{background: color-mix(in srgb, var(--real) 78%, transparent)}
#landing-view .mz-candles i.dn{background: color-mix(in srgb, var(--humo) 72%, transparent)}
#landing-view .mz-candles i::before{
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  width: 2px;
  top: -12%;
  bottom: -12%;
  background: color-mix(in srgb, var(--ink-3) 50%, transparent);
}
#landing-view .mz-entry{
  position: absolute;
  left: 58%;
  bottom: 22%;
  width: 0; height: 0;
  border-left: 7px solid transparent;
  border-right: 7px solid transparent;
  border-bottom: 10px solid var(--accent);
  filter: drop-shadow(0 0 6px color-mix(in srgb, var(--accent) 50%, transparent));
}
#landing-view .mz-fog{
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 6px;
  border-left: 1px dashed color-mix(in srgb, var(--ink-3) 45%, transparent);
  background:
    repeating-linear-gradient(-45deg,
      color-mix(in srgb, var(--ink-3) 10%, transparent) 0 7px,
      transparent 7px 14px);
  backdrop-filter: blur(2px);
  -webkit-backdrop-filter: blur(2px);
}
#landing-view .mz-fog b{
  font: 900 1.6rem/1 var(--mono);
  color: var(--ink-2);
}
#landing-view .mz-fog span{
  font: 750 .55rem/1.2 var(--mono);
  letter-spacing: .12em;
  color: var(--ink-3);
  text-align: center;
  padding: 0 8px;
}
#landing-view .mz-keys{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
#landing-view .mz-key{
  text-align: center;
  font: 850 .85rem/1 var(--mono);
  letter-spacing: .06em;
  padding: 16px 8px;
  border-radius: 12px;
  border: 1.5px solid;
  transition: transform .18s var(--ease), box-shadow .18s var(--ease);
}
#landing-view #mc-trainer:checked ~ .mission-shell .mz-key{
  animation: mz-keypop .4s var(--ease-out) both;
}
#landing-view #mc-trainer:checked ~ .mission-shell .mz-key.sell{animation-delay:.06s}
#landing-view #mc-trainer:checked ~ .mission-shell .mz-key.pass{animation-delay:.12s}
@keyframes mz-keypop{
  from{opacity:0; transform: translateY(8px)}
  to{opacity:1; transform: none}
}
#landing-view .mz-key.buy{
  color: var(--real);
  border-color: color-mix(in srgb, var(--real) 50%, transparent);
  background: color-mix(in srgb, var(--real) 12%, transparent);
}
#landing-view .mz-key.sell{
  color: var(--humo);
  border-color: color-mix(in srgb, var(--humo) 50%, transparent);
  background: color-mix(in srgb, var(--humo) 11%, transparent);
}
#landing-view .mz-key.pass{
  color: var(--ink-2);
  border-color: var(--line-2);
  background: color-mix(in srgb, var(--surface-2) 60%, transparent);
}
#landing-view .mz-scoreline{
  font: 650 .72rem/1.35 var(--mono);
  color: var(--ink-3);
  letter-spacing: .02em;
  text-align: center;
  padding-top: 2px;
}

/* REVERSE viz */
#landing-view .mz-rev{padding: 20px 18px; display:flex; flex-direction:column; gap:14px; align-items:stretch}
#landing-view .mz-brags{
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
}
#landing-view .mz-brag{
  position: relative;
  padding: 14px 10px 16px;
  border-radius: 12px;
  border: 1px solid color-mix(in srgb, var(--line-2) 80%, transparent);
  background: color-mix(in srgb, var(--bg) 50%, transparent);
  text-align: center;
  overflow: hidden;
}
#landing-view .mz-brag span{
  display: block;
  font: 750 .55rem/1 var(--mono);
  letter-spacing: .1em;
  color: var(--ink-3);
  margin-bottom: 8px;
}
#landing-view .mz-brag b{
  font: 900 clamp(1.3rem, 2vw, 1.7rem)/1 var(--display);
  letter-spacing: -.03em;
  color: var(--ink);
}
#landing-view .mz-brag i{
  position: absolute;
  left: 12%; right: 12%;
  top: 58%;
  height: 2px;
  background: var(--humo);
  transform: rotate(-12deg) scaleX(0);
  transform-origin: center;
  box-shadow: 0 0 8px color-mix(in srgb, var(--humo) 50%, transparent);
}
#landing-view #mc-reverse:checked ~ .mission-shell .mz-brag i{
  animation: mz-strike .45s var(--ease-out) .35s forwards;
}
#landing-view #mc-reverse:checked ~ .mission-shell .mz-brag:nth-child(2) i{animation-delay:.48s}
#landing-view #mc-reverse:checked ~ .mission-shell .mz-brag:nth-child(3) i{animation-delay:.6s}
@keyframes mz-strike{to{transform: rotate(-12deg) scaleX(1)}}
#landing-view .mz-arrow{
  display: grid;
  place-items: center;
  color: var(--ink-3);
}
#landing-view .mz-arrow svg{width:22px;height:22px}
#landing-view .mz-rev-out{
  justify-content: center;
  padding: 8px 0 4px;
}

/* hint */
#landing-view .mission-hint{
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
  margin: 14px 2px 0;
  font-size: .78rem;
  color: var(--ink-3);
}
#landing-view .mission-hint kbd{
  font: 750 .65rem/1 var(--mono);
  min-width: 22px;
  height: 22px;
  display: inline-grid;
  place-items: center;
  border-radius: 6px;
  border: 1px solid var(--line-2);
  background: color-mix(in srgb, var(--surface-2) 70%, transparent);
  color: var(--ink-2);
  box-shadow: 0 1px 0 color-mix(in srgb, var(--ink) 8%, transparent);
}

/* light theme */
[data-theme="light"] #landing-view .mission-shell{
  background: linear-gradient(165deg, #fff, #f6f8f6);
  border-color: color-mix(in srgb, var(--line) 95%, transparent);
  box-shadow: 0 22px 50px -30px rgba(13,18,15,.16);
}
[data-theme="light"] #landing-view .mission-rail{
  background: color-mix(in srgb, var(--surface-2) 80%, #fff);
}
[data-theme="light"] #landing-view .mission-stage{
  background:
    linear-gradient(color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px),
    linear-gradient(90deg, color-mix(in srgb, var(--line) 55%, transparent) 1px, transparent 1px),
    #fafbfa;
  background-size: 40px 40px;
}
[data-theme="light"] #landing-view .mz-audit,
[data-theme="light"] #landing-view .mz-train,
[data-theme="light"] #landing-view .mz-rev{
  background: #fff;
  border-color: color-mix(in srgb, var(--line) 90%, transparent);
  box-shadow: 0 12px 30px -20px rgba(13,18,15,.12);
}
[data-theme="light"] #landing-view .mission-section::before{opacity:.45}
[data-theme="light"] #landing-view .mp-analyzer .mp-cta{color:#2a0c08}
[data-theme="light"] #landing-view .mp-trainer .mp-cta{color:#0c160e}
[data-theme="light"] #landing-view .mp-reverse .mp-cta{color:#041820}

/* responsive */
@media (max-width: 980px){
  #landing-view .mission-intro-row{grid-template-columns:1fr; gap:12px; align-items:start}
  #landing-view .mission-intro h2{max-width:16ch}
  #landing-view .mission-shell{
    grid-template-columns: 1fr;
    min-height: 0;
  }
  #landing-view .mission-rail{
    flex-direction: row;
    overflow-x: auto;
    border-right: 0;
    border-bottom: 1px solid color-mix(in srgb, var(--line) 85%, transparent);
    gap: 8px;
    padding: 12px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  #landing-view .mission-rail::-webkit-scrollbar{display:none}
  #landing-view .mission-tab{
    min-width: min(240px, 78vw);
    grid-template-columns: auto 1fr;
    min-height: 64px;
  }
  #landing-view .mission-tab .mt-tag{display:none}
  #landing-view .mission-panel{
    grid-template-columns: 1fr;
    gap: 20px;
    padding: 18px;
  }
  #landing-view .mp-copy{max-width:none}
  #landing-view .mp-cta{width:100%; justify-content:center}
}
@media (max-width: 560px){
  #landing-view .mz-brags{grid-template-columns:1fr; gap:8px}
  #landing-view .mz-brag{display:grid; grid-template-columns:1fr auto; align-items:center; text-align:left; gap:8px; padding:12px 14px}
  #landing-view .mz-brag span{margin:0}
  #landing-view .mz-brag b{font-size:1.35rem}
  #landing-view .mz-key{padding:14px 6px; font-size:.75rem}
  #landing-view .mission-hint{font-size:.72rem}
}
@media (prefers-reduced-motion: reduce){
  #landing-view .mission-panel,
  #landing-view .mz-net,
  #landing-view .mz-seal,
  #landing-view .mz-key,
  #landing-view .mz-brag i,
  #landing-view .mz-cursor{
    animation: none !important;
  }
  #landing-view .mz-net{stroke-dashoffset:0}
  #landing-view .mz-brag i{transform: rotate(-12deg) scaleX(1)}
}

/* Mission CTA color lock — beat global .btn accent green */
#landing-view a.mp-cta.btn{
  border-width: 1px;
  font-weight: 750;
}
#landing-view .mp-analyzer a.mp-cta.btn{
  background: linear-gradient(135deg, #ff8a6e, var(--humo)) !important;
  border-color: color-mix(in srgb, var(--humo) 55%, #fff) !important;
  color: #1a0805 !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 14px 28px -12px color-mix(in srgb, var(--humo) 48%, transparent) !important;
}
#landing-view .mp-trainer a.mp-cta.btn{
  background: linear-gradient(135deg, var(--accent-hi), var(--accent)) !important;
  border-color: color-mix(in srgb, var(--accent) 55%, #fff) !important;
  color: #08100a !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 14px 28px -12px color-mix(in srgb, var(--accent) 48%, transparent) !important;
}
#landing-view .mp-reverse a.mp-cta.btn{
  background: linear-gradient(135deg, #7adfff, var(--accent-2)) !important;
  border-color: color-mix(in srgb, var(--accent-2) 50%, #fff) !important;
  color: #041018 !important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 14px 28px -12px color-mix(in srgb, var(--accent-2) 48%, transparent) !important;
}
[data-theme="light"] #landing-view .mp-analyzer a.mp-cta.btn{
  background: linear-gradient(135deg, #e85a38, var(--humo)) !important;
  color: #fff !important;
}
[data-theme="light"] #landing-view .mp-trainer a.mp-cta.btn{
  background: linear-gradient(135deg, var(--accent-hi), var(--accent)) !important;
  color: #fff !important;
}
[data-theme="light"] #landing-view .mp-reverse a.mp-cta.btn{
  background: linear-gradient(135deg, #1aa3d9, var(--accent-2)) !important;
  color: #fff !important;
}

/* ============================================================
   TRAINER × ANALYZER PARITY (v333)
   Solid, professional instrument UI — same language as .ax-*
   Functionality unchanged; surfaces / hierarchy / chrome only.
   ============================================================ */

/* ---- tokens (share analyzer language) ---- */
body.is-trainer{
  --tr-line: color-mix(in srgb, var(--ink) 10%, transparent);
  --tr-line-strong: color-mix(in srgb, var(--ink) 16%, transparent);
  --tr-glass: color-mix(in srgb, var(--surface) 88%, transparent);
  --tr-glass-2: color-mix(in srgb, var(--surface-2) 90%, transparent);
  --tr-well: color-mix(in srgb, var(--bg) 55%, transparent);
  --tr-accent-soft: color-mix(in srgb, var(--accent) 12%, transparent);
  --tr-shadow:
    0 1px 0 rgba(255,255,255,.04) inset,
    0 30px 80px -48px rgba(0,0,0,.85),
    0 12px 28px -18px rgba(0,0,0,.55);
  --tr-shadow-sm:
    0 1px 0 rgba(255,255,255,.035) inset,
    0 14px 36px -22px rgba(0,0,0,.7);
  --tr-r: 22px;
  --tr-r-sm: 14px;
  --tr-r-xs: 11px;
}
[data-theme="light"] body.is-trainer{
  --tr-line: rgba(12,18,16,.10);
  --tr-line-strong: rgba(12,18,16,.16);
  --tr-glass: rgba(255,255,255,.90);
  --tr-glass-2: rgba(255,255,255,.96);
  --tr-well: rgba(12,18,16,.035);
  --tr-accent-soft: color-mix(in srgb, var(--accent) 9%, transparent);
  --tr-shadow:
    0 1px 0 rgba(255,255,255,.95) inset,
    0 28px 70px -40px rgba(12,18,16,.18),
    0 10px 22px -14px rgba(12,18,16,.08);
  --tr-shadow-sm:
    0 1px 0 rgba(255,255,255,.9) inset,
    0 12px 28px -16px rgba(12,18,16,.12);
}

/* ---- page shell ---- */
body.is-trainer footer{display:none}
body.is-trainer .trainer-view{
  padding-top:var(--nav-h)!important;
  min-height:calc(100svh - var(--nav-h));
  background:transparent!important;
  overflow:clip;
}
body.is-trainer .tr-page{
  position:relative;
  isolation:isolate;
  padding:clamp(18px,3.2vh,36px) 0 110px;
  min-height:calc(100svh - var(--nav-h));
  overflow:clip;
}
body.is-trainer .tr-ambient{
  position:fixed;
  top:var(--nav-h);right:0;bottom:0;left:0;
  pointer-events:none;
  z-index:0;
  overflow:hidden;
}
body.is-trainer .tr-orb{
  position:absolute;border-radius:50%;filter:blur(60px);
  opacity:.55;will-change:transform;
}
body.is-trainer .tr-orb-a{
  width:min(52vw,520px);height:min(52vw,520px);
  top:-12%;left:-8%;
  background:radial-gradient(circle at 40% 40%,
    color-mix(in srgb,var(--accent) 28%,transparent),
    transparent 68%);
  animation:ax-drift-a 18s ease-in-out infinite alternate;
}
body.is-trainer .tr-orb-b{
  width:min(46vw,460px);height:min(46vw,460px);
  top:8%;right:-10%;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in srgb,var(--accent-2) 16%,transparent),
    transparent 70%);
  animation:ax-drift-b 22s ease-in-out infinite alternate;
}
body.is-trainer .tr-grid-fade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, transparent 0%, var(--bg) 88%),
    repeating-linear-gradient(90deg,
      color-mix(in srgb,var(--ink) 3.5%,transparent) 0 1px,
      transparent 1px 72px),
    repeating-linear-gradient(0deg,
      color-mix(in srgb,var(--ink) 2.5%,transparent) 0 1px,
      transparent 1px 72px);
  mask-image:radial-gradient(ellipse 80% 55% at 50% 0%, #000 20%, transparent 75%);
  opacity:.55;
}

body.is-trainer .tr-shell,
body.is-trainer .trainer-wrap{
  position:relative;z-index:1;
  width:min(100% - 40px, 1380px)!important;
  max-width:1380px!important;
  margin-inline:auto!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:16px!important;
}

/* kill old trainer-top padding shell */
body.is-trainer .trainer-top,
body.is-trainer .tr-page{
  /* tr-page is the section now */
}
body.is-trainer section.trainer-top{display:contents}

/* ---- chrome (pixel-match .ax-chrome / Strategy audit) ---- */
body.is-trainer .tr-chrome.trainer-head,
body.is-trainer .trainer-head{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:0!important;
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
  min-height:0!important;
  width:100%!important;
  max-width:min(560px,72%)!important;
  margin:0 0 clamp(14px,2.2vh,20px)!important;
  padding:4px 2px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  grid-template-columns:none!important;
}
/* kill legacy terminal eyebrow (green dot + blink _) on this header */
body.is-trainer .trainer-head .eyebrow,
body.is-trainer .trainer-head .eyebrow::before,
body.is-trainer .trainer-head .eyebrow::after{
  content:none!important;
  display:none!important;
}
body.is-trainer .tr-kicker{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  margin:0 0 12px!important;
}
body.is-trainer .tr-live-dot{
  width:8px!important;
  height:8px!important;
  border-radius:50%!important;
  flex:none!important;
  display:inline-block!important;
  background:var(--accent)!important;
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)!important;
  animation:ax-pulse 2s ease-in-out infinite!important;
}
body.is-trainer .tr-eyebrow{
  font-family:var(--mono)!important;
  font-size:10.5px!important;
  font-weight:800!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  color:var(--ink-3)!important;
  margin:0!important;
  display:inline!important;
  gap:0!important;
}
body.is-trainer .tr-eyebrow::before,
body.is-trainer .tr-eyebrow::after{
  content:none!important;
  display:none!important;
}
body.is-trainer .trainer-head h1{
  margin:0 0 8px!important;
  max-width:16ch!important;
  font-family:var(--display)!important;
  font-size:clamp(26px,3.2vw,36px)!important;
  line-height:1.05!important;
  font-weight:780!important;
  letter-spacing:-.03em!important;
  color:var(--ink)!important;
}
body.is-trainer .trainer-head p{
  margin:0!important;
  max-width:42ch!important;
  font-size:14.5px!important;
  line-height:1.55!important;
  color:var(--ink-2)!important;
}
@media (max-width:760px){
  body.is-trainer .tr-chrome.trainer-head,
  body.is-trainer .trainer-head{
    max-width:100%!important;
  }
}

/* ---- instrument card (setup) ---- */
body.is-trainer .tr-instrument{
  position:relative;z-index:2;
  width:100%;
  border:1px solid var(--tr-line)!important;
  border-radius:var(--tr-r)!important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 92%, transparent),
      color-mix(in srgb,var(--surface-2) 88%, transparent))!important;
  box-shadow:var(--tr-shadow)!important;
  overflow:hidden;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
  isolation:isolate;
}
body.is-trainer .tr-instrument-top{
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:16px clamp(16px,2.2vw,24px);
  border-bottom:1px solid var(--tr-line);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 5%, transparent),
      transparent);
}
body.is-trainer .tr-instrument-label span{
  display:block;
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
body.is-trainer .tr-instrument-label b{
  display:block;margin-top:3px;
  font-size:14px;font-weight:780;color:var(--ink);letter-spacing:-.01em;
}
body.is-trainer .tr-mode-top{
  margin:0!important;
  min-width:0;
  max-width:100%;
  flex:1 1 auto;
  display:flex!important;
  justify-content:flex-end;
}
body.is-trainer .tr-mode-top.hidden{display:none!important}
body.is-trainer .tr-instrument-top .tr-tabs.seg,
body.is-trainer .tr-instrument-top .mode-seg{
  display:inline-grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:3px!important;
  padding:3px!important;
  width:min(100%,420px);
  max-width:100%;
  border:1px solid var(--tr-line)!important;
  border-radius:14px!important;
  background:var(--tr-well)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.04)!important;
  overflow:hidden;
}
body.is-trainer .tr-instrument-top .tr-mode-btn.seg-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:7px!important;
  min-height:40px!important;
  min-width:0!important;
  width:100%!important;
  padding:0 10px!important;
  border:0!important;
  border-radius:11px!important;
  background:transparent!important;
  color:var(--ink-2)!important;
  font-family:var(--font)!important;
  font-size:12.5px!important;
  font-weight:720!important;
  letter-spacing:0!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  box-shadow:none!important;
  transition:
    color .16s var(--ease),
    background .16s var(--ease),
    box-shadow .16s var(--ease),
    transform .14s var(--ease)!important;
}
body.is-trainer .tr-instrument-top .tr-mode-btn svg{
  width:14px;height:14px;flex:0 0 14px;opacity:.72;
  transition:opacity .16s var(--ease), transform .16s var(--ease);
}
body.is-trainer .tr-instrument-top .tr-mode-btn span{
  overflow:hidden;text-overflow:ellipsis;min-width:0;
}
body.is-trainer .tr-instrument-top .tr-mode-btn:hover{
  color:var(--ink)!important;
  background:color-mix(in srgb,var(--ink) 5%,transparent)!important;
}
body.is-trainer .tr-instrument-top .tr-mode-btn:hover svg{opacity:.95}
body.is-trainer .tr-instrument-top .tr-mode-btn:active{
  transform:scale(.97)!important;
}
body.is-trainer .tr-instrument-top .tr-mode-btn.active{
  color:#061208!important;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)))!important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.28) inset,
    0 8px 18px -10px color-mix(in srgb,var(--accent) 70%,transparent)!important;
}
body.is-trainer .tr-instrument-top .tr-mode-btn.active svg{
  opacity:1;
  stroke:#061208;
}
body.is-trainer .tr-instrument-top .tr-mode-btn:focus-visible{
  outline:2px solid var(--accent);
  outline-offset:2px;
}
/* Verified edge: subtle gold tint when idle, solid active like the rest */
body.is-trainer .tr-instrument-top .tr-mode-btn.seg-edge:not(.active){
  color:color-mix(in srgb,var(--accent-2) 55%,var(--ink-2))!important;
}
body.is-trainer .tr-instrument-body{
  padding:14px clamp(16px,2.2vw,24px) 10px;
}

/* controls: flat inside instrument — no nested glass card */
body.is-trainer .tr-instrument .trainer-controls{
  display:flex!important;
  flex-wrap:wrap!important;
  align-items:flex-end!important;
  gap:14px 16px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:visible!important;
}
body.is-trainer .tc-group{
  display:flex;flex-direction:column;gap:7px;min-width:0;
}
body.is-trainer .tc-group > label,
body.is-trainer .tr-lab{
  display:inline-flex;align-items:center;gap:8px;
  font-family:var(--mono)!important;
  font-size:10px!important;
  font-weight:850!important;
  letter-spacing:.12em!important;
  text-transform:uppercase!important;
  color:var(--ink-3)!important;
  margin:0;
}
body.is-trainer .trainer-select,
body.is-trainer .tr-instrument select.trainer-select,
body.is-trainer .tr-instrument input.trainer-select{
  min-height:44px!important;
  min-width:148px;
  padding:10px 12px!important;
  border:1px solid var(--tr-line)!important;
  border-radius:13px!important;
  background:var(--tr-well)!important;
  color:var(--ink)!important;
  box-shadow:none!important;
  font:600 13.5px/1.2 var(--font)!important;
  transition:border-color .16s var(--ease), box-shadow .16s var(--ease), background .16s var(--ease);
}
body.is-trainer .trainer-select:focus,
body.is-trainer .tr-instrument input.trainer-select:focus{
  outline:none;
  border-color:color-mix(in srgb,var(--accent) 55%,var(--tr-line))!important;
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 12%,transparent)!important;
  background:color-mix(in srgb,var(--surface) 70%,transparent)!important;
}

/* segments → ax-tabs language (body controls + track + tf) */
body.is-trainer .tr-seg.seg,
body.is-trainer .trainer-controls .seg{
  display:inline-flex!important;
  align-items:center;
  gap:3px!important;
  padding:3px!important;
  border:1px solid var(--tr-line)!important;
  border-radius:14px!important;
  background:var(--tr-well)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
}
/* Mode tabs in instrument header stay equal-width grid (override flex above) */
body.is-trainer .tr-instrument-top .mode-seg.tr-seg,
body.is-trainer .tr-instrument-top #mode-seg{
  display:inline-grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  width:min(100%,420px)!important;
  max-width:100%!important;
  overflow:hidden!important;
}
body.is-trainer .trainer-controls .seg-btn,
body.is-trainer .tr-seg .seg-btn,
body.is-trainer .tf-btn{
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:6px!important;
  min-height:38px!important;
  padding:0 12px!important;
  border:0!important;
  border-radius:11px!important;
  background:transparent!important;
  color:var(--ink-2)!important;
  font-family:var(--font)!important;
  font-size:12.5px!important;
  font-weight:720!important;
  letter-spacing:0!important;
  box-shadow:none!important;
  cursor:pointer!important;
  transition:color .16s var(--ease), background .16s var(--ease), box-shadow .16s var(--ease), transform .14s var(--ease)!important;
}
body.is-trainer .trainer-controls .seg-btn:hover,
body.is-trainer .tr-seg .seg-btn:hover,
body.is-trainer .tf-btn:hover{
  color:var(--ink)!important;
  background:color-mix(in srgb,var(--ink) 4%,transparent)!important;
}
body.is-trainer .trainer-controls .seg-btn:active,
body.is-trainer .tr-seg .seg-btn:active,
body.is-trainer .tf-btn:active{
  transform:scale(.97)!important;
}
/* FIX: mode tabs live outside .trainer-controls — active state must cover .tr-seg */
body.is-trainer .trainer-controls .seg-btn.active,
body.is-trainer .tr-seg .seg-btn.active,
body.is-trainer .tf-btn.active{
  color:#061208!important;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)))!important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.25) inset,
    0 10px 22px -12px color-mix(in srgb,var(--accent) 65%,transparent)!important;
}
body.is-trainer .trainer-controls .seg-btn.locked,
body.is-trainer .tr-seg .seg-btn.locked{
  opacity:.45!important;
  cursor:not-allowed!important;
  filter:grayscale(.35);
}
body.is-trainer .tr-track-ico{font-size:13px;line-height:1}
body.is-trainer .mode-note{
  margin:12px 2px 4px!important;
  font-size:12.5px!important;
  color:var(--ink-2)!important;
}

/* dock CTA — compact, not a full-width wall */
body.is-trainer .tr-dock{
  margin-top:4px;
  padding:12px clamp(16px,2.2vw,24px) 14px;
  border-top:1px solid var(--tr-line);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 55%, transparent),
      color-mix(in srgb,var(--surface-2) 92%, transparent));
}
body.is-trainer .tr-dock-row{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:14px 18px;
  flex-wrap:wrap;
}
body.is-trainer .tr-legal{
  margin:0;
  flex:1 1 180px;
  font-size:11px;line-height:1.45;color:var(--ink-3);
  text-align:left;letter-spacing:.01em;
  max-width:42ch;
}
body.is-trainer .tr-dock #exam-new,
body.is-trainer .tr-exam-btn{
  width:auto!important;
  flex:0 0 auto!important;
  min-height:40px!important;
  height:40px!important;
  margin:0!important;
  margin-left:auto!important;
  padding:0 16px!important;
  border-radius:12px!important;
  font-size:13.5px!important;
  font-weight:760!important;
  letter-spacing:-.01em!important;
  gap:8px!important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.2) inset,
    0 10px 22px -12px color-mix(in srgb,var(--accent) 50%,transparent)!important;
  transition:transform .14s var(--ease), box-shadow .16s var(--ease), filter .16s var(--ease)!important;
}
body.is-trainer .tr-exam-btn svg{
  width:15px;height:15px;flex:none;
  transition:transform .16s var(--ease);
}
body.is-trainer .tr-exam-btn:hover{
  transform:translateY(-1px)!important;
  filter:brightness(1.04);
}
body.is-trainer .tr-exam-btn:hover svg{transform:rotate(90deg)}
body.is-trainer .tr-exam-btn:active{transform:translateY(0) scale(.98)!important}
body.is-trainer .tr-exam-btn.loading{
  opacity:.72;
  pointer-events:none;
}
body.is-trainer .tr-exam-btn.loading svg{display:none}

/* ---- generic cards ---- */
body.is-trainer .tr-card,
body.is-trainer .trainer-context,
body.is-trainer .trainer-progress,
body.is-trainer .edge-system,
body.is-trainer .edge-panel,
body.is-trainer .dledger{
  border:1px solid var(--tr-line)!important;
  border-radius:16px!important;
  background:var(--tr-glass)!important;
  backdrop-filter:blur(14px)!important;
  -webkit-backdrop-filter:blur(14px)!important;
  box-shadow:var(--tr-shadow-sm)!important;
  overflow:hidden;
}
body.is-trainer .trainer-context{
  border-left:3px solid var(--accent-2)!important;
}

/* ---- metrics (ax-metrics language) ---- */
body.is-trainer .scoreboard.tr-metrics,
body.is-trainer .scoreboard{
  display:grid!important;
  grid-template-columns:repeat(5,minmax(0,1fr))!important;
  gap:10px!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:visible!important;
  border-radius:0!important;
}
body.is-trainer .scoreboard .sb{
  border:1px solid var(--tr-line)!important;
  border-radius:14px!important;
  background:var(--tr-well)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  padding:12px 13px!important;
  display:flex;flex-direction:column;gap:4px;
  min-width:0;
}
body.is-trainer .scoreboard .sb span{
  font-family:var(--mono)!important;
  font-size:9.5px!important;
  font-weight:850!important;
  letter-spacing:.11em!important;
  text-transform:uppercase!important;
  color:var(--ink-3)!important;
}
body.is-trainer .scoreboard .sb b{
  display:block;
  margin:2px 0 0;
  font-family:var(--mono)!important;
  font-size:18px!important;
  font-weight:850!important;
  color:var(--ink)!important;
  font-variant-numeric:tabular-nums;
  line-height:1.1;
}

/* gym strip */
body.is-trainer .gym-cta.tr-gym,
body.is-trainer .gym-cta{
  margin:2px 0 0!important;
  padding:12px 16px!important;
  border:1px solid var(--tr-line)!important;
  border-radius:14px!important;
  background:var(--tr-well)!important;
  box-shadow:none!important;
  transition:border-color .16s var(--ease), background .16s var(--ease);
}
body.is-trainer .gym-cta:hover{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--tr-line))!important;
  background:color-mix(in srgb,var(--accent) 6%,var(--tr-well))!important;
}

/* ---- stage panel ---- */
body.is-trainer .tr-stage-panel{
  position:relative;z-index:2;
  border:1px solid var(--tr-line)!important;
  border-radius:var(--tr-r)!important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 92%, transparent),
      color-mix(in srgb,var(--surface-2) 88%, transparent))!important;
  box-shadow:var(--tr-shadow)!important;
  overflow:hidden;
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
body.is-trainer .tr-stage-head{
  display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding:16px clamp(14px,1.8vw,20px);
  border-bottom:1px solid var(--tr-line);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 5%, transparent),
      transparent);
}
body.is-trainer .tr-microlabel{
  display:block;
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
  margin:0 0 3px;
}
body.is-trainer .tr-stage-head b{
  display:block;
  font-size:13.5px;font-weight:780;color:var(--ink);letter-spacing:-.01em;
}
body.is-trainer .tr-stage-badge{
  display:inline-flex;align-items:center;
  min-height:26px;padding:0 11px;border-radius:999px;
  border:1px solid var(--tr-line);
  background:var(--tr-well);
  font-family:var(--mono);font-size:10px;font-weight:800;
  letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
  white-space:nowrap;
}

/* strip old glass stage shell */
body.is-trainer .trainer-stage{
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) minmax(280px,320px)!important;
  gap:12px!important;
  align-items:start!important;
  padding:14px clamp(12px,1.5vw,16px) 16px!important;
  margin:0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:visible!important;
}

/* toolbar */
body.is-trainer .draw-toolbar{
  display:flex!important;
  flex-direction:column!important;
  gap:4px!important;
  width:100%!important;
  padding:8px 6px!important;
  border:1px solid var(--tr-line)!important;
  border-radius:16px!important;
  background:var(--tr-well)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  position:relative!important;
  top:auto!important;
  max-height:none;
  overflow-y:auto;
  scrollbar-width:none;
}
body.is-trainer .draw-toolbar .tool{
  width:40px!important;height:40px!important;
  border:1px solid transparent!important;
  border-radius:11px!important;
  background:transparent!important;
  color:var(--ink-2)!important;
  box-shadow:none!important;
  transition:border-color .15s, color .15s, background .15s!important;
}
body.is-trainer .draw-toolbar .tool:hover{
  color:var(--ink)!important;
  border-color:color-mix(in srgb,var(--accent) 34%,var(--tr-line))!important;
  background:color-mix(in srgb,var(--accent) 7%,transparent)!important;
}
body.is-trainer .draw-toolbar .tool.active{
  border-color:color-mix(in srgb,var(--accent) 46%,var(--tr-line))!important;
  background:color-mix(in srgb,var(--accent) 12%,transparent)!important;
  color:var(--accent)!important;
}
body.is-trainer .draw-toolbar .tool.buy-tool.active{
  border-color:color-mix(in srgb,var(--real) 50%,transparent)!important;
  background:color-mix(in srgb,var(--real) 14%,transparent)!important;
  color:var(--real)!important;
}
body.is-trainer .draw-toolbar .tool.sell-tool.active{
  border-color:color-mix(in srgb,var(--humo) 50%,transparent)!important;
  background:color-mix(in srgb,var(--humo) 14%,transparent)!important;
  color:var(--humo)!important;
}
body.is-trainer .tool-sep{
  background:var(--tr-line)!important;
}

/* chart card */
body.is-trainer .tr-chart-card,
body.is-trainer .trainer-chartwrap{
  min-width:0;
  display:flex;
  flex-direction:column;
  gap:0;
  border:1px solid var(--tr-line)!important;
  border-radius:16px!important;
  background:var(--tr-well)!important;
  overflow:hidden;
  box-shadow:none!important;
}
body.is-trainer .chart-top{
  display:flex!important;
  align-items:center!important;
  gap:12px!important;
  flex-wrap:wrap!important;
  padding:11px 14px!important;
  border:0!important;
  border-bottom:1px solid var(--tr-line)!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.is-trainer .tr-chart-meta{
  display:flex;flex-direction:column;gap:2px;min-width:0;
}
body.is-trainer .tr-chart-meta .tr-microlabel{margin:0}
body.is-trainer .chart-top #trainer-title,
body.is-trainer .tr-chart-meta b{
  font-family:var(--mono)!important;
  font-size:12px!important;
  font-weight:800!important;
  color:var(--ink)!important;
  letter-spacing:.01em;
}
body.is-trainer .chart-top #trainer-hint{
  flex:1;min-width:140px;
  font-size:12.5px!important;
  color:var(--ink-3)!important;
  line-height:1.35;
}
body.is-trainer .tr-chart-actions{
  display:inline-flex;align-items:center;gap:6px;margin-left:auto;
}
body.is-trainer .trainer-mute{
  width:34px;height:34px;
  display:grid;place-items:center;
  padding:0!important;
  border:1px solid var(--tr-line)!important;
  border-radius:10px!important;
  background:var(--tr-glass)!important;
  color:var(--ink-2);
  font-size:.85rem;
  transition:border-color .15s, color .15s, background .15s;
}
body.is-trainer .trainer-mute:hover{
  color:var(--ink);
  border-color:color-mix(in srgb,var(--accent) 40%,var(--tr-line))!important;
}
body.is-trainer .trainer-help{
  font:800 .85rem/1 var(--mono)!important;
  color:var(--accent)!important;
}

body.is-trainer .trainer-chart{
  position:relative;
  height:clamp(420px,58vh,560px)!important;
  border:0!important;
  border-radius:0!important;
  background:
    linear-gradient(color-mix(in srgb,var(--line) 32%,transparent) 1px,transparent 1px),
    linear-gradient(90deg,color-mix(in srgb,var(--line) 32%,transparent) 1px,transparent 1px),
    color-mix(in srgb,var(--bg) 88%,transparent)!important;
  background-size:54px 54px!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:hidden;
}
body.is-trainer .trainer-loading{
  background:color-mix(in srgb,var(--bg) 72%,transparent)!important;
  color:var(--ink-3)!important;
  font-size:13px!important;
  border:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}
body.is-trainer .ema-legend{
  padding:8px 14px 10px;
  border-top:1px solid var(--tr-line);
  min-height:28px;
}

/* decision panel */
body.is-trainer .decision-panel.tr-decision,
body.is-trainer .decision-panel{
  display:flex!important;
  flex-direction:column!important;
  gap:0!important;
  width:100%!important;
  padding:0!important;
  border:1px solid var(--tr-line)!important;
  border-radius:16px!important;
  background:var(--tr-well)!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  position:relative!important;
  top:auto!important;
  align-self:start!important;
  overflow:hidden;
}
body.is-trainer .tr-decision-head{
  padding:14px 16px 12px;
  border-bottom:1px solid var(--tr-line);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 5%, transparent),
      transparent);
}
body.is-trainer .tr-decision-head b{
  display:block;
  font-size:13.5px;font-weight:780;color:var(--ink);
}
body.is-trainer .decision-pre,
body.is-trainer .decision-post{
  padding:14px 16px 16px;
}
body.is-trainer .entry-info .ei-row{
  border-bottom-color:var(--tr-line)!important;
  background:transparent!important;
  box-shadow:none!important;
  border-radius:0!important;
  padding:8px 0!important;
}
body.is-trainer .big-buy,
body.is-trainer .big-sell{
  border-radius:14px!important;
  min-height:72px;
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.22),
    0 14px 28px -18px rgba(0,0,0,.55)!important;
}
body.is-trainer .btn-pass{
  border:1px solid var(--tr-line)!important;
  border-radius:13px!important;
  background:color-mix(in srgb,var(--surface) 40%,transparent)!important;
  margin-top:2px;
}
body.is-trainer .btn-pass:hover{
  border-color:color-mix(in srgb,var(--accent) 36%,var(--tr-line))!important;
}
body.is-trainer .verdict-card{
  border-radius:14px!important;
  border-color:var(--tr-line)!important;
  background:color-mix(in srgb,var(--surface) 55%,transparent)!important;
  box-shadow:none!important;
}

/* ---- light theme polish ---- */
[data-theme="light"] body.is-trainer .tr-instrument,
[data-theme="light"] body.is-trainer .tr-stage-panel{
  background:
    linear-gradient(180deg, rgba(255,255,255,.96), rgba(255,255,255,.90))!important;
}
[data-theme="light"] body.is-trainer .tr-well,
[data-theme="light"] body.is-trainer .scoreboard .sb,
[data-theme="light"] body.is-trainer .draw-toolbar,
[data-theme="light"] body.is-trainer .tr-chart-card,
[data-theme="light"] body.is-trainer .decision-panel{
  background:rgba(12,18,16,.03)!important;
}
[data-theme="light"] body.is-trainer .trainer-chart{
  background:
    linear-gradient(rgba(12,18,16,.05) 1px,transparent 1px),
    linear-gradient(90deg,rgba(12,18,16,.05) 1px,transparent 1px),
    #fff!important;
  background-size:54px 54px!important;
}
[data-theme="light"] body.is-trainer .trainer-loading{
  background:rgba(255,255,255,.78)!important;
}

/* ---- responsive ---- */
@media (max-width:1080px){
  body.is-trainer .scoreboard,
  body.is-trainer .scoreboard.tr-metrics{
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body.is-trainer .trainer-stage{
    grid-template-columns:1fr!important;
  }
  body.is-trainer .draw-toolbar{
    flex-direction:row!important;
    flex-wrap:wrap!important;
    max-height:none!important;
    order:2;
  }
  body.is-trainer .trainer-chartwrap{order:1}
  body.is-trainer .decision-panel{order:3}
}
@media (max-width:760px){
  body.is-trainer .tr-shell,
  body.is-trainer .trainer-wrap{
    width:min(100% - 24px, 100%)!important;
  }
  body.is-trainer .trainer-head .trainer-chrome{max-width:100%!important}
  body.is-trainer .trainer-head h1{font-size:clamp(24px,7vw,30px)!important}
  body.is-trainer .tr-instrument-top{
    flex-direction:column;
    align-items:stretch;
    gap:12px;
  }
  body.is-trainer .tr-mode-top{
    justify-content:stretch!important;
  }
  body.is-trainer .tr-instrument-top .tr-tabs.seg,
  body.is-trainer .tr-instrument-top .mode-seg{
    width:100%!important;
    max-width:none!important;
    display:grid!important;
    grid-template-columns:repeat(3,minmax(0,1fr))!important;
  }
  body.is-trainer .tr-instrument-top .tr-mode-btn.seg-btn{
    min-width:0!important;
    padding:0 6px!important;
    font-size:11px!important;
    gap:5px!important;
  }
  body.is-trainer .tr-instrument-top .tr-mode-btn svg{
    width:13px;height:13px;flex:0 0 13px;
  }
  body.is-trainer .tr-dock-row{
    flex-direction:column;
    align-items:stretch;
    gap:10px;
  }
  body.is-trainer .tr-legal{
    text-align:center;
    max-width:none;
    flex:none;
  }
  body.is-trainer .tr-dock #exam-new,
  body.is-trainer .tr-exam-btn{
    width:100%!important;
    margin-left:0!important;
    min-height:42px!important;
    height:42px!important;
  }
  body.is-trainer .scoreboard,
  body.is-trainer .scoreboard.tr-metrics{
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
  }
  body.is-trainer .tr-instrument-body .trainer-controls{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  body.is-trainer .tc-group,
  body.is-trainer .trainer-select,
  body.is-trainer .tf-seg,
  body.is-trainer .icombo{
    width:100%!important;
    min-width:0!important;
    max-width:100%!important;
  }
  body.is-trainer .tr-stage-head{
    flex-direction:column;align-items:flex-start;
  }
  body.is-trainer .tr-chart-actions{margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  body.is-trainer .tr-orb-a,
  body.is-trainer .tr-orb-b,
  body.is-trainer .tr-live-dot{animation:none!important}
}


/* ==========================================================================
   REVERSE HERO v333 — analyzer/trainer parity: GIANT full-bleed portrait
   Brings the reverse-engineering tool in line with the analyzer (ax-dotfield)
   and the trainer (v326): a fixed, viewport-filling pointillist portrait of
   the reviewer mascot anchored right, covering the whole #reverse-view
   background, with the tool content floating on top in its glass surfaces.
   The reverse tool's behavior is unchanged. Portrait lives in #reverse-view
   as its own layer (moved out of the boxed .rv-hero-shell).
   ========================================================================== */

/* the view is the stacking context; content sits above the fixed portrait */
body.is-reverse .reverse-view{
  isolation:isolate!important;
  position:relative!important;
}
body.is-reverse .rv-hero,
body.is-reverse .rv-body{
  position:relative!important;
  z-index:1!important;
}

/* --- GIANT pointillist portrait: fixed, fills the whole viewport, anchored right --- */
body.is-reverse .reverse-dotfield{
  --tr-size:auto min(118vh, 1280px);
  --tr-pos:right 40%;
  position:fixed!important;
  top:var(--nav-h)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  contain:paint;
}
body.is-reverse .rv-df-wash,
body.is-reverse .rv-df-dots{
  position:absolute;
  inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  transform:translateZ(0);
  backface-visibility:hidden;
}
/* Layer 1 — soft blurred atmospheric wash */
body.is-reverse .rv-df-wash{
  filter:blur(40px) saturate(.72) brightness(.96);
  opacity:.28;
  transform:scale(1.06) translateZ(0);
}
/* Layer 2 — halftone / pointillist body */
body.is-reverse .rv-df-dots{
  opacity:.66;
  filter:blur(.25px) saturate(.95) contrast(1.06);
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  -webkit-mask-size:4px 4px; mask-size:4px 4px;
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
body.is-reverse .rv-df-dots::before{
  content:"";
  position:absolute;inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  filter:blur(6px) saturate(.78);
  opacity:.42;
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  -webkit-mask-size:5.5px 5.5px; mask-size:5.5px 5.5px;
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
/* Layer 3 — vignette over the whole viewport: protect the left/centre content */
body.is-reverse .rv-df-vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 82%,transparent) 22%,
      color-mix(in srgb,var(--bg) 44%,transparent) 44%,
      color-mix(in srgb,var(--bg) 12%,transparent) 64%,
      transparent 82%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 50%,transparent) 0%,
      transparent 12%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 62%,transparent) 100%);
}

/* --- open hero: strip the glass CARD off the shell, restrained chrome copy --- */
body.is-reverse #reverse-view .rv-hero-shell{
  display:block!important;
  grid-template-columns:none!important;
  min-height:0!important;
  padding:clamp(16px,2.6vw,26px) 2px clamp(18px,2.6vw,26px)!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  overflow:visible!important;
}
/* kill the glass sheen / inset-shadow pseudo layers on the hero shell only */
body.is-reverse #reverse-view .rv-hero-shell::before,
body.is-reverse #reverse-view .rv-hero-shell::after{
  display:none!important;
}
body.is-reverse #reverse-view .rv-hero-copy{
  position:relative!important;
  z-index:2!important;
  min-width:0!important;
  max-width:min(560px,60%)!important;
}
body.is-reverse #reverse-view .rv-title{
  max-width:16ch!important;
  margin:0 0 10px!important;
  font-family:var(--display)!important;
  font-size:clamp(26px,3.3vw,40px)!important;
  line-height:1.04!important;
  letter-spacing:-.02em!important;
}
body.is-reverse #reverse-view .rv-sub{
  max-width:48ch!important;
  font-size:14.5px!important;
  line-height:1.55!important;
}

/* --- light theme parity --- */
[data-theme="light"] body.is-reverse .rv-df-wash{
  opacity:.2;
  filter:blur(42px) saturate(.66) brightness(1.04);
}
[data-theme="light"] body.is-reverse .rv-df-dots{opacity:.5}
[data-theme="light"] body.is-reverse .rv-df-vignette{
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 86%,transparent) 24%,
      color-mix(in srgb,var(--bg) 48%,transparent) 46%,
      color-mix(in srgb,var(--bg) 14%,transparent) 66%,
      transparent 84%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 54%,transparent) 0%,
      transparent 14%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 64%,transparent) 100%);
}

/* --- responsive: keep the giant portrait, scale + fade for small screens --- */
@media (max-width:760px){
  body.is-reverse #reverse-view .rv-hero-copy{max-width:100%!important}
  body.is-reverse .reverse-dotfield{
    --tr-size:auto min(82vh, 780px);
    --tr-pos:right -6% top 12%;
  }
  body.is-reverse .rv-df-wash{opacity:.16}
  body.is-reverse .rv-df-dots{opacity:.44}
  body.is-reverse .rv-df-vignette{
    background:
      linear-gradient(180deg,
        transparent 0%,
        transparent 30%,
        color-mix(in srgb,var(--bg) 66%,transparent) 60%,
        var(--bg) 92%),
      linear-gradient(90deg,
        var(--bg) 0%,
        color-mix(in srgb,var(--bg) 46%,transparent) 44%,
        transparent 80%);
  }
}


/* ==========================================================================
   REVERSE × ANALYZER/TRAINER PARITY v339
   Full stage language: ambient orbs + grid fade, pointillist portrait with
   mouse focus spotlight, chrome kicker with live-dot pulse, instrument card.
   reverse.js IDs and behavior are unchanged.
   ========================================================================== */

/* ---- page stage ---- */
body.is-reverse footer{display:none}
body.is-reverse .reverse-view{
  padding-top:var(--nav-h)!important;
  min-height:calc(100svh - var(--nav-h));
  background:transparent!important;
  overflow:clip;
  isolation:isolate;
  position:relative;
}
body.is-reverse #bg-candles{opacity:.05!important}
body.is-reverse .terminal-grid-bg{opacity:.07!important}

body.is-reverse .rv-page{
  position:relative;
  isolation:isolate;
  padding:clamp(18px,3.2vh,36px) 0 110px;
  min-height:calc(100svh - var(--nav-h));
  overflow:clip;
}

/* Ambient: viewport-fixed (never resizes with form content) */
body.is-reverse .rv-ambient{
  position:fixed;
  top:var(--nav-h);right:0;bottom:0;left:0;
  pointer-events:none;
  z-index:0;
  overflow:hidden;
}
body.is-reverse .rv-orb{
  position:absolute;border-radius:50%;filter:blur(60px);
  opacity:.55;will-change:transform;
}
body.is-reverse .rv-orb-a{
  width:min(52vw,520px);height:min(52vw,520px);
  top:-12%;left:-8%;
  background:radial-gradient(circle at 40% 40%,
    color-mix(in srgb,var(--accent) 28%,transparent),
    transparent 68%);
  animation:ax-drift-a 18s ease-in-out infinite alternate;
}
body.is-reverse .rv-orb-b{
  width:min(46vw,460px);height:min(46vw,460px);
  top:8%;right:-10%;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in srgb,var(--accent-2) 16%,transparent),
    transparent 70%);
  animation:ax-drift-b 22s ease-in-out infinite alternate;
}
body.is-reverse .rv-grid-fade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, transparent 0%, var(--bg) 88%),
    repeating-linear-gradient(90deg,
      color-mix(in srgb,var(--ink) 3.5%,transparent) 0 1px,
      transparent 1px 72px),
    repeating-linear-gradient(0deg,
      color-mix(in srgb,var(--ink) 2.5%,transparent) 0 1px,
      transparent 1px 72px);
  mask-image:radial-gradient(ellipse 80% 55% at 50% 0%, #000 20%, transparent 75%);
  opacity:.55;
}

/* shell + workspace */
body.is-reverse .rv-shell{
  position:relative;z-index:1;
  width:min(100% - 40px, 1380px)!important;
  max-width:1380px!important;
  margin-inline:auto!important;
  padding:0!important;
  display:flex;
  flex-direction:column;
  gap:16px;
}
body.is-reverse .rv-workspace.rv-grid,
body.is-reverse .rv-grid{
  position:relative;z-index:1;
  display:grid!important;
  grid-template-columns:minmax(360px,430px) minmax(0,1fr)!important;
  gap:clamp(16px,2vw,24px)!important;
  align-items:start;
  width:100%;
}
@media (max-width:900px){
  body.is-reverse .rv-workspace.rv-grid,
  body.is-reverse .rv-grid{
    grid-template-columns:minmax(0,1fr)!important;
  }
}

/* ---- chrome (match Strategy audit / Entry trainer) ---- */
body.is-reverse .rv-chrome{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
  gap:0!important;
  position:relative!important;
  z-index:2!important;
  overflow:visible!important;
  width:100%!important;
  max-width:min(560px,72%)!important;
  margin:0 0 clamp(14px,2.2vh,20px)!important;
  padding:4px 2px 0!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.is-reverse .rv-kicker{
  display:flex!important;
  align-items:center!important;
  flex-wrap:wrap!important;
  gap:10px!important;
  margin:0 0 12px!important;
  color:inherit!important;
  font-size:inherit!important;
  font-weight:inherit!important;
  letter-spacing:inherit!important;
}
/* kill legacy pseudo-dot on kicker */
body.is-reverse .rv-kicker::before,
body.is-reverse .rv-eyebrow::before,
body.is-reverse .rv-eyebrow::after{
  content:none!important;
  display:none!important;
}
body.is-reverse .rv-live-dot{
  width:8px!important;
  height:8px!important;
  border-radius:50%!important;
  flex:none!important;
  display:inline-block!important;
  background:var(--accent)!important;
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent)!important;
  animation:ax-pulse 2s ease-in-out infinite!important;
}
body.is-reverse .rv-eyebrow{
  font-family:var(--mono)!important;
  font-size:10.5px!important;
  font-weight:800!important;
  letter-spacing:.18em!important;
  text-transform:uppercase!important;
  color:var(--ink-3)!important;
  margin:0!important;
  display:inline!important;
}
body.is-reverse .rv-chrome h1{
  margin:0 0 8px!important;
  max-width:16ch!important;
  font-family:var(--display)!important;
  font-size:clamp(26px,3.2vw,36px)!important;
  line-height:1.05!important;
  font-weight:780!important;
  letter-spacing:-.03em!important;
  color:var(--ink)!important;
}
body.is-reverse .rv-chrome p{
  margin:0!important;
  max-width:48ch!important;
  font-size:14.5px!important;
  line-height:1.55!important;
  color:var(--ink-2)!important;
}
@media (max-width:760px){
  body.is-reverse .rv-chrome{max-width:100%!important}
}

/* ---- instrument form card ---- */
body.is-reverse .rv-instrument.rv-panel,
body.is-reverse form.rv-panel{
  position:relative!important;
  z-index:2!important;
  top:auto!important;
  width:100%;
  padding:0!important;
  gap:0!important;
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent)!important;
  border-radius:22px!important;
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--surface) 92%, transparent),
      color-mix(in srgb,var(--surface-2) 88%, transparent))!important;
  box-shadow:
    0 1px 0 rgba(255,255,255,.06) inset,
    0 24px 60px -28px rgba(0,0,0,.55)!important;
  overflow:hidden!important;
  backdrop-filter:blur(18px)!important;
  -webkit-backdrop-filter:blur(18px)!important;
  isolation:isolate;
  display:flex!important;
  flex-direction:column!important;
}
/* kill glass sheen pseudos that fight the instrument look */
body.is-reverse form.rv-panel::before,
body.is-reverse form.rv-panel::after{
  display:none!important;
}
body.is-reverse .rv-instrument-top{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:16px;
  padding:16px clamp(16px,2.2vw,24px);
  border-bottom:1px solid color-mix(in srgb,var(--line) 88%,transparent);
  background:
    linear-gradient(180deg,
      color-mix(in srgb,var(--accent) 5%, transparent),
      transparent);
}
body.is-reverse .rv-instrument-label span{
  display:block;
  font-family:var(--mono);font-size:9.5px;font-weight:850;
  letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);
}
body.is-reverse .rv-instrument-label b{
  display:block;margin-top:3px;
  font-size:14px;font-weight:780;color:var(--ink);letter-spacing:-.01em;
}
body.is-reverse .rv-instrument-body{
  display:flex;
  flex-direction:column;
  gap:16px;
  padding:16px clamp(16px,2.2vw,24px) 8px;
}
body.is-reverse .rv-dock{
  display:flex;
  flex-direction:column;
  gap:12px;
  padding:12px clamp(16px,2.2vw,24px) 18px;
  border-top:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  background:linear-gradient(180deg, transparent, color-mix(in srgb,var(--accent) 3%, transparent));
}
body.is-reverse .rv-run{
  width:100%;
  min-height:48px;
  margin:0;
  border-radius:14px;
  font-size:15px;
  font-weight:780;
  letter-spacing:-.01em;
}

/* sticky panel only on wide desktop */
@media (min-width:901px){
  body.is-reverse form.rv-panel{
    position:sticky!important;
    top:calc(var(--nav-h) + 18px)!important;
  }
}

/* results column above portrait */
body.is-reverse .rv-results{
  position:relative;
  z-index:2;
  isolation:isolate;
  min-width:0;
}

/* ---- portrait: fixed viewport, focus spotlight, locked hero size ---- */
body.is-reverse .reverse-dotfield{
  --mx:78%;
  --my:48%;
  --dot-a:5.5px;
  --dot-b:4px;
  --tr-size:auto min(100svh, 1200px);
  --tr-pos:right 40%;
  position:fixed!important;
  top:var(--nav-h)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  isolation:isolate;
  contain:paint;
  transform:translateZ(0);
  transition:opacity .35s var(--ease, ease);
}
body.is-reverse .rv-df-wash,
body.is-reverse .rv-df-dots,
body.is-reverse .rv-df-focus{
  position:absolute;
  inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  transform:translateZ(0);
  backface-visibility:hidden;
}
body.is-reverse .rv-df-wash{
  filter:blur(40px) saturate(.72) brightness(.96);
  opacity:.28;
  transform:scale(1.06) translateZ(0);
  background-size:auto min(108svh, 1280px);
}
body.is-reverse .rv-df-dots{
  opacity:.66;
  filter:blur(.25px) saturate(.95) contrast(1.06);
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  -webkit-mask-size:var(--dot-b) var(--dot-b); mask-size:var(--dot-b) var(--dot-b);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
body.is-reverse .rv-df-dots::before{
  content:"";
  position:absolute;inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  filter:blur(6px) saturate(.78);
  opacity:.42;
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  -webkit-mask-size:var(--dot-a) var(--dot-a); mask-size:var(--dot-a) var(--dot-a);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
  pointer-events:none;
}
/* Layer 3 — mouse focus spotlight */
body.is-reverse .rv-df-focus{
  opacity:0;
  filter:saturate(1.08) contrast(1.04);
  -webkit-mask-image:radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  mask-image:radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  transition:opacity .2s ease;
  will-change:opacity;
}
body.is-reverse .reverse-dotfield.is-lit .rv-df-focus{
  opacity:.92;
}
body.is-reverse .rv-df-vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 82%,transparent) 22%,
      color-mix(in srgb,var(--bg) 44%,transparent) 44%,
      color-mix(in srgb,var(--bg) 12%,transparent) 64%,
      transparent 82%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 50%,transparent) 0%,
      transparent 12%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 62%,transparent) 100%);
  pointer-events:none;
}

/* light theme */
[data-theme="light"] body.is-reverse .rv-df-wash{
  opacity:.2;
  filter:blur(42px) saturate(.66) brightness(1.04);
}
[data-theme="light"] body.is-reverse .rv-df-dots{opacity:.5}
[data-theme="light"] body.is-reverse .rv-df-vignette{
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 86%,transparent) 24%,
      color-mix(in srgb,var(--bg) 48%,transparent) 46%,
      color-mix(in srgb,var(--bg) 14%,transparent) 66%,
      transparent 84%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 54%,transparent) 0%,
      transparent 14%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 64%,transparent) 100%);
}

/* form surfaces: own stacking so portrait repaints never bleed */
body.is-reverse .rv-shell,
body.is-reverse .rv-chrome,
body.is-reverse form.rv-panel,
body.is-reverse .rv-results{
  isolation:isolate;
  position:relative;
  z-index:2;
}

/* kill old hero shells if any remnant styles leak */
body.is-reverse .rv-hero,
body.is-reverse .rv-body,
body.is-reverse .rv-hero-shell{
  display:contents;
}

/* responsive portrait scale */
@media (max-width:760px){
  body.is-reverse .reverse-dotfield{
    --tr-size:auto min(82vh, 780px);
    --tr-pos:right -6% top 12%;
  }
  body.is-reverse .rv-df-wash{opacity:.16}
  body.is-reverse .rv-df-dots{opacity:.44}
  body.is-reverse .rv-df-focus{
    -webkit-mask-image:radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
    mask-image:radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  }
  body.is-reverse .reverse-dotfield.is-lit .rv-df-focus{opacity:.88}
  body.is-reverse .rv-df-vignette{
    background:
      linear-gradient(180deg,
        transparent 0%,
        transparent 30%,
        color-mix(in srgb,var(--bg) 66%,transparent) 60%,
        var(--bg) 92%),
      linear-gradient(90deg,
        var(--bg) 0%,
        color-mix(in srgb,var(--bg) 46%,transparent) 44%,
        transparent 80%);
  }
  body.is-reverse .rv-instrument-body{padding:14px 14px 6px}
  body.is-reverse .rv-dock{padding:12px 14px 16px}
  body.is-reverse form.rv-panel{border-radius:18px!important}
}

@media (prefers-reduced-motion:reduce){
  body.is-reverse .rv-orb-a,
  body.is-reverse .rv-orb-b,
  body.is-reverse .rv-live-dot{animation:none!important}
  body.is-reverse .rv-df-focus,
  body.is-reverse .rv-df-dots{transition:none}
  body.is-reverse .reverse-dotfield.is-lit .rv-df-focus{opacity:.55}
}

/* ============================================================================
   ONE APP v343 — SPA route swap + pre-paint (part of the cohesion/perf pass)
   1) Pre-paint: an inline <body> script sets body.is-<route> BEFORE first
      paint; these rules make the right view visible while the tool mains
      still carry the server-side class="hidden" (app.js removes it later).
      Kills the "landing flashes first" FOUC on direct tool loads.
   2) SPA swaps: background layers fade instead of snapping when the route
      class changes without a reload.
   ============================================================================ */
body.is-analyzer #landing-view,
body.is-trainer #landing-view,
body.is-reverse #landing-view,
body.is-gym #landing-view{display:none!important}
body.is-analyzer #analyzer-view.hidden{display:block!important}
body.is-trainer #trainer-view.hidden{display:block!important}
body.is-reverse #reverse-view.hidden{display:block!important}
body.is-gym #gym-view.hidden{display:block!important}

#bg-candles,
.terminal-grid-bg,
.bg-aurora{transition:opacity .45s ease}

/* View Transition crossfade (SPA navigations): quick + quiet */
@media (prefers-reduced-motion: no-preference){
  ::view-transition-old(root),
  ::view-transition-new(root){animation-duration:.17s;animation-timing-function:ease}
}

/* ============================================================================
   TOOLKIT CINEMATIC COVERS v345 — character-led product scenes
   ============================================================================ */
#landing-view .path-card .path-visual.path-cover{
  position:relative;
  aspect-ratio:16/9;
  min-height:0;
  overflow:hidden;
  border-bottom:1px solid color-mix(in srgb,var(--line-2) 72%,transparent);
  background:#050708;
  isolation:isolate;
}
#landing-view .path-card .path-cover > :not(.path-cover-art):not(.path-cover-no):not(.path-cover-mode){display:none}
#landing-view .path-card .path-cover-art{
  position:absolute;
  inset:0;
  z-index:0;
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transform:scale(1.002);
  filter:saturate(.98) contrast(1.02);
  transition:transform .75s cubic-bezier(.2,.7,.2,1),filter .4s ease;
}
#landing-view .path-card .path-cover::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  background:
    linear-gradient(180deg,rgba(0,0,0,.08) 46%,rgba(0,0,0,.45) 100%),
    linear-gradient(115deg,transparent 34%,rgba(255,255,255,.12) 50%,transparent 65%);
  background-size:100% 100%,220% 100%;
  background-position:0 0,160% 0;
  transition:background-position .75s var(--ease);
}
#landing-view .path-card:hover .path-cover-art,
#landing-view .path-card:focus-within .path-cover-art{
  transform:scale(1.045);
  filter:saturate(1.1) contrast(1.04);
}
#landing-view .path-card:hover .path-cover::after,
#landing-view .path-card:focus-within .path-cover::after{background-position:0 0,-120% 0}
#landing-view .path-card .path-cover-no,
#landing-view .path-card .path-cover-mode{
  position:absolute;
  z-index:2;
  top:14px;
  font-family:var(--mono);
  font-weight:850;
  line-height:1;
  letter-spacing:.1em;
  text-transform:uppercase;
  backdrop-filter:blur(8px);
  -webkit-backdrop-filter:blur(8px);
}
#landing-view .path-card .path-cover-no{
  left:14px;
  min-width:32px;
  padding:8px 9px;
  border-radius:7px;
  text-align:center;
  font-size:11px;
  color:var(--bg);
  background:var(--accent);
  box-shadow:0 7px 20px color-mix(in srgb,var(--accent) 28%,transparent);
}
#landing-view .pc-detector .path-cover-no{background:var(--humo);box-shadow:0 7px 20px color-mix(in srgb,var(--humo) 28%,transparent)}
#landing-view .pc-reverse .path-cover-no{background:var(--accent-2);box-shadow:0 7px 20px color-mix(in srgb,var(--accent-2) 28%,transparent)}
#landing-view .pc-gym .path-cover-no{background:var(--marginal);box-shadow:0 7px 20px color-mix(in srgb,var(--marginal) 28%,transparent)}
#landing-view .path-card .path-cover-mode{
  right:14px;
  padding:7px 10px;
  border:1px solid rgba(255,255,255,.2);
  border-radius:999px;
  background:rgba(4,7,8,.72);
  color:#f3f7f5;
  font-size:9px;
}
@media (max-width:760px){
  #landing-view .path-card .path-cover-no,
  #landing-view .path-card .path-cover-mode{top:12px}
  #landing-view .path-card .path-cover-no{left:12px}
  #landing-view .path-card .path-cover-mode{right:12px}
}
@media (prefers-reduced-motion:reduce){
  #landing-view .path-card .path-cover-art,
  #landing-view .path-card .path-cover::after{transition:none}
  #landing-view .path-card:hover .path-cover-art{transform:none}
}

/* ---- ONE APP v343 · two-mode header ------------------------------------
   Landing keeps the marketing links; inside a tool the same bar becomes the
   circuit switcher (Analyzer · Reverse · Trainer · Games) and the green CTA
   yields its slot to the circuit chip. */
.nav-links .nl-app{display:none!important}
body.is-analyzer .nav-links .nav-tool,
body.is-trainer .nav-links .nav-tool,
body.is-reverse .nav-links .nav-tool,
body.is-gym .nav-links .nav-tool{display:inline-flex!important;align-items:center}
body.is-analyzer .nav-links .nl-landing,
body.is-trainer .nav-links .nl-landing,
body.is-reverse .nav-links .nl-landing,
body.is-gym .nav-links .nl-landing{display:none!important}
body.is-analyzer .nav-end .nav-primary,
body.is-trainer .nav-end .nav-primary,
body.is-reverse .nav-end .nav-primary,
body.is-gym .nav-end .nav-primary{display:none!important}

/* ---- ONE APP v343 · circuit chip + popover ---- */
.circuit-chip{
  display:inline-flex;align-items:center;gap:7px;height:34px;padding:0 12px;
  border-radius:var(--radius-pill);cursor:pointer;
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
  background:color-mix(in srgb,var(--accent) 9%,transparent);
  color:var(--ink);font:700 .74rem/1 var(--mono);letter-spacing:.04em;
  transition:border-color .2s ease,background .2s ease;
}
.circuit-chip:hover{border-color:color-mix(in srgb,var(--accent) 60%,var(--line));background:color-mix(in srgb,var(--accent) 14%,transparent)}
.circuit-chip svg{width:14px;height:14px;color:var(--accent);flex:none}
.circuit-chip b{color:var(--accent);font-weight:800}
.circuit-chip span{text-transform:uppercase;letter-spacing:.12em;font-size:.6rem;color:var(--ink-2)}
.circuit-chip.hidden{display:none!important}
@media (max-width:860px){ .circuit-chip span{display:none} .circuit-chip{padding:0 10px} }

.circuit-pop{
  position:absolute;top:calc(100% + 10px);right:clamp(12px,4vw,40px);
  width:min(342px,calc(100vw - 24px));z-index:80;padding:12px;
  border:1px solid var(--line-2);border-radius:16px;
  background:color-mix(in srgb,var(--bg) 88%,var(--surface-2));
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:var(--elev-2);
}
.circuit-pop.hidden{display:none!important}
.cp-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;padding:4px 10px 10px}
.cp-head b{font:750 .92rem var(--display);letter-spacing:-.01em;color:var(--ink)}
.cp-streak{font:700 .66rem/1 var(--mono);letter-spacing:.06em;color:var(--accent);white-space:nowrap}
.cp-row{
  display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:9px 10px;border-radius:10px;text-decoration:none;
}
.cp-row:hover{background:color-mix(in srgb,var(--accent) 8%,transparent)}
.cp-name{font:700 .8rem/1.2 var(--body,inherit);color:var(--ink)}
.cp-stat{font:600 .68rem/1.3 var(--mono);color:var(--ink-3);text-align:right;display:inline-flex;align-items:center;gap:6px;flex-wrap:wrap;justify-content:flex-end}
.cp-v{font:800 .58rem/1 var(--mono);font-style:normal;letter-spacing:.06em;padding:3px 7px;border-radius:8px}
.cp-v.REAL{color:var(--real);background:color-mix(in srgb,var(--real) 14%,transparent)}
.cp-v.MARGINAL{color:#c08a00;background:color-mix(in srgb,#c08a00 14%,transparent)}
.cp-v.HUMO{color:var(--humo);background:color-mix(in srgb,var(--humo) 14%,transparent)}
.cp-next{
  display:flex;flex-direction:column;gap:3px;margin-top:8px;padding:11px 13px;
  border-radius:12px;text-decoration:none;color:#fff;
  background:linear-gradient(180deg,var(--btn-g1,#3aa315),var(--btn-g2,#2e8a10));
  box-shadow:0 10px 22px -12px color-mix(in srgb,var(--btn-g2,#2e8a10) 70%,transparent);
}
.cp-next span{font:700 .58rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;opacity:.85}
.cp-next b{font:700 .84rem/1.35 inherit;letter-spacing:-.01em}
.cp-next:hover{filter:brightness(1.06)}

/* ---- ONE APP v343 · circuit section (landing #path, 4 tools / 2×2) ---- */
@media (min-width:881px){
  #landing-view .path-grid{grid-template-columns:repeat(2,1fr)}
}
#landing-view .path-icon svg{display:block;width:100%;height:100%;padding:4px;box-sizing:border-box;color:var(--accent)}
.pv-tag.real{color:var(--real);border:1px solid color-mix(in srgb,var(--real) 42%,transparent);background:color-mix(in srgb,var(--real) 12%,transparent)}

/* ---- ONE APP v343 · cross-tool bridges ---- */
body.is-analyzer .ax-rv-hint{margin:10px 2px 0;font-size:.78rem;line-height:1.55;color:var(--ink-3)}
body.is-analyzer .ax-rv-hint a{color:var(--accent);text-decoration:none;font-weight:700}
body.is-analyzer .ax-rv-hint a:hover{text-decoration:underline}
body.is-reverse .rv-circuit{
  margin-top:18px;padding:16px 18px;display:flex;flex-direction:column;gap:10px;
  border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line-2));border-radius:14px;
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
body.is-reverse .rv-circuit-k{font:700 .6rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--accent)}
body.is-reverse .rv-circuit p{margin:0;font-size:.9rem;color:var(--ink-2);line-height:1.55}
body.is-reverse .rv-circuit-links{display:flex;gap:10px;flex-wrap:wrap}

/* ==========================================================================
   GAMES (ex-Gym) × ANALYZER/TRAINER/REVERSE PARITY v346
   Ambient orbs + grid fade, pointillist hero (travocato-games-hero.webp) with
   mouse spotlight, chrome kicker + live-dot. gym.js IDs/behavior unchanged.
   ========================================================================== */

body.is-gym footer{display:none}
body.is-academy footer{display:none}
body.is-mine footer{display:none}
body.is-gym #bg-candles{opacity:.05!important}
body.is-gym .terminal-grid-bg{opacity:.07!important}

body.is-gym .gy-page{
  position:relative;
  isolation:isolate;
  padding:clamp(18px,3.2vh,36px) 0 110px;
  min-height:calc(100svh - var(--nav-h));
  overflow:clip;
}

/* Ambient: viewport-fixed (never resizes with content) */
body.is-gym .gy-ambient{
  position:fixed;
  top:var(--nav-h);right:0;bottom:0;left:0;
  pointer-events:none;
  z-index:0;
  overflow:hidden;
}
body.is-gym .gy-orb{
  position:absolute;border-radius:50%;filter:blur(60px);
  opacity:.55;will-change:transform;
}
body.is-gym .gy-orb-a{
  width:min(52vw,520px);height:min(52vw,520px);
  top:-12%;left:-8%;
  background:radial-gradient(circle at 40% 40%,
    color-mix(in srgb,var(--accent) 28%,transparent),
    transparent 68%);
  animation:ax-drift-a 18s ease-in-out infinite alternate;
}
body.is-gym .gy-orb-b{
  width:min(46vw,460px);height:min(46vw,460px);
  top:8%;right:-10%;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in srgb,var(--accent-2) 16%,transparent),
    transparent 70%);
  animation:ax-drift-b 22s ease-in-out infinite alternate;
}
body.is-gym .gy-grid-fade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, transparent 0%, var(--bg) 88%),
    repeating-linear-gradient(90deg,
      color-mix(in srgb,var(--ink) 3.5%,transparent) 0 1px,
      transparent 1px 72px),
    repeating-linear-gradient(0deg,
      color-mix(in srgb,var(--ink) 2.5%,transparent) 0 1px,
      transparent 1px 72px);
  mask-image:radial-gradient(ellipse 80% 55% at 50% 0%, #000 20%, transparent 75%);
  opacity:.55;
}

/* ---- pointillist portrait (fixed viewport + mouse focus) ---- */
body.is-gym .gym-dotfield{
  --mx:78%;
  --my:48%;
  --dot-a:5.5px;
  --dot-b:4px;
  --tr-size:auto min(116vh, 1240px);
  --tr-pos:right -2% top 42%;
  position:fixed!important;
  top:var(--nav-h)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  isolation:isolate;
  contain:paint;
  transform:translateZ(0);
  transition:opacity .35s var(--ease, ease);
}
body.is-gym .gy-df-wash,
body.is-gym .gy-df-dots,
body.is-gym .gy-df-focus{
  position:absolute;
  inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  transform:translateZ(0);
  backface-visibility:hidden;
}
body.is-gym .gy-df-wash{
  filter:blur(40px) saturate(.72) brightness(.96);
  opacity:.28;
  transform:scale(1.06) translateZ(0);
}
body.is-gym .gy-df-dots{
  opacity:.66;
  filter:blur(.25px) saturate(.95) contrast(1.06);
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  -webkit-mask-size:var(--dot-b) var(--dot-b); mask-size:var(--dot-b) var(--dot-b);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
body.is-gym .gy-df-dots::before{
  content:"";
  position:absolute;inset:0;
  background-image:var(--tr-hero);
  background-repeat:no-repeat;
  background-position:var(--tr-pos);
  background-size:var(--tr-size);
  filter:blur(6px) saturate(.78);
  opacity:.42;
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  -webkit-mask-size:var(--dot-a) var(--dot-a); mask-size:var(--dot-a) var(--dot-a);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
  pointer-events:none;
}
body.is-gym .gy-df-focus{
  opacity:0;
  filter:saturate(1.08) contrast(1.04);
  -webkit-mask-image:radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  mask-image:radial-gradient(
    circle 180px at var(--mx) var(--my),
    #000 0%,
    #000 30%,
    rgba(0,0,0,.5) 52%,
    transparent 74%
  );
  transition:opacity .2s ease;
  will-change:opacity;
}
body.is-gym .gym-dotfield.is-lit .gy-df-focus{opacity:.92}
body.is-gym .gy-df-vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 82%,transparent) 22%,
      color-mix(in srgb,var(--bg) 44%,transparent) 44%,
      color-mix(in srgb,var(--bg) 12%,transparent) 64%,
      transparent 82%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 50%,transparent) 0%,
      transparent 12%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 62%,transparent) 100%);
  pointer-events:none;
}

/* Shell content above ambient/portrait */
body.is-gym .gy-shell,
body.is-gym .gym-wrap{
  position:relative;
  z-index:1;
  width:min(100% - 40px, 1180px)!important;
  max-width:1180px!important;
  margin-inline:auto!important;
  padding:0!important;
  display:flex!important;
  flex-direction:column!important;
  gap:28px!important;
}

/* Head row: chrome left + agility profile right */
body.is-gym .gy-head-row{
  display:grid;
  grid-template-columns:1.35fr .85fr;
  gap:28px;
  align-items:start;
  position:relative;
  z-index:2;
}
body.is-gym .gy-chrome{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0;
  max-width:min(560px, 100%);
  margin:0;
  padding:4px 2px 0;
  position:relative;
  z-index:2;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.is-gym .gy-kicker{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 12px;
}
body.is-gym .gy-live-dot{
  width:8px;height:8px;border-radius:50%;flex:none;
  display:inline-block;
  background:var(--accent);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);
  animation:ax-pulse 2s ease-in-out infinite;
}
body.is-gym .gy-eyebrow{
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-3);
  margin:0;
}
body.is-gym .gy-chrome h1{
  margin:0 0 8px;
  max-width:18ch;
  font-family:var(--display);
  font-size:clamp(26px,3.2vw,36px);
  line-height:1.05;
  font-weight:780;
  letter-spacing:-.03em;
  color:var(--ink);
}
body.is-gym .gy-chrome .gym-lead,
body.is-gym .gy-chrome p{
  margin:0;
  max-width:46ch;
  font-size:14.5px;
  line-height:1.55;
  color:var(--ink-2);
}

/* Profile glass sits above portrait */
body.is-gym .gym-profile{
  position:relative;
  z-index:2;
  isolation:isolate;
  contain:layout paint;
  background:color-mix(in srgb,var(--surface) 97%,var(--bg))!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}

/* Hub + stage + note above portrait */
body.is-gym .gym-hub,
body.is-gym .gym-stage,
body.is-gym .gym-note{
  position:relative;
  z-index:2;
  isolation:isolate;
}

/* Cards: slightly stronger glass so art text stays readable over hero */
body.is-gym .gym-card{
  contain:layout paint;
  background:color-mix(in srgb,var(--surface) 98%,var(--bg))!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
  box-shadow:0 10px 28px rgba(0,0,0,.16)!important;
}
body.is-gym .gym-card:hover{box-shadow:0 16px 34px rgba(0,0,0,.22)!important}
body.is-gym .gym-card h3{color:var(--ink)}
body.is-gym .gym-card p{color:var(--ink-2)}
body.is-gym .gc-skill{color:var(--ink-3)}

/* Cover badges always high-contrast (dark art underlay) */
body.is-gym .gc-cover-mode{
  color:#f3f7f5!important;
  background:rgba(4,7,8,.82)!important;
  border-color:rgba(255,255,255,.24)!important;
}
body.is-gym .gc-cover-no,
body.is-gym .gc-cover-mode{backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
body.is-gym .gc-cover-no{
  color:#050607!important;
}

/* Stage during play: dim portrait so arena is the focus */
body.is-gym:has(#gym-stage:not(.hidden)) .gym-dotfield{
  opacity:.22;
}
body.is-gym:has(#gym-stage:not(.hidden)) .gy-orb{
  opacity:.28;
}

/* light theme */
[data-theme="light"] body.is-gym .gy-df-wash{
  opacity:.2;
  filter:blur(42px) saturate(.66) brightness(1.04);
}
[data-theme="light"] body.is-gym .gy-df-dots{opacity:.5}
[data-theme="light"] body.is-gym .gy-df-vignette{
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 86%,transparent) 24%,
      color-mix(in srgb,var(--bg) 48%,transparent) 46%,
      color-mix(in srgb,var(--bg) 14%,transparent) 66%,
      transparent 84%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 54%,transparent) 0%,
      transparent 14%,
      transparent 74%,
      color-mix(in srgb,var(--bg) 64%,transparent) 100%);
}
[data-theme="light"] body.is-gym .gym-card{
  background:
    linear-gradient(165deg,rgba(255,255,255,.94),rgba(255,255,255,.82)),
    #fff!important;
}

/* responsive */
@media (max-width:900px){
  body.is-gym .gy-head-row{grid-template-columns:1fr}
  body.is-gym .gym-hub{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
  body.is-gym .gy-chrome{max-width:100%}
  body.is-gym .gym-dotfield{
    --tr-size:auto min(82vh, 780px);
    --tr-pos:right -10% top 14%;
  }
  body.is-gym .gy-df-wash{opacity:.16}
  body.is-gym .gy-df-dots{opacity:.44}
  body.is-gym .gy-df-focus{
    -webkit-mask-image:radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
    mask-image:radial-gradient(circle 120px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  }
  body.is-gym .gym-dotfield.is-lit .gy-df-focus{opacity:.88}
  body.is-gym .gy-df-vignette{
    background:
      linear-gradient(180deg,
        transparent 0%,
        transparent 30%,
        color-mix(in srgb,var(--bg) 66%,transparent) 60%,
        var(--bg) 92%),
      linear-gradient(90deg,
        var(--bg) 0%,
        color-mix(in srgb,var(--bg) 46%,transparent) 44%,
        transparent 80%);
  }
  body.is-gym .gym-hub{grid-template-columns:1fr}
}
@media (prefers-reduced-motion:reduce){
  body.is-gym .gy-orb-a,
  body.is-gym .gy-orb-b,
  body.is-gym .gy-live-dot{animation:none!important}
  body.is-gym .gy-df-focus,
  body.is-gym .gy-df-dots{transition:none}
  body.is-gym .gym-dotfield.is-lit .gy-df-focus{opacity:.55}
}


/* ==========================================================================
   TOOL CONTAINER PARITY v347 — one shell geometry across all four tools
   Analyzer / Reverse / Trainer / Games already share the giant pointillist
   hero, but their content shells still differed in width (analyzer 1040→1120,
   games 1180, trainer & reverse 1380). Tabbing between tools made the whole
   content block jump width + left-edge. This locks all four to ONE canonical
   width + gutter (CSS vars) so their outer edges, chrome headers and
   instruments line up pixel-for-pixel. Desktop/tablet only — the tuned
   per-tool mobile rules (<=760px, already near full-width) are left alone.
   ========================================================================== */
:root{
  --tool-w: 1200px;   /* canonical content width shared by every tool */
  --tool-gut: 40px;   /* canonical side gutter (20px each side) */
}

@media (min-width:761px){
  body.is-analyzer .ax-shell,
  body.is-trainer  .tr-shell,
  body.is-reverse  .rv-shell,
  body.is-gym      .gy-shell,
  body.is-mine     .mv-shell{
    width:min(100% - var(--tool-gut), var(--tool-w))!important;
    max-width:var(--tool-w)!important;
    margin-inline:auto!important;
  }
  /* analyzer must not resize between idle / running / result */
  body.is-analyzer.analyzer-running .ax-shell,
  body.is-analyzer.analyzer-result  .ax-shell{
    width:min(100% - var(--tool-gut), var(--tool-w))!important;
  }
  /* analyzer instrument fills the shell like the other three tools, so the
     card edges match the chrome header + the other tools (was 920, centered) */
  body.is-analyzer .ax-workspace{
    max-width:100%!important;
  }
}


/* ==========================================================================
   TOOL HEADER PARITY v348 — same header Y + kicker across the 4 tools
   "El analyzer no está a la misma altura que los demás": #hdr is position:sticky
   so it already reserves --nav-h of flow — content clears the nav automatically.
   But the trainer / reverse / games views ALSO set padding-top:var(--nav-h),
   a redundant 68px that pushed their chrome headers ~68px LOWER than the
   analyzer (which correctly never doubled it). Kill the double gap, then pin
   every page's top padding to one value so all four chrome headers (kicker +
   h1 + sub) sit at the exact same Y. Kicker itself (mono "terminal" eyebrow +
   pulsing dot) was already identical in all four — no change needed there.
   ========================================================================== */
body.is-trainer .trainer-view,
body.is-reverse .reverse-view,
body.is-gym     .gym-view,
body.is-academy .academy-view,
body.is-mine    .mine-view{
  padding-top:0!important;              /* sticky #hdr already reserves --nav-h */
}
/* one shared page top-padding → chrome headers land at the same Y across tools */
body.is-analyzer .ax-page,
body.is-trainer  .tr-page,
body.is-reverse  .rv-page,
body.is-gym      .gy-page,
body.is-academy  .aca-page,
body.is-mine     .mv-page{
  padding-top:clamp(14px,2.6vh,28px)!important;
}


/* ==========================================================================
   HERO EDGE-AUDIT CINEMATIC v349
   A responsive four-act product story: claim → rules → stress test → verdict.
   Canvas handles market motion; these crisp HUD layers keep the story readable.
   ========================================================================== */
#landing-view .tvhero-stage{
  --audit-tone:var(--accent);
  perspective:1200px;
}
#landing-view .tvhero-stage::before{
  content:"";
  position:absolute;
  inset:0;
  z-index:1;
  pointer-events:none;
  opacity:.18;
  background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");
  mix-blend-mode:soft-light;
  -webkit-mask-image:linear-gradient(90deg,transparent 33%,#000 58%,#000);
  mask-image:linear-gradient(90deg,transparent 33%,#000 58%,#000);
}
#landing-view .tvhero-grid{
  opacity:.24;
  background-size:48px 48px;
  transform:perspective(900px) rotateX(3deg) scale(1.04);
  transform-origin:70% 50%;
  -webkit-mask-image:radial-gradient(80% 78% at 76% 48%,#000 10%,transparent 76%);
  mask-image:radial-gradient(80% 78% at 76% 48%,#000 10%,transparent 76%);
}
#landing-view .tvhero-canvas{z-index:2}
#landing-view .tvhero-overlay{z-index:4;overflow:hidden}

/* audit chamber */
#landing-view .tvh-machine{
  position:absolute;
  left:51.5%;
  top:13.5%;
  width:min(45.5vw,690px);
  height:70%;
  opacity:0;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--line-2) 65%,transparent);
  border-radius:24px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.045),transparent 32%),
    linear-gradient(180deg,color-mix(in srgb,var(--surface) 36%,transparent),color-mix(in srgb,var(--bg) 12%,transparent));
  box-shadow:
    inset 0 1px 0 rgba(255,255,255,.06),
    inset 0 -36px 80px color-mix(in srgb,var(--bg) 35%,transparent),
    0 34px 90px -58px color-mix(in srgb,var(--audit-tone) 38%,transparent);
  backdrop-filter:blur(3px);
  -webkit-backdrop-filter:blur(3px);
  transform:rotateY(-2deg) rotateX(.5deg);
  transform-origin:50% 50%;
  will-change:opacity;
}
#landing-view .tvh-machine::before{
  content:"";
  position:absolute;
  left:0;right:0;top:54px;height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--line-2) 80%,transparent),transparent);
}
#landing-view .tvh-machine::after{
  content:"";
  position:absolute;
  inset:0;
  opacity:.13;
  background:repeating-linear-gradient(180deg,transparent 0 3px,rgba(255,255,255,.06) 4px);
  pointer-events:none;
}
#landing-view .tvh-machine-glow{
  position:absolute;
  width:54%;aspect-ratio:1;
  right:-11%;top:12%;
  border-radius:50%;
  background:radial-gradient(circle,color-mix(in srgb,var(--audit-tone) 13%,transparent),transparent 68%);
  filter:blur(9px);
  transition:background .35s ease;
}
#landing-view .tvh-machine-top{
  position:absolute;
  top:0;left:0;right:0;
  height:54px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  padding:0 20px;
  color:var(--ink-3);
  font:750 9px/1 var(--mono);
  letter-spacing:.16em;
}
#landing-view .tvh-machine-live{
  display:flex;
  align-items:center;
  gap:7px;
}
#landing-view .tvh-machine-live i{
  width:5px;height:5px;border-radius:50%;
  background:var(--audit-tone);
  box-shadow:0 0 12px var(--audit-tone);
}
#landing-view .tvh-machine-live b{font:inherit;color:color-mix(in srgb,var(--audit-tone) 82%,var(--ink))}
#landing-view .tvh-machine-corner{
  position:absolute;
  width:18px;height:18px;
  z-index:3;
  opacity:.72;
  border-color:var(--audit-tone);
  transition:border-color .35s ease;
}
#landing-view .tvh-machine-corner-a{left:8px;top:8px;border-left:1px solid;border-top:1px solid;border-radius:6px 0 0}
#landing-view .tvh-machine-corner-b{right:8px;top:8px;border-right:1px solid;border-top:1px solid;border-radius:0 6px 0 0}
#landing-view .tvh-machine-corner-c{left:8px;bottom:8px;border-left:1px solid;border-bottom:1px solid;border-radius:0 0 0 6px}
#landing-view .tvh-machine-corner-d{right:8px;bottom:8px;border-right:1px solid;border-bottom:1px solid;border-radius:0 0 6px}
#landing-view .tvh-sweep{
  --scan-p:0;
  position:absolute;
  z-index:2;
  left:calc(7% + var(--scan-p) * 86%);
  top:20%;
  width:1px;
  height:58%;
  opacity:0;
  background:var(--accent);
  box-shadow:0 0 12px var(--accent),-20px 0 38px color-mix(in srgb,var(--accent) 25%,transparent);
}
#landing-view .tvh-axis-label{
  position:absolute;
  right:18px;
  padding:4px 7px;
  border-radius:6px;
  color:var(--ink-3);
  background:color-mix(in srgb,var(--bg) 62%,transparent);
  font:750 8px/1 var(--mono);
  letter-spacing:.12em;
}
#landing-view .tvh-axis-gross{top:25%}
#landing-view .tvh-axis-net{top:67%;color:var(--audit-tone)}

/* incoming strategy card */
#landing-view .tvh-source{
  position:absolute;
  z-index:8;
  left:48.5%;
  top:23%;
  width:174px;
  padding:12px;
  opacity:0;
  border:1px solid color-mix(in srgb,var(--line-2) 85%,transparent);
  border-radius:14px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.08),transparent 45%),
    color-mix(in srgb,var(--surface) 88%,transparent);
  box-shadow:0 18px 48px -24px rgba(0,0,0,.7),inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(12px) saturate(125%);
  -webkit-backdrop-filter:blur(12px) saturate(125%);
  transform-origin:100% 50%;
  will-change:transform,opacity,filter;
}
#landing-view .tvh-source-head{
  display:flex;
  align-items:center;
  gap:7px;
  color:var(--ink-2);
  font:750 7.5px/1 var(--mono);
  letter-spacing:.09em;
}
#landing-view .tvh-source-head i{
  width:5px;height:5px;margin-left:auto;border-radius:50%;
  background:var(--accent);
  box-shadow:0 0 10px var(--accent);
}
#landing-view .tvh-source-play{
  display:grid;place-items:center;
  width:22px;height:22px;
  padding-left:2px;
  border-radius:7px;
  background:color-mix(in srgb,var(--accent) 16%,transparent);
  color:var(--accent);
  font-size:7px;
}
#landing-view .tvh-source-chart{
  height:48px;
  display:flex;
  align-items:flex-end;
  gap:5px;
  margin:12px 0 10px;
  padding:8px 9px 0;
  border-radius:8px;
  border:1px solid color-mix(in srgb,var(--line) 80%,transparent);
  background:color-mix(in srgb,var(--bg) 46%,transparent);
}
#landing-view .tvh-source-chart span{
  flex:1;
  height:var(--bar,40%);
  border-radius:2px 2px 0 0;
  background:linear-gradient(180deg,var(--accent),color-mix(in srgb,var(--accent) 24%,transparent));
}
#landing-view .tvh-source-chart span:nth-child(1){--bar:28%}
#landing-view .tvh-source-chart span:nth-child(2){--bar:45%}
#landing-view .tvh-source-chart span:nth-child(3){--bar:38%}
#landing-view .tvh-source-chart span:nth-child(4){--bar:64%}
#landing-view .tvh-source-chart span:nth-child(5){--bar:73%}
#landing-view .tvh-source-chart span:nth-child(6){--bar:92%}
#landing-view .tvh-source-meta{display:flex;align-items:baseline;gap:7px}
#landing-view .tvh-source-meta strong{color:var(--accent);font:800 20px/1 var(--mono)}
#landing-view .tvh-source-meta span{color:var(--ink-3);font:650 7.5px/1.2 var(--mono);letter-spacing:.03em}

#landing-view .tvh-packet{
  --packet-p:0;
  position:absolute;
  z-index:7;
  left:calc(55% + var(--packet-p) * 10%);
  top:calc(42% - var(--packet-p) * 8%);
  display:flex;
  gap:3px;
  opacity:0;
}
#landing-view .tvh-packet i{
  width:4px;height:4px;border-radius:1px;
  background:var(--accent);
  box-shadow:0 0 9px var(--accent);
}

/* progress rail */
#landing-view .tvh-phase-rail{
  position:absolute;
  z-index:7;
  left:55.2%;
  top:17.2%;
  width:min(37vw,560px);
  display:grid;
  grid-template-columns:repeat(4,1fr);
  gap:4px;
}
#landing-view .tvh-phase{
  position:relative;
  display:flex;
  align-items:center;
  gap:6px;
  min-width:0;
  padding:7px 8px;
  border-radius:8px;
  color:color-mix(in srgb,var(--ink-3) 74%,transparent);
  font:720 7.5px/1 var(--mono);
  letter-spacing:.08em;
  transition:color .25s ease,background .25s ease,transform .25s ease;
}
#landing-view .tvh-phase::after{
  content:"";
  position:absolute;
  left:8px;right:8px;bottom:0;
  height:1px;
  background:color-mix(in srgb,var(--line-2) 70%,transparent);
}
#landing-view .tvh-phase i{font-style:normal;font-size:6.5px;opacity:.72}
#landing-view .tvh-phase.is-active{
  color:var(--audit-tone);
  background:color-mix(in srgb,var(--audit-tone) 8%,transparent);
  transform:translateY(-1px);
}
#landing-view .tvh-phase.is-active::after{height:2px;background:var(--audit-tone);box-shadow:0 0 9px var(--audit-tone)}
#landing-view .tvh-phase.is-done{color:color-mix(in srgb,var(--ink-2) 78%,transparent)}
#landing-view .tvh-phase.is-done i{color:var(--accent)}

/* pressure-test gates */
#landing-view .tvh-gates{
  position:absolute;
  z-index:7;
  left:56%;
  top:70.5%;
  width:min(35.5vw,535px);
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:7px;
}
#landing-view .tvh-gate{
  display:grid;
  grid-template-columns:auto 1fr auto;
  align-items:center;
  gap:7px;
  min-width:0;
  padding:9px 10px;
  border:1px solid color-mix(in srgb,var(--line-2) 58%,transparent);
  border-radius:9px;
  background:color-mix(in srgb,var(--surface) 46%,transparent);
  color:var(--ink-3);
  font:700 7px/1 var(--mono);
  letter-spacing:.065em;
  transition:border-color .22s ease,background .22s ease,color .22s ease,transform .22s ease;
}
#landing-view .tvh-gate i{
  width:5px;height:5px;border-radius:50%;
  background:var(--line-2);
  box-shadow:0 0 0 3px color-mix(in srgb,var(--line-2) 12%,transparent);
}
#landing-view .tvh-gate span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
#landing-view .tvh-gate b{font:800 12px/1 var(--mono);color:var(--ink-3)}
#landing-view .tvh-gate.is-active{
  color:var(--ink);
  border-color:color-mix(in srgb,var(--accent) 52%,var(--line-2));
  background:color-mix(in srgb,var(--accent) 8%,transparent);
  transform:translateY(-2px);
}
#landing-view .tvh-gate.is-active i{background:var(--accent);box-shadow:0 0 10px var(--accent)}
#landing-view .tvh-gate.is-tested:not(.is-failed) i{background:var(--accent)}
#landing-view .tvh-gate.is-tested:not(.is-failed) b{color:var(--accent)}
#landing-view .tvh-gate.is-failed{
  border-color:color-mix(in srgb,var(--humo) 52%,var(--line-2));
  background:color-mix(in srgb,var(--humo) 7%,transparent);
  color:color-mix(in srgb,var(--humo) 80%,var(--ink));
}
#landing-view .tvh-gate.is-failed i{background:var(--humo);box-shadow:0 0 10px var(--humo)}
#landing-view .tvh-gate.is-failed b{color:var(--humo)}

#landing-view .tvh-readout{
  position:absolute;
  z-index:8;
  left:55.2%;
  top:62.5%;
  display:flex;
  align-items:baseline;
  gap:9px;
  opacity:0;
  color:var(--ink-3);
  font:700 7.5px/1 var(--mono);
  letter-spacing:.12em;
  will-change:transform,opacity;
}
#landing-view .tvh-readout strong{font:850 clamp(17px,1.6vw,24px)/1 var(--mono);letter-spacing:-.045em}

/* mascot signs the result */
#landing-view .tvh-mascot{
  z-index:11;
  width:clamp(112px,10vw,154px)!important;
  opacity:0;
  user-select:none;
  pointer-events:none;
  transform-origin:50% 82%;
  will-change:transform,left,top,opacity;
  filter:drop-shadow(0 14px 18px rgba(0,0,0,.42)) drop-shadow(0 0 16px color-mix(in srgb,var(--audit-tone) 24%,transparent));
}

#landing-view .tvh-verdict{
  z-index:10;
  left:55.2%!important;
  top:32%!important;
  width:min(29vw,430px);
  align-items:flex-start;
  gap:9px;
  padding:17px 18px 16px;
  text-align:left;
  border:1px solid color-mix(in srgb,var(--audit-tone) 44%,var(--line-2));
  border-radius:16px;
  background:
    linear-gradient(135deg,color-mix(in srgb,var(--audit-tone) 9%,transparent),transparent 46%),
    color-mix(in srgb,var(--bg) 87%,transparent);
  box-shadow:0 22px 55px -30px color-mix(in srgb,var(--audit-tone) 70%,transparent),inset 0 1px 0 rgba(255,255,255,.07);
  backdrop-filter:blur(14px) saturate(125%);
  -webkit-backdrop-filter:blur(14px) saturate(125%);
  transform:none;
  will-change:transform,opacity;
}
#landing-view .tvh-verdict-kicker{
  display:flex;
  align-items:center;
  gap:7px;
  color:color-mix(in srgb,var(--audit-tone) 82%,var(--ink));
  font:750 7.5px/1 var(--mono);
  letter-spacing:.16em;
}
#landing-view .tvh-verdict-kicker i{width:5px;height:5px;border-radius:50%;background:var(--audit-tone);box-shadow:0 0 9px var(--audit-tone)}
#landing-view .tvh-word-box{transform:none!important;opacity:1!important}
#landing-view .tvh-word{
  padding:0;
  border:0!important;
  border-radius:0;
  font:850 clamp(38px,4.8vw,68px)/.9 var(--display);
  letter-spacing:-.04em;
  text-shadow:0 0 28px color-mix(in srgb,var(--audit-tone) 25%,transparent);
}
#landing-view .tvh-sub{
  max-width:31ch;
  color:var(--ink-2);
  font:620 11px/1.45 var(--mono);
  letter-spacing:0;
}
#landing-view .tvh-proof{display:flex;gap:6px;margin-top:3px}
#landing-view .tvh-proof span{
  padding:5px 7px;
  border:1px solid color-mix(in srgb,var(--audit-tone) 28%,var(--line-2));
  border-radius:6px;
  color:color-mix(in srgb,var(--audit-tone) 74%,var(--ink-2));
  background:color-mix(in srgb,var(--audit-tone) 6%,transparent);
  font:750 6.5px/1 var(--mono);
  letter-spacing:.1em;
}

#landing-view .tvh-ambient{
  position:absolute;
  inset:0;
  z-index:1;
  opacity:.35;
  pointer-events:none;
  transition:opacity .3s ease;
}
#landing-view .tvh-ambient i{
  position:absolute;
  border:1px solid color-mix(in srgb,var(--audit-tone) 26%,transparent);
  border-radius:50%;
  animation:tvh-orbit 9s linear infinite;
}
#landing-view .tvh-ambient i:nth-child(1){width:330px;height:330px;right:5%;top:12%;animation-duration:13s}
#landing-view .tvh-ambient i:nth-child(2){width:210px;height:210px;right:15%;top:29%;animation-direction:reverse}
#landing-view .tvh-ambient i:nth-child(3){width:9px;height:9px;right:24%;top:19%;background:var(--audit-tone);box-shadow:0 0 18px var(--audit-tone);animation-duration:6s}
@keyframes tvh-orbit{to{transform:rotate(360deg)}}

@media (max-width:1100px) and (min-width:821px){
  #landing-view .tvh-machine{left:48%;width:51%;}
  #landing-view .tvh-source{left:46%;transform-origin:70% 50%}
  #landing-view .tvh-phase-rail{left:52%;width:43.5%}
  #landing-view .tvh-gates{left:52%;width:43.5%}
  #landing-view .tvh-readout{left:52%}
  #landing-view .tvh-verdict{left:52%!important;width:34vw}
}

/* Mobile becomes a purpose-built instrument panel below the copy. */
@media (max-width:820px){
  #landing-view .tvhero-stage::before{
    opacity:.15;
    -webkit-mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);
    mask-image:linear-gradient(180deg,transparent,#000 18%,#000 82%,transparent);
  }
  #landing-view .tvhero-grid{
    background-size:34px 34px;
    transform:none;
    -webkit-mask-image:radial-gradient(95% 100% at 50% 48%,#000,transparent 82%);
    mask-image:radial-gradient(95% 100% at 50% 48%,#000,transparent 82%);
  }
  #landing-view .tvh-machine{
    left:3%;
    top:3%;
    width:94%;
    height:91%;
    border-radius:18px;
    transform:none;
  }
  #landing-view .tvh-machine-top{height:42px;padding:0 13px;font-size:7px}
  #landing-view .tvh-machine::before{top:42px}
  #landing-view .tvh-machine-glow{width:64%;right:-17%;top:17%}
  #landing-view .tvh-axis-label{right:11px;font-size:6.5px}
  #landing-view .tvh-axis-gross{top:28%}
  #landing-view .tvh-axis-net{top:66%}
  #landing-view .tvh-source{
    left:7%;
    top:16%;
    width:142px;
    padding:9px;
    border-radius:11px;
    transform-origin:50% 50%;
  }
  #landing-view .tvh-source-head{font-size:6.5px}
  #landing-view .tvh-source-play{width:18px;height:18px}
  #landing-view .tvh-source-chart{height:35px;margin:8px 0 7px;padding:6px 7px 0;gap:4px}
  #landing-view .tvh-source-meta strong{font-size:15px}
  #landing-view .tvh-source-meta span{font-size:6.5px}
  #landing-view .tvh-packet{left:calc(31% + var(--packet-p) * 22%);top:calc(35% + var(--packet-p) * 3%)}
  #landing-view .tvh-phase-rail{
    left:7%;
    top:6.2%;
    width:86%;
    gap:1px;
  }
  #landing-view .tvh-phase{justify-content:center;gap:4px;padding:5px 2px;font-size:6.2px;letter-spacing:.04em}
  #landing-view .tvh-phase i{font-size:5.5px}
  #landing-view .tvh-phase::after{left:4px;right:4px}
  #landing-view .tvh-gates{
    left:7%;
    top:auto;
    bottom:7%;
    width:86%;
    gap:4px;
  }
  #landing-view .tvh-gate{gap:5px;padding:7px 6px;font-size:5.8px;letter-spacing:.02em}
  #landing-view .tvh-gate i{width:4px;height:4px}
  #landing-view .tvh-gate b{font-size:10px}
  #landing-view .tvh-readout{left:9%;top:65%;font-size:6.5px}
  #landing-view .tvh-readout strong{font-size:16px}
  #landing-view .tvh-mascot{width:clamp(88px,25vw,118px)!important}
  #landing-view .tvh-verdict{
    left:8%!important;
    top:26%!important;
    width:min(69vw,330px);
    max-width:none;
    gap:7px;
    padding:13px 14px 12px;
    border-radius:13px;
    text-align:left;
    align-items:flex-start;
  }
  #landing-view .tvh-word{font-size:clamp(34px,11vw,52px)}
  #landing-view .tvh-sub{font-size:9px;max-width:28ch}
  #landing-view .tvh-proof span{padding:4px 6px;font-size:5.5px}
  #landing-view .tvh-ambient i:nth-child(1){width:230px;height:230px;right:-18%;top:10%}
  #landing-view .tvh-ambient i:nth-child(2){width:150px;height:150px;right:4%;top:30%}
  #landing-view .tvh-ambient i:nth-child(3){right:19%;top:16%}
}

@media (max-width:560px){
  #landing-view .tvhero-stage{height:clamp(310px,82vw,370px)}
  #landing-view .tvh-machine-id{max-width:56%;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  #landing-view .tvh-phase span{display:none}
  #landing-view .tvh-phase i{font-size:6.5px}
  #landing-view .tvh-gate{grid-template-columns:auto 1fr auto}
  #landing-view .tvh-gate span{font-size:5.3px}
  #landing-view .tvh-verdict{width:min(68vw,280px)}
}

@media (prefers-reduced-motion:reduce){
  #landing-view .tvh-ambient i{animation:none!important}
  #landing-view .tvh-phase,
  #landing-view .tvh-gate{transition:none!important}
}


/* ==========================================================================
   HERO EDGE-AUDIT v350 — aligned, quieter, source-led
   The instrument now shares the copy's top line. Decorative market candles,
   orbit rings, duplicate labels and proof badges are removed from the story.
   ========================================================================== */
#landing-view .tvhero-stage::before{opacity:.07}
#landing-view .tvhero-grid{opacity:.13;background-size:56px 56px}
#landing-view .tvh-ambient,
#landing-view .tvh-axis-label,
#landing-view .tvh-machine::after{display:none!important}

#landing-view .tvh-machine{
  top:clamp(24px,4.5vh,56px);
  height:72%;
  border-radius:20px;
  background:
    linear-gradient(145deg,rgba(255,255,255,.028),transparent 38%),
    color-mix(in srgb,var(--surface) 24%,transparent);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.045),0 30px 80px -66px var(--audit-tone);
}
#landing-view .tvh-machine-glow{opacity:.48;filter:blur(18px)}
#landing-view .tvh-machine-top{height:48px;padding:0 18px}
#landing-view .tvh-machine::before{top:48px;opacity:.65}

#landing-view .tvh-phase-rail{
  left:55.2%;
  top:calc(clamp(24px,4.5vh,56px) + 53px);
  width:min(35vw,530px);
  grid-template-columns:repeat(3,1fr);
  gap:8px;
}
#landing-view .tvh-phase{
  justify-content:flex-start;
  padding:7px 4px 8px;
  background:transparent!important;
}
#landing-view .tvh-phase::after{left:4px;right:4px}

#landing-view .tvh-source{
  left:52.7%;
  top:calc(clamp(24px,4.5vh,56px) + 90px);
  width:240px;
  min-height:62px;
  display:grid;
  grid-template-columns:42px 1fr auto;
  align-items:center;
  gap:11px;
  padding:10px 12px;
  border-radius:13px;
  background:color-mix(in srgb,var(--surface) 78%,transparent);
  box-shadow:0 16px 42px -28px rgba(0,0,0,.8),inset 0 1px rgba(255,255,255,.055);
}
#landing-view .tvh-source-logo{
  width:42px;height:42px;
  display:grid;place-items:center;
  border-radius:10px;
  background:#fff;
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}
#landing-view .tvh-source-logo img{display:block;width:22px;height:22px;object-fit:contain}
#landing-view .tvh-source-copy{display:flex;flex-direction:column;gap:5px;min-width:0}
#landing-view .tvh-source-copy span{
  color:var(--ink-3);
  font:700 7px/1 var(--mono);
  letter-spacing:.13em;
}
#landing-view .tvh-source-copy strong{
  color:var(--ink);
  font:780 11px/1 var(--mono);
  letter-spacing:.07em;
  white-space:nowrap;
}
#landing-view .tvh-source-claim{
  display:flex;
  flex-direction:column;
  align-items:flex-end;
  gap:3px;
  padding-left:10px;
  border-left:1px solid color-mix(in srgb,var(--line-2) 62%,transparent);
}
#landing-view .tvh-source-claim b{color:var(--accent);font:850 17px/1 var(--mono)}
#landing-view .tvh-source-claim span{color:var(--ink-3);font:700 5.5px/1 var(--mono);letter-spacing:.08em;white-space:nowrap}

#landing-view .tvh-packet{
  left:calc(61% + var(--packet-p) * 8%);
  top:calc(clamp(24px,4.5vh,56px) + 158px + var(--packet-p) * 4px);
}
#landing-view .tvh-packet::before{
  content:"";
  position:absolute;
  right:4px;top:1px;
  width:46px;height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 48%,transparent));
}
#landing-view .tvh-packet i{width:5px;height:5px;border-radius:50%}

#landing-view .tvh-gates{top:61%;gap:8px}
#landing-view .tvh-gate{
  padding:9px 10px;
  background:color-mix(in srgb,var(--bg) 38%,transparent);
  border-color:color-mix(in srgb,var(--line-2) 48%,transparent);
}
#landing-view .tvh-readout{top:54.5%}
#landing-view .tvh-verdict{
  top:23%!important;
  width:min(27vw,390px);
  padding:16px 17px;
  border-radius:14px;
  background:color-mix(in srgb,var(--bg) 90%,transparent);
  box-shadow:0 20px 48px -34px color-mix(in srgb,var(--audit-tone) 62%,transparent);
}
#landing-view .tvh-word{font-size:clamp(38px,4.2vw,60px)}
#landing-view .tvh-proof{display:none!important}

@media (max-width:1100px) and (min-width:821px){
  #landing-view .tvh-phase-rail{left:52%;width:42%}
  #landing-view .tvh-source{left:50%}
  #landing-view .tvh-packet{left:calc(60% + var(--packet-p) * 8%)}
  #landing-view .tvh-gates{left:52%;width:43.5%}
  #landing-view .tvh-readout{left:52%}
  #landing-view .tvh-verdict{left:52%!important;width:32vw}
}

@media (max-width:820px){
  #landing-view .tvh-machine{top:3%;height:91%;border-radius:17px}
  #landing-view .tvh-machine-top{height:40px;padding:0 12px}
  #landing-view .tvh-machine::before{top:40px}
  #landing-view .tvh-phase-rail{
    left:8%;top:13.5%;width:84%;
    grid-template-columns:repeat(3,1fr);
    gap:5px;
  }
  #landing-view .tvh-phase{justify-content:center;padding:5px 2px 7px}
  #landing-view .tvh-source{
    left:7%;top:24%;
    width:205px;min-height:53px;
    grid-template-columns:34px 1fr auto;
    gap:8px;padding:8px 9px;
  }
  #landing-view .tvh-source-logo{width:34px;height:34px;border-radius:8px}
  #landing-view .tvh-source-logo img{width:18px;height:18px}
  #landing-view .tvh-source-copy span{font-size:5.8px}
  #landing-view .tvh-source-copy strong{font-size:9px}
  #landing-view .tvh-source-claim{padding-left:7px}
  #landing-view .tvh-source-claim b{font-size:14px}
  #landing-view .tvh-source-claim span{font-size:4.8px}
  #landing-view .tvh-packet{left:calc(40% + var(--packet-p) * 18%);top:calc(42% + var(--packet-p) * 2%)}
  #landing-view .tvh-gates{bottom:7%;top:auto}
  #landing-view .tvh-readout{left:9%;top:61%}
  #landing-view .tvh-verdict{
    left:8%!important;top:24%!important;
    width:min(65vw,310px);
    padding:13px 14px;
  }
}

@media (max-width:560px){
  #landing-view .tvh-phase span{display:block;font-size:5.5px}
  #landing-view .tvh-phase i{font-size:5.5px}
  #landing-view .tvh-source{width:190px}
  #landing-view .tvh-verdict{width:min(64vw,255px)}
}


/* Mobile hero rhythm v351 — remove the stacked top/bottom spacing inherited
   from the desktop wrapper and bring the instrument closer to the copy. */
@media (max-width:820px){
  #landing-view .tvhero{
    padding-top:clamp(12px,3.2vw,20px);
  }
  #landing-view .tvhero .wrap{
    padding-top:0;
    padding-bottom:0;
  }
  #landing-view .tvhero-stage{
    margin-top:12px;
  }
  #landing-view .tvh-machine{
    top:1.5%;
    height:94%;
  }
  #landing-view .tvh-phase-rail{
    top:11.5%;
  }
}

@media (max-width:560px){
  #landing-view .tvhero{
    padding-top:10px;
  }
  #landing-view .tvhero-stage{
    margin-top:8px;
  }
}

/* ==========================================================================
   ACADEMY + EL MÉTODO + CUENTA v352
   1) /academia — the educational spine (roadmap map + lesson reader + tools)
   2) Landing #story rebuilt as "El método Travocato" (mt-*)
   3) User accounts base: header button + popover (acct-*)
   All token-driven (both themes free); appended per the EOF-layer convention.
   ========================================================================== */

/* ---- is-academy plumbing: pre-paint visibility + two-mode header ---- */
body.is-academy #landing-view{display:none!important}
body.is-academy #academy-view.hidden{display:block!important}
body.is-academy .nav-links .nav-tool{display:inline-flex!important;align-items:center}
body.is-academy .nav-links .nl-landing{display:none!important}
body.is-academy .nav-end .nav-primary{display:none!important}

@media (min-width:761px){
  body.is-academy .aca-shell{
    width:min(100% - var(--tool-gut), var(--tool-w))!important;
    max-width:var(--tool-w)!important;
    margin-inline:auto!important;
  }
}

/* ---- academy page shell ---- */
.academy-view{min-height:100vh}
.aca-page{position:relative;padding:clamp(14px,2.6vh,28px) 0 68px;overflow:clip}
.aca-ambient{position:absolute;inset:0;pointer-events:none;z-index:0}
.aca-orb{position:absolute;border-radius:50%;filter:blur(90px);opacity:.5}
.aca-orb-a{width:46vw;height:46vw;max-width:640px;max-height:640px;top:-12%;right:-10%;
  background:radial-gradient(circle,color-mix(in srgb,var(--accent) 14%,transparent),transparent 70%)}
.aca-orb-b{width:38vw;height:38vw;max-width:520px;max-height:520px;bottom:-16%;left:-8%;
  background:radial-gradient(circle,color-mix(in srgb,var(--real) 10%,transparent),transparent 70%)}
.aca-shell{position:relative;z-index:1;width:min(100% - 40px,1200px);margin:0 auto}

/* base chrome metrics (Games parity; body.is-academy rules refine layout + HUD) */
.aca-chrome{max-width:none}
.aca-kicker{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px}
.aca-live-dot{width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;background:var(--accent);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);animation:ax-pulse 2s ease-in-out infinite}
.aca-eyebrow{font-family:var(--mono);font-size:10.5px;font-weight:800;letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0}
.aca-chrome h1{margin:0 0 8px;max-width:18ch;font-family:var(--display);font-size:clamp(26px,3.2vw,36px);line-height:1.05;font-weight:780;letter-spacing:-.03em;color:var(--ink)}
.aca-chrome>p,.aca-chrome-copy>p{margin:0;max-width:46ch;font-size:14.5px;line-height:1.55;color:var(--ink-2)}

/* HUD */
.aca-hud{display:flex;align-items:center;gap:clamp(12px,2vw,22px);flex-wrap:wrap;margin-top:clamp(16px,2.6vh,24px)}
.aca-hud-stat b{display:block;font:800 1.1rem/1 var(--mono);color:var(--ink);letter-spacing:-.01em}
.aca-hud-stat span{display:block;font:700 .55rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:5px}
.aca-hud-bar{flex:1;min-width:150px;height:8px;border-radius:99px;background:color-mix(in srgb,var(--ink-3) 18%,transparent);overflow:hidden}
.aca-hud-bar i{display:block;height:100%;border-radius:inherit;transition:width .5s ease;
  background:linear-gradient(90deg,var(--btn-g1,#3aa315),var(--accent))}
.aca-grad-chip{font:800 .78rem/1 var(--mono);color:var(--real);padding:9px 14px;border-radius:99px;
  border:1px solid color-mix(in srgb,var(--real) 40%,transparent);background:color-mix(in srgb,var(--real) 10%,transparent)}

/* layout: sticky map + reader */
.aca-layout{display:grid;grid-template-columns:minmax(290px,368px) minmax(0,1fr);gap:clamp(16px,2.4vw,28px);
  margin-top:clamp(20px,3.4vh,34px);align-items:start}
.aca-map{position:sticky;top:92px;display:flex;flex-direction:column;gap:12px;
  max-height:calc(100vh - 112px);overflow:auto;overscroll-behavior:contain;padding-right:4px;scrollbar-width:thin}
@media (max-width:980px){
  .aca-layout{grid-template-columns:1fr}
  .aca-map{position:static;max-height:none;overflow:visible;padding-right:0}
}

/* map blocks + lesson nodes */
.aca-blk{border:1px solid var(--line-2);border-radius:16px;overflow:hidden;
  background:color-mix(in srgb,var(--surface-2) 55%,transparent)}
.aca-blk.locked{opacity:.55;filter:saturate(.55)}
.aca-blk-head{display:flex;align-items:center;gap:10px;padding:12px 14px;border-bottom:1px solid var(--line)}
.aca-blk-no{font:800 .72rem/1 var(--mono);color:var(--accent)}
.aca-blk-t{flex:1;min-width:0}
.aca-blk-t b{display:block;font:750 .86rem/1.2 var(--display);letter-spacing:-.01em;color:var(--ink)}
.aca-blk-t small{display:block;font:500 .62rem/1.45 inherit;color:var(--ink-3);margin-top:3px}
.aca-blk-tag{font:800 .5rem/1 var(--mono);letter-spacing:.16em;color:var(--accent);
  padding:4px 8px;border-radius:99px;border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);white-space:nowrap}
.aca-blk-n{font:700 .62rem/1 var(--mono);color:var(--ink-3);white-space:nowrap}
.aca-blk-lessons{position:relative;display:flex;flex-direction:column;padding:7px}
.aca-blk-lessons::before{content:"";position:absolute;left:26px;top:18px;bottom:18px;width:2px;
  background:var(--line);opacity:.6}
.aca-node{position:relative;z-index:1;display:flex;gap:11px;align-items:flex-start;text-align:left;
  padding:9px 10px;border:0;border-radius:10px;background:transparent;color:inherit;cursor:pointer;width:100%}
.aca-node:hover{background:color-mix(in srgb,var(--accent) 7%,transparent)}
.aca-node.locked{opacity:.45;cursor:default}
.aca-node.locked:hover{background:transparent}
.aca-node.cur{background:color-mix(in srgb,var(--accent) 10%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 32%,transparent)}
.aca-node-dot{width:19px;height:19px;flex:none;border-radius:50%;border:1.5px solid var(--line-2);
  background:var(--bg);display:grid;place-items:center;font:800 .58rem/1 var(--mono);color:var(--real);margin-top:1px}
.aca-node.done .aca-node-dot{border-color:var(--real);background:color-mix(in srgb,var(--real) 14%,var(--bg))}
.aca-node-t{min-width:0}
.aca-node-t b{display:block;font:700 .78rem/1.3 inherit;color:var(--ink)}
.aca-node-t small{display:block;font:600 .58rem/1.4 var(--mono);color:var(--ink-3);margin-top:2px}

/* reader */
.aca-reader{border:1px solid var(--line-2);border-radius:20px;min-height:440px;
  background:color-mix(in srgb,var(--surface-2) 45%,transparent);
  padding:clamp(18px,3vw,34px)}
.aca-eyebrow-sm{font:700 .58rem/1 var(--mono);letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.aca-welcome h2{font:800 clamp(1.35rem,2.5vw,1.95rem)/1.15 var(--display);letter-spacing:-.02em;color:var(--ink);margin:12px 0 12px}
.aca-welcome>p{font:450 .9rem/1.7 inherit;color:var(--ink-2);margin:0 0 6px}
.aca-w-steps{display:grid;grid-template-columns:repeat(auto-fit,minmax(96px,1fr));gap:8px;margin:18px 0 20px}
.aca-w-step{border:1px solid var(--line);border-radius:12px;padding:11px 8px;text-align:center}
.aca-w-step b{display:block;font:800 .7rem/1 var(--mono);color:var(--accent)}
.aca-w-step span{display:block;font:700 .7rem/1.25 inherit;color:var(--ink);margin-top:6px}
.aca-w-step small{display:block;font:700 .5rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3);margin-top:5px}
.aca-w-note{margin-top:16px;font:500 .68rem/1.6 inherit;color:var(--ink-3)}

.aca-l-kicker{display:flex;align-items:center;gap:9px;flex-wrap:wrap}
.aca-l-blk{font:800 .6rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--accent)}
.aca-l-tag{font:800 .5rem/1 var(--mono);letter-spacing:.16em;color:var(--accent);
  padding:4px 8px;border-radius:99px;border:1px solid color-mix(in srgb,var(--accent) 32%,transparent)}
.aca-l-mins{font:700 .6rem/1 var(--mono);color:var(--ink-3)}
.aca-lesson h2{font:800 clamp(1.3rem,2.4vw,1.8rem)/1.15 var(--display);letter-spacing:-.02em;color:var(--ink);margin:12px 0 16px}
.aca-body p{font:450 .92rem/1.75 inherit;color:var(--ink-2);margin:0 0 14px}
.aca-body b{color:var(--ink);font-weight:700}
.aca-key{border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-left:3px solid var(--accent);
  background:color-mix(in srgb,var(--accent) 7%,transparent);
  padding:13px 15px;border-radius:0 12px 12px 0;font:500 .88rem/1.65 inherit;color:var(--ink);margin:16px 0 6px}
.aca-key b{font-weight:800}
.aca-formula{font:700 clamp(.82rem,1.6vw,.98rem)/1.45 var(--mono);color:var(--accent);text-align:center;
  background:color-mix(in srgb,var(--surface-2) 70%,transparent);
  border:1px dashed var(--line-2);border-radius:12px;padding:13px 16px;margin:14px 0}
.aca-ul{margin:0 0 14px;padding-left:20px}
.aca-ul li{font:450 .88rem/1.7 inherit;color:var(--ink-2);margin:7px 0}
.aca-ul li b{color:var(--ink)}

/* interactive tools */
.aca-tool{border:1px solid var(--line-2);border-radius:16px;padding:16px;margin:18px 0;
  background:color-mix(in srgb,var(--bg) 55%,var(--surface-2))}
.aca-tool-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:13px}
.aca-tool-head b{font:750 .86rem/1.2 var(--display);color:var(--ink)}
.aca-tool-head span{font:600 .62rem/1.3 var(--mono);color:var(--ink-3)}
.aca-tool-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.aca-tool-grid.one{grid-template-columns:minmax(0,240px)}
@media (max-width:640px){ .aca-tool-grid{grid-template-columns:1fr} }
.aca-tool-grid label{display:flex;flex-direction:column;gap:6px;
  font:700 .56rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.aca-tool input[type="number"],.aca-tool input[type="text"]{
  height:40px;padding:0 12px;border-radius:10px;border:1px solid var(--line-2);
  background:var(--bg);color:var(--ink);font:600 .9rem var(--mono);width:100%;min-width:0}
.aca-tool input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 55%,var(--line-2))}
.aca-tool-out{margin-top:12px}
.aca-verdict{display:flex;flex-direction:column;gap:6px;padding:13px 15px;border-radius:12px;border:1px solid var(--line-2)}
.aca-verdict b{font:800 .95rem/1.3 var(--mono);letter-spacing:-.01em}
.aca-verdict span{font:500 .8rem/1.6 inherit;color:var(--ink-2)}
.aca-verdict.ok{border-color:color-mix(in srgb,var(--real) 38%,transparent);background:color-mix(in srgb,var(--real) 8%,transparent)}
.aca-verdict.ok b{color:var(--real)}
.aca-verdict.mid{border-color:color-mix(in srgb,#c08a00 40%,transparent);background:color-mix(in srgb,#c08a00 8%,transparent)}
.aca-verdict.mid b{color:#c08a00}
.aca-verdict.bad{border-color:color-mix(in srgb,var(--humo) 38%,transparent);background:color-mix(in srgb,var(--humo) 8%,transparent)}
.aca-verdict.bad b{color:var(--humo)}
.aca-st-row{display:grid;grid-template-columns:minmax(120px,150px) 1fr 46px;align-items:center;gap:10px;
  margin:7px 0;font:600 .7rem/1.2 var(--mono);color:var(--ink-2)}
.aca-st-row i{display:block;height:8px;border-radius:99px;width:var(--w,2%);min-width:2%;
  background:linear-gradient(90deg,color-mix(in srgb,var(--humo) 75%,transparent),var(--humo))}
.aca-st-row b{text-align:right;font:800 .74rem/1 var(--mono);color:var(--ink)}
.aca-st-note{font:500 .72rem/1.6 inherit;color:var(--ink-3);margin:8px 0 2px}
.aca-st-note.dim{opacity:.85;margin-top:10px}
.aca-chk-row{display:flex;gap:8px;margin:7px 0}
.aca-chk-row input{flex:1;height:38px}
.aca-chk-del{width:36px;height:38px;flex:none;border-radius:10px;border:1px solid var(--line-2);
  background:transparent;color:var(--ink-3);font:700 1rem/1 inherit;cursor:pointer}
.aca-chk-del:hover{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 45%,var(--line-2))}
.aca-chk-actions{display:flex;gap:10px;align-items:center;flex-wrap:wrap;margin-top:12px}
#aca-chk-msg{font:700 .7rem/1.4 var(--mono);color:var(--real)}

/* quiz */
.aca-quiz{border:1px solid var(--line-2);border-radius:16px;padding:16px;margin:18px 0}
.aca-qz-head{display:flex;justify-content:space-between;align-items:baseline;gap:10px;margin-bottom:6px}
.aca-qz-head b{font:750 .86rem/1.2 var(--display);color:var(--ink)}
.aca-qz-head span{font:600 .62rem/1.3 var(--mono);color:var(--ink-3)}
.aca-q{margin:14px 0}
.aca-q-t{font:700 .85rem/1.45 inherit;color:var(--ink);margin:0 0 9px}
.aca-q-opts{display:flex;flex-direction:column;gap:7px}
.aca-opt{text-align:left;padding:10px 13px;border-radius:10px;border:1px solid var(--line-2);
  background:transparent;color:var(--ink-2);font:500 .8rem/1.5 inherit;cursor:pointer;width:100%;
  transition:border-color .15s ease,background .15s ease}
.aca-opt:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 45%,var(--line-2))}
.aca-opt.sel{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,transparent);color:var(--ink)}
.aca-opt.right{border-color:var(--real);background:color-mix(in srgb,var(--real) 10%,transparent);color:var(--ink)}
.aca-opt.wrong{border-color:var(--humo);background:color-mix(in srgb,var(--humo) 8%,transparent)}
.aca-opt:disabled{cursor:default}
.aca-q-why{font:500 .74rem/1.6 inherit;color:var(--ink-3);border-left:2px solid #c08a00;padding:4px 11px;margin:9px 0 0}
.aca-q-why.hidden{display:none}
.aca-qz-foot{display:flex;gap:12px;align-items:center;flex-wrap:wrap;margin-top:14px}
#aca-qz-out{font:700 .76rem/1.4 var(--mono);color:var(--ink-2)}
.aca-retry{border:0;background:none;color:var(--accent);cursor:pointer;font:700 .74rem var(--mono);text-decoration:underline}
#aca-qz-grade.hidden{display:none}

/* mission */
.aca-mission{border:1px dashed color-mix(in srgb,var(--accent) 38%,var(--line));border-radius:16px;
  padding:14px 16px;margin:18px 0;background:color-mix(in srgb,var(--accent) 5%,transparent)}
.aca-mission.done{border-style:solid;border-color:color-mix(in srgb,var(--real) 42%,transparent);
  background:color-mix(in srgb,var(--real) 7%,transparent)}
.aca-mi-head{display:flex;align-items:center;gap:8px;font:750 .8rem/1.2 var(--display);color:var(--ink)}
.aca-mi-ic{font-size:.95rem;font-style:normal}
.aca-mi-n{font:800 .7rem/1 var(--mono);color:var(--accent)}
.aca-mission.done .aca-mi-n{color:var(--real)}
.aca-mi-state{margin-left:auto;font:700 .52rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
.aca-mission.done .aca-mi-state{color:var(--real)}
.aca-mission p{font:500 .82rem/1.6 inherit;color:var(--ink-2);margin:9px 0 0}
.aca-mi-cta{margin-top:12px}
.aca-mi-done{color:var(--real)!important;font:600 .74rem/1.5 var(--mono)!important}

/* lesson footer */
.aca-l-foot{display:flex;justify-content:space-between;align-items:center;gap:10px;flex-wrap:wrap;
  border-top:1px solid var(--line);margin-top:22px;padding-top:16px}
.aca-nav-btn{max-width:40%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
@media (max-width:640px){
  .aca-l-foot{flex-direction:column;align-items:stretch}
  .aca-nav-btn{max-width:100%}
}
.aca-done-chip{font:800 .74rem/1 var(--mono);color:var(--real);padding:10px 15px;border-radius:99px;
  border:1px solid color-mix(in srgb,var(--real) 40%,transparent);background:color-mix(in srgb,var(--real) 10%,transparent)}
.aca-foot-note{margin:26px auto 0;max-width:72ch;text-align:center;font:500 .68rem/1.65 inherit;color:var(--ink-3)}

/* ---- landing: El método Travocato (replaces the old story steps) ---- */
.mt-flow{position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:clamp(20px,3.4vh,34px)}
@media (min-width:981px){
  .mt-flow::before{content:"";position:absolute;top:37px;left:5%;right:5%;height:2px;z-index:0;
    background:linear-gradient(90deg,transparent,var(--line-2) 14%,var(--line-2) 86%,transparent)}
}
.mt-step{position:relative;z-index:1;display:flex;flex-direction:column;gap:9px;
  border:1px solid var(--line-2);border-radius:18px;padding:18px;
  background:color-mix(in srgb,var(--surface-2) 62%,var(--bg));
  transition:transform .25s ease,border-color .25s ease}
.mt-step:hover{transform:translateY(-3px);border-color:color-mix(in srgb,var(--accent) 35%,var(--line-2))}
.mt-step-head{display:flex;align-items:center;justify-content:space-between;gap:8px}
.mt-no{font:800 .78rem/1 var(--mono);color:var(--ink-3)}
.mt-ic{width:38px;height:38px;border-radius:12px;display:grid;place-items:center;color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));
  background:color-mix(in srgb,var(--accent) 8%,transparent)}
.mt-ic svg{width:20px;height:20px}
.mt-k{font:800 .6rem/1 var(--mono);letter-spacing:.2em;color:var(--accent)}
.mt-step h3{font:750 1.02rem/1.25 var(--display);letter-spacing:-.01em;color:var(--ink);margin:0}
.mt-step p{font:500 .8rem/1.6 inherit;color:var(--ink-2);margin:0;flex:1}
.mt-tools{display:flex;gap:6px;flex-wrap:wrap;margin-top:2px}
.mt-tools a{font:700 .6rem/1 var(--mono);letter-spacing:.04em;padding:6px 10px;border-radius:99px;
  border:1px solid var(--line-2);color:var(--ink-2);text-decoration:none;transition:color .15s,border-color .15s}
.mt-tools a:hover{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 45%,var(--line-2))}
@media (max-width:980px){ .mt-flow{grid-template-columns:1fr 1fr} }
@media (max-width:600px){ .mt-flow{grid-template-columns:1fr} }
.mt-verdicts{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:clamp(20px,3vh,30px)}
.mt-v-lab{font:600 .72rem/1.4 var(--mono);color:var(--ink-3)}
.mt-v-chips{display:flex;gap:8px;flex-wrap:wrap}
.tag.UNTESTABLE{color:var(--ink-2);background:color-mix(in srgb,var(--ink-2) 12%,transparent)}
.mt-cta{display:flex;justify-content:center;gap:12px;flex-wrap:wrap;margin-top:clamp(16px,2.6vh,24px)}

/* the #path ribbon → academy */
.mt-ribbon{display:flex;align-items:center;gap:14px;margin-top:clamp(18px,3vh,28px);
  padding:15px 18px;border-radius:16px;text-decoration:none;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  background:color-mix(in srgb,var(--accent) 6%,transparent);
  transition:border-color .2s ease,background .2s ease}
.mt-ribbon:hover{border-color:color-mix(in srgb,var(--accent) 55%,var(--line));
  background:color-mix(in srgb,var(--accent) 10%,transparent)}
.mt-ribbon-ic{width:40px;height:40px;flex:none;border-radius:12px;display:grid;place-items:center;
  color:var(--accent);background:color-mix(in srgb,var(--accent) 12%,transparent)}
.mt-ribbon-ic svg{width:22px;height:22px}
.mt-ribbon-t{flex:1;min-width:0}
.mt-ribbon-t b{display:block;font:750 .86rem/1.25 var(--display);color:var(--ink)}
.mt-ribbon-t span{display:block;font:500 .72rem/1.5 inherit;color:var(--ink-2);margin-top:3px}
.mt-ribbon-go{font:800 .72rem/1 var(--mono);color:var(--accent);white-space:nowrap}
@media (max-width:640px){
  .mt-ribbon{flex-wrap:wrap}
  .mt-ribbon-t{flex-basis:calc(100% - 54px)}
  .mt-ribbon-go{margin-left:auto}
}

/* ---- cuenta: header button + popover ---- */
.acct-btn{position:relative}
.acct-btn.logged{border-color:color-mix(in srgb,var(--accent) 45%,var(--line-2))!important}
#acct-ini{display:grid;place-items:center;width:22px;height:22px;border-radius:50%;color:#fff;
  font:800 .66rem/1 var(--mono);font-style:normal;
  background:linear-gradient(180deg,var(--btn-g1,#3aa315),var(--btn-g2,#2e8a10))}
#acct-ini.hidden,.acct-btn svg.hidden{display:none!important}
.acct-pop{position:absolute;top:calc(100% + 10px);right:clamp(12px,4vw,40px);
  width:min(354px,calc(100vw - 24px));z-index:81;padding:12px;
  border:1px solid var(--line-2);border-radius:16px;
  background:color-mix(in srgb,var(--bg) 88%,var(--surface-2));
  -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
  box-shadow:var(--elev-2)}
.acct-pop.hidden{display:none!important}
.acct-note{font:500 .74rem/1.6 inherit;color:var(--ink-2);padding:0 10px;margin:0 0 6px}
.acct-tiny{font:500 .6rem/1.55 var(--mono);color:var(--ink-3);padding:8px 10px 2px;margin:0}
.acct-fld{display:flex;flex-direction:column;gap:5px;margin:9px 0;padding:0 10px;
  font:700 .55rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.acct-fld input{height:38px;border-radius:10px;border:1px solid var(--line-2);
  background:var(--bg);color:var(--ink);padding:0 12px;font:600 .85rem/1 inherit;width:100%}
.acct-fld input:focus{outline:none;border-color:color-mix(in srgb,var(--accent) 55%,var(--line-2))}
.acct-err{color:var(--humo);font:600 .72rem/1.5 inherit;padding:0 10px;margin:4px 0}
.acct-err.hidden{display:none}
.acct-actions{display:flex;gap:8px;flex-wrap:wrap;padding:6px 10px 4px}
.acct-actions .btn{flex:1;justify-content:center;padding:9px 12px;font-size:.78rem;white-space:nowrap}
.acct-out{color:var(--humo)!important}
/* Google sign-in: "or" divider + full-width branded button (matches .btn.quiet sizing) */
.acct-sep{display:flex;align-items:center;gap:10px;margin:12px 10px 8px;
  font:600 .62rem/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.acct-sep::before,.acct-sep::after{content:"";height:1px;flex:1;background:var(--line-2)}
.acct-google{display:flex;align-items:center;justify-content:center;gap:9px;width:calc(100% - 20px);
  margin:0 10px;padding:10px 12px;font-size:.8rem;white-space:nowrap}
.acct-google svg{flex:none}
.acct-sync{display:flex;align-items:center;gap:8px;padding:2px 10px 6px;font:600 .72rem/1.4 var(--mono);color:var(--ink-2)}
.acct-dot{width:8px;height:8px;flex:none;border-radius:50%;background:var(--real);
  box-shadow:0 0 8px color-mix(in srgb,var(--real) 60%,transparent)}


/* ==========================================================================
   ACADEMY V2 + LANDING METHOD UNIFY v353
   1) Academy hero: GIANT pointillist graduate portrait (travocato-academy-
      hero-v2.webp) — full analyzer/trainer/games dotfield parity, fixed,
      viewport-filling, anchored right, with mouse focus + vignette.
   2) Map v2: collapsible blocks (29 lessons need folding), per-block progress
      bar, prologue styling, caret. Head is now a <button>.
   3) New widgets: Monte Carlo curves canvas + one-page trading plan builder.
   4) Landing: #story+#path unified — slim .mt-rail phase strip + .pc-academy
      full-width card with the graduate mascot. (.mt-flow/.mt-cta/.mt-ribbon
      rules above are now DEAD — their HTML was removed in v353.)
   ========================================================================== */

/* --- 1) academy dotfield ------------------------------------------------ */
body.is-academy .academy-view{isolation:isolate!important;position:relative!important}
body.is-academy .aca-shell{position:relative;z-index:1}
body.is-academy .aca-dotfield{
  --mx:78%;
  --my:48%;
  --dot-a:5.5px;
  --dot-b:4px;
  --aca-size:auto min(108vh,1080px);
  --aca-pos:right -5% top 36%;
  position:fixed!important;
  top:var(--nav-h)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  isolation:isolate;
  contain:paint;
  transform:translateZ(0);
}
body.is-academy .aca-df-wash,
body.is-academy .aca-df-dots,
body.is-academy .aca-df-focus{
  position:absolute;
  inset:0;
  background-image:var(--aca-hero);
  background-repeat:no-repeat;
  background-position:var(--aca-pos);
  background-size:var(--aca-size);
  transform:translateZ(0);
  backface-visibility:hidden;
}
body.is-academy .aca-df-wash{
  filter:blur(40px) saturate(.74) brightness(.97);
  opacity:.26;
  transform:scale(1.06) translateZ(0);
}
body.is-academy .aca-df-dots{
  opacity:.62;
  filter:blur(.25px) saturate(.95) contrast(1.05);
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  -webkit-mask-size:var(--dot-b) var(--dot-b); mask-size:var(--dot-b) var(--dot-b);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
body.is-academy .aca-df-dots::before{
  content:"";
  position:absolute;inset:0;
  background-image:var(--aca-hero);
  background-repeat:no-repeat;
  background-position:var(--aca-pos);
  background-size:var(--aca-size);
  filter:blur(6px) saturate(.8);
  opacity:.4;
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  -webkit-mask-size:var(--dot-a) var(--dot-a); mask-size:var(--dot-a) var(--dot-a);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
  pointer-events:none;
}
body.is-academy .aca-df-focus{
  opacity:0;
  filter:saturate(1.08) contrast(1.04);
  -webkit-mask-image:radial-gradient(circle 180px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  mask-image:radial-gradient(circle 180px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  transition:opacity .2s ease;
  will-change:opacity;
}
body.is-academy .aca-dotfield.is-lit .aca-df-focus{opacity:.92}
body.is-academy .aca-df-vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 84%,transparent) 24%,
      color-mix(in srgb,var(--bg) 48%,transparent) 46%,
      color-mix(in srgb,var(--bg) 14%,transparent) 66%,
      transparent 84%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 50%,transparent) 0%,
      transparent 12%,
      transparent 72%,
      color-mix(in srgb,var(--bg) 66%,transparent) 100%);
  pointer-events:none;
}
[data-theme="light"] body.is-academy .aca-df-wash{opacity:.18;filter:blur(42px) saturate(.68) brightness(1.04)}
[data-theme="light"] body.is-academy .aca-df-dots{opacity:.48}
/* content floats above the portrait on glassier surfaces */
body.is-academy .aca-chrome-copy{max-width:min(560px,100%)}
body.is-academy .aca-reader{
  background:color-mix(in srgb,var(--bg) 76%,var(--surface-2));
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
body.is-academy .aca-blk{background:color-mix(in srgb,var(--bg) 74%,var(--surface-2))}
@media (max-width:980px){
  body.is-academy .aca-chrome-copy{max-width:100%}
}
@media (max-width:760px){
  body.is-academy .aca-dotfield{
    --aca-size:auto min(74vh,680px);
    --aca-pos:right -18% top 10%;
  }
  body.is-academy .aca-df-wash{opacity:.15}
  body.is-academy .aca-df-dots{opacity:.4}
  body.is-academy .aca-dotfield.is-lit .aca-df-focus{opacity:.85}
  body.is-academy .aca-df-vignette{
    background:
      linear-gradient(180deg,
        transparent 0%,
        transparent 26%,
        color-mix(in srgb,var(--bg) 68%,transparent) 58%,
        var(--bg) 92%),
      linear-gradient(90deg,
        var(--bg) 0%,
        color-mix(in srgb,var(--bg) 46%,transparent) 44%,
        transparent 80%);
  }
}
@media (prefers-reduced-motion:reduce){
  body.is-academy .aca-df-focus{transition:none}
  body.is-academy .aca-dotfield.is-lit .aca-df-focus{opacity:.55}
}

/* --- 2) map v2: collapsible blocks -------------------------------------- */
.aca-blk-head{
  appearance:none;-webkit-appearance:none;
  width:100%;text-align:left;background:transparent;color:inherit;
  border:0;border-bottom:1px solid var(--line);
  cursor:pointer;position:relative;font:inherit;
}
.aca-blk-head:disabled{cursor:default}
.aca-blk:not(.open) .aca-blk-head{border-bottom-color:transparent}
.aca-blk:not(.open) .aca-blk-lessons{display:none}
.aca-blk-car{width:16px;height:16px;flex:none;display:grid;place-items:center;color:var(--ink-3)}
.aca-blk-car::before{content:"▾";font-size:.72rem;line-height:1;transition:transform .2s ease;display:block}
.aca-blk:not(.open) .aca-blk-car::before{transform:rotate(-90deg)}
.aca-blk.locked .aca-blk-car{opacity:.4}
.aca-blk-bar{position:absolute;left:0;right:0;bottom:-1px;height:2px;background:transparent;overflow:hidden;border-radius:99px}
.aca-blk-bar::before{content:"";position:absolute;left:0;top:0;bottom:0;width:var(--p,0%);
  background:linear-gradient(90deg,var(--btn-g1,#3aa315),var(--accent));transition:width .4s ease}
.aca-blk.pro{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 34%,var(--line-2))}
.aca-blk.pro .aca-blk-no{color:#c08a00}
.aca-w-step.pro{border-style:dashed;border-color:color-mix(in srgb,var(--accent) 34%,var(--line))}
.aca-hud-barwrap{flex:1;min-width:170px;display:flex;flex-direction:column;gap:5px}
.aca-hud-barwrap .aca-hud-bar{min-width:0}
.aca-hud-hint{font:700 .54rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}

/* --- 3) new widgets ------------------------------------------------------ */
.aca-mc-cv{width:100%;height:190px;display:block;margin-top:12px;border-radius:12px;
  border:1px solid var(--line);background:color-mix(in srgb,var(--bg) 78%,var(--surface-2))}
.aca-plan-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}
.aca-plan-grid label{display:flex;flex-direction:column;gap:6px;
  font:700 .56rem/1 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.aca-plan-grid label.wide{grid-column:1/-1}
@media (max-width:640px){ .aca-plan-grid{grid-template-columns:1fr} }
.aca-plan-out:empty{display:none}
.aca-plan-pre{margin:12px 0 0;padding:14px 16px;border-radius:12px;white-space:pre-wrap;
  border:1px dashed color-mix(in srgb,var(--accent) 34%,var(--line-2));
  background:color-mix(in srgb,var(--bg) 80%,var(--surface-2));
  font:600 .76rem/1.75 var(--mono);color:var(--ink-2)}
#aca-pl-msg{font:700 .7rem/1.4 var(--mono);color:var(--real)}

/* --- 4) landing: unified method × circuit ------------------------------- */
#story{scroll-margin-top:84px}
.anchor-alias{display:block;position:relative;top:-84px;height:0;visibility:hidden;pointer-events:none}
.mt-rail{display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  margin:clamp(18px,3vh,30px) 0 clamp(20px,3.2vh,32px)}
.mt-rail-step{display:flex;align-items:center;gap:9px}
.mt-rail-step>b{width:27px;height:27px;flex:none;border-radius:50%;display:grid;place-items:center;
  font:800 .68rem/1 var(--mono);color:var(--accent);
  border:1px solid color-mix(in srgb,var(--accent) 42%,transparent);
  background:color-mix(in srgb,var(--accent) 9%,transparent)}
.mt-rail-t{display:flex;flex-direction:column;min-width:0}
.mt-rail-t i{font:800 .6rem/1 var(--mono);letter-spacing:.18em;font-style:normal;color:var(--ink)}
.mt-rail-t em{font:600 .56rem/1.35 var(--mono);font-style:normal;color:var(--ink-3);margin-top:3px}
.mt-rail-sep{flex:0 1 54px;min-width:16px;height:2px;border-radius:99px;
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 45%,transparent),color-mix(in srgb,var(--accent) 10%,transparent))}
@media (max-width:760px){
  .mt-rail{display:grid;grid-template-columns:1fr 1fr;gap:12px;justify-items:start}
  .mt-rail-sep{display:none}
}
/* academy card: full-width banner inside the path grid */
.path-grid .pc-academy{
  grid-column:1/-1;
  display:grid;
  grid-template-columns:minmax(0,1fr) clamp(190px,27%,310px);
  align-items:stretch;
  overflow:hidden;
  border-color:color-mix(in srgb,var(--accent) 30%,var(--line-2));
  background:
    radial-gradient(120% 170% at 88% 14%,color-mix(in srgb,var(--accent) 13%,transparent),transparent 56%),
    color-mix(in srgb,var(--surface-2) 62%,var(--bg));
}
.pca-body{padding:clamp(18px,3vw,30px);display:flex;flex-direction:column;align-items:flex-start;gap:13px;min-width:0}
.pca-kicker{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.pc-academy h3{font:800 clamp(1.15rem,2.2vw,1.6rem)/1.2 var(--display);letter-spacing:-.015em;color:var(--ink);margin:0}
.pc-academy .pca-body>p{font:500 .84rem/1.65 inherit;color:var(--ink-2);margin:0;max-width:60ch}
.pca-meta{display:flex;gap:8px;flex-wrap:wrap}
.pca-meta span{font:700 .6rem/1 var(--mono);letter-spacing:.05em;color:var(--ink-2);
  padding:6px 10px;border-radius:99px;border:1px solid var(--line-2);white-space:nowrap}
.pca-meta .pca-free{color:var(--real);border-color:color-mix(in srgb,var(--real) 45%,transparent);
  background:color-mix(in srgb,var(--real) 9%,transparent)}
.pca-art{position:relative;display:flex;align-items:flex-end;justify-content:center;min-height:230px;padding:14px 10px 0}
.pca-art img{width:min(100%,300px);height:auto;object-fit:contain;
  filter:drop-shadow(0 20px 36px rgba(0,0,0,.32));transform:translateY(3px)}
[data-theme="light"] .pca-art img{filter:drop-shadow(0 16px 30px rgba(30,40,20,.22))}
@media (max-width:760px){
  .path-grid .pc-academy{grid-template-columns:1fr}
  .pca-art{order:-1;min-height:0;padding-top:18px}
  .pca-art img{width:min(58%,230px)}
  .pca-body{align-items:stretch}
  .pca-body .btn{justify-content:center}
}


/* ==========================================================================
   HERO AUDIT v354 — solid surfaces, restrained depth, one meaningful scan
   ========================================================================== */
#landing-view .tvhero{
  background:var(--bg);
}
#landing-view .tvhero-stage::before,
#landing-view .tvhero-fade,
#landing-view .tvh-machine-glow{
  display:none!important;
}
#landing-view .tvhero-grid{
  opacity:.075;
  transform:none;
}
#landing-view .tvh-machine{
  background:transparent;
  border-color:color-mix(in srgb,var(--line-2) 72%,transparent);
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
  transform:none;
}
#landing-view .tvh-machine::before{
  background:var(--line);
  opacity:.72;
}
#landing-view .tvh-machine-corner{
  opacity:.46;
  border-color:color-mix(in srgb,var(--audit-tone) 62%,var(--line-2));
}
#landing-view .tvh-machine-live i,
#landing-view .tvh-verdict-kicker i{
  box-shadow:0 0 4px color-mix(in srgb,var(--audit-tone) 55%,transparent);
}

/* One scan cursor replaces the duplicated canvas + DOM beams. Its label makes
   the action explicit: the source is being converted into testable rules. */
#landing-view .tvh-sweep{
  top:24%;
  height:48%;
  width:1px;
  background:color-mix(in srgb,var(--accent) 82%,var(--ink));
  box-shadow:none;
}
#landing-view .tvh-sweep span{
  position:absolute;
  left:8px;
  top:46%;
  transform:translateY(-50%);
  padding:4px 6px;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  border-radius:5px;
  background:var(--bg);
  color:color-mix(in srgb,var(--accent) 82%,var(--ink));
  font:750 6.5px/1 var(--mono);
  letter-spacing:.11em;
  white-space:nowrap;
}

#landing-view .tvh-source{
  background:var(--surface-2);
  border-color:var(--line-2);
  box-shadow:0 7px 16px -14px rgba(0,0,0,.55);
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
#landing-view .tvh-source-logo{
  box-shadow:inset 0 0 0 1px rgba(0,0,0,.08);
}
#landing-view .tvh-source-head i,
#landing-view .tvh-packet i{
  box-shadow:none;
}
#landing-view .tvh-packet::before{
  background:color-mix(in srgb,var(--accent) 42%,transparent);
}
#landing-view .tvh-phase.is-active{
  transform:none;
}
#landing-view .tvh-phase.is-active::after{
  box-shadow:none;
}
#landing-view .tvh-gate{
  background:var(--surface-2);
  border-color:var(--line);
}
#landing-view .tvh-gate.is-active{
  transform:none;
  background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));
}
#landing-view .tvh-gate.is-active i,
#landing-view .tvh-gate.is-failed i{
  box-shadow:none;
}
#landing-view .tvh-mascot{
  filter:drop-shadow(0 7px 8px rgba(0,0,0,.24));
}
#landing-view .tvh-verdict{
  background:var(--bg);
  border-color:color-mix(in srgb,var(--audit-tone) 46%,var(--line-2));
  box-shadow:none;
  -webkit-backdrop-filter:none;
  backdrop-filter:none;
}
#landing-view .tvh-word{
  text-shadow:none;
}

@media (max-width:820px){
  #landing-view .tvh-sweep span{
    top:43%;
    font-size:5.5px;
  }
}

/* ============================================================================
   LANDING SOLID BELOW-THE-FOLD + FOOTER MARQUEE v357
   Everything from #methods down, rebuilt terse and app-aligned, plus the new
   global footer with the giant halftone wordmark. Namespaces: pf- (proof),
   vs- (compare), ft- (footer). The old .edgex-* / .compare-* / .foot-* HTML
   is gone, so their rules above are DEAD — do not revive them. Pricing/FAQ/CTA
   keep their class names (JS hooks: .billing-btn, [data-pricing-field],
   .price count-up, .faq-item, .cta-final) and are re-skinned here via the
   #landing-view prefix, which outranks every mid-file class chain.
   ============================================================================ */

/* ---------- shared: tighter section rhythm below the fold ---------- */
#landing-view .pf-section .section-head,
#landing-view .vs-section .section-head,
#landing-view .faq-section .section-head{margin-bottom:30px}

/* ============================ PROOF (pf-) ============================ */
#landing-view .pf-battery{
  display:flex;flex-wrap:wrap;align-items:center;gap:8px;
  margin:0 0 26px;padding:13px 16px;
  border:1px solid var(--line);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 80%,transparent),color-mix(in srgb,var(--surface) 55%,transparent));
}
#landing-view .pf-bat-lab{
  font:700 .62rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);margin-right:6px;
}
#landing-view .pf-bat-chip{
  display:inline-flex;align-items:center;gap:7px;padding:7px 12px;
  border-radius:var(--radius-pill);
  border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));
  background:color-mix(in srgb,var(--accent) 7%,transparent);
}
#landing-view .pf-bat-chip svg{color:var(--accent);flex:none}
#landing-view .pf-bat-chip i{font:600 .78rem/1 var(--font);font-style:normal;color:var(--ink);white-space:nowrap}

#landing-view .pf-duel{display:grid;grid-template-columns:1fr 1fr;gap:18px;align-items:start}
#landing-view .pf-card{
  position:relative;border:1px solid var(--line);border-radius:var(--radius-xl);
  padding:26px 26px 22px;overflow:hidden;
  background:linear-gradient(180deg,var(--surface-2),var(--surface));
  box-shadow:var(--elev-1);
}
#landing-view .pf-card::before{
  content:"";position:absolute;top:0;bottom:0;left:0;width:3px;
  background:linear-gradient(180deg,var(--real),transparent 82%);opacity:.85;
}
#landing-view .pf-card.pf-humo::before{background:linear-gradient(180deg,var(--humo),transparent 82%)}
#landing-view .pf-card.pf-real{border-color:color-mix(in srgb,var(--real) 24%,var(--line))}
#landing-view .pf-card.pf-humo{border-color:color-mix(in srgb,var(--humo) 20%,var(--line))}
#landing-view .pf-card::after{ /* cursor specular — fx.js feeds --mx/--my */
  content:"";position:absolute;inset:0;pointer-events:none;opacity:0;
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(255,255,255,.05),transparent 62%);
  transition:opacity .3s var(--ease);
}
#landing-view .pf-card:hover::after{opacity:1}
[data-theme="light"] #landing-view .pf-card::after{
  background:radial-gradient(420px circle at var(--mx,50%) var(--my,50%),rgba(13,18,15,.045),transparent 62%);
}

#landing-view .pf-tags{display:flex;align-items:center;gap:8px;margin-bottom:14px}
#landing-view .pf-flag{
  font:700 .6rem/1.4 var(--mono);letter-spacing:.12em;text-transform:uppercase;
  padding:4px 10px;border-radius:var(--radius-pill);border:1px dashed;
}
#landing-view .pf-flag.ok{color:var(--real);border-color:color-mix(in srgb,var(--real) 45%,transparent)}
#landing-view .pf-flag.bad{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 45%,transparent)}
#landing-view .pf-card h3{font:800 1.32rem/1.2 var(--display);letter-spacing:-.01em;margin:0 0 6px;color:var(--ink)}
#landing-view .pf-rule{color:var(--ink-2);font-size:.92rem;line-height:1.55;margin:0 0 18px}

#landing-view .pf-stats{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-bottom:14px}
#landing-view .pf-stat{
  border:1px solid var(--line);border-radius:var(--radius-md);
  padding:12px 12px 10px;background:color-mix(in srgb,var(--surface) 74%,transparent);
}
#landing-view .pf-stat b{display:block;font:800 1.42rem/1 var(--display);letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
#landing-view .pf-stat b i{font:700 .78rem/1 var(--mono);font-style:normal;color:var(--ink-2);margin-left:1px}
#landing-view .pf-stat span{display:block;margin-top:6px;font:600 .62rem/1.35 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
#landing-view .pf-stat.hl{border-color:color-mix(in srgb,var(--real) 36%,var(--line));background:color-mix(in srgb,var(--real) 8%,transparent)}
#landing-view .pf-stat.hl b{color:var(--real)}

#landing-view .pf-mkts{display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:16px}
#landing-view .pf-mkt{
  font:700 .78rem/1 var(--mono);padding:7px 11px;border-radius:var(--radius);
  border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--ink-2);
}
#landing-view .pf-mkt b{color:var(--real);font-weight:800}
#landing-view .pf-mkts em{flex-basis:100%;font:400 .74rem/1.5 var(--font);font-style:italic;color:var(--ink-3)}

#landing-view .pf-decay{display:flex;flex-direction:column;gap:7px;margin-bottom:14px}
#landing-view .pf-decay-row{display:grid;grid-template-columns:minmax(112px,188px) 1fr 44px;align-items:center;gap:10px}
#landing-view .pf-decay-row>span{font:600 .68rem/1.35 var(--mono);color:var(--ink-2)}
#landing-view .pf-decay-row>b{font:800 .82rem/1 var(--mono);color:var(--ink);text-align:right}
#landing-view .pf-bar{position:relative;height:8px;border-radius:var(--radius-pill);background:color-mix(in srgb,var(--ink) 8%,transparent);overflow:hidden}
#landing-view .pf-bar::before{content:"";position:absolute;inset:0;width:var(--w,50%);border-radius:inherit;background:var(--real)}
#landing-view .pf-bar.warn::before{background:var(--marginal)}
#landing-view .pf-bar.bad::before,
#landing-view .pf-bar.dead::before{background:var(--humo)}
#landing-view .pf-bar.dead::before{box-shadow:0 0 10px color-mix(in srgb,var(--humo) 55%,transparent)}
/* bars grow when the card reveals (fx.js adds .fxv) */
html.fx-on #landing-view .pf-card.fx-r:not(.fxv) .pf-bar::before{width:0}
html.fx-on #landing-view .pf-card.fxv .pf-bar::before{width:var(--w,50%);transition:width .9s var(--ease-out) .25s}

#landing-view .pf-punch{
  font:700 .92rem/1.5 var(--display);color:var(--ink);margin:0 0 14px;
  padding:10px 14px;border-left:3px solid var(--humo);
  background:color-mix(in srgb,var(--humo) 7%,transparent);
  border-radius:0 var(--radius-md) var(--radius-md) 0;
}

#landing-view .pf-more{border-top:1px dashed var(--line);padding-top:12px}
#landing-view .pf-more summary{
  cursor:pointer;list-style:none;display:flex;align-items:center;gap:9px;
  font:700 .76rem/1.4 var(--mono);letter-spacing:.05em;color:var(--ink-2);
  transition:color .16s var(--ease);
}
#landing-view .pf-more summary::-webkit-details-marker{display:none}
#landing-view .pf-more summary::before{
  content:"+";flex:none;display:grid;place-items:center;width:18px;height:18px;
  border:1px solid var(--line-2);border-radius:6px;color:var(--accent);font-weight:800;
}
#landing-view .pf-more[open] summary::before{content:"–"}
#landing-view .pf-more summary:hover{color:var(--ink)}
#landing-view .pf-reasons{margin:14px 0 0;padding:0;list-style:none;counter-reset:pf;display:flex;flex-direction:column;gap:12px}
#landing-view .pf-reasons li{position:relative;padding-left:34px;counter-increment:pf}
#landing-view .pf-reasons li::before{
  content:counter(pf,decimal-leading-zero);position:absolute;left:0;top:2px;
  font:800 .66rem/1 var(--mono);color:var(--accent);
}
#landing-view .pf-reasons b{display:block;font-size:.87rem;color:var(--ink);margin-bottom:3px}
#landing-view .pf-reasons span{display:block;font-size:.82rem;line-height:1.6;color:var(--ink-2)}

#landing-view .pf-foot{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin-top:22px;padding:16px 20px;
  border:1px solid var(--line);border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--surface-2) 62%,transparent);
}
#landing-view .pf-foot p{margin:0;font-size:.88rem;color:var(--ink-2)}

/* ============================ COMPARE (vs-) ============================ */
#landing-view .vs-grid{display:grid;grid-template-columns:1fr 1fr 1.14fr;gap:14px;align-items:stretch}
#landing-view .vs-col{
  position:relative;display:flex;flex-direction:column;
  border:1px solid var(--line);border-radius:var(--radius-xl);padding:22px;
  background:linear-gradient(180deg,var(--surface-2),var(--surface));
}
#landing-view .vs-col.vs-hi{
  border-color:color-mix(in srgb,var(--accent) 42%,var(--line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 8%,var(--surface-2)),var(--surface));
  box-shadow:var(--glow);
}
#landing-view .vs-badge{
  position:absolute;top:-11px;left:20px;
  font:800 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;
  padding:6px 12px;border-radius:var(--radius-pill);color:#fff;
  background:linear-gradient(180deg,var(--btn-g1),var(--btn-g2));
  box-shadow:0 6px 18px color-mix(in srgb,var(--btn-g2) 40%,transparent);
}
#landing-view .vs-head{min-height:56px;margin-bottom:12px;padding-bottom:12px;border-bottom:1px solid var(--line)}
#landing-view .vs-head h3{font:800 1.04rem/1.2 var(--display);margin:0 0 4px;color:var(--ink)}
#landing-view .vs-head span{font:600 .64rem/1.4 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
#landing-view .vs-col ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column}
#landing-view .vs-col li{
  display:flex;flex-direction:column;justify-content:center;gap:3px;
  min-height:62px;padding:10px 0;
  border-bottom:1px dashed color-mix(in srgb,var(--line) 85%,transparent);
}
#landing-view .vs-col li:last-of-type{border-bottom:0}
#landing-view .vs-col li em{font:600 .6rem/1.3 var(--mono);font-style:normal;letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
#landing-view .vs-col li span{display:flex;align-items:center;gap:8px;font:600 .87rem/1.4 var(--font);color:var(--ink)}
#landing-view .vs-col li.no span::before,
#landing-view .vs-col li.mid span::before,
#landing-view .vs-col li.yes span::before{
  flex:none;display:grid;place-items:center;width:17px;height:17px;
  border-radius:6px;font:800 .68rem/1 var(--mono);
}
#landing-view .vs-col li.no span::before{content:"✕";color:var(--humo);background:color-mix(in srgb,var(--humo) 13%,transparent)}
#landing-view .vs-col li.mid span::before{content:"~";color:var(--marginal);background:color-mix(in srgb,var(--marginal) 14%,transparent)}
#landing-view .vs-col li.yes span::before{content:"✓";color:var(--real);background:color-mix(in srgb,var(--real) 14%,transparent)}
#landing-view .vs-col li.vs-cost span{font-weight:800}
#landing-view .vs-cta{margin-top:16px;justify-content:center}

/* ============================ PRICING re-skin ============================ */
#landing-view .pricing-toolbar{
  display:flex;align-items:center;justify-content:space-between;gap:16px;flex-wrap:wrap;
  margin:0 0 18px;padding:14px 18px;
  border:1px solid var(--line);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,color-mix(in srgb,var(--surface-2) 80%,transparent),color-mix(in srgb,var(--surface) 55%,transparent));
}
#landing-view .pricing-toolbar>div:first-child{display:flex;flex-direction:column;gap:3px}
#landing-view .pricing-toolbar span{font:700 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
#landing-view .pricing-toolbar b{font:700 .88rem/1.3 var(--font);color:var(--ink)}
#landing-view .billing-toggle{display:inline-flex;gap:4px;padding:4px;border:1px solid var(--line-2);border-radius:var(--radius-pill);background:color-mix(in srgb,var(--surface) 85%,transparent)}
#landing-view .billing-btn{
  appearance:none;border:0;cursor:pointer;border-radius:var(--radius-pill);
  padding:8px 15px;font:700 .74rem/1 var(--mono);letter-spacing:.03em;
  background:transparent;color:var(--ink-2);transition:color .16s var(--ease),background .16s var(--ease);
}
#landing-view .billing-btn:hover{color:var(--ink)}

#landing-view .pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;align-items:stretch}
#landing-view .price-card{
  position:relative;display:flex;flex-direction:column;
  border:1px solid var(--line);border-radius:var(--radius-xl);padding:26px;
  background:linear-gradient(180deg,var(--surface-2),var(--surface));
  box-shadow:var(--elev-1);
}
#landing-view .price-card.featured{
  border-color:color-mix(in srgb,var(--accent) 45%,var(--line));
  background:linear-gradient(180deg,color-mix(in srgb,var(--accent) 9%,var(--surface-2)),var(--surface));
  box-shadow:var(--glow),var(--elev-2);
}
#landing-view .plan-label{font:700 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
#landing-view .price-card h3{font:800 1.34rem/1.2 var(--display);margin:6px 0 0;color:var(--ink)}
#landing-view .price-stack{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin:12px 0 10px}
#landing-view .price{font:800 2.5rem/1 var(--display);letter-spacing:-.03em;color:var(--ink)}
#landing-view .price span{font:700 .95rem/1 var(--mono);letter-spacing:0;color:var(--ink-2)}
#landing-view .old-price{font:600 .95rem/1 var(--mono);color:var(--ink-3);text-decoration:line-through}
#landing-view .deal-note{
  font:700 .58rem/1.3 var(--mono);letter-spacing:.1em;text-transform:uppercase;
  color:var(--accent);padding:4px 9px;border-radius:var(--radius-pill);
  border:1px solid color-mix(in srgb,var(--accent) 32%,transparent);
  background:color-mix(in srgb,var(--accent) 8%,transparent);
}
#landing-view .price-card>p{margin:0 0 16px;font-size:.85rem;line-height:1.55;color:var(--ink-2);min-height:40px}
#landing-view .sales-list{
  list-style:none;margin:0 0 20px;padding:14px 0 0;
  border-top:1px dashed var(--line);display:flex;flex-direction:column;gap:9px;
}
#landing-view .sales-list li{position:relative;padding-left:25px;font:600 .84rem/1.4 var(--font);color:var(--ink)}
#landing-view .sales-list li::before{
  content:"✓";position:absolute;left:0;top:1px;display:grid;place-items:center;
  width:17px;height:17px;border-radius:6px;font:800 .66rem/1 var(--mono);
  color:var(--real);background:color-mix(in srgb,var(--real) 13%,transparent);
}
#landing-view .price-card .btn-block{margin-top:auto;justify-content:center;width:100%}
#landing-view .pricing-proof-strip{
  margin-top:18px;display:flex;align-items:center;justify-content:center;gap:12px;flex-wrap:wrap;
  padding:14px 18px;border:1px dashed color-mix(in srgb,var(--accent) 30%,var(--line));
  border-radius:var(--radius-lg);background:color-mix(in srgb,var(--accent) 5%,transparent);
}
#landing-view .pricing-proof-strip span{font:700 .6rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-3)}
#landing-view .pricing-proof-strip b{font:700 .9rem/1.4 var(--font);color:var(--ink)}

/* ============================ FAQ re-skin ============================ */
#landing-view .faq-list{display:grid;grid-template-columns:1fr 1fr;gap:12px;align-items:start}
#landing-view .faq-item{
  border:1px solid var(--line);border-radius:var(--radius-lg);
  background:linear-gradient(180deg,var(--surface-2),var(--surface));
  padding:0 18px;transition:border-color .2s var(--ease);
}
#landing-view .faq-item[open]{border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}
#landing-view .faq-item summary{
  position:relative;cursor:pointer;list-style:none;
  padding:15px 30px 15px 0;font:700 .9rem/1.4 var(--font);color:var(--ink);
}
#landing-view .faq-item summary::-webkit-details-marker{display:none}
#landing-view .faq-item summary::after{
  content:"+";position:absolute;right:0;top:50%;translate:0 -50%;
  display:grid;place-items:center;width:20px;height:20px;
  border:1px solid var(--line-2);border-radius:7px;
  color:var(--accent);font-weight:800;font-size:.85rem;
  transition:transform .25s var(--ease);
}
#landing-view .faq-item[open] summary::after{transform:rotate(45deg)}
#landing-view .faq-a p{margin:0;padding:0 0 16px;font-size:.84rem;line-height:1.62;color:var(--ink-2)}

/* ============================ FINAL CTA re-skin ============================ */
#landing-view .cta-final{
  position:relative;overflow:hidden;text-align:center;
  padding:60px 36px 54px;border:1px solid color-mix(in srgb,var(--accent) 22%,var(--line));
  border-radius:24px;
  background:
    radial-gradient(720px 300px at 50% -30%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 65%),
    linear-gradient(180deg,var(--surface-2),var(--surface));
  box-shadow:var(--elev-2);
}
#landing-view .cta-final .eyebrow{display:inline-block;margin-bottom:12px}
#landing-view .cta-final h2{font:800 clamp(1.8rem,3.6vw,2.6rem)/1.14 var(--display);letter-spacing:-.02em;margin:0;color:var(--ink)}
#landing-view .cta-final h2 span,
#landing-view .cta-final h2 em{display:block;font-style:normal}
#landing-view .cta-final h2 em{
  background:linear-gradient(92deg,var(--accent-hi),var(--accent));
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
#landing-view .cta-btns{display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap;margin-top:24px}
#landing-view .cta-note{margin:16px 0 0;font:600 .68rem/1.5 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}

/* ============================ FOOTER (ft-) ============================ */
footer.ft{
  position:relative;z-index:1;overflow:hidden;
  margin-top:0;padding:64px 0 0;border-top:1px solid var(--line);
  background:
    radial-gradient(1000px 460px at 50% 120%,color-mix(in srgb,var(--accent) 10%,transparent),transparent 62%),
    linear-gradient(180deg,var(--bg),color-mix(in srgb,var(--bg-2) 86%,var(--surface)));
}
footer.ft::before{
  content:"";position:absolute;top:0;left:8%;right:8%;height:1px;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 45%,transparent),transparent);
}
footer.ft::after{content:none}
.ft-glow{
  position:absolute;left:50%;bottom:-10%;width:min(920px,84vw);height:300px;
  transform:translateX(-50%);pointer-events:none;
  background:radial-gradient(closest-side,color-mix(in srgb,var(--accent) 15%,transparent),transparent 72%);
  filter:blur(28px);opacity:.55;
}
footer.ft .ft-top{
  position:relative;z-index:2;
  display:grid;grid-template-columns:minmax(250px,1.05fr) 1.6fr;gap:44px;
  padding-bottom:34px;
}
.ft-brand{display:flex;flex-direction:column;gap:14px;align-items:flex-start}
.ft-tag{margin:0;color:var(--ink-2);font-size:.9rem;line-height:1.6;max-width:30ch}
.ft-verdicts{display:flex;gap:7px}
.ft-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;align-content:start}
.ft-col{display:flex;flex-direction:column;gap:11px;align-items:flex-start}
.ft-col b{font:700 .62rem/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-3);margin-bottom:4px}
.ft-col a{position:relative;color:var(--ink-2);font-size:.88rem;line-height:1.35;transition:color .16s var(--ease)}
.ft-col a::after{content:"";position:absolute;left:0;bottom:-2px;width:0;height:1px;background:var(--accent);transition:width .22s var(--ease)}
.ft-col a:hover{color:var(--ink)}
.ft-col a:hover::after{width:100%}
footer.ft .ft-meta{
  position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:14px;flex-wrap:wrap;
  padding-top:16px;padding-bottom:14px;border-top:1px solid var(--line);
}
.ft-data{margin:0;display:flex;align-items:center;gap:9px;font:600 .7rem/1.5 var(--mono);letter-spacing:.04em;color:var(--ink-2)}
.ft-dot{flex:none;width:7px;height:7px;border-radius:50%;background:var(--real);animation:ftPulse 2.8s var(--ease) infinite}
@keyframes ftPulse{
  0%{box-shadow:0 0 0 0 color-mix(in srgb,var(--real) 55%,transparent)}
  70%{box-shadow:0 0 0 8px transparent}
  100%{box-shadow:0 0 0 0 transparent}
}
.ft-copy{font:700 .66rem/1 var(--mono);letter-spacing:.08em;color:var(--ink-3);white-space:nowrap}
footer.ft .ft-legal{position:relative;z-index:2;padding-bottom:6px}
footer.ft .ft-legal p{margin:0;font-size:.72rem;line-height:1.62;color:var(--ink-3);max-width:92ch}

/* ---- the giant halftone wordmark ---- */
.ft-mark{
  position:relative;z-index:1;height:.76em;margin-top:30px;
  font-family:var(--display);font-weight:800;
  font-size:clamp(64px,13.2vw,218px);line-height:1;letter-spacing:-.035em;
  user-select:none;pointer-events:none;
}
.ft-mk{position:absolute;left:50%;bottom:-.15em;transform:translateX(-50%);white-space:nowrap}
.ft-mk-base{color:transparent;-webkit-text-stroke:1.5px color-mix(in srgb,var(--ink) 24%,transparent)}
.ft-mk-base span{
  display:inline-block;opacity:0;transform:translateY(.3em);
  transition:transform .75s var(--ease-out) calc(var(--i,0)*55ms),opacity .75s var(--ease-out) calc(var(--i,0)*55ms);
}
footer.ftv .ft-mk-base span{opacity:1;transform:none}
.ft-mk-fill{
  background-image:
    radial-gradient(circle,color-mix(in srgb,var(--accent) 90%,#fff) 1.1px,transparent 1.55px),
    linear-gradient(180deg,var(--accent-hi),var(--accent) 58%,color-mix(in srgb,var(--accent) 55%,var(--accent-deep)));
  background-size:7px 7px,100% 100%;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  -webkit-mask-image:radial-gradient(240px circle at var(--mx,50%) var(--my,62%),#000 30%,transparent 72%);
  mask-image:radial-gradient(240px circle at var(--mx,50%) var(--my,62%),#000 30%,transparent 72%);
  opacity:0;transition:opacity .45s var(--ease);
}
footer.ft-lit .ft-mk-fill{opacity:1}
.ft-mk-scan{
  background:linear-gradient(100deg,transparent 42%,color-mix(in srgb,var(--accent) 78%,#fff) 50%,transparent 58%);
  background-size:280% 100%;background-position:100% 0;background-repeat:no-repeat;
  -webkit-background-clip:text;background-clip:text;color:transparent;
  opacity:.5;
}
footer.ft-live .ft-mk-scan{animation:ftScan 7s linear infinite}
@keyframes ftScan{
  0%{background-position:100% 0}
  58%{background-position:0% 0}
  100%{background-position:0% 0}
}
/* coarse pointers: no cursor — breathe the fill from the center instead */
footer.ft-auto .ft-mk-fill{
  opacity:.8;
  -webkit-mask-image:radial-gradient(48% 140% at 50% 64%,#000 32%,transparent 80%);
  mask-image:radial-gradient(48% 140% at 50% 64%,#000 32%,transparent 80%);
  animation:ftBreathe 5.5s ease-in-out infinite alternate;
}
@keyframes ftBreathe{from{opacity:.5}to{opacity:.95}}
/* reduced motion: everything visible, nothing moves */
footer.ft-static .ft-mk-base span{opacity:1;transform:none;transition:none}
footer.ft-static .ft-mk-scan{animation:none}
footer.ft-static .ft-dot{animation:none}
footer.ft-static .ft-mk-fill{
  opacity:.75;transition:none;
  -webkit-mask-image:radial-gradient(48% 140% at 50% 64%,#000 32%,transparent 80%);
  mask-image:radial-gradient(48% 140% at 50% 64%,#000 32%,transparent 80%);
}

/* light theme: same skeleton, ink-adjusted */
[data-theme="light"] footer.ft{
  background:
    radial-gradient(1000px 460px at 50% 120%,color-mix(in srgb,var(--accent) 7%,transparent),transparent 62%),
    linear-gradient(180deg,var(--bg),var(--surface-2));
}
[data-theme="light"] .ft-mk-base{-webkit-text-stroke-color:color-mix(in srgb,var(--ink) 20%,transparent)}
[data-theme="light"] .ft-mk-fill{
  background-image:
    radial-gradient(circle,color-mix(in srgb,var(--accent) 85%,#052) 1.1px,transparent 1.55px),
    linear-gradient(180deg,var(--accent-hi),var(--accent) 58%,color-mix(in srgb,var(--accent) 70%,#052));
}
[data-theme="light"] .ft-mk-scan{opacity:.7}
[data-theme="light"] .ft-glow{opacity:.35}

/* ============================ responsive ============================ */
@media (max-width:1080px){
  #landing-view .vs-grid{grid-template-columns:1fr 1fr 1.14fr;gap:10px}
  #landing-view .vs-col{padding:18px}
}
@media (max-width:980px){
  #landing-view .pf-duel{grid-template-columns:1fr}
  #landing-view .vs-grid{grid-template-columns:1fr;max-width:560px;margin:0 auto}
  #landing-view .vs-head{min-height:0}
  #landing-view .vs-col li{min-height:0}
  #landing-view .pricing-grid{grid-template-columns:1fr;max-width:520px;margin:0 auto}
  #landing-view .faq-list{grid-template-columns:1fr}
  footer.ft .ft-top{grid-template-columns:1fr;gap:30px}
}
@media (max-width:760px){
  #landing-view .pf-card{padding:20px 18px 18px}
  #landing-view .pf-stats{gap:8px}
  #landing-view .pf-stat b{font-size:1.18rem}
  #landing-view .pf-decay-row{grid-template-columns:minmax(96px,1fr) 1fr 40px;gap:8px}
  #landing-view .pf-foot{flex-direction:column;text-align:center}
  #landing-view .pf-foot .btn{width:100%;justify-content:center}
  #landing-view .pricing-toolbar{flex-direction:column;align-items:flex-start}
  #landing-view .cta-final{padding:44px 20px 40px}
  footer.ft{padding-top:46px}
  .ft-cols{grid-template-columns:repeat(2,minmax(130px,1fr));gap:22px 16px}
  footer.ft .ft-meta{flex-direction:column;align-items:flex-start;gap:10px}
  .ft-mark{margin-top:18px}
}
@media (prefers-reduced-motion:reduce){
  .ft-mk-base span{opacity:1;transform:none;transition:none}
  .ft-mk-scan,.ft-dot{animation:none!important}
}

/* ---- v358 addendum: pricing split-head flows as a block (the old 2-col grid
   crushed the h2 into a 300px column), and the duel's verdict stamp placement
   is made explicit (a legacy layer was pushing .tag right via margin-left:auto
   — keep the look, own the rule). ---- */
#landing-view .pricing-section .section-head.split{display:block}
#landing-view .pricing-section .section-head.split h2{max-width:24ch}
#landing-view .pricing-section .section-head.split>p{margin:12px 0 0;max-width:52ch;color:var(--ink-2);font-size:.95rem;line-height:1.6}
#landing-view .pf-tags{justify-content:flex-end}
#landing-view .pf-tags .tag{margin-left:0}
#landing-view .pf-tags .pf-flag{margin-left:0}
#landing-view .cta-note{text-align:center;max-width:none;margin-left:auto;margin-right:auto}


/* ==========================================================================
   ACADEMY PROFESSIONAL WORKSPACE v359 → v380 chrome parity with Games
   Compact course header + continuous curriculum rail + wide reader.
   Title block (kicker / h1 / lead) matches .gy-chrome pixel metrics.
   ========================================================================== */
body.is-academy .aca-page{padding:clamp(14px,2.6vh,28px) 0 64px;overflow-x:clip;overflow-y:visible}
body.is-academy .aca-shell{width:min(100% - var(--tool-gut),var(--tool-w))!important}
body.is-academy .aca-chrome{
  max-width:none;min-height:0;display:grid;
  grid-template-columns:minmax(340px,560px) minmax(0,1fr);
  align-items:start;gap:clamp(28px,4vw,64px);
  margin:0 0 clamp(14px,2.2vh,20px);
  padding:4px 2px 0;
  background:transparent!important;border:0!important;box-shadow:none!important;
  backdrop-filter:none!important;-webkit-backdrop-filter:none!important;
}
body.is-academy .aca-chrome-copy{
  min-width:0;max-width:min(560px,100%);
  display:flex;flex-direction:column;align-items:flex-start;gap:0;
}
body.is-academy .aca-kicker{
  display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin:0 0 12px;
}
body.is-academy .aca-live-dot{
  width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;
  background:var(--accent);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);
  animation:ax-pulse 2s ease-in-out infinite;
}
body.is-academy .aca-eyebrow{
  font-family:var(--mono);font-size:10.5px;font-weight:800;
  letter-spacing:.18em;text-transform:uppercase;color:var(--ink-3);margin:0;
}
body.is-academy .aca-chrome h1,
body.is-academy .aca-chrome-copy h1{
  margin:0 0 8px;max-width:18ch;
  font-family:var(--display);font-size:clamp(26px,3.2vw,36px);
  line-height:1.05;font-weight:780;letter-spacing:-.03em;color:var(--ink);
}
body.is-academy .aca-chrome>p{display:none}
body.is-academy .aca-chrome-copy>p{
  margin:0;max-width:46ch;font-size:14.5px;line-height:1.55;color:var(--ink-2);
  font-weight:450;
}
body.is-academy .aca-hud{
  display:grid;grid-template-columns:auto auto auto minmax(120px,1fr) auto;
  align-items:center;gap:clamp(13px,1.7vw,22px);margin:0;padding-top:2px;
}
body.is-academy .aca-hud-stat{min-width:58px;padding-right:clamp(10px,1.5vw,20px);border-right:1px solid var(--line)}
body.is-academy .aca-hud-stat b{font-size:1rem}
body.is-academy .aca-hud-stat span{font-size:.5rem}
body.is-academy .aca-hud-barwrap{min-width:120px}
body.is-academy .aca-hud-bar{height:5px}
body.is-academy .aca-hud-hint{font-size:.48rem;white-space:nowrap}
body.is-academy .aca-continue{min-height:43px;padding:11px 19px;white-space:nowrap}
body.is-academy .aca-layout{display:grid;grid-template-columns:330px minmax(0,1fr);gap:16px;margin-top:24px;align-items:start}
body.is-academy .aca-mobile-nav{display:none}

body.is-academy .aca-map{
  position:sticky;top:calc(var(--nav-h) + 14px);display:block;max-height:none;overflow:visible;padding:0;
  border:1px solid var(--line-2);border-radius:16px;background:color-mix(in srgb,var(--bg) 88%,var(--surface-2));
  scrollbar-width:auto;overflow-anchor:none
}
body.is-academy .aca-map-top{
  height:46px;display:flex;align-items:center;justify-content:space-between;padding:0 16px;
  border-bottom:1px solid var(--line);color:var(--ink-3);font:750 .56rem/1 var(--mono);letter-spacing:.17em
}
body.is-academy .aca-map-top b{color:var(--ink-2);font-size:.62rem;letter-spacing:.06em}
body.is-academy .aca-map-list{display:block}
body.is-academy .aca-blk{
  position:relative;border:0;border-bottom:1px solid var(--line);border-radius:0;
  background:transparent;overflow:visible;filter:none
}
body.is-academy .aca-blk:last-child{border-bottom:0}
body.is-academy .aca-blk.pro{border-style:solid;border-color:var(--line)}
body.is-academy .aca-blk.locked{opacity:.46;filter:none}
body.is-academy .aca-blk.open{background:color-mix(in srgb,var(--accent) 4%,transparent);box-shadow:inset 2px 0 0 var(--accent)}
body.is-academy .aca-blk-head{
  min-height:54px;display:grid;grid-template-columns:28px minmax(0,1fr) auto auto 16px;
  align-items:center;gap:8px;padding:10px 13px;border:0!important
}
body.is-academy .aca-blk-head:hover:not(:disabled){background:color-mix(in srgb,var(--accent) 4%,transparent)}
body.is-academy .aca-blk-no{font-size:.66rem}
body.is-academy .aca-blk-t b{font-size:.78rem}
body.is-academy .aca-blk-t small{display:none}
body.is-academy .aca-blk-tag{font-size:.44rem;padding:4px 6px}
body.is-academy .aca-blk-n{font-size:.56rem}
body.is-academy .aca-blk-car{width:14px;height:14px}
body.is-academy .aca-blk-bar{height:1px}
body.is-academy .aca-blk-lessons{display:flex;flex-direction:column;gap:0;padding:0 12px 8px 45px;overflow:visible}
body.is-academy .aca-blk:not(.open) .aca-blk-lessons{display:none}
body.is-academy .aca-blk-lessons::before{left:27px;top:5px;bottom:16px;width:1px;opacity:.55}
body.is-academy .aca-node{
  min-height:42px;display:grid;grid-template-columns:12px minmax(0,1fr);align-items:center;
  gap:9px;padding:7px 9px;border-radius:8px
}
body.is-academy .aca-node+.aca-node{border-top:1px solid color-mix(in srgb,var(--line) 72%,transparent)}
body.is-academy .aca-node-dot{width:10px;height:10px;margin:0;border-width:1px;font-size:0}
body.is-academy .aca-node-t{display:flex;align-items:center;justify-content:space-between;gap:8px}
body.is-academy .aca-node-t b{font-size:.71rem;line-height:1.25}
body.is-academy .aca-node-t small{flex:none;margin:0;font-size:.5rem;white-space:nowrap}
body.is-academy .aca-node.cur{
  background:color-mix(in srgb,var(--accent) 11%,transparent);
  box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 38%,transparent)
}

body.is-academy .aca-reader{
  min-width:0;min-height:620px;padding:0;border-radius:16px;
  background:color-mix(in srgb,var(--bg) 90%,var(--surface-2));
  -webkit-backdrop-filter:none;backdrop-filter:none;overflow:clip
}
body.is-academy .aca-welcome{padding:clamp(26px,3.2vw,42px)}
body.is-academy .aca-reader-titlebar{
  min-height:102px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:20px clamp(24px,3vw,34px);border-bottom:1px solid var(--line)
}
body.is-academy .aca-reader-titlebar>div{min-width:0}
body.is-academy .aca-reader-titlebar .aca-l-kicker{margin-bottom:9px}
body.is-academy .aca-reader-titlebar h2{
  margin:0;font:800 clamp(1.45rem,2.5vw,2rem)/1.08 var(--display);letter-spacing:-.025em
}
body.is-academy .aca-reader-titlebar>.aca-l-mins{
  flex:none;padding:7px 10px;border:1px solid var(--line-2);border-radius:99px;color:var(--ink-2)
}
body.is-academy .aca-body{max-width:74ch;padding:clamp(24px,3vw,34px) clamp(24px,3.3vw,38px) 4px}
body.is-academy .aca-body p{font-size:.94rem;line-height:1.78}
body.is-academy .aca-key{margin-top:18px}
body.is-academy .aca-tool,
body.is-academy .aca-quiz,
body.is-academy .aca-mission{margin-left:clamp(24px,3.3vw,38px);margin-right:clamp(24px,3.3vw,38px)}
body.is-academy .aca-l-foot{
  position:sticky;bottom:0;z-index:4;margin:26px 0 0;padding:16px clamp(20px,3vw,30px);
  border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 96%,var(--surface-2))
}
body.is-academy .aca-l-foot .btn{min-height:40px}
body.is-academy .aca-map button:focus-visible,
body.is-academy .aca-reader button:focus-visible,
body.is-academy .aca-map-toggle:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

@media (max-width:1120px) and (min-width:981px){
  body.is-academy .aca-chrome{grid-template-columns:minmax(300px,410px) minmax(0,1fr);gap:24px}
  body.is-academy .aca-hud{grid-template-columns:auto auto auto minmax(90px,1fr)}
  body.is-academy .aca-continue{grid-column:1/-1;justify-self:end}
  body.is-academy .aca-layout{grid-template-columns:300px minmax(0,1fr)}
}
@media (max-width:980px){
  body.is-academy .aca-page{padding:clamp(14px,2.6vh,28px) 0 48px}
  body.is-academy .aca-shell{width:min(100% - 28px,var(--tool-w))!important}
  body.is-academy .aca-chrome{min-height:0;grid-template-columns:1fr;gap:18px;margin-bottom:12px}
  body.is-academy .aca-chrome-copy{max-width:100%}
  body.is-academy .aca-chrome-copy>p{max-width:46ch}
  body.is-academy .aca-hud{grid-template-columns:repeat(3,auto) minmax(100px,1fr) auto}
  body.is-academy .aca-layout{display:block;margin-top:18px}
  body.is-academy .aca-mobile-nav{
    position:sticky;top:calc(var(--nav-h) + 8px);z-index:20;min-height:48px;
    display:grid;grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:10px;
    margin-bottom:10px;padding:7px 9px;border:1px solid var(--line-2);border-radius:12px;background:var(--bg)
  }
  body.is-academy .aca-map-toggle{
    min-height:32px;padding:0 10px;border:1px solid color-mix(in srgb,var(--accent) 40%,var(--line-2));
    border-radius:8px;background:color-mix(in srgb,var(--accent) 8%,transparent);
    color:var(--accent);font:750 .64rem/1 var(--mono)
  }
  body.is-academy .aca-mobile-location{
    min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
    color:var(--ink-2);font:650 .66rem/1 var(--mono)
  }
  body.is-academy .aca-mobile-progress{color:var(--ink-3);font:750 .62rem/1 var(--mono)}
  body.is-academy .aca-map{position:static;display:block;margin-bottom:12px}
  body.is-academy .academy-view.is-reading .aca-map{display:none}
  body.is-academy .academy-view.is-reading.aca-map-open .aca-map{display:block}
  body.is-academy .aca-reader{min-height:520px}
}
@media (max-width:640px){
  body.is-academy .aca-page{padding-top:10px}
  body.is-academy .aca-shell{width:calc(100% - 20px)!important}
  body.is-academy .academy-view.is-reading .aca-chrome{display:none}
  body.is-academy .aca-hud{grid-template-columns:repeat(3,1fr);gap:10px}
  body.is-academy .aca-hud-stat{padding:0;border:0}
  body.is-academy .aca-hud-barwrap{grid-column:1/-1}
  body.is-academy .aca-continue{grid-column:1/-1;width:100%;justify-content:center}
  body.is-academy .aca-map-top{height:42px}
  body.is-academy .aca-blk-head{grid-template-columns:24px minmax(0,1fr) auto 14px;padding:9px 10px}
  body.is-academy .aca-blk-tag{display:none}
  body.is-academy .aca-blk-lessons{padding-left:35px;padding-right:8px}
  body.is-academy .aca-blk-lessons::before{left:21px}
  body.is-academy .aca-node{padding-inline:7px}
  body.is-academy .aca-node-t{display:block}
  body.is-academy .aca-node-t small{display:block;margin-top:3px}
  body.is-academy .aca-reader{border-radius:13px}
  body.is-academy .aca-reader-titlebar{min-height:90px;padding:16px 17px}
  body.is-academy .aca-reader-titlebar h2{font-size:1.35rem}
  body.is-academy .aca-reader-titlebar>.aca-l-mins{padding:6px 8px;font-size:.54rem}
  body.is-academy .aca-body{padding:20px 18px 2px}
  body.is-academy .aca-body p{font-size:.9rem;line-height:1.72}
  body.is-academy .aca-tool,
  body.is-academy .aca-quiz,
  body.is-academy .aca-mission{margin-left:17px;margin-right:17px}
  body.is-academy .aca-l-foot{position:static;flex-direction:column;align-items:stretch;padding:14px 16px}
  body.is-academy .aca-l-foot .btn{width:100%;max-width:none;justify-content:center}
}

/* ============================================================================
   PRICING HYBRID + CREDITS v361 — the money layer (backend/billing.py).
   Landing #pricing goes 3→4 cards (Free / Packs / Pro / Lifetime), the header
   account button gets a live credit badge, the account popover a balance row,
   and the analyzer/reverse gates (401/402/429) get their panels. Append-only;
   landing bits are #landing-view-prefixed so they outrank mid-file chains.
   ============================================================================ */
#landing-view .pricing-grid.plans4{grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:stretch}
#landing-view .plans4 .price-card{display:flex;flex-direction:column;min-width:0}
#landing-view .plans4 .price-card>p{flex:0 0 auto}
#landing-view .plans4 .sales-list{margin-top:auto}
#landing-view .plans4 .price-card>.btn,#landing-view .plans4 .price-card>a.btn{margin-top:14px}
#landing-view .plans4 .price-card h3{white-space:nowrap}
#landing-view .pack-rows{display:flex;flex-direction:column;gap:8px;margin:14px 0 4px}
#landing-view .pack-row{display:flex;align-items:center;gap:10px;padding:9px 11px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
#landing-view .pack-row b{font-family:var(--mono);font-size:.98rem;min-width:44px;color:var(--ink)}
#landing-view .pack-row>span{flex:1;min-width:0;font-size:.78rem;color:var(--ink-2);letter-spacing:.01em}
#landing-view .pack-row .pack-buy{padding:6px 12px;font-size:.72rem;border-radius:9px;flex:0 0 auto}
#landing-view .pack-row.hot{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 24%,transparent) inset}
#landing-view .pack-row.hot b{color:var(--accent)}
#landing-view #lifetime-left{color:var(--accent);font-weight:600}
@media (max-width:1160px){
  #landing-view .pricing-grid.plans4{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:640px){
  #landing-view .pricing-grid.plans4{grid-template-columns:1fr}
}

/* ==========================================================================
   ACADEMY v2 — one clear next lesson, readable ideas and calm curriculum
   ========================================================================== */
body.is-academy .aca-page{padding-bottom:72px!important}
body.is-academy .aca-chrome{
  grid-template-columns:minmax(0,1.22fr) minmax(360px,.78fr);
  align-items:center;gap:clamp(34px,5vw,76px);margin-bottom:18px;min-height:190px;
}
body.is-academy .aca-chrome-copy h1{
  max-width:13ch;margin-bottom:11px;
  font-size:clamp(42px,5vw,64px);line-height:.99;letter-spacing:-.055em;
}
body.is-academy .aca-chrome-copy>p{max-width:48ch;font-size:15px;line-height:1.58}

body.is-academy .aca-hud{
  display:flex;flex-direction:column;align-items:stretch;gap:13px;margin:0;padding:17px 18px;
  border:1px solid var(--line-2);border-radius:20px;
  background:color-mix(in srgb,var(--surface) 95%,var(--bg));
  box-shadow:0 18px 52px rgba(0,0,0,.12);
}
body.is-academy .aca-hud-head{display:flex;align-items:center;justify-content:space-between;gap:14px;padding-bottom:10px;border-bottom:1px solid var(--line)}
body.is-academy .aca-hud-head span{color:var(--ink);font:760 12px/1 var(--font)}
body.is-academy .aca-hud-head em{color:var(--ink-3);font:700 9px/1 var(--mono);font-style:normal;letter-spacing:.1em;text-transform:uppercase}
body.is-academy .aca-hud-main{display:flex;align-items:center;gap:16px}
body.is-academy .aca-hud-main>strong{color:var(--accent);font:900 2.55rem/1 var(--mono);letter-spacing:-.06em}
body.is-academy .aca-hud-main>span{display:flex;flex-direction:column;gap:5px}
body.is-academy .aca-hud-main b{color:var(--ink);font:760 12px/1 var(--font)}
body.is-academy .aca-hud-main small{color:var(--ink-3);font:700 9.5px/1.25 var(--mono);letter-spacing:.07em;text-transform:uppercase}
body.is-academy .aca-hud-barwrap{display:flex;flex-direction:column;gap:7px;min-width:0;width:100%}
body.is-academy .aca-hud-bar{width:100%;height:6px;background:var(--line)}
body.is-academy .aca-hud-hint{font-size:9px;letter-spacing:.08em;white-space:normal}
body.is-academy .aca-continue{
  width:100%;min-height:47px;display:flex;align-items:center;justify-content:space-between;
  padding:0 16px;border-radius:12px;font-size:12.5px;
}
body.is-academy .aca-continue b{font-size:17px}

body.is-academy .aca-method-flow{
  min-height:70px;display:grid;grid-template-columns:1fr 32px 1fr 32px 1fr;align-items:center;gap:8px;
  margin-bottom:18px;padding:7px;border:1px solid var(--line);border-radius:18px;
  background:color-mix(in srgb,var(--surface) 95%,var(--bg));
  box-shadow:0 12px 36px rgba(0,0,0,.07);
}
body.is-academy .aca-method-flow>div{min-width:0;display:flex;align-items:center;gap:12px;padding:10px 12px;border-radius:12px}
body.is-academy .aca-method-flow>div.is-active{background:color-mix(in srgb,var(--accent) 11%,var(--surface-2))}
body.is-academy .aca-method-flow i{
  width:32px;height:32px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:10px;
  color:var(--ink-3);font:800 10px/1 var(--mono);font-style:normal;
}
body.is-academy .aca-method-flow .is-active i{border-color:var(--accent);background:var(--accent);color:#0b1608}
body.is-academy .aca-method-flow span:not(.aca-method-link){min-width:0;display:flex;flex-direction:column;gap:4px}
body.is-academy .aca-method-flow b{color:var(--ink);font:760 11.5px/1.15 var(--font)}
body.is-academy .aca-method-flow small{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-3);font:650 8.5px/1 var(--mono)}
body.is-academy .aca-method-link{height:1px;background:var(--line-2)}

body.is-academy .aca-layout{grid-template-columns:286px minmax(0,1fr);gap:18px;margin-top:0}
body.is-academy .aca-map{
  top:calc(var(--nav-h) + 12px);max-height:calc(100vh - var(--nav-h) - 24px);overflow:auto;
  border-radius:20px;background:color-mix(in srgb,var(--surface) 96%,var(--bg));
  box-shadow:0 14px 42px rgba(0,0,0,.08);scrollbar-width:thin;
}
body.is-academy .aca-map-top{height:50px;padding:0 15px;background:color-mix(in srgb,var(--surface-2) 78%,var(--bg))}
body.is-academy .aca-blk-head{min-height:56px;grid-template-columns:26px minmax(0,1fr) auto auto 14px;padding:10px 12px}
body.is-academy .aca-blk.open{box-shadow:inset 3px 0 0 var(--accent)}
body.is-academy .aca-blk-t b{font-size:.76rem}
body.is-academy .aca-blk-tag{font-size:.42rem}
body.is-academy .aca-blk-lessons{padding:0 10px 9px 38px}
body.is-academy .aca-blk-lessons::before{left:22px}
body.is-academy .aca-node{min-height:44px;padding:7px 8px}
body.is-academy .aca-node.cur{border-radius:10px;background:color-mix(in srgb,var(--accent) 12%,var(--surface-2));box-shadow:none}

body.is-academy .aca-reader{
  min-height:680px;border-radius:24px;border-color:var(--line-2);
  background:color-mix(in srgb,var(--surface) 98%,var(--bg));
  box-shadow:0 24px 70px rgba(0,0,0,.1);
}
body.is-academy .aca-reader-titlebar{
  min-height:124px;padding:24px clamp(27px,3.4vw,42px);border-bottom:1px solid var(--line);
}
body.is-academy .aca-reader-titlebar .aca-l-kicker{margin-bottom:10px}
body.is-academy .aca-l-position{
  padding-right:9px;border-right:1px solid var(--line-2);
  color:var(--ink-3);font:800 .52rem/1 var(--mono);letter-spacing:.11em;text-transform:uppercase;
}
body.is-academy .aca-reader-titlebar h2{max-width:23ch;font-size:clamp(29px,3.2vw,42px);line-height:1;letter-spacing:-.045em}
body.is-academy .aca-reader-titlebar>.aca-l-mins{padding:8px 11px;font-size:.58rem}

body.is-academy .aca-lesson-flow{
  display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;
  margin:20px clamp(27px,3.4vw,42px) 0;padding:5px;border:1px solid var(--line);border-radius:14px;
  background:color-mix(in srgb,var(--surface-2) 72%,var(--bg));
}
body.is-academy .aca-lesson-flow>span{min-height:42px;display:flex;align-items:center;justify-content:center;gap:8px;padding:7px;border-radius:10px}
body.is-academy .aca-lesson-flow>span.is-on{background:color-mix(in srgb,var(--accent) 12%,var(--surface-2))}
body.is-academy .aca-lesson-flow i{
  width:24px;height:24px;flex:none;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:8px;
  color:var(--ink-3);font:800 9px/1 var(--mono);font-style:normal;
}
body.is-academy .aca-lesson-flow .is-on i{border-color:var(--accent);background:var(--accent);color:#0b1608}
body.is-academy .aca-lesson-flow b{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--ink-2);font:720 10px/1 var(--font)}
body.is-academy .aca-lesson-flow .is-on b{color:var(--ink)}

body.is-academy .aca-key-focus{
  margin:18px clamp(27px,3.4vw,42px) 0;padding:16px 18px;border:1px solid color-mix(in srgb,var(--accent) 36%,var(--line));
  border-radius:16px;background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));
}
body.is-academy .aca-key-focus>span{
  display:block;margin-bottom:8px;color:var(--accent);
  font:800 8.5px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;
}
body.is-academy .aca-key-focus .aca-key{margin:0;padding:0;border:0;background:transparent;color:var(--ink);font-size:14px;line-height:1.55}
body.is-academy .aca-body{max-width:69ch;padding:28px clamp(27px,3.4vw,42px) 4px}
body.is-academy .aca-body p{font-size:15px;line-height:1.8;margin-bottom:18px}
body.is-academy .aca-tool,
body.is-academy .aca-quiz,
body.is-academy .aca-mission{margin-left:clamp(27px,3.4vw,42px);margin-right:clamp(27px,3.4vw,42px);border-radius:18px}
body.is-academy .aca-quiz{padding:20px;margin-top:24px;background:color-mix(in srgb,var(--surface-2) 72%,var(--bg))}
body.is-academy .aca-qz-head{margin-bottom:11px}
body.is-academy .aca-qz-head b{font-size:1rem}
body.is-academy .aca-q{margin:18px 0}
body.is-academy .aca-q-t{font-size:.88rem}
body.is-academy .aca-opt{min-height:43px;padding:11px 13px;border-radius:11px;background:color-mix(in srgb,var(--surface) 92%,var(--bg));font-size:.82rem;line-height:1.42}
body.is-academy .aca-l-foot{
  position:static;margin:28px 0 0;padding:18px clamp(22px,3vw,34px);
  display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);align-items:center;
  background:color-mix(in srgb,var(--surface-2) 72%,var(--bg));
}
body.is-academy .aca-l-foot>*:last-child{justify-self:end}
body.is-academy .aca-l-foot #aca-complete{min-height:46px}
body.is-academy .aca-nav-btn{max-width:100%;font-size:10.5px}
body.is-academy .aca-welcome{padding:clamp(32px,4vw,54px)}
body.is-academy .aca-welcome h2{max-width:20ch;font-size:clamp(30px,4vw,46px);line-height:1.02;letter-spacing:-.045em}
body.is-academy .aca-welcome>p{max-width:62ch;font-size:.92rem}

[data-theme="light"] body.is-academy .aca-hud,
[data-theme="light"] body.is-academy .aca-method-flow,
[data-theme="light"] body.is-academy .aca-map,
[data-theme="light"] body.is-academy .aca-reader{
  background:rgba(255,255,255,.94)!important;
  box-shadow:0 22px 62px rgba(27,42,32,.08)!important;
}

@media (max-width:1080px) and (min-width:981px){
  body.is-academy .aca-chrome{grid-template-columns:minmax(0,1fr) minmax(330px,.8fr);gap:30px}
  body.is-academy .aca-layout{grid-template-columns:268px minmax(0,1fr)}
  body.is-academy .aca-method-flow small{display:none}
}
@media (max-width:980px){
  body.is-academy .aca-chrome{grid-template-columns:1fr;gap:22px;min-height:0}
  body.is-academy .aca-chrome-copy h1{max-width:13ch}
  body.is-academy .aca-hud{max-width:520px}
  body.is-academy .aca-method-flow{grid-template-columns:repeat(3,minmax(0,1fr));gap:6px}
  body.is-academy .aca-method-link{display:none}
  body.is-academy .aca-method-flow>div{justify-content:center}
  body.is-academy .aca-method-flow small{display:none}
  body.is-academy .aca-layout{margin-top:0}
  body.is-academy .aca-map{max-height:none}
}
@media (max-width:640px){
  body.is-academy .aca-chrome-copy h1{font-size:clamp(38px,11vw,50px)}
  body.is-academy .aca-chrome-copy>p{font-size:13.5px}
  body.is-academy .aca-hud{max-width:none;padding:15px}
  body.is-academy .aca-method-flow{min-height:0;padding:5px}
  body.is-academy .aca-method-flow>div{flex-direction:column;gap:6px;padding:8px 4px;text-align:center}
  body.is-academy .aca-method-flow i{width:28px;height:28px}
  body.is-academy .aca-method-flow b{font-size:9.5px}
  body.is-academy .aca-reader-titlebar{min-height:106px;padding:18px}
  body.is-academy .aca-reader-titlebar h2{font-size:1.65rem}
  body.is-academy .aca-l-position{display:none}
  body.is-academy .aca-lesson-flow{margin:14px 13px 0;gap:3px;padding:4px}
  body.is-academy .aca-lesson-flow>span{min-height:48px;flex-direction:column;gap:5px;padding:5px 3px;text-align:center}
  body.is-academy .aca-lesson-flow b{font-size:8.5px;max-width:100%}
  body.is-academy .aca-key-focus{margin:14px 14px 0;padding:14px}
  body.is-academy .aca-body{padding:23px 17px 2px}
  body.is-academy .aca-body p{font-size:.9rem;line-height:1.72}
  body.is-academy .aca-tool,
  body.is-academy .aca-quiz,
  body.is-academy .aca-mission{margin-left:14px;margin-right:14px}
  body.is-academy .aca-quiz{padding:15px}
  body.is-academy .aca-l-foot{display:flex;position:static;flex-direction:column;align-items:stretch;padding:14px}
  body.is-academy .aca-l-foot>*:last-child{align-self:stretch}
}

/* header credit badge (JS-created inside #acct-btn) */
#acct-btn{position:relative}
#acct-cr{position:absolute;top:-5px;right:-7px;min-width:17px;height:17px;padding:0 4px;border-radius:9px;
  background:linear-gradient(180deg,var(--btn-g1,#3aa315),var(--btn-g2,#2e8a10));color:#fff;
  font:700 .58rem/17px var(--mono);text-align:center;letter-spacing:0;box-shadow:0 1px 4px rgba(0,0,0,.35);pointer-events:none}
#acct-cr.hidden{display:none}

/* account popover: balance + plan + buy CTA */
.acct-credits{display:flex;align-items:center;gap:10px;margin:10px 0 4px;padding:10px 12px;
  border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.acct-cred-n{display:flex;align-items:baseline;gap:6px;min-width:0}
.acct-cred-n b{font-family:var(--mono);font-size:1.35rem;color:var(--accent);line-height:1}
.acct-cred-n span{font-size:.68rem;color:var(--ink-3);letter-spacing:.04em}
.acct-plan{font:600 .6rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-2);
  border:1px solid var(--line);border-radius:999px;padding:5px 9px}
.acct-plan.p-pro,.acct-plan.p-lifetime{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 50%,var(--line))}
.acct-credits .btn{margin-left:auto;padding:7px 11px;font-size:.7rem;flex:0 0 auto}

/* analyzer billing gate (401 account / 402 credits / 429 throttle) */
.az-gate{margin-top:14px;padding:18px 18px 16px;border:1px solid var(--line);border-radius:14px;background:var(--surface)}
.az-gate b{display:block;font-size:1.02rem;color:var(--ink);margin-bottom:6px}
.az-gate p{margin:0 0 14px;font-size:.86rem;line-height:1.55;color:var(--ink-2);max-width:52ch}
.az-gate-row{display:flex;gap:10px;flex-wrap:wrap}
.rc-bal{color:var(--ink-3)}
.rc-bal b{color:var(--accent)}

/* transient toast (checkout not configured, etc.) */
#tv-toast{position:fixed;left:50%;bottom:26px;transform:translate(-50%,14px);z-index:240;
  max-width:min(420px,86vw);padding:11px 16px;border-radius:12px;border:1px solid var(--line);
  background:var(--surface);color:var(--ink);font-size:.82rem;line-height:1.45;text-align:center;
  box-shadow:0 12px 34px rgba(0,0,0,.35);opacity:0;pointer-events:none;transition:opacity .25s,transform .25s}
#tv-toast.on{opacity:1;transform:translate(-50%,0)}
/* v362 addendum: the ribbon already names the featured card — drop its plan-label
   (it slid underneath the ribbon and read as clipped text) */
#landing-view .plans4 #pro-price-card .plan-label{display:none}

/* ============================================================================
   MI CUENTA v363 — self-service inside the account popover: change password,
   data export, delete-account danger zone (backend: /api/me/password|export|delete)
   ============================================================================ */
.acct-set-toggle{display:flex;align-items:center;justify-content:space-between;width:100%;margin-top:10px;
  padding:9px 12px;border:1px solid var(--line);border-radius:11px;background:transparent;color:var(--ink-2);
  font:600 .72rem var(--mono);letter-spacing:.05em;cursor:pointer}
.acct-set-toggle:hover{color:var(--ink);border-color:var(--line-2)}
.acct-set-toggle i{font-style:normal;transition:transform .18s}
.acct-set-toggle.open i{transform:rotate(180deg)}
.acct-settings{margin-top:10px;display:flex;flex-direction:column;gap:14px}
.acct-set-h{display:block;font:700 .6rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);margin-bottom:8px}
.acct-settings form,.acct-set-row{padding:12px;border:1px solid var(--line);border-radius:12px;background:var(--surface-2)}
.acct-settings .btn{margin-top:6px}
.acct-settings .acct-tiny{display:block;margin-top:8px;font-size:.66rem;color:var(--ink-3)}
.acct-set-row .btn{margin-top:0;width:100%;justify-content:center}
.acct-danger{padding:12px;border:1px solid color-mix(in srgb,var(--humo) 40%,var(--line));border-radius:12px;
  background:color-mix(in srgb,var(--humo) 5%,var(--surface-2))}
.acct-danger .acct-set-h{color:color-mix(in srgb,var(--humo) 75%,var(--ink-3))}
.acct-danger .acct-note{margin-bottom:10px}
.acct-danger #acct-delform{margin-top:10px;padding:0;border:none;background:transparent}
.btn.acct-del-go{background:linear-gradient(180deg,#c2402e,#a3301f)!important;color:#fff!important}
/* v364 addendum: with the settings section expanded the popover can outgrow the
   viewport (it hangs off the sticky header) — cap it and scroll inside itself */
#acct-pop{max-height:max(340px,calc(100vh - 92px));overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}

/* ==========================================================================
   LA MINA v3 — "EDGE DESK" · v379 · /mine
   (mine.js renders #mv-status / #mv-index / #mv-doc / #mv-ledger; the exam
   modal keeps the legacy id #mn-assay because app.js hides it by id.)
   Institutional research-vault skin over the same server-authoritative vault:
   terminal status strip + clearance gauge → dossier index (master) → document
   pane (detail; locked = redacted sheet, decoration only — hidden fields never
   ship) → account statement of point sources.
   v379: analyzer/trainer/games/academy parity — giant pointillist miner
   portrait (travocato-miner.webp), light + dark theme, shared chrome geometry.
   ========================================================================== */

/* ---- is-mine plumbing: pre-paint visibility + two-mode header ---- */
body.is-mine #landing-view{display:none!important}
body.is-mine #mine-view.hidden{display:block!important}
body.is-mine .nav-links .nav-tool{display:inline-flex!important;align-items:center}
body.is-mine .nav-links .nl-landing{display:none!important}
body.is-mine .nav-end .nav-primary{display:none!important}
body.is-mine{background:var(--bg);color:var(--ink)}

/* ---- page shell + ambient (analyzer/games parity: drifting orbs + grid) ---- */
body.is-mine #bg-candles{opacity:.05!important}
body.is-mine .terminal-grid-bg{opacity:.07!important}
.mine-view{position:relative;isolation:isolate}
.mv-page{
  position:relative;isolation:isolate;overflow:clip;
  min-height:calc(100dvh - var(--nav-h,64px));
  padding-top:clamp(14px,2.6vh,28px);
  background:transparent;
}
/* Ambient is VIEWPORT-FIXED so content height never resizes/distorts the stage */
.mv-ambient{
  position:fixed;
  top:var(--nav-h);right:0;bottom:0;left:0;
  pointer-events:none;
  z-index:0;
  overflow:hidden;
}
.mv-orb{
  position:absolute;border-radius:50%;filter:blur(60px);
  opacity:.55;will-change:transform;
}
.mv-orb-a{
  width:min(52vw,520px);height:min(52vw,520px);
  top:-12%;left:-8%;
  background:radial-gradient(circle at 40% 40%,
    color-mix(in srgb,var(--accent) 28%,transparent),
    transparent 68%);
  animation:ax-drift-a 18s ease-in-out infinite alternate;
}
.mv-orb-b{
  width:min(46vw,460px);height:min(46vw,460px);
  top:8%;right:-10%;
  background:radial-gradient(circle at 50% 50%,
    color-mix(in srgb,var(--accent-2) 16%,transparent),
    transparent 70%);
  animation:ax-drift-b 22s ease-in-out infinite alternate;
}
.mv-grid-fade{
  position:absolute;inset:0;
  background:
    linear-gradient(180deg, transparent 0%, var(--bg) 88%),
    repeating-linear-gradient(90deg,
      color-mix(in srgb,var(--ink) 3.5%,transparent) 0 1px,
      transparent 1px 72px),
    repeating-linear-gradient(0deg,
      color-mix(in srgb,var(--ink) 2.5%,transparent) 0 1px,
      transparent 1px 72px);
  mask-image:radial-gradient(ellipse 80% 55% at 50% 0%, #000 20%, transparent 75%);
  opacity:.55;
}
[data-theme="light"] body.is-mine .mv-orb{opacity:.38}
[data-theme="light"] body.is-mine .mv-grid-fade{opacity:.4}
@media (prefers-reduced-motion:reduce){
  body.is-mine .mv-orb-a,
  body.is-mine .mv-orb-b{animation:none!important}
}

/* ---- GIANT pointillist miner portrait (travocato-miner.webp) ---- */
body.is-mine .mv-dotfield{
  --mx:78%;
  --my:48%;
  --dot-a:5.5px;
  --dot-b:4px;
  --mv-size:auto min(108vh,1080px);
  --mv-pos:right -5% top 36%;
  position:fixed!important;
  top:var(--nav-h)!important;
  right:0!important;
  bottom:0!important;
  left:0!important;
  z-index:0!important;
  pointer-events:none!important;
  overflow:hidden!important;
  isolation:isolate;
  contain:paint;
  transform:translateZ(0);
}
body.is-mine .mv-df-wash,
body.is-mine .mv-df-dots,
body.is-mine .mv-df-focus{
  position:absolute;
  inset:0;
  background-image:var(--mv-hero);
  background-repeat:no-repeat;
  background-position:var(--mv-pos);
  background-size:var(--mv-size);
  transform:translateZ(0);
  backface-visibility:hidden;
}
body.is-mine .mv-df-wash{
  filter:blur(40px) saturate(.74) brightness(.97);
  opacity:.26;
  transform:scale(1.06) translateZ(0);
}
body.is-mine .mv-df-dots{
  opacity:.62;
  filter:blur(.25px) saturate(.95) contrast(1.05);
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 0 58%, transparent 64%);
  -webkit-mask-size:var(--dot-b) var(--dot-b); mask-size:var(--dot-b) var(--dot-b);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
}
body.is-mine .mv-df-dots::before{
  content:"";
  position:absolute;inset:0;
  background-image:var(--mv-hero);
  background-repeat:no-repeat;
  background-position:var(--mv-pos);
  background-size:var(--mv-size);
  filter:blur(6px) saturate(.8);
  opacity:.4;
  -webkit-mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  mask-image:radial-gradient(circle closest-side at 50% 50%, #000 48%, transparent 50%);
  -webkit-mask-size:var(--dot-a) var(--dot-a); mask-size:var(--dot-a) var(--dot-a);
  -webkit-mask-repeat:repeat; mask-repeat:repeat;
  pointer-events:none;
}
body.is-mine .mv-df-focus{
  opacity:0;
  filter:saturate(1.08) contrast(1.04);
  -webkit-mask-image:radial-gradient(circle 180px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  mask-image:radial-gradient(circle 180px at var(--mx) var(--my), #000 0%, #000 30%, rgba(0,0,0,.5) 52%, transparent 74%);
  transition:opacity .2s ease;
  will-change:opacity;
}
body.is-mine .mv-dotfield.is-lit .mv-df-focus{opacity:.92}
body.is-mine .mv-df-vignette{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,
      var(--bg) 0%,
      color-mix(in srgb,var(--bg) 84%,transparent) 24%,
      color-mix(in srgb,var(--bg) 48%,transparent) 46%,
      color-mix(in srgb,var(--bg) 14%,transparent) 66%,
      transparent 84%),
    linear-gradient(180deg,
      color-mix(in srgb,var(--bg) 50%,transparent) 0%,
      transparent 12%,
      transparent 72%,
      color-mix(in srgb,var(--bg) 66%,transparent) 100%);
  pointer-events:none;
}
[data-theme="light"] body.is-mine .mv-df-wash{opacity:.18;filter:blur(42px) saturate(.68) brightness(1.04)}
[data-theme="light"] body.is-mine .mv-df-dots{opacity:.48}
@media (max-width:760px){
  body.is-mine .mv-dotfield{
    --mv-size:auto min(74vh,680px);
    --mv-pos:right -18% top 10%;
  }
  body.is-mine .mv-df-wash{opacity:.15}
  body.is-mine .mv-df-dots{opacity:.4}
  body.is-mine .mv-dotfield.is-lit .mv-df-focus{opacity:.85}
  body.is-mine .mv-df-vignette{
    background:
      linear-gradient(180deg,
        transparent 0%,
        transparent 26%,
        color-mix(in srgb,var(--bg) 68%,transparent) 58%,
        var(--bg) 92%),
      linear-gradient(90deg,
        var(--bg) 0%,
        color-mix(in srgb,var(--bg) 46%,transparent) 44%,
        transparent 80%);
  }
}
@media (prefers-reduced-motion:reduce){
  body.is-mine .mv-df-focus{transition:none}
  body.is-mine .mv-dotfield.is-lit .mv-df-focus{opacity:.55}
}

/* content floats above the portrait */
.mv-shell{
  position:relative;z-index:2;
  width:min(100% - 32px,var(--tool-w,1200px));margin-inline:auto;
  padding:0 0 78px; /* top padding lives on .mv-page (tool chrome parity) */
}
@media (min-width:761px){
  .mv-shell{width:min(100% - var(--tool-gut,40px),var(--tool-w,1200px))}
}
/* chrome: pixel-match Games / Analyzer (kicker + h1 + lead) */
body.is-mine .mv-chrome{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  gap:0;
  max-width:min(560px,100%);
  margin:0 0 clamp(14px,2.2vh,20px);
  padding:4px 2px 0;
  position:relative;
  z-index:2;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  backdrop-filter:none!important;
  -webkit-backdrop-filter:none!important;
}
body.is-mine .mv-kicker{
  display:flex;
  align-items:center;
  flex-wrap:wrap;
  gap:10px;
  margin:0 0 12px;
  font:inherit;
  letter-spacing:normal;
  text-transform:none;
  color:inherit;
}
body.is-mine .mv-live-dot{
  width:8px;height:8px;border-radius:50%;flex:none;display:inline-block;
  background:var(--accent);
  box-shadow:0 0 0 0 color-mix(in srgb,var(--accent) 55%,transparent);
  animation:ax-pulse 2s ease-in-out infinite;
}
body.is-mine .mv-eyebrow{
  font-family:var(--mono);
  font-size:10.5px;
  font-weight:800;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--ink-3);
  margin:0;
}
body.is-mine .mv-chrome h1{
  margin:0 0 8px;
  max-width:18ch;
  font-family:var(--display);
  font-size:clamp(26px,3.2vw,36px);
  line-height:1.05;
  font-weight:780;
  letter-spacing:-.03em;
  color:var(--ink);
  text-transform:none;
  display:block;
}
body.is-mine .mv-chrome h1 small{display:none}
body.is-mine .mv-chrome .mv-sub,
body.is-mine .mv-chrome p{
  margin:0;
  max-width:46ch;
  font-size:14.5px;
  line-height:1.55;
  color:var(--ink-2);
}
@media (max-width:980px){
  body.is-mine .mv-chrome{max-width:100%}
}
/* glassier surfaces so the miner portrait peeks through */
body.is-mine .mv-status,
body.is-mine .mv-indexwrap,
body.is-mine .mv-doc,
body.is-mine .mv-ledgerwrap{
  background:color-mix(in srgb,var(--bg) 76%,var(--surface-2));
  -webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);
}
[data-theme="light"] body.is-mine .mv-status,
[data-theme="light"] body.is-mine .mv-indexwrap,
[data-theme="light"] body.is-mine .mv-doc,
[data-theme="light"] body.is-mine .mv-ledgerwrap{
  background:color-mix(in srgb,var(--bg) 82%,var(--surface-2));
}

/* ---- shared micro-typography ---- */
.mv-k{
  display:block;font:700 .6rem/1.3 var(--mono);letter-spacing:.15em;
  text-transform:uppercase;color:var(--ink-3);
}
.mv-page .num,.mv-as .num{font-family:var(--mono);font-variant-numeric:tabular-nums}

/* ---- chrome helpers (base; is-mine overrides match Games) ---- */
.mv-kicker{display:flex;align-items:center;gap:10px}
.mv-live-dot{width:8px;height:8px;border-radius:50%;background:var(--accent);flex:none}
.mv-meta{display:flex;align-items:center;gap:18px;font:600 .64rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.mv-meta b{color:var(--ink-2);font-weight:700}
.mv-clock b{display:inline-block;min-width:8ch;text-align:right;font-variant-numeric:tabular-nums}
.mv-sub{color:var(--ink-2);font-size:14.5px;line-height:1.55;max-width:46ch}

/* ---- status strip + clearance gauge ---- */
.mv-status{
  position:relative;margin-top:22px;border:1px solid color-mix(in srgb,var(--line-2) 82%,var(--accent));
  border-radius:20px;overflow:hidden;
  background:
    radial-gradient(circle at 13% 5%,color-mix(in srgb,var(--accent) 9%,transparent),transparent 34%),
    linear-gradient(145deg,color-mix(in srgb,var(--surface) 96%,var(--bg)),color-mix(in srgb,var(--surface-2) 86%,var(--bg)));
  box-shadow:var(--elev-2);
}
.mv-status::before{
  content:"";position:absolute;z-index:2;inset:0 0 auto;height:1px;pointer-events:none;
  background:linear-gradient(90deg,transparent,color-mix(in srgb,var(--accent) 72%,transparent),transparent);
}
.mv-status-head{
  display:flex;align-items:center;justify-content:space-between;gap:24px;
  padding:21px 24px 19px;border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg) 38%,transparent);
}
.mv-status-head>div{min-width:0}
.mv-status-head h2{margin:5px 0 3px;font:780 1.12rem/1.25 var(--display);letter-spacing:-.015em;color:var(--ink)}
.mv-status-head p{font:500 .76rem/1.5 var(--font);color:var(--ink-2)}
.mv-verified{
  display:inline-flex;align-items:center;gap:7px;flex:none;padding:7px 10px;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:999px;
  background:color-mix(in srgb,var(--accent) 7%,transparent);
  font:750 .58rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);
}
.mv-verified i{font-size:.7rem}
.mv-status-grid{display:grid;grid-template-columns:minmax(0,1fr) 340px}
.mv-progress-panel{display:grid;grid-template-columns:150px minmax(0,1fr);min-width:0;padding:24px}
.mv-score-block{
  display:flex;flex-direction:column;justify-content:center;min-width:0;padding-right:24px;
  border-right:1px solid var(--line);
}
.mv-score-value{display:flex;align-items:flex-end;gap:7px;margin:7px 0 2px}
.mv-score-value b{font:800 clamp(2.45rem,4.2vw,3.25rem)/.92 var(--display);letter-spacing:-.065em;color:var(--ink)}
.mv-score-value span{padding-bottom:4px;font:800 .58rem var(--mono);letter-spacing:.12em;color:var(--accent)}
.mv-score-block small{font:500 .68rem/1.4 var(--font);color:var(--ink-3)}
.mv-next-block{display:flex;flex-direction:column;align-items:flex-start;min-width:0;padding-left:24px}
.mv-next-top{display:flex;align-items:center;justify-content:space-between;gap:12px;width:100%;margin-bottom:8px}
.mv-next-badge{
  display:inline-flex;align-items:center;gap:5px;max-width:58%;padding:5px 8px;border:1px solid var(--line);
  border-radius:999px;background:color-mix(in srgb,var(--surface-3) 70%,transparent);
  font:750 .55rem/1 var(--mono);letter-spacing:.045em;text-transform:uppercase;color:var(--ink-2);
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mv-next-badge.ready,.mv-next-badge.done{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 8%,transparent);color:var(--accent)}
.mv-next-badge.wait{border-color:color-mix(in srgb,var(--marginal) 35%,var(--line));background:color-mix(in srgb,var(--marginal) 8%,transparent);color:var(--marginal)}
.mv-next-badge.locked,.mv-next-badge.guest{color:var(--ink-2)}
.mv-next-block h3{
  max-width:100%;margin:0 0 13px;font:800 clamp(1.05rem,2vw,1.38rem)/1.1 var(--display);
  letter-spacing:.015em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis;
}
.mv-next-track,.mv-summary-bar{position:relative;width:100%;height:8px;border-radius:999px;background:var(--surface-3);overflow:hidden;box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}
.mv-next-track i,.mv-summary-bar i{display:block;width:var(--w,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,var(--accent-2)),var(--accent));box-shadow:0 0 14px color-mix(in srgb,var(--accent) 40%,transparent)}
.mv-next-numbers{display:grid;grid-template-columns:auto minmax(0,1fr);align-items:start;gap:12px;width:100%;margin-top:8px}
.mv-next-numbers b{font:750 .66rem var(--mono);color:var(--ink);font-variant-numeric:tabular-nums;white-space:nowrap}
.mv-next-numbers span{font:500 .67rem/1.45 var(--font);color:var(--ink-3);text-align:right}
.mv-status-action{min-height:34px;margin-top:15px;padding:8px 12px;font-size:.68rem;gap:8px}
.mv-status-action i{font-size:.64rem}
.mv-status-stack{display:grid;grid-template-rows:1fr 1fr;border-left:1px solid var(--line)}
.mv-summary-card{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:18px 20px;background:color-mix(in srgb,var(--bg) 28%,transparent)}
.mv-summary-card+ .mv-summary-card{border-top:1px solid var(--line)}
.mv-summary-top{display:flex;align-items:center;gap:9px;margin-bottom:10px}
.mv-summary-icon{display:grid;place-items:center;width:26px;height:26px;flex:none;border:1px solid var(--line);border-radius:8px;background:var(--surface-2);color:var(--ink-2)}
.mv-summary-icon i{font-size:.7rem}
.mv-summary-value{display:flex;align-items:baseline;gap:7px;margin:0 0 9px}
.mv-summary-value b{font:800 1.65rem/1 var(--display);letter-spacing:-.04em;color:var(--ink)}
.mv-summary-value span{font:650 .72rem var(--font);color:var(--ink-2)}
.mv-summary-card small{display:flex;align-items:flex-start;gap:6px;margin-top:8px;font:500 .65rem/1.4 var(--font);color:var(--ink-3)}
.mv-summary-card small i{margin-top:2px;font-size:.58rem}
.mv-summary-card.exam{position:relative;overflow:hidden}
.mv-summary-card.exam::after{content:"";position:absolute;inset:0 auto 0 0;width:2px;background:var(--ink-3);opacity:.45}
.mv-summary-card.exam.ready::after,.mv-summary-card.exam.done::after{background:var(--accent);opacity:1}
.mv-summary-card.exam.wait::after{background:var(--marginal);opacity:1}
.mv-summary-card.exam.ready .mv-summary-icon,.mv-summary-card.exam.done .mv-summary-icon{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface-2))}
.mv-summary-card.exam.wait .mv-summary-icon{border-color:color-mix(in srgb,var(--marginal) 35%,var(--line));color:var(--marginal)}
.mv-exam-state{font:780 1rem/1.2 var(--display);letter-spacing:-.01em;color:var(--ink)}
.mv-summary-card.exam.ready .mv-exam-state,.mv-summary-card.exam.done .mv-exam-state{color:var(--accent)}
.mv-summary-card.exam.wait .mv-exam-state{color:var(--marginal)}
.mv-gauge{border-top:1px solid var(--line);padding:20px 24px 18px;background:color-mix(in srgb,var(--bg) 52%,transparent)}
.mv-gauge-head{display:flex;align-items:center;justify-content:space-between;gap:18px}
.mv-gauge-head>div{display:flex;flex-direction:column;gap:3px}
.mv-gauge-head>div>b{font:650 .7rem/1.35 var(--font);color:var(--ink-2)}
.mv-g-overall{display:grid!important;grid-template-columns:auto auto;align-items:center;column-gap:9px;flex:none}
.mv-g-overall>b{grid-row:1/3;font:800 1.45rem/1 var(--display)!important;letter-spacing:-.04em;color:var(--ink)!important}
.mv-g-overall>span{padding:4px 7px;border:1px solid var(--line);border-radius:6px;background:var(--surface-2);font:700 .57rem/1 var(--mono);color:var(--ink-3);white-space:nowrap}
.mv-g-next{
  display:grid;grid-template-columns:30px minmax(0,1fr) auto;align-items:center;gap:10px;
  margin:14px 0 12px;padding:10px 12px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));
  border-radius:10px;background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 7%,transparent),color-mix(in srgb,var(--surface-2) 62%,transparent));
}
.mv-g-next-icon{display:grid;place-items:center;width:30px;height:30px;border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));border-radius:8px;background:color-mix(in srgb,var(--accent) 8%,var(--surface-2));color:var(--accent)}
.mv-g-next-icon i{font-size:.7rem}
.mv-g-next>span:nth-child(2){display:flex;flex-direction:column;min-width:0}
.mv-g-next small{font:750 .53rem/1.2 var(--mono);letter-spacing:.12em;text-transform:uppercase;color:var(--ink-3)}
.mv-g-next b{margin-top:2px;font:780 .75rem/1.2 var(--display);letter-spacing:.01em;color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-g-next em{padding:5px 8px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 7%,transparent);font:750 .55rem/1 var(--mono);letter-spacing:.04em;text-transform:uppercase;color:var(--accent);font-style:normal;white-space:nowrap}
.mv-g-next.complete{grid-template-columns:30px minmax(0,1fr)}
.mv-g-segments{display:grid;grid-template-columns:repeat(21,minmax(0,1fr));gap:4px;width:100%;padding:4px;border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--bg) 68%,var(--surface-2));box-shadow:inset 0 2px 6px rgba(0,0,0,.28)}
.mv-g-segment{position:relative;display:grid;place-items:center;isolation:isolate;min-width:0;height:28px;overflow:hidden;border:1px solid var(--line);border-radius:7px;background:var(--surface-2);color:var(--ink-3)}
.mv-g-seg-fill{position:absolute;z-index:-1;inset:0 auto 0 0;width:var(--w,0%);background:color-mix(in srgb,var(--accent) 18%,var(--surface-2))}
.mv-g-segment>b{display:grid;place-items:center;width:100%;height:100%;font:800 .53rem/1 var(--mono);letter-spacing:.04em;color:inherit}
.mv-g-segment>b i{font-size:.5rem}
.mv-g-segment.open{border-color:color-mix(in srgb,var(--accent) 72%,var(--line));background:var(--accent);color:#0b1608;box-shadow:0 0 13px color-mix(in srgb,var(--accent) 18%,transparent)}
.mv-g-segment.open .mv-g-seg-fill{background:var(--accent)}
.mv-g-segment.current{border-color:var(--accent);background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));color:var(--accent);box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent),0 0 14px color-mix(in srgb,var(--accent) 12%,transparent)}
.mv-g-segment.current .mv-g-seg-fill{background:linear-gradient(90deg,color-mix(in srgb,var(--accent-2) 70%,var(--accent)),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--accent) 44%,transparent)}
.mv-g-segment.locked{opacity:.66;background:color-mix(in srgb,var(--surface-2) 72%,var(--bg))}
.mv-g-legend{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px;margin-top:12px}
.mv-g-state{
  display:grid;grid-template-columns:32px minmax(0,1fr);align-items:center;gap:9px;min-width:0;min-height:64px;padding:10px 11px;
  border:1px solid var(--line);border-radius:11px;background:color-mix(in srgb,var(--surface-2) 70%,transparent);
}
.mv-g-state-icon{display:grid;place-items:center;width:32px;height:32px;border:1px solid var(--line);border-radius:9px;background:var(--surface);color:var(--ink-3)}
.mv-g-state-icon i{font-size:.65rem}
.mv-g-state-copy{display:flex;min-width:0;flex-direction:column}
.mv-g-state-copy>small{font:750 .49rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.mv-g-state-copy>b{margin-top:3px;font:800 .75rem/1.1 var(--mono);letter-spacing:-.02em;color:var(--ink);white-space:nowrap}
.mv-g-state-copy>b>em{margin-left:3px;font:650 .53rem var(--mono);color:var(--ink-3);font-style:normal}
.mv-g-state-copy>em{margin-top:3px;font:550 .53rem/1.25 var(--font);color:var(--ink-3);font-style:normal;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-g-state.is-open .mv-g-state-icon{border-color:color-mix(in srgb,var(--accent) 42%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}
.mv-g-state.is-current{border-color:color-mix(in srgb,var(--accent) 44%,var(--line));background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 8%,var(--surface-2)),color-mix(in srgb,var(--surface-2) 72%,transparent))}
.mv-g-state.is-current .mv-g-state-icon{border-color:color-mix(in srgb,var(--accent) 48%,var(--line));background:color-mix(in srgb,var(--accent) 11%,var(--surface));color:var(--accent)}
.mv-g-state.is-current .mv-g-state-copy>b{color:var(--accent)}
.mv-g-state.is-locked .mv-g-state-icon{background:color-mix(in srgb,var(--bg) 62%,var(--surface-2))}
.mv-g-state-track{grid-column:1/-1;display:block;height:4px;overflow:hidden;margin-top:1px;border-radius:999px;background:var(--surface-3);box-shadow:inset 0 1px 2px rgba(0,0,0,.3)}
.mv-g-state-track>i{display:block;width:var(--w,0%);height:100%;border-radius:inherit;background:linear-gradient(90deg,color-mix(in srgb,var(--accent-2) 62%,var(--accent)),var(--accent));box-shadow:0 0 10px color-mix(in srgb,var(--accent) 42%,transparent)}

/* ---- the desk: index (master) + document pane (detail) ---- */
.mv-desk{display:grid;grid-template-columns:340px minmax(0,1fr);gap:16px;margin-top:16px;align-items:start}
.mv-indexwrap{
  position:sticky;top:calc(var(--nav-h,64px) + 16px);
  border:1px solid var(--line);border-radius:14px;background:var(--surface);
  box-shadow:var(--elev-1);overflow:hidden;display:flex;flex-direction:column;
  height:min(620px,calc(100dvh - var(--nav-h,64px) - 32px));
  max-height:calc(100dvh - var(--nav-h,64px) - 32px);
}
.mv-index-head{
  display:block;border-bottom:1px solid var(--line);
  background:color-mix(in srgb,var(--bg) 45%,transparent);
}
.mv-index-titleline{
  display:flex;align-items:center;justify-content:space-between;gap:10px;
  min-height:43px;padding:11px 16px 10px;
}
.mv-index-count{font:600 .62rem var(--mono);letter-spacing:.06em;color:var(--ink-3);text-transform:uppercase}
.mv-index-scrollhint{
  display:flex;align-items:center;gap:7px;padding:0 16px 9px;
  font:650 .56rem/1.2 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3);
}
.mv-index-scrollhint i{color:var(--accent);font-size:.62rem}
.mv-index{
  flex:1;min-height:0;overflow-y:scroll;scrollbar-width:auto;overscroll-behavior:contain;
  scrollbar-color:color-mix(in srgb,var(--accent) 58%,var(--line-2)) var(--surface-3);
  -webkit-mask-image:none;mask-image:none;
}
.mv-index::-webkit-scrollbar{width:8px}
.mv-index::-webkit-scrollbar-track{background:var(--surface-3);border-left:1px solid var(--line)}
.mv-index::-webkit-scrollbar-thumb{
  background:color-mix(in srgb,var(--accent) 58%,var(--line-2));
  border:2px solid var(--surface-3);border-radius:99px;
}
.mv-miner-picture{
  display:block;line-height:0;pointer-events:none;user-select:none;
  background:transparent;box-shadow:none;filter:none;
}
.mv-miner-picture img{
  display:block;width:100%;height:auto;
  background:transparent;box-shadow:none;filter:none;
}
.mv-row{
  position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) auto;gap:12px;align-items:center;
  width:100%;padding:12px 16px 13px;border:0;border-bottom:1px solid var(--line);
  background:transparent;color:inherit;text-align:left;cursor:pointer;
  transition:background var(--dur-2) var(--ease);
}
.mv-row:hover{background:color-mix(in srgb,var(--surface-2) 72%,transparent)}
.mv-row:disabled{cursor:not-allowed}
.mv-row.is-gated{opacity:.48;filter:saturate(.55);background:color-mix(in srgb,var(--bg) 24%,transparent)}
.mv-row.is-gated:hover{background:color-mix(in srgb,var(--bg) 24%,transparent)}
.mv-row.is-gated .mv-row-main b{color:var(--ink-3)}
.mv-row.is-gated .mv-row-main small{opacity:.72}
.mv-row:focus-visible{outline:none;box-shadow:var(--focus-ring);z-index:1}
.mv-row.sel{background:color-mix(in srgb,var(--surface-2) 92%,transparent)}
.mv-row.sel::before{content:"";position:absolute;left:0;top:0;bottom:-1px;width:2px;background:var(--accent)}
.mv-row-no{font:700 .64rem var(--mono);letter-spacing:.05em;color:var(--ink-3);font-variant-numeric:tabular-nums}
.mv-row.is-unlocked .mv-row-no{color:var(--accent)}
.mv-row-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.mv-row-main b{font:700 .84rem/1.2 var(--display);letter-spacing:.01em;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-row.is-obs .mv-row-main b{color:var(--ink-2)}
.mv-row-main small{font:500 .66rem/1.3 var(--font);color:var(--ink-3);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-row-st{font:700 .6rem var(--mono);letter-spacing:.08em;white-space:nowrap;font-variant-numeric:tabular-nums}
.mv-row-st.open{color:var(--accent)}
.mv-row-st.exam{color:var(--marginal)}
.mv-row-st.wait{color:color-mix(in srgb,var(--marginal) 70%,var(--ink-3))}
.mv-row-st.req{color:var(--ink-3)}
.mv-row-st.obs{color:color-mix(in srgb,var(--accent-2) 55%,var(--ink-3))}
.mv-row-st.gated{display:inline-flex;align-items:center;justify-content:flex-end;gap:6px;color:var(--ink-3)}
.mv-row-st.gated i{font-size:.55rem}
.mv-row-st.gated em{font:700 .54rem/1 var(--mono);letter-spacing:.04em;font-style:normal;color:inherit}
.mv-row-bar{position:absolute;left:0;bottom:-1px;height:2px;width:var(--w,0%);max-width:100%;
  background:color-mix(in srgb,var(--accent) 42%,transparent);pointer-events:none}
.mv-mining-dock{
  flex:none;display:grid;grid-template-columns:88px minmax(0,1fr);align-items:center;gap:10px;
  min-height:116px;padding:7px 14px 7px 6px;
  border-top:1px solid color-mix(in srgb,var(--accent) 25%,var(--line));
  background:color-mix(in srgb,var(--bg) 88%,var(--surface));
}
.mv-mining-dock .mv-miner-picture{align-self:end;width:88px;height:102px;overflow:hidden}
.mv-mining-dock .mv-miner-picture img{width:88px;height:99px;object-fit:contain;object-position:center bottom}
.mv-mining-dock-copy{display:flex;min-width:0;flex-direction:column;gap:4px}
.mv-mining-dock-k{
  display:flex;align-items:center;gap:7px;font:750 .56rem/1.2 var(--mono);
  letter-spacing:.1em;text-transform:uppercase;color:var(--accent);
}
.mv-mining-dock-k>i{width:6px;height:6px;border-radius:50%;background:var(--accent);font-style:normal}
.mv-mining-dock-copy>b{font:780 .82rem/1.2 var(--display);letter-spacing:-.01em;color:var(--ink)}
.mv-mining-dock-copy>small{font:650 .58rem/1.35 var(--mono);letter-spacing:.035em;color:var(--ink-3)}
.mv-mining-dock-copy>p{font:500 .66rem/1.35 var(--font);color:var(--ink-2)}
.mv-criteria{padding:14px 16px 16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 88%,var(--surface))}
.mv-criteria-line{margin:7px 0 6px;font:700 .68rem/1.5 var(--mono);color:var(--ink-2);letter-spacing:.02em}
.mv-criteria-note{font:500 .7rem/1.5 var(--font);color:var(--ink-3)}

/* ---- document pane ---- */
.mv-doc{
  border:1px solid var(--line);border-radius:14px;background:var(--surface);
  box-shadow:var(--elev-1);min-height:560px;overflow:hidden;
}
.mv-doc-in{padding:24px 28px 26px;animation:mvDocIn .28s var(--ease-out)}
@keyframes mvDocIn{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
.mv-doc-head{display:flex;align-items:flex-start;justify-content:space-between;gap:14px;margin-bottom:14px}
.mv-doc-id{display:flex;align-items:center;gap:8px;flex-wrap:wrap}
.mv-doc-no{font:800 .7rem var(--mono);letter-spacing:.08em;color:var(--ink-2);
  padding:4px 8px;border:1px solid var(--line-2);border-radius:6px;background:color-mix(in srgb,var(--bg) 55%,transparent)}
.mv-chip{
  display:inline-flex;align-items:center;padding:4px 9px;border:1px solid var(--line);border-radius:99px;
  font:600 .62rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);
}
.mv-chip.dim{color:var(--ink-3)}
.mv-doc-title{margin:2px 0 10px;font:800 clamp(1.4rem,2.4vw,1.9rem)/1.05 var(--display);letter-spacing:-.01em;text-transform:uppercase}
.mv-abstract{color:var(--ink-2);font-size:.93rem;line-height:1.6;max-width:70ch;margin-bottom:18px}

/* stamps — the one deliberately physical element on the desk */
.mv-stamp{
  flex:none;display:inline-flex;align-items:center;gap:8px;padding:5px 10px;
  border:1.5px solid currentColor;border-radius:5px;transform:rotate(-2deg);
  font:800 .6rem var(--mono);letter-spacing:.14em;text-transform:uppercase;
  color:var(--ink-3);box-shadow:inset 0 0 0 1px color-mix(in srgb,currentColor 12%,transparent);
}
.mv-stamp i{font-style:normal;font-weight:600;letter-spacing:.04em;opacity:.75}
.mv-stamp.ok{color:var(--accent)}
.mv-stamp.exam{color:var(--marginal)}
.mv-stamp.wait{color:color-mix(in srgb,var(--marginal) 72%,var(--ink-3))}
.mv-stamp.obs{color:color-mix(in srgb,var(--accent-2) 62%,var(--ink-3))}
.mv-stamp.lk{color:var(--ink-3)}
.mv-stamp.deny{color:var(--humo)}
.mv-stamp.grant{font-size:.78rem;padding:8px 16px;transform:rotate(-3deg)}
@keyframes mvStampIn{0%{opacity:0;transform:rotate(-14deg) scale(1.7)}62%{opacity:1;transform:rotate(-2deg) scale(.96)}100%{transform:rotate(-3deg) scale(1)}}
.mv-as-result .mv-stamp.grant{animation:mvStampIn .42s var(--ease-out) both}
.mv-granted .mv-stamp.ok{animation:mvStampIn .42s var(--ease-out) both}

/* unlocked dossier body */
.mv-claim{
  margin:0 0 14px;padding:13px 16px;border-left:2px solid var(--line-2);border-radius:0 10px 10px 0;
  background:color-mix(in srgb,var(--surface-2) 62%,transparent);
  color:var(--ink-2);font-size:.9rem;line-height:1.55;font-style:italic;
}
.mv-claim .mv-k{margin-bottom:6px;font-style:normal}
.mv-rule{
  margin:0 0 16px;padding:14px 16px;border:1px solid color-mix(in srgb,var(--accent) 26%,var(--line));
  border-left:2px solid var(--accent);border-radius:0 10px 10px 0;
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
.mv-rule .mv-k{margin-bottom:7px;color:color-mix(in srgb,var(--accent) 72%,var(--ink-2))}
.mv-rule p{font-size:.92rem;line-height:1.6;color:var(--ink)}
.mv-dir{color:var(--accent);letter-spacing:.06em}
.mv-dir.neg{color:var(--humo)}
.mv-sheet{margin-bottom:16px}
.mv-sheet>.mv-k{margin-bottom:9px}
.mv-sheet>.mv-k b{color:var(--ink-2);letter-spacing:.06em}
.mv-stats{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(148px,1fr));gap:1px;
  background:var(--line);border:1px solid var(--line);border-radius:10px;overflow:hidden;
}
.mv-st{padding:11px 13px;background:var(--surface);display:flex;flex-direction:column;gap:3px}
.mv-st-k{font:600 .58rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.mv-st-v{font:700 .92rem/1.35 var(--mono);color:var(--ink);font-variant-numeric:tabular-nums}
.mv-st-v i{font-style:normal;color:var(--ink-3);font-size:.78em}
.mv-st-s{font:500 .66rem var(--font);color:var(--ink-3)}
.mv-tbl{border:1px solid var(--line);border-radius:10px;overflow:hidden;margin-bottom:8px}
.mv-tbl-h,.mv-tbl-r{display:grid;grid-template-columns:minmax(0,1.5fr) 64px minmax(0,1fr) 84px;gap:10px;padding:9px 13px;align-items:center}
.mv-tbl-h{font:700 .58rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3);
  background:color-mix(in srgb,var(--bg) 55%,transparent);border-bottom:1px solid var(--line)}
.mv-tbl-r{border-bottom:1px solid var(--line);font-size:.8rem;color:var(--ink-2)}
.mv-tbl-r:last-child{border-bottom:0}
.mv-tbl-r .num{font-size:.76rem;color:var(--ink-2)}
.mv-tbl-v{font:600 .68rem var(--mono);letter-spacing:.03em;color:var(--ink-2)}
.mv-tbl-n{text-align:right}
.mv-tbl-n.pos{color:var(--accent)}
.mv-tbl-n.neg{color:var(--humo)}
.mv-tbl-cap{margin:0 0 16px;font:600 .7rem/1.5 var(--mono);color:var(--ink-3)}
.mv-thesis{margin-bottom:16px}
.mv-thesis .mv-k{margin-bottom:7px}
.mv-thesis p{font-size:.92rem;line-height:1.65;color:var(--ink-2);max-width:74ch}
.mv-cavs{margin-bottom:18px}
.mv-cavs .mv-k{margin-bottom:8px;color:color-mix(in srgb,var(--humo) 55%,var(--ink-3))}
.mv-cavs ul{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:7px}
.mv-cavs li{position:relative;padding-left:16px;font-size:.84rem;line-height:1.55;color:var(--ink-2)}
.mv-cavs li::before{content:"–";position:absolute;left:0;color:color-mix(in srgb,var(--humo) 60%,var(--ink-3))}
.mv-doc-foot{
  display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;
  padding-top:14px;border-top:1px solid var(--line);
  font:600 .66rem var(--mono);letter-spacing:.05em;color:var(--ink-3);text-transform:uppercase;
}
.mv-drill{color:var(--accent);font:700 .72rem var(--mono);letter-spacing:.03em;text-transform:none}
.mv-drill:hover{text-decoration:underline}
.mv-drill-how{margin-top:9px;font-size:.78rem;line-height:1.55;color:var(--ink-3)}

/* redacted sheet (locked) — decoration only; values never leave the server */
.mv-redacted{
  position:relative;margin-bottom:16px;padding:16px 18px 14px;overflow:hidden;
  border:1px dashed var(--line-2);border-radius:10px;
  background:color-mix(in srgb,var(--bg) 60%,transparent);
}
.mv-red-wm{
  position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
  font:800 clamp(1.6rem,4.6vw,2.6rem) var(--mono);letter-spacing:.34em;text-transform:uppercase;
  color:transparent;-webkit-text-stroke:1px color-mix(in srgb,var(--ink-3) 26%,transparent);
  transform:rotate(-9deg);opacity:.5;
}
.mv-red-row{display:grid;grid-template-columns:150px minmax(0,1fr);gap:14px;align-items:center;padding:7px 0;border-bottom:1px solid color-mix(in srgb,var(--line) 60%,transparent)}
.mv-red-row:last-child{border-bottom:0}
.mv-red-row span{font:600 .62rem var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.mv-red-row i{
  height:11px;width:var(--w,50%);border-radius:2px;
  background:repeating-linear-gradient(90deg,
    color-mix(in srgb,var(--ink) 18%,var(--surface-3)) 0 7px,
    color-mix(in srgb,var(--ink) 10%,var(--surface-3)) 7px 13px);
}

/* access panel (locked / diggable / cooldown) */
.mv-access{border-top:1px solid var(--line);padding-top:16px}
.mv-access-row{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;margin-bottom:9px}
.mv-access-row .mv-k{display:inline}
.mv-access-row b{font:700 1rem var(--mono);font-variant-numeric:tabular-nums}
.mv-access-row b em{font-style:normal;color:var(--ink-3);font-size:.78em}
.mv-access-row b.ok{color:var(--accent)}
.mv-access-row .mv-k:nth-of-type(2){margin-left:auto}
.mv-meter{height:5px;border-radius:99px;background:var(--surface-3);overflow:hidden;margin-bottom:16px}
.mv-meter i{display:block;height:100%;width:var(--w,0%);border-radius:inherit;
  background:linear-gradient(90deg,color-mix(in srgb,var(--accent) 55%,transparent),var(--accent))}
.mv-access-act .btn{width:100%;justify-content:center}
.mv-cta-mission{display:flex;align-items:center;justify-content:center;gap:10px}
.mv-cta-mission b{font:800 .72rem var(--mono);letter-spacing:.04em;padding:3px 8px;border-radius:6px;background:rgba(0,0,0,.22)}
.mv-hold{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:13px 16px;border:1px solid color-mix(in srgb,var(--marginal) 34%,var(--line));border-radius:10px;
  background:color-mix(in srgb,var(--marginal) 6%,transparent);
}
.mv-hold .mv-k{color:color-mix(in srgb,var(--marginal) 70%,var(--ink-2))}
.mv-hold b{font-size:1.05rem;color:var(--marginal)}
.mv-access-note{margin-top:10px;font-size:.74rem;line-height:1.5;color:var(--ink-3)}
.mv-linklike{
  margin-top:8px;border:0;background:none;padding:0;cursor:pointer;
  font:600 .72rem var(--mono);color:var(--ink-3);letter-spacing:.03em;
}
.mv-linklike:hover{color:var(--ink-2);text-decoration:underline}
.mv-obs-note{border-top:1px solid var(--line);padding-top:14px}
.mv-obs-note p{margin-top:7px;font-size:.86rem;line-height:1.6;color:var(--ink-2);max-width:64ch}
.mv-err{padding:40px 24px;text-align:center;color:var(--ink-3);font:600 .8rem var(--mono)}

/* ---- account statement ---- */
.mv-ledgerwrap{
  margin-top:16px;border:1px solid var(--line);border-radius:14px;background:var(--surface);
  box-shadow:var(--elev-1);padding:22px 24px 20px;
  transition:box-shadow var(--dur-3) var(--ease);
}
.mv-ledgerwrap.mv-l-hi{box-shadow:0 0 0 1px color-mix(in srgb,var(--accent) 55%,transparent),var(--elev-2)}
.mv-ledger-head{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:18px;align-items:end;margin-bottom:14px}
.mv-ledger-head h2{margin-top:7px;font:800 1.25rem/1.15 var(--display);letter-spacing:-.01em}
.mv-ledger-head p{font-size:.8rem;line-height:1.55;color:var(--ink-3)}
.mv-l-auth{
  display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-bottom:12px;
  padding:13px 16px;border:1px solid color-mix(in srgb,var(--accent) 30%,var(--line));border-radius:10px;
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
.mv-l-auth b{font-size:.85rem}
.mv-l-auth span{font-size:.76rem;color:var(--ink-2);flex:1;min-width:200px}
.mv-l-auth .btn{flex:none}
.mv-l-rows{border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mv-l-row{
  display:grid;grid-template-columns:minmax(0,1.35fr) minmax(120px,1fr) 110px 64px;gap:16px;align-items:center;
  padding:11px 16px;border-bottom:1px solid var(--line);color:inherit;
  transition:background var(--dur-2) var(--ease);
}
.mv-l-row:last-child{border-bottom:0}
a.mv-l-row:hover{background:color-mix(in srgb,var(--surface-2) 72%,transparent)}
a.mv-l-row:hover .mv-l-go{color:var(--accent)}
.mv-l-row.done{opacity:.62}
.mv-l-main{display:flex;flex-direction:column;gap:2px;min-width:0}
.mv-l-main b{font:650 .84rem/1.25 var(--font);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-l-main small{font:500 .66rem var(--font);color:var(--ink-3)}
.mv-l-bar{height:4px;border-radius:99px;background:var(--surface-3);overflow:hidden}
.mv-l-bar i{display:block;height:100%;width:var(--w,0%);border-radius:inherit;background:color-mix(in srgb,var(--accent) 78%,transparent)}
.mv-l-num{font:700 .8rem var(--mono);text-align:right;white-space:nowrap;font-variant-numeric:tabular-nums}
.mv-l-num em{font-style:normal;color:var(--ink-3);font-size:.82em}
.mv-l-act{text-align:right}
.mv-l-go,.mv-l-done{font:700 .6rem var(--mono);letter-spacing:.1em;color:var(--ink-3);font-style:normal}
.mv-l-done{color:color-mix(in srgb,var(--accent) 55%,var(--ink-3))}
.mv-l-total{
  display:flex;align-items:baseline;justify-content:flex-end;gap:12px;
  padding:13px 4px 0;
}
.mv-l-total b{font:800 1.05rem var(--mono);color:var(--accent);font-variant-numeric:tabular-nums}
.mv-foot{margin:26px 4px 0;font:600 .64rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}

/* ---- access exam modal (id #mn-assay, kept for app.js route-hide) ---- */
.mv-as{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:18px}
.mv-as.hidden{display:none}
.mv-as-back{position:absolute;inset:0;background:rgba(2,4,4,.72);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
.mv-as-card{
  position:relative;width:min(560px,100%);max-height:min(86dvh,720px);overflow-y:auto;
  border:1px solid var(--line-2);border-radius:16px;padding:20px 24px 24px;
  background:linear-gradient(180deg,var(--surface-2),var(--surface));box-shadow:var(--elev-3);
  animation:mvDocIn .24s var(--ease-out);
}
.mv-as-h{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:14px}
.mv-as-h .mv-k{color:var(--ink-3)}
.mv-as-step{font:700 .62rem var(--mono);letter-spacing:.1em;color:var(--accent)}
.mv-as-x{
  border:1px solid var(--line);border-radius:8px;background:transparent;color:var(--ink-3);
  width:30px;height:30px;display:grid;place-items:center;cursor:pointer;font-size:.8rem;
}
.mv-as-x:hover{color:var(--ink);border-color:var(--line-2)}
.mv-as-code{font:800 1.3rem/1.1 var(--display);letter-spacing:-.01em;text-transform:uppercase;margin-bottom:8px}
.mv-as-sub{font-size:.86rem;line-height:1.55;color:var(--ink-2);margin-bottom:16px}
.mv-as-rules{margin:0 0 18px;padding:0;list-style:none;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mv-as-rules li{
  display:flex;align-items:center;justify-content:space-between;gap:12px;
  padding:10px 14px;border-bottom:1px solid var(--line);
  font:600 .74rem var(--font);color:var(--ink-2);
}
.mv-as-rules li:last-child{border-bottom:0}
.mv-as-rules li b{font:700 .74rem var(--mono);color:var(--ink)}
.mv-as-prog{display:flex;gap:5px;margin-bottom:14px}
.mv-as-prog i{height:3px;flex:1;border-radius:99px;background:var(--surface-3)}
.mv-as-prog i.done{background:color-mix(in srgb,var(--accent) 62%,transparent)}
.mv-as-prog i.cur{background:var(--accent)}
.mv-as-q{font:650 .98rem/1.5 var(--font);margin-bottom:14px}
.mv-as-opts{display:flex;flex-direction:column;gap:8px;margin-bottom:16px}
.mv-as-opt{
  display:grid;grid-template-columns:28px minmax(0,1fr);gap:12px;align-items:center;
  width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:10px;
  background:color-mix(in srgb,var(--bg) 40%,transparent);color:var(--ink-2);text-align:left;cursor:pointer;
  font-size:.85rem;line-height:1.45;
  transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease),color var(--dur-2) var(--ease);
}
.mv-as-opt:hover{border-color:var(--line-2);color:var(--ink)}
.mv-as-opt:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.mv-as-opt.sel{border-color:color-mix(in srgb,var(--accent) 62%,transparent);background:color-mix(in srgb,var(--accent) 7%,transparent);color:var(--ink)}
.mv-as-letter{
  width:26px;height:26px;display:grid;place-items:center;border:1px solid var(--line-2);border-radius:7px;
  font:700 .68rem var(--mono);color:var(--ink-3);
}
.mv-as-opt.sel .mv-as-letter{border-color:var(--accent);background:var(--accent);color:#0a1405}
.mv-as-primary{width:100%;justify-content:center}
.mv-as-primary[disabled]{opacity:.45;cursor:not-allowed}
.mv-as-load{padding:48px 10px;text-align:center;font:600 .78rem var(--mono);color:var(--ink-2)}
.mv-as-result{display:flex;flex-direction:column;align-items:center;text-align:center;gap:12px;padding:14px 4px 4px}
.mv-as-grade{font:800 1.9rem var(--mono);letter-spacing:-.02em;font-variant-numeric:tabular-nums}
.mv-as-result h3{font:800 1.15rem var(--display);text-transform:uppercase;letter-spacing:-.01em}
.mv-as-result p{font-size:.86rem;line-height:1.55;color:var(--ink-2);max-width:40ch}
.mv-as-result p b{color:var(--marginal)}
.mv-as-links a{font:700 .74rem var(--mono);color:var(--accent)}
.mv-as-links a:hover{text-decoration:underline}
.mv-as-result .mv-as-primary{margin-top:6px}

/* ---- responsive ---- */
@media (max-width:1080px){
  .mv-desk{grid-template-columns:300px minmax(0,1fr)}
  .mv-row{grid-template-columns:48px minmax(0,1fr) auto;padding-inline:13px}
  .mv-status-grid{grid-template-columns:minmax(0,1fr) 300px}
  .mv-progress-panel{grid-template-columns:132px minmax(0,1fr);padding:21px}
  .mv-score-block{padding-right:20px}
  .mv-next-block{padding-left:20px}
}
@media (max-width:960px){
  .mv-status-grid{grid-template-columns:1fr}
  .mv-status-stack{grid-template-columns:1fr 1fr;grid-template-rows:auto;border-left:0;border-top:1px solid var(--line)}
  .mv-summary-card+ .mv-summary-card{border-top:0;border-left:1px solid var(--line)}
  .mv-desk{grid-template-columns:1fr}
  .mv-indexwrap{position:static;height:auto;max-height:none}
  .mv-index{max-height:min(42vh,360px)}
  .mv-doc{min-height:0}
  .mv-ledger-head{grid-template-columns:1fr;gap:8px;align-items:start}
}
@media (max-width:640px){
  .mv-shell{padding-top:0}
  .mv-meta{gap:12px;font-size:.58rem}
  .mv-sub{font-size:13.5px}
  .mv-status{margin-top:17px;border-radius:16px}
  .mv-status-head{align-items:flex-start;gap:14px;padding:17px 16px 16px}
  .mv-status-head h2{font-size:1.02rem}
  .mv-status-head p{max-width:34ch;font-size:.71rem}
  .mv-verified{padding:6px 8px;font-size:.5rem;letter-spacing:.04em}
  .mv-progress-panel{grid-template-columns:1fr;padding:0}
  .mv-score-block{padding:17px 16px 15px;border-right:0;border-bottom:1px solid var(--line)}
  .mv-score-value{margin-block:5px 1px}
  .mv-score-value b{font-size:2.5rem}
  .mv-next-block{padding:17px 16px 18px}
  .mv-next-top{align-items:flex-start}
  .mv-next-badge{max-width:62%;font-size:.5rem}
  .mv-next-block h3{font-size:1.1rem}
  .mv-next-numbers{grid-template-columns:1fr;gap:4px}
  .mv-next-numbers span{text-align:left}
  .mv-status-action{width:100%;justify-content:center}
  .mv-status-stack{grid-template-columns:1fr}
  .mv-summary-card{padding:17px 16px}
  .mv-summary-card+ .mv-summary-card{border-left:0;border-top:1px solid var(--line)}
  .mv-gauge{padding:17px 16px 15px}
  .mv-gauge-head{align-items:flex-end}
  .mv-gauge-head>div>b{font-size:.65rem}
  .mv-g-overall>b{font-size:1.2rem!important}
  .mv-g-overall>span{font-size:.5rem}
  .mv-g-next{grid-template-columns:28px minmax(0,1fr);gap:9px}
  .mv-g-next-icon{width:28px;height:28px}
  .mv-g-next em{grid-column:2;justify-self:start;margin-top:1px}
  .mv-g-segments{grid-template-columns:repeat(16,minmax(0,1fr));gap:3px;padding:4px;border-radius:9px}
  .mv-g-segment{height:25px;border-radius:5px}
  .mv-g-segment>b i{font-size:.42rem}
  .mv-g-legend{grid-template-columns:1fr;gap:7px}
  .mv-g-state{grid-template-columns:29px minmax(0,1fr);min-height:55px;padding:8px 10px}
  .mv-g-state-icon{width:29px;height:29px;border-radius:8px}
  .mv-g-state.is-current{min-height:63px}
  .mv-doc-in{padding:18px 15px 20px}
  .mv-doc-head{flex-direction:column-reverse;align-items:flex-start;gap:10px}
  .mv-stamp{transform:rotate(0)}
  .mv-doc-title{font-size:1.32rem}
  .mv-red-row{grid-template-columns:112px minmax(0,1fr);gap:10px}
  .mv-tbl{overflow-x:auto}
  .mv-tbl-h,.mv-tbl-r{min-width:480px}
  .mv-access-row .mv-k:nth-of-type(2){margin-left:0}
  .mv-ledgerwrap{padding:16px 14px}
  .mv-l-row{grid-template-columns:minmax(0,1fr) 86px;grid-template-areas:"main num" "bar act";row-gap:8px}
  .mv-l-main{grid-area:main}
  .mv-l-bar{grid-area:bar}
  .mv-l-num{grid-area:num}
  .mv-l-act{grid-area:act}
  .mv-as-card{padding:16px 15px 18px}
  .mv-mining-dock{grid-template-columns:78px minmax(0,1fr);min-height:106px;padding-left:5px}
  .mv-mining-dock .mv-miner-picture{width:78px;height:94px}
  .mv-mining-dock .mv-miner-picture img{width:78px;height:90px}
}
@media (max-width:430px){
  .mv-status-head{flex-direction:column}
  .mv-verified{align-self:flex-start}
  .mv-next-top{flex-direction:column;align-items:flex-start}
  .mv-next-badge{max-width:100%}
  .mv-gauge-head{align-items:flex-start}
  .mv-g-overall{grid-template-columns:auto!important;text-align:right}
  .mv-g-overall>b{grid-row:auto!important}
  .mv-g-overall>span{display:none}
  .mv-g-segments{grid-template-columns:repeat(12,minmax(0,1fr));gap:3px}
  .mv-g-segment{height:23px}
  .mv-g-legend{gap:6px}
  .mv-g-state-copy>b{font-size:.7rem}
  .mv-g-segment.locked>b i{font-size:.36rem}
}
@media (prefers-reduced-motion:reduce){
  .mv-live-dot{animation:none}
  .mv-doc-in,.mv-as-card,.mv-as-result .mv-stamp.grant,.mv-granted .mv-stamp.ok{animation:none}
}

/* ==========================================================================
   EDGE MINE v4 — research gallery + dedicated dossier screens
   The progression card above remains intentionally unchanged.
   ========================================================================== */
.mv-gallerywrap{margin-top:22px}
.mv-gallery-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:28px;
  padding:0 3px 18px;
}
.mv-gallery-heading{max-width:660px}
.mv-gallery-heading h2{margin:7px 0 5px;font:800 clamp(1.35rem,2.2vw,1.8rem)/1.08 var(--display);letter-spacing:-.025em;color:var(--ink)}
.mv-gallery-heading p{max-width:62ch;font:500 .82rem/1.55 var(--font);color:var(--ink-2)}
.mv-gallery-count{
  flex:none;padding:7px 11px;border:1px solid var(--line);border-radius:999px;
  background:color-mix(in srgb,var(--surface-2) 78%,transparent);
  font:750 .58rem/1 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3);
}
.mv-gallery-tools{
  position:sticky;z-index:6;top:calc(var(--nav-h,64px) + 10px);
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  margin-bottom:16px;padding:10px;border:1px solid var(--line);border-radius:15px;
  background:color-mix(in srgb,var(--bg) 82%,var(--surface-2));
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--elev-1);
}
.mv-gallery-search{
  display:flex;align-items:center;gap:10px;min-width:240px;max-width:430px;flex:1;
  height:40px;padding:0 11px;border:1px solid var(--line);border-radius:10px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);color:var(--ink-3);
  transition:border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease);
}
.mv-gallery-search:focus-within{border-color:color-mix(in srgb,var(--accent) 62%,var(--line));box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 11%,transparent)}
.mv-gallery-search>i{font-size:.72rem}
.mv-gallery-search input{min-width:0;flex:1;border:0;outline:0;background:transparent;color:var(--ink);font:550 .76rem var(--font)}
.mv-gallery-search input::placeholder{color:var(--ink-3)}
.mv-search-key{display:grid;place-items:center;width:21px;height:21px;border:1px solid var(--line);border-radius:5px;background:var(--surface-2);font:700 .6rem var(--mono);color:var(--ink-3)}
.mv-filters{display:flex;align-items:center;gap:4px;overflow-x:auto;scrollbar-width:none}
.mv-filters::-webkit-scrollbar{display:none}
.mv-filter{
  min-height:36px;padding:0 13px;border:1px solid transparent;border-radius:9px;background:transparent;
  color:var(--ink-3);font:700 .64rem/1 var(--mono);letter-spacing:.04em;white-space:nowrap;cursor:pointer;
  transition:color var(--dur-2) var(--ease),background var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease);
}
.mv-filter:hover{color:var(--ink);background:var(--surface-2)}
.mv-filter.active{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 10%,var(--surface-2));color:var(--accent)}
.mv-filter:focus-visible{outline:none;box-shadow:var(--focus-ring)}

.mv-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.mv-edge-card{
  --card-tone:var(--accent);
  position:relative;isolation:isolate;display:flex;flex-direction:column;min-width:0;min-height:392px;overflow:hidden;
  padding:17px 17px 16px;border:1px solid var(--line);border-radius:18px;
  background:linear-gradient(155deg,color-mix(in srgb,var(--surface) 96%,var(--card-tone)),color-mix(in srgb,var(--bg) 88%,var(--surface-2)) 68%);
  box-shadow:var(--elev-1);color:inherit;text-align:left;cursor:pointer;
  transition:transform var(--dur-3) var(--ease-out),border-color var(--dur-3) var(--ease),box-shadow var(--dur-3) var(--ease);
}
.mv-edge-card::before{content:"";position:absolute;z-index:2;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--card-tone),color-mix(in srgb,var(--card-tone) 18%,transparent),transparent)}
.mv-edge-card:hover{transform:translateY(-4px);border-color:color-mix(in srgb,var(--card-tone) 48%,var(--line));box-shadow:var(--elev-2),0 16px 40px color-mix(in srgb,var(--card-tone) 7%,transparent)}
.mv-edge-card:focus-visible{outline:none;box-shadow:var(--focus-ring),var(--elev-2);border-color:var(--card-tone)}
.mv-edge-card.tone-trend{--card-tone:#72d685}
.mv-edge-card.tone-revert{--card-tone:#65b7ff}
.mv-edge-card.tone-calendar{--card-tone:#d3b45f}
.mv-edge-card.tone-flow{--card-tone:#b58cff}
.mv-edge-card.tone-carry{--card-tone:#e89263}
.mv-edge-card.tone-lesson{--card-tone:#82b2a1}
.mv-edge-card.tone-system{--card-tone:var(--accent)}
.mv-edge-card.tone-watch{--card-tone:#7c8990}
.mv-card-glow{position:absolute;z-index:-1;right:-52px;top:-56px;width:170px;height:170px;border-radius:50%;background:radial-gradient(circle,color-mix(in srgb,var(--card-tone) 13%,transparent),transparent 68%);pointer-events:none}
.mv-card-top{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:25px}
.mv-card-no{font:800 .62rem/1 var(--mono);letter-spacing:.1em;color:var(--ink-3)}
.mv-card-state{display:inline-flex;align-items:center;gap:6px;max-width:72%;padding:5px 8px;border:1px solid color-mix(in srgb,var(--card-tone) 26%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--card-tone) 7%,transparent);font:750 .53rem/1 var(--mono);letter-spacing:.045em;text-transform:uppercase;color:color-mix(in srgb,var(--card-tone) 74%,var(--ink));white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-card-state i{font-size:.54rem}
.mv-card-visual{display:flex;align-items:flex-end;justify-content:space-between;height:78px;margin:15px 0 17px;padding:15px 16px;border:1px solid color-mix(in srgb,var(--card-tone) 20%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--card-tone) 6%,var(--surface-2));color:var(--card-tone)}
.mv-card-visual>i{font-size:1.65rem;filter:drop-shadow(0 0 13px color-mix(in srgb,var(--card-tone) 34%,transparent))}
.mv-card-visual>em{font:800 2.4rem/.8 var(--display);letter-spacing:-.06em;color:color-mix(in srgb,var(--card-tone) 16%,var(--ink-3));font-style:normal}
.mv-card-type{font:800 .56rem/1.25 var(--mono);letter-spacing:.13em;text-transform:uppercase;color:var(--card-tone)}
.mv-card-title{display:block;margin:6px 0 7px;font:800 1.14rem/1.1 var(--display);letter-spacing:-.01em;text-transform:uppercase;color:var(--ink)}
.mv-card-meta{display:flex;align-items:center;gap:7px;margin-bottom:11px;font:650 .66rem/1.3 var(--font);color:var(--ink-3)}
.mv-card-meta i{font-size:.58rem;color:color-mix(in srgb,var(--card-tone) 60%,var(--ink-3))}
.mv-card-tease{display:-webkit-box;min-height:3.9em;overflow:hidden;-webkit-line-clamp:3;-webkit-box-orient:vertical;font:500 .76rem/1.55 var(--font);color:var(--ink-2)}
.mv-card-progress,.mv-card-openline,.mv-card-watchline{margin-top:auto;padding-top:15px}
.mv-card-progress>div{display:flex;align-items:center;justify-content:space-between;margin-bottom:6px;font:700 .57rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.mv-card-progress>div b{color:var(--ink-2)}
.mv-card-progress>i{display:block;height:5px;overflow:hidden;border-radius:999px;background:var(--surface-3)}
.mv-card-progress>i>span{display:block;width:var(--w,0%);height:100%;border-radius:inherit;background:var(--card-tone)}
.mv-card-progress>small{display:block;margin-top:6px;font:600 .58rem var(--mono);color:var(--ink-3)}
.mv-card-openline,.mv-card-watchline{display:flex;align-items:center;justify-content:space-between;gap:8px;font:700 .57rem var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-3)}
.mv-card-openline span,.mv-card-watchline span{display:flex;align-items:center;gap:7px}
.mv-card-openline i{color:var(--card-tone)}
.mv-card-openline b{color:var(--accent)}
.mv-card-watchline b{color:var(--ink-2)}
.mv-card-action{display:flex;align-items:center;justify-content:space-between;margin-top:14px;padding-top:12px;border-top:1px solid var(--line);font:750 .63rem/1 var(--mono);letter-spacing:.05em;text-transform:uppercase;color:var(--ink-2)}
.mv-card-action i{color:var(--card-tone);transition:transform var(--dur-2) var(--ease)}
.mv-edge-card:hover .mv-card-action i{transform:translateX(3px)}
.mv-gallery-empty{display:flex;min-height:250px;align-items:center;justify-content:center;flex-direction:column;gap:8px;border:1px dashed var(--line-2);border-radius:18px;color:var(--ink-3);text-align:center}
.mv-gallery-empty.hidden{display:none}
.mv-gallery-empty>i{margin-bottom:4px;font-size:1.4rem;color:var(--accent)}
.mv-gallery-empty>b{font:780 1rem var(--display);color:var(--ink-2)}
.mv-gallery-empty>span{font-size:.75rem}

.mv-gallery-foot{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);margin-top:16px;border:1px solid var(--line);border-radius:16px;overflow:hidden;background:color-mix(in srgb,var(--bg) 80%,var(--surface-2));box-shadow:var(--elev-1)}
.mv-gallery-foot .mv-mining-dock{border:0;min-height:136px;padding:8px 22px 8px 12px;background:transparent}
.mv-gallery-foot .mv-mining-dock .mv-miner-picture{width:104px;height:122px}
.mv-gallery-foot .mv-mining-dock .mv-miner-picture img{width:104px;height:118px}
.mv-gallery-foot .mv-criteria{display:flex;justify-content:center;flex-direction:column;border:0;border-left:1px solid var(--line);padding:21px 24px;background:color-mix(in srgb,var(--surface-2) 40%,transparent)}

/* Dedicated edge screen */
.mine-view.is-detail .mv-chrome,.mine-view.is-detail .mv-status,.mine-view.is-detail .mv-ledgerwrap{display:none}
.mv-detail-screen{margin-top:0;animation:mvScreenIn .34s var(--ease-out)}
.mv-detail-screen.hidden{display:none}
@keyframes mvScreenIn{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:none}}
.mv-detail-nav{
  position:sticky;z-index:8;top:calc(var(--nav-h,64px) + 10px);display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:18px;
  margin-bottom:14px;padding:10px 12px;border:1px solid var(--line);border-radius:14px;
  background:color-mix(in srgb,var(--bg) 84%,var(--surface-2));-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);box-shadow:var(--elev-1);
}
.mv-detail-back{display:inline-flex;align-items:center;gap:9px;justify-self:start;min-height:38px;padding:0 12px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink-2);font:750 .65rem var(--mono);cursor:pointer}
.mv-detail-back:hover{border-color:color-mix(in srgb,var(--accent) 38%,var(--line));color:var(--accent)}
.mv-detail-back:focus-visible,.mv-detail-navbtn:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.mv-detail-position{display:flex;align-items:center;gap:10px;text-align:center}
.mv-detail-position .mv-k{display:inline}
.mv-detail-position>b{font:800 .68rem var(--mono);color:var(--ink-2)}
.mv-detail-pager{display:flex;justify-self:end;gap:6px}
.mv-detail-navbtn{display:grid;place-items:center;width:38px;height:38px;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink-2);cursor:pointer}
.mv-detail-navbtn:hover:not(:disabled){border-color:color-mix(in srgb,var(--accent) 38%,var(--line));color:var(--accent)}
.mv-detail-navbtn:disabled{opacity:.32;cursor:not-allowed}
.mv-detail-screen .mv-doc{min-height:calc(100dvh - var(--nav-h,64px) - 100px);border-radius:20px;background:color-mix(in srgb,var(--bg) 78%,var(--surface-2));-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);box-shadow:var(--elev-2)}
.mv-detail-screen .mv-doc-in{--card-tone:var(--accent);padding:0;animation:mvDocIn .32s var(--ease-out)}
.mv-detail-screen .mv-doc-in.tone-trend{--card-tone:#72d685}
.mv-detail-screen .mv-doc-in.tone-revert{--card-tone:#65b7ff}
.mv-detail-screen .mv-doc-in.tone-calendar{--card-tone:#d3b45f}
.mv-detail-screen .mv-doc-in.tone-flow{--card-tone:#b58cff}
.mv-detail-screen .mv-doc-in.tone-carry{--card-tone:#e89263}
.mv-detail-screen .mv-doc-in.tone-lesson{--card-tone:#82b2a1}
.mv-detail-screen .mv-doc-in.tone-watch{--card-tone:#7c8990}
.mv-detail-hero{
  position:relative;display:grid;grid-template-columns:92px minmax(0,1fr) auto;gap:24px;align-items:center;overflow:hidden;
  min-height:235px;padding:32px 34px;border-bottom:1px solid var(--line);
  background:radial-gradient(circle at 8% 42%,color-mix(in srgb,var(--card-tone) 12%,transparent),transparent 30%),linear-gradient(135deg,color-mix(in srgb,var(--surface-2) 90%,var(--card-tone)),color-mix(in srgb,var(--bg) 88%,var(--surface)));
}
.mv-detail-hero::before{content:"";position:absolute;inset:0 0 auto;height:2px;background:linear-gradient(90deg,var(--card-tone),color-mix(in srgb,var(--card-tone) 18%,transparent),transparent 72%)}
.mv-detail-hero-icon{display:grid;place-items:center;width:92px;height:92px;border:1px solid color-mix(in srgb,var(--card-tone) 40%,var(--line));border-radius:24px;background:color-mix(in srgb,var(--card-tone) 10%,var(--surface-2));color:var(--card-tone);box-shadow:inset 0 0 28px color-mix(in srgb,var(--card-tone) 5%,transparent),0 16px 42px rgba(0,0,0,.18)}
.mv-detail-hero-icon i{font-size:2rem;filter:drop-shadow(0 0 18px color-mix(in srgb,var(--card-tone) 38%,transparent))}
.mv-detail-hero-copy{min-width:0}
.mv-detail-hero .mv-doc-id{margin-bottom:13px}
.mv-detail-hero .mv-doc-no{border-color:color-mix(in srgb,var(--card-tone) 35%,var(--line));color:var(--card-tone)}
.mv-detail-hero .mv-doc-title{margin:0 0 10px;font-size:clamp(1.75rem,3.4vw,2.7rem);letter-spacing:-.035em}
.mv-detail-hero .mv-abstract{max-width:68ch;margin:0;font-size:.92rem;line-height:1.6}
.mv-detail-hero-state{display:flex;align-items:flex-end;flex-direction:column;gap:11px;align-self:start}
.mv-detail-hero-state small{font:650 .55rem var(--mono);letter-spacing:.04em;color:var(--ink-3);white-space:nowrap}
.mv-detail-content{padding:30px 34px 34px}
.mv-detail-content .mv-rule{padding:18px 20px;border-radius:0 13px 13px 0}
.mv-detail-content .mv-stats{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));border-radius:13px}
.mv-detail-content .mv-st{min-height:86px;padding:16px}
.mv-detail-content .mv-st-v{font-size:1.05rem}
.mv-doc-in:has(.mv-redacted) .mv-detail-content{display:grid;grid-template-columns:minmax(0,1.08fr) minmax(300px,.92fr);gap:24px;align-items:start}
.mv-doc-in:has(.mv-redacted) .mv-redacted{margin:0}
.mv-doc-in:has(.mv-redacted) .mv-access{padding:22px;border:1px solid color-mix(in srgb,var(--card-tone) 28%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--card-tone) 5%,var(--surface-2))}
.mv-detail-content .mv-obs-note{padding:24px;border:1px solid var(--line);border-radius:14px;background:var(--surface-2)}

[data-theme="light"] .mv-edge-card{background:linear-gradient(155deg,color-mix(in srgb,#fff 96%,var(--card-tone)),color-mix(in srgb,var(--surface-2) 92%,#fff))}
[data-theme="light"] .mv-gallery-tools,[data-theme="light"] .mv-detail-nav,[data-theme="light"] .mv-detail-screen .mv-doc{background:color-mix(in srgb,#fff 88%,var(--surface-2))}

@media (max-width:980px){
  .mv-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}
  .mv-gallery-tools{align-items:stretch;flex-direction:column}
  .mv-gallery-search{max-width:none}
  .mv-filters{width:100%}
  .mv-filter{flex:1}
  .mv-gallery-foot{grid-template-columns:1fr}
  .mv-gallery-foot .mv-criteria{border-left:0;border-top:1px solid var(--line)}
  .mv-detail-hero{grid-template-columns:80px minmax(0,1fr);gap:20px;padding:28px}
  .mv-detail-hero-icon{width:80px;height:80px;border-radius:21px}
  .mv-detail-hero-state{grid-column:1/-1;align-items:flex-start;flex-direction:row;align-self:auto}
  .mv-doc-in:has(.mv-redacted) .mv-detail-content{grid-template-columns:1fr}
}
@media (max-width:640px){
  .mv-gallerywrap{margin-top:18px}
  .mv-gallery-head{align-items:flex-start;flex-direction:column;gap:12px;padding-bottom:14px}
  .mv-gallery-tools{position:static;padding:8px;border-radius:13px}
  .mv-gallery-search{min-width:0;width:100%}
  .mv-filter{flex:none;padding-inline:11px}
  .mv-gallery{grid-template-columns:1fr;gap:12px}
  .mv-edge-card{min-height:365px;padding:15px;border-radius:16px}
  .mv-card-visual{height:70px;margin-block:13px}
  .mv-gallery-foot .mv-mining-dock{grid-template-columns:78px minmax(0,1fr);padding-left:6px}
  .mv-gallery-foot .mv-mining-dock .mv-miner-picture{width:78px;height:96px}
  .mv-gallery-foot .mv-mining-dock .mv-miner-picture img{width:78px;height:92px}
  .mv-detail-nav{grid-template-columns:1fr auto;top:calc(var(--nav-h,64px) + 6px);padding:8px}
  .mv-detail-position{display:none}
  .mv-detail-back span{display:none}
  .mv-detail-screen .mv-doc{min-height:0;border-radius:16px}
  .mv-detail-hero{grid-template-columns:58px minmax(0,1fr);gap:15px;min-height:0;padding:22px 18px}
  .mv-detail-hero-icon{width:58px;height:58px;border-radius:16px}
  .mv-detail-hero-icon i{font-size:1.35rem}
  .mv-detail-hero .mv-doc-id{gap:5px;margin-bottom:9px}
  .mv-detail-hero .mv-chip.dim{display:none}
  .mv-detail-hero .mv-doc-title{font-size:1.48rem}
  .mv-detail-hero .mv-abstract{font-size:.8rem}
  .mv-detail-hero-state{gap:8px;flex-wrap:wrap}
  .mv-detail-hero-state small{white-space:normal}
  .mv-detail-content{padding:20px 16px 22px}
  .mv-doc-in:has(.mv-redacted) .mv-access{padding:16px}
}
@media (prefers-reduced-motion:reduce){
  .mv-detail-screen,.mv-edge-card{animation:none;transition:none}
  .mv-edge-card:hover{transform:none}
}

/* ==========================================================================
   EDGE MINE v5 — clarity-first catalog
   Status, evidence and next action replace decorative category panels.
   ========================================================================== */
.mv-gallerywrap{
  padding:24px;border:1px solid var(--line);border-radius:18px;
  background:color-mix(in srgb,var(--bg) 94%,var(--surface));box-shadow:var(--elev-1);
  -webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
}
.mv-gallery-head{padding:0 0 18px}
.mv-gallery-heading h2{font-size:clamp(1.35rem,2vw,1.7rem)}
.mv-gallery-heading p{max-width:72ch;color:var(--ink-2)}
.mv-gallery-tools{top:calc(var(--nav-h,64px) + 10px);margin-inline:-1px;background:color-mix(in srgb,var(--bg) 95%,var(--surface-2));box-shadow:0 8px 24px color-mix(in srgb,var(--bg) 72%,transparent)}
.mv-filter{display:inline-flex;align-items:center;gap:7px}
.mv-filter>b{display:grid;place-items:center;min-width:20px;height:20px;padding:0 5px;border:1px solid var(--line);border-radius:6px;background:var(--surface);font:750 .55rem var(--mono);color:var(--ink-3)}
.mv-filter.active>b{border-color:color-mix(in srgb,var(--accent) 30%,var(--line));background:color-mix(in srgb,var(--accent) 9%,var(--surface));color:var(--accent)}

.mv-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.mv-edge-card{
  --status:var(--ink-3);display:flex;flex-direction:column;min-height:0;padding:0;border:1px solid var(--line);border-radius:14px;
  background:var(--surface);box-shadow:none;color:inherit;cursor:default;text-align:left;overflow:hidden;
  transition:border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease);
}
.mv-edge-card::before{inset:0 auto 0 0;width:3px;height:auto;background:var(--status)}
.mv-edge-card:hover{transform:none;border-color:var(--line-2);box-shadow:0 10px 28px rgba(0,0,0,.12)}
.mv-edge-card.is-open{--status:var(--accent)}
.mv-edge-card.is-ready{--status:var(--accent)}
.mv-edge-card.is-wait{--status:var(--marginal)}
.mv-edge-card.is-watch{--status:color-mix(in srgb,var(--accent-2) 55%,var(--ink-3))}
.mv-card-top{display:flex;align-items:center;justify-content:space-between;gap:14px;min-height:0;padding:17px 18px 0}
.mv-card-ref{display:flex;align-items:center;gap:10px;min-width:0}
.mv-card-ref>i{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid var(--line);border-radius:9px;background:var(--surface-2);color:var(--ink-2);font-size:.78rem}
.mv-card-ref>span{display:flex;min-width:0;flex-direction:column;gap:3px}
.mv-card-ref b{font:750 .57rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-card-ref small{font:700 .54rem/1 var(--mono);letter-spacing:.08em;color:var(--ink-3)}
.mv-card-state{max-width:46%;padding:5px 8px;border-color:color-mix(in srgb,var(--status) 30%,var(--line));background:color-mix(in srgb,var(--status) 6%,var(--surface-2));color:color-mix(in srgb,var(--status) 62%,var(--ink-2))}
.mv-card-copy{padding:15px 18px 14px}
.mv-card-copy h3{margin:0 0 7px;font:800 1.12rem/1.1 var(--display);letter-spacing:-.015em;text-transform:uppercase;color:var(--ink)}
.mv-card-copy p{display:-webkit-box;min-height:3.1em;overflow:hidden;-webkit-line-clamp:2;-webkit-box-orient:vertical;font:500 .78rem/1.55 var(--font);color:var(--ink-2)}
.mv-card-facts{display:grid;grid-template-columns:minmax(0,1.35fr) minmax(120px,.65fr);margin:0 18px 16px;border:1px solid var(--line);border-radius:10px;overflow:hidden}
.mv-card-facts>div{min-width:0;padding:10px 12px;background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))}
.mv-card-facts>div+div{border-left:1px solid var(--line)}
.mv-card-facts dt{margin-bottom:4px;font:700 .52rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.mv-card-facts dd{margin:0;font:650 .69rem/1.35 var(--font);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-card-metrics{display:grid;grid-template-columns:1fr 1fr;gap:1px;margin:0 18px 16px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:10px;background:var(--line)}
.mv-card-metrics>span{display:flex;flex-direction:column;gap:3px;padding:10px 12px;background:color-mix(in srgb,var(--accent) 4%,var(--surface))}
.mv-card-metrics small{font:700 .52rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.mv-card-metrics b{font:750 .76rem var(--mono);color:var(--ink)}

.mv-card-access{margin-top:auto;padding:14px 18px 16px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--surface-2) 62%,var(--surface))}
.mv-card-progress-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:7px;font:700 .54rem var(--mono);letter-spacing:.075em;text-transform:uppercase;color:var(--ink-3)}
.mv-card-progress-head b{font-size:.58rem;color:var(--ink-2);font-variant-numeric:tabular-nums}
.mv-card-progressbar{height:4px;overflow:hidden;border-radius:99px;background:var(--surface-3)}
.mv-card-progressbar>i{display:block;width:var(--w,0%);height:100%;border-radius:inherit;background:var(--accent)}
.mv-card-next{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:14px;margin-top:13px}
.mv-card-next-copy{display:flex;align-items:flex-start;gap:10px;min-width:0}
.mv-card-next-copy>i{display:grid;place-items:center;width:28px;height:28px;flex:none;border:1px solid var(--line);border-radius:8px;background:var(--surface);color:var(--ink-2);font-size:.65rem}
.mv-card-next-copy>span{display:flex;min-width:0;flex-direction:column;gap:2px}
.mv-card-next-copy small{font:700 .5rem/1.2 var(--mono);letter-spacing:.1em;text-transform:uppercase;color:var(--ink-3)}
.mv-card-next-copy b{font:650 .7rem/1.35 var(--font);color:var(--ink)}
.mv-card-next-copy em{font:600 .58rem/1.35 var(--font);color:var(--ink-3);font-style:normal}
.mv-card-cta{
  display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:38px;padding:0 12px;
  border:1px solid var(--line-2);border-radius:9px;background:var(--surface);color:var(--ink-2);
  font:750 .6rem/1 var(--mono);letter-spacing:.035em;white-space:nowrap;cursor:pointer;
  transition:border-color var(--dur-2) var(--ease),background var(--dur-2) var(--ease),color var(--dur-2) var(--ease);
}
.mv-card-cta:hover{border-color:color-mix(in srgb,var(--accent) 45%,var(--line));color:var(--accent)}
.mv-card-cta:focus-visible{outline:none;box-shadow:var(--focus-ring)}
.mv-card-cta.primary{border-color:color-mix(in srgb,var(--accent) 36%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--accent)}
.mv-edge-card.is-open .mv-card-cta.primary,.mv-edge-card.is-ready .mv-card-cta.primary{background:var(--accent);color:#0b1608;border-color:var(--accent)}
.mv-card-access.is-open,.mv-card-access.is-watch{display:flex;align-items:center;justify-content:space-between;gap:14px}
.mv-card-access.is-open .mv-card-next-copy>i{border-color:color-mix(in srgb,var(--accent) 35%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--accent)}
.mv-card-passive{flex:none;padding:5px 8px;border:1px solid var(--line);border-radius:999px;font:700 .52rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}

.mv-gallery-note{display:flex;align-items:center;gap:13px;margin-top:16px;padding:15px 17px;border:1px solid var(--line);border-radius:12px;background:color-mix(in srgb,var(--surface-2) 55%,var(--surface))}
.mv-gallery-note-icon{display:grid;place-items:center;width:34px;height:34px;flex:none;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:9px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));color:var(--accent)}
.mv-gallery-note b{font:700 .72rem/1.35 var(--font);color:var(--ink)}
.mv-gallery-note p{margin-top:3px;font:500 .66rem/1.5 var(--font);color:var(--ink-3)}

[data-theme="light"] .mv-gallerywrap{background:color-mix(in srgb,#fff 96%,var(--surface-2))}
[data-theme="light"] .mv-edge-card{background:#fff}

@media (max-width:900px){
  .mv-gallery{grid-template-columns:1fr}
}
@media (max-width:640px){
  .mv-gallerywrap{padding:15px 13px;border-radius:16px}
  .mv-gallery-head{padding-bottom:14px}
  .mv-gallery-tools{margin-inline:0}
  .mv-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:6px;overflow:visible}
  .mv-filter{justify-content:center;min-width:0;padding-inline:8px}
  .mv-card-top{padding:15px 15px 0}
  .mv-card-copy{padding:14px 15px 13px}
  .mv-card-facts,.mv-card-metrics{margin-inline:15px}
  .mv-card-facts{grid-template-columns:1fr}
  .mv-card-facts>div+div{border-left:0;border-top:1px solid var(--line)}
  .mv-card-access{padding:13px 15px 15px}
  .mv-card-next{grid-template-columns:1fr}
  .mv-card-cta{width:100%}
  .mv-card-access.is-open,.mv-card-access.is-watch{align-items:stretch;flex-direction:column}
  .mv-card-passive{align-self:flex-start}
  .mv-gallery-note{align-items:flex-start}
}

/* ==========================================================================
   EDGE MINE v6 — real market fingerprints
   Card charts use server-supplied historical OHLC, never decorative paths.
   ========================================================================== */
.mv-gallerywrap{padding:24px 22px;background:color-mix(in srgb,var(--bg) 97%,var(--surface));-webkit-backdrop-filter:none;backdrop-filter:none}
.mv-gallery-head{align-items:flex-end}
.mv-gallery-heading h2{max-width:720px;font-size:clamp(1.55rem,2.4vw,2.05rem);letter-spacing:-.035em}
.mv-gallery-heading p{max-width:78ch;font-size:.78rem}
.mv-gallery-tools{border-color:var(--line);background:color-mix(in srgb,var(--bg) 98%,var(--surface));-webkit-backdrop-filter:none;backdrop-filter:none;box-shadow:none}
.mv-gallery{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}

.mv-edge-card{
  display:grid;grid-template-columns:minmax(210px,.88fr) minmax(250px,1.12fr);align-items:stretch;
  contain:layout paint;border-radius:12px;background:color-mix(in srgb,var(--surface) 94%,var(--bg));overflow:hidden;
}
.mv-edge-card::before{content:none;display:none}
.mv-edge-card:hover{border-color:var(--line-2);box-shadow:0 12px 30px rgba(0,0,0,.14)}
.mv-edge-card.is-open{border-color:color-mix(in srgb,var(--accent) 70%,var(--line));box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 12%,transparent)}
.mv-card-info{display:flex;min-width:0;flex-direction:column}
.mv-card-top{padding:14px 15px 0}
.mv-card-ref>i{width:30px;height:30px;border-radius:8px;font-size:.7rem}
.mv-card-state{max-width:48%;font-size:.49rem}
.mv-card-copy{padding:13px 15px 11px}
.mv-card-copy h3{font-size:1.05rem}
.mv-card-copy p{min-height:3.15em;font-size:.76rem;line-height:1.48}
.mv-card-facts{grid-template-columns:minmax(0,1.2fr) minmax(88px,.8fr);margin:0 15px 12px;border-radius:8px}
.mv-card-facts>div{padding:8px 9px}
.mv-card-facts dt{font-size:.51rem}
.mv-card-facts dd{font-size:.68rem}

.mv-fingerprint{
  position:relative;display:flex;min-width:0;min-height:244px;flex-direction:column;padding:13px 12px 11px;
  border-right:1px solid var(--line);background:color-mix(in srgb,var(--bg) 86%,var(--surface));
}
.mv-fingerprint::after{content:"";position:absolute;inset:38px 12px 37px;pointer-events:none;border-block:1px solid color-mix(in srgb,var(--line) 70%,transparent)}
.mv-fingerprint-meta,.mv-fingerprint-caption{position:relative;z-index:2;display:flex;align-items:center;justify-content:space-between;gap:8px;min-height:18px}
.mv-fingerprint-meta span,.mv-fingerprint-caption span{display:flex;align-items:center;gap:6px;min-width:0;font:700 .51rem/1.2 var(--mono);letter-spacing:.045em;text-transform:uppercase;color:var(--ink-3)}
.mv-fingerprint-meta span{white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-fingerprint-meta i{color:var(--accent)}
.mv-fingerprint-meta b,.mv-fingerprint-caption b{font:700 .5rem var(--mono);letter-spacing:.045em;text-transform:uppercase;color:var(--ink-3);white-space:nowrap}
.mv-fingerprint-caption span i{color:var(--accent)}
.mv-edge-card.is-locked .mv-fingerprint-caption span i,.mv-edge-card.is-wait .mv-fingerprint-caption span i{color:var(--ink-2)}
.mv-fingerprint-chart{position:relative;z-index:1;min-height:190px;flex:1;margin:3px -3px 2px}
.mv-fingerprint.is-empty{align-items:center;justify-content:center;gap:8px;text-align:center;color:var(--ink-3)}
.mv-fingerprint.is-empty::after{display:none}
.mv-fingerprint.is-empty>i{font-size:1.1rem;color:var(--ink-3)}
.mv-fingerprint.is-empty>b{max-width:24ch;font:700 .72rem var(--display);color:var(--ink-2)}
.mv-fingerprint.is-empty>span{max-width:30ch;font:500 .62rem/1.45 var(--font)}

.mv-card-evidence{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:auto 15px 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.mv-card-evidence>div{min-width:0;padding:9px 8px}
.mv-card-evidence>div+div{border-left:1px solid var(--line)}
.mv-card-evidence dt{margin-bottom:4px;font:700 .5rem/1.15 var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.mv-card-evidence dd{margin:0;font:700 .66rem/1.25 var(--mono);color:var(--ink-2);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-card-evidence dd.is-revealed{color:var(--accent)}
.mv-card-access{grid-column:1/-1;margin:0;padding:11px 14px 12px;background:color-mix(in srgb,var(--surface-2) 38%,var(--surface))}
.mv-card-progress-head{margin-bottom:6px}
.mv-card-next{margin-top:9px}
.mv-card-next-copy b{font-size:.66rem}
.mv-card-next-copy em{font-size:.55rem}
.mv-card-cta{min-height:34px;font-size:.56rem}
.mv-gallery-note{border-style:dashed;background:transparent}

/* Real-data evidence surface inside an unlocked dossier. */
.mv-market-proof{overflow:hidden;margin-bottom:24px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));border-radius:14px;background:color-mix(in srgb,var(--bg) 82%,var(--surface))}
.mv-market-proof-head{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;padding:18px 20px;border-bottom:1px solid var(--line)}
.mv-market-proof-head .mv-k{display:flex;align-items:center;gap:8px;color:var(--accent)}
.mv-market-proof-head h3{margin:6px 0 4px;font:800 1.15rem/1.1 var(--display);color:var(--ink)}
.mv-market-proof-head p{font:500 .7rem/1.5 var(--font);color:var(--ink-3)}
.mv-proof-date{font:700 .58rem var(--mono);color:var(--ink-3);white-space:nowrap}
.mv-proof-main{display:grid;grid-template-columns:minmax(0,1fr) 180px;min-height:370px}
.mv-proof-chart{min-width:0;min-height:370px;border-right:1px solid var(--line)}
.mv-proof-facts{display:flex;margin:0;flex-direction:column}
.mv-proof-facts>div{display:flex;min-height:25%;justify-content:center;flex-direction:column;padding:13px 15px}
.mv-proof-facts>div+div{border-top:1px solid var(--line)}
.mv-proof-facts dt{margin-bottom:5px;font:700 .5rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.mv-proof-facts dd{margin:0;font:750 .72rem/1.35 var(--mono);color:var(--ink)}
.mv-proof-facts dd.pos{color:var(--accent)}
.mv-proof-facts dd.neg{color:#e45f58}
.mv-proof-secondary{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
.mv-proof-secondary>section{min-width:0;padding:14px 16px 12px}
.mv-proof-secondary>section+section{border-left:1px solid var(--line)}
.mv-proof-secondary header{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-bottom:7px}
.mv-proof-secondary header b{font:650 .5rem var(--mono);color:var(--ink-3)}
.mv-study-chart,.mv-distribution-chart{height:190px}
.mv-market-proof>footer{display:flex;align-items:center;gap:8px;padding:10px 16px;border-top:1px solid var(--line);font:500 .58rem/1.45 var(--font);color:var(--ink-3)}
.mv-market-proof>footer i{color:var(--accent)}

@media (max-width:1080px){
  .mv-gallery{grid-template-columns:1fr}
  .mv-edge-card{grid-template-columns:minmax(240px,.8fr) minmax(310px,1.2fr)}
}
@media (max-width:720px){
  .mv-gallerywrap{padding:16px 13px}
  .mv-edge-card{grid-template-columns:1fr}
  .mv-fingerprint{min-height:228px;border-right:0;border-bottom:1px solid var(--line)}
  .mv-fingerprint-chart{min-height:175px}
  .mv-card-access{grid-column:1}
  .mv-proof-main{grid-template-columns:1fr}
  .mv-proof-chart{min-height:320px;border-right:0;border-bottom:1px solid var(--line)}
  .mv-proof-facts{display:grid;grid-template-columns:1fr 1fr}
  .mv-proof-facts>div{min-height:74px}
  .mv-proof-facts>div+div{border-top:0}
  .mv-proof-facts>div:nth-child(even){border-left:1px solid var(--line)}
  .mv-proof-facts>div:nth-child(n+3){border-top:1px solid var(--line)}
  .mv-proof-secondary{grid-template-columns:1fr}
  .mv-proof-secondary>section+section{border-left:0;border-top:1px solid var(--line)}
}
@media (max-width:480px){
  .mv-gallery-heading h2{font-size:1.42rem}
  .mv-card-evidence{grid-template-columns:1fr}
  .mv-card-evidence>div+div{border-left:0;border-top:1px solid var(--line)}
  .mv-market-proof-head{align-items:flex-start;flex-direction:column;padding:16px}
  .mv-proof-chart{min-height:280px}
}

/* ==========================================================================
   EDGE MINE v7 — performance-first evidence
   The collection leads with the real backtest; the dossier leads with the
   execution contract and then expands the same evidence without inventing it.
   ========================================================================== */
.mv-performance{
  position:relative;display:flex;min-width:0;min-height:286px;flex-direction:column;padding:14px 14px 12px;
  border-right:1px solid var(--line);background:color-mix(in srgb,var(--bg) 91%,var(--surface));
}
.mv-performance-head{display:flex;align-items:flex-start;justify-content:space-between;gap:10px;min-height:27px}
.mv-performance-head>span{display:flex;align-items:center;gap:7px;min-width:0;font:750 .5rem/1.35 var(--mono);letter-spacing:.065em;text-transform:uppercase;color:var(--ink-2)}
.mv-performance-head>span i{color:var(--accent)}
.mv-performance-head>b{max-width:48%;font:650 .48rem/1.35 var(--mono);letter-spacing:.02em;color:var(--ink-3);text-align:right}
.mv-performance-chart{
  height:170px;min-height:170px;margin:4px -2px 0;
  background-image:linear-gradient(color-mix(in srgb,var(--line) 40%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--line) 28%,transparent) 1px,transparent 1px);
  background-size:100% 42px,56px 100%;
}
.mv-performance-legend{display:flex;align-items:center;gap:13px;min-height:23px;border-top:1px solid color-mix(in srgb,var(--line) 76%,transparent);font:650 .48rem var(--mono);letter-spacing:.025em;color:var(--ink-3)}
.mv-performance-legend span{display:flex;align-items:center;gap:5px;white-space:nowrap}
.mv-performance-legend i{display:block;width:12px;height:2px;border-radius:4px;background:var(--accent)}
.mv-performance-legend .benchmark i{height:1px;background:#56c8d5}
.mv-performance-legend .drawdown i{height:5px;background:color-mix(in srgb,#e45f58 52%,transparent)}
.mv-performance-kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-top:1px solid var(--line)}
.mv-performance-kpis>div{min-width:0;padding:9px 8px 1px}
.mv-performance-kpis>div+div{border-left:1px solid var(--line)}
.mv-performance-kpis dt{margin-bottom:4px;font:700 .47rem/1.15 var(--mono);letter-spacing:.075em;text-transform:uppercase;color:var(--ink-3)}
.mv-performance-kpis dd{margin:0;font:760 .68rem/1.2 var(--mono);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-performance-kpis dd.pos{color:var(--accent)}
.mv-performance-kpis dd.neg{color:#e45f58}
.mv-performance.is-empty,.mv-performance.is-summary{justify-content:flex-start}
.mv-performance.is-empty{align-items:center;justify-content:center;gap:9px;text-align:center;color:var(--ink-3)}
.mv-performance.is-empty>i{font-size:1rem}
.mv-performance.is-empty>b{max-width:25ch;font:750 .72rem/1.35 var(--display);color:var(--ink-2)}
.mv-performance.is-empty>span{max-width:31ch;font:500 .62rem/1.5 var(--font)}
.mv-performance-summary-lock{display:flex;align-items:flex-start;gap:11px;min-height:154px;margin-top:6px;padding:18px 14px;border:1px dashed var(--line-2);border-radius:9px;background:color-mix(in srgb,var(--surface) 55%,transparent)}
.mv-performance-summary-lock>i{margin-top:2px;color:var(--accent)}
.mv-performance-summary-lock>span{display:flex;flex-direction:column;gap:6px}
.mv-performance-summary-lock b{font:700 .69rem/1.42 var(--display);color:var(--ink-2)}
.mv-performance-summary-lock small{font:500 .58rem/1.48 var(--font);color:var(--ink-3)}

/* Final collection card: the research pipeline, not a verified dossier. The
   animated miner is the original reduced-motion-aware Mine artwork. */
.mv-mining-card{
  --status:var(--accent);border-color:color-mix(in srgb,var(--accent) 34%,var(--line));
  background:linear-gradient(145deg,color-mix(in srgb,var(--surface) 92%,var(--accent)),color-mix(in srgb,var(--bg) 94%,var(--surface)) 58%);
}
.mv-mining-card:hover{border-color:color-mix(in srgb,var(--accent) 54%,var(--line));box-shadow:0 12px 34px color-mix(in srgb,var(--accent) 8%,rgba(0,0,0,.18))}
.mv-mining-visual{
  position:relative;isolation:isolate;min-width:0;min-height:286px;overflow:hidden;
  border-right:1px solid color-mix(in srgb,var(--accent) 20%,var(--line));
  background:
    radial-gradient(circle at 54% 70%,color-mix(in srgb,var(--accent) 17%,transparent),transparent 42%),
    linear-gradient(180deg,color-mix(in srgb,var(--bg) 88%,var(--surface)),color-mix(in srgb,var(--accent) 5%,var(--bg)));
}
.mv-mining-visual::before{
  content:"";position:absolute;z-index:-1;inset:0;opacity:.38;
  background-image:linear-gradient(color-mix(in srgb,var(--accent) 12%,transparent) 1px,transparent 1px),linear-gradient(90deg,color-mix(in srgb,var(--accent) 12%,transparent) 1px,transparent 1px);
  background-size:28px 28px;mask-image:linear-gradient(to bottom,rgba(0,0,0,.85),transparent 88%);
}
.mv-mining-visual-k{
  position:absolute;z-index:4;left:13px;right:13px;top:13px;display:flex;align-items:center;gap:7px;
  font:750 .49rem/1.3 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-2);
}
.mv-mining-visual-k>i,.mv-mining-live-chip>i{
  width:6px;height:6px;flex:none;border-radius:50%;background:var(--accent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent),0 0 12px color-mix(in srgb,var(--accent) 62%,transparent);
  animation:mvMiningPulse 1.7s ease-in-out infinite;
}
.mv-mining-visual .mv-miner-picture{position:absolute;z-index:2;inset:31px 0 16px;display:flex;align-items:flex-end;justify-content:center}
.mv-mining-visual .mv-miner-picture img{
  display:block;width:auto;height:min(238px,86%);max-width:96%;object-fit:contain;object-position:center bottom;
  filter:drop-shadow(0 16px 20px rgba(0,0,0,.34)) drop-shadow(0 0 18px color-mix(in srgb,var(--accent) 9%,transparent));
}
.mv-mining-depth{
  position:absolute;z-index:4;left:13px;right:13px;bottom:11px;display:flex;align-items:center;gap:5px;
  padding-top:8px;border-top:1px solid color-mix(in srgb,var(--accent) 18%,var(--line));
}
.mv-mining-depth>i{display:block;width:16px;height:3px;border-radius:99px;background:color-mix(in srgb,var(--accent) 72%,var(--line))}
.mv-mining-depth>i:nth-child(2){opacity:.58}.mv-mining-depth>i:nth-child(3){opacity:.28}
.mv-mining-depth>b{margin-left:auto;font:700 .46rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.mv-mining-card .mv-card-state i{animation:mvMiningSpin 2.8s linear infinite}
.mv-mining-card .mv-card-copy p{display:block;min-height:0;-webkit-line-clamp:unset}
.mv-mining-stages dd{color:var(--ink-2)}
.mv-mining-access{display:flex;align-items:center;justify-content:space-between;gap:16px}
.mv-mining-access .mv-card-next-copy>i{border-color:color-mix(in srgb,var(--accent) 32%,var(--line));background:color-mix(in srgb,var(--accent) 7%,var(--surface));color:var(--accent)}
.mv-mining-live-chip{display:inline-flex;align-items:center;gap:8px;flex:none;padding:7px 9px;border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 6%,var(--surface));font:750 .5rem var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--accent);white-space:nowrap}
@keyframes mvMiningPulse{0%,100%{opacity:.48;transform:scale(.82)}50%{opacity:1;transform:scale(1)}}
@keyframes mvMiningSpin{to{transform:rotate(360deg)}}
[data-theme="light"] .mv-mining-card{background:linear-gradient(145deg,color-mix(in srgb,#fff 94%,var(--accent)),#fff 62%)}

/* The open dossier reads as an operating document, not a promotional modal. */
.mv-section-head{display:flex;align-items:flex-end;justify-content:space-between;gap:18px}
.mv-section-head .mv-k{display:flex;align-items:center;gap:7px;color:var(--accent)}
.mv-section-head h3{margin-top:7px;font:800 clamp(1.12rem,2vw,1.4rem)/1.08 var(--display);letter-spacing:-.025em;color:var(--ink)}
.mv-operation,.mv-backtest-panel{overflow:hidden;margin-bottom:24px;border:1px solid var(--line);border-radius:14px;background:color-mix(in srgb,var(--surface) 94%,var(--bg))}
.mv-operation>.mv-section-head,.mv-backtest-panel>.mv-section-head{padding:20px;border-bottom:1px solid var(--line)}
.mv-operation-bias{display:inline-flex;align-items:center;min-height:26px;padding:0 9px;border:1px solid color-mix(in srgb,var(--accent) 42%,var(--line));border-radius:999px;background:color-mix(in srgb,var(--accent) 7%,var(--surface));font:750 .52rem var(--mono);letter-spacing:.08em;color:var(--accent)}
.mv-operation-bias.neg{border-color:color-mix(in srgb,#e45f58 42%,var(--line));background:color-mix(in srgb,#e45f58 7%,var(--surface));color:#e45f58}
.mv-operation-rule{display:grid;grid-template-columns:152px minmax(0,1fr);gap:18px;padding:20px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 38%,var(--surface))}
.mv-operation-rule>span{padding-top:2px;font:700 .51rem/1.35 var(--mono);letter-spacing:.09em;text-transform:uppercase;color:var(--ink-3)}
.mv-operation-rule p{margin:0;font:650 .87rem/1.58 var(--font);color:var(--ink)}
.mv-operation-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-bottom:1px solid var(--line)}
.mv-operation-grid>div{min-width:0;padding:15px 17px}
.mv-operation-grid>div+div{border-left:1px solid var(--line)}
.mv-operation-grid>div:nth-child(4){border-left:0}
.mv-operation-grid>div:nth-child(n+4){border-top:1px solid var(--line)}
.mv-operation-grid dt{margin-bottom:7px;font:700 .5rem var(--mono);letter-spacing:.08em;text-transform:uppercase;color:var(--ink-3)}
.mv-operation-grid dd{margin:0;font:700 .69rem/1.4 var(--font);color:var(--ink-2)}
.mv-operation-grid dd.neg{color:#e45f58}
.mv-operation-checks{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0}
.mv-operation-checks>div{display:flex;align-items:flex-start;gap:10px;min-width:0;padding:16px 17px}
.mv-operation-checks>div+div{border-left:1px solid var(--line)}
.mv-operation-checks i{display:grid;place-items:center;width:23px;height:23px;flex:none;border:1px solid var(--line-2);border-radius:6px;color:var(--accent);font-size:.55rem}
.mv-operation-checks span{font:500 .64rem/1.48 var(--font);color:var(--ink-3)}
.mv-operation-checks b{display:block;margin-bottom:4px;font:700 .65rem/1.2 var(--font);color:var(--ink)}

.mv-backtest-period{font:700 .55rem var(--mono);color:var(--ink-3);white-space:nowrap}
.mv-backtest-kpis{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));margin:0;border-bottom:1px solid var(--line)}
.mv-backtest-kpis>div{min-width:0;padding:14px 15px}
.mv-backtest-kpis>div+div{border-left:1px solid var(--line)}
.mv-backtest-kpis dt{min-height:2.3em;margin-bottom:6px;font:700 .49rem/1.2 var(--mono);letter-spacing:.07em;text-transform:uppercase;color:var(--ink-3)}
.mv-backtest-kpis dd{margin:0;font:780 .78rem/1.2 var(--mono);color:var(--ink);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mv-backtest-kpis dd.pos{color:var(--accent)}
.mv-backtest-kpis dd.neg{color:#e45f58}
.mv-equity-block,.mv-drawdown-block{padding:16px 17px 13px}
.mv-equity-block{border-bottom:1px solid var(--line)}
.mv-equity-block>header,.mv-drawdown-block>header{display:flex;align-items:center;gap:16px;min-height:24px}
.mv-equity-block>header span{display:flex;align-items:center;gap:6px;font:650 .52rem var(--mono);color:var(--ink-2)}
.mv-equity-block>header i{display:block;width:15px;height:2px;background:var(--accent)}
.mv-equity-block>header i.benchmark{height:1px;background:#56c8d5}
.mv-equity-block>header b{margin-left:auto;font:600 .49rem var(--mono);color:var(--ink-3)}
.mv-equity-chart{height:360px;min-height:360px}
.mv-drawdown-block>header{justify-content:space-between}
.mv-drawdown-block>header b.neg{font:700 .56rem var(--mono);color:#e45f58}
.mv-drawdown-chart{height:235px;min-height:235px}
.mv-backtest-source{display:flex;align-items:flex-start;gap:10px;padding:13px 17px;border-top:1px solid var(--line);background:color-mix(in srgb,var(--bg) 40%,var(--surface));font:500 .59rem/1.48 var(--font);color:var(--ink-3)}
.mv-backtest-source>i{margin-top:2px;color:var(--accent)}
.mv-backtest-source span{display:flex;flex-direction:column;gap:3px}
.mv-backtest-source b{font-weight:700;color:var(--ink-2)}
.mv-backtest-panel.is-summary{padding-bottom:0}
.mv-backtest-missing{margin:0;padding:22px 20px;font:600 .72rem/1.55 var(--font);color:var(--ink-2)}
.mv-backtest-kpis.compact{grid-template-columns:repeat(3,minmax(0,1fr));border-top:1px solid var(--line);border-bottom:0}

@media (max-width:1180px){
  .mv-backtest-kpis{grid-template-columns:repeat(3,minmax(0,1fr))}
  .mv-backtest-kpis>div:nth-child(4){border-left:0}
  .mv-backtest-kpis>div:nth-child(n+4){border-top:1px solid var(--line)}
}
@media (max-width:720px){
  .mv-performance{min-height:274px;border-right:0;border-bottom:1px solid var(--line)}
  .mv-mining-visual{min-height:274px;border-right:0;border-bottom:1px solid color-mix(in srgb,var(--accent) 20%,var(--line))}
  .mv-performance-chart{height:165px;min-height:165px}
  .mv-section-head{align-items:flex-start;flex-direction:column}
  .mv-operation-rule{grid-template-columns:1fr;gap:8px;padding:17px}
  .mv-operation-grid{grid-template-columns:1fr 1fr}
  .mv-operation-grid>div:nth-child(odd){border-left:0}
  .mv-operation-grid>div:nth-child(even){border-left:1px solid var(--line)}
  .mv-operation-grid>div:nth-child(n+3){border-top:1px solid var(--line)}
  .mv-operation-checks{grid-template-columns:1fr}
  .mv-operation-checks>div+div{border-left:0;border-top:1px solid var(--line)}
  .mv-backtest-period{white-space:normal}
  .mv-backtest-kpis{grid-template-columns:1fr 1fr}
  .mv-backtest-kpis>div:nth-child(odd){border-left:0}
  .mv-backtest-kpis>div:nth-child(even){border-left:1px solid var(--line)}
  .mv-backtest-kpis>div:nth-child(n+3){border-top:1px solid var(--line)}
  .mv-equity-chart{height:300px;min-height:300px}
  .mv-drawdown-chart{height:205px;min-height:205px}
}
@media (max-width:430px){
  .mv-performance{padding-inline:12px}
  .mv-mining-visual .mv-miner-picture img{height:min(224px,84%)}
  .mv-mining-access{align-items:flex-start;flex-direction:column}
  .mv-mining-live-chip{align-self:flex-start}
  .mv-performance-head{flex-direction:column;gap:3px}
  .mv-performance-head>b{max-width:none;text-align:left}
  .mv-performance-legend{gap:9px}
  .mv-operation>.mv-section-head,.mv-backtest-panel>.mv-section-head{padding:17px}
  .mv-operation-grid{grid-template-columns:1fr}
  .mv-operation-grid>div+div,.mv-operation-grid>div:nth-child(even){border-left:0;border-top:1px solid var(--line)}
  .mv-backtest-kpis,.mv-backtest-kpis.compact{grid-template-columns:1fr 1fr}
  .mv-equity-block,.mv-drawdown-block{padding-inline:11px}
  .mv-equity-block>header{align-items:flex-start;flex-wrap:wrap;gap:8px 12px}
  .mv-equity-block>header b{width:100%;margin-left:0}
}
@media (prefers-reduced-motion:reduce){
  .mv-mining-visual-k>i,.mv-mining-live-chip>i,.mv-mining-card .mv-card-state i{animation:none}
}

/* ============================================================
   MINA v4 — chips de veredicto de la batería (2026-07-16)
   REAL / MARGINAL / INCONCLUSO (+ modificador DECAÍDO).
   Dato público del teaser: la honestidad es la marca.
   ============================================================ */
.mv-verdict{
  display:inline-flex;align-items:center;gap:.35em;vertical-align:middle;
  font:700 .58rem/1 "Space Grotesk",system-ui,sans-serif;letter-spacing:.12em;
  padding:.32em .55em;border-radius:.5em;white-space:nowrap;
  border:1px solid rgba(143,209,63,.55);color:#8fd13f;background:rgba(143,209,63,.10);
  text-transform:uppercase;
}
.mv-verdict.is-marginal{
  border-color:rgba(233,196,106,.55);color:#e9c46a;background:rgba(233,196,106,.10);
}
.mv-verdict.is-inconcluso{
  border-color:rgba(148,163,184,.5);color:#94a3b8;background:rgba(148,163,184,.10);
}
.mv-verdict.is-dead{
  border-style:dashed;opacity:.85;
}
.mv-edge-card h3 .mv-verdict{margin-left:.45em;transform:translateY(-.08em)}
.mv-doc-id .mv-verdict{font-size:.62rem}

/* ============================================================
   LEGAL v363 — footer legal links, pricing microcopy, tool
   disclaimer lines (mine/reverse), signup consent, cookie notice
   ============================================================ */
footer.ft .ft-legal-links{
  display:flex;flex-wrap:wrap;gap:6px 18px;margin:0 0 10px;
}
footer.ft .ft-legal-links a{
  font:600 .7rem/1 var(--mono);letter-spacing:.05em;color:var(--ink-2);
  text-decoration:none;
}
footer.ft .ft-legal-links a:hover{color:var(--ink);text-decoration:underline}
footer.ft .ft-legal .ft-paddle{margin-top:6px;font-size:.66rem;opacity:.8}

.price-legal{
  margin:18px auto 0;max-width:88ch;text-align:center;
  font-size:.72rem;line-height:1.6;color:var(--ink-3);
}
.price-legal a{color:var(--ink-2);text-decoration:underline;text-underline-offset:2px}
.price-legal a:hover{color:var(--ink)}

/* mine + reverse disclaimer lines (analyzer/trainer parity) */
.mv-legal{
  margin:10px 0 0;font-size:11px;line-height:1.5;color:var(--ink-3);letter-spacing:.01em;
}
.rv-legal{
  margin:8px 0 0;font-size:10.5px;line-height:1.5;color:var(--ink-3);
  text-align:center;letter-spacing:.01em;
}
.ax-legal a,.tr-legal a,.mv-legal a,.rv-legal a{
  color:var(--ink-2);text-decoration:underline;text-underline-offset:2px;
}
.ax-legal a:hover,.tr-legal a:hover,.mv-legal a:hover,.rv-legal a:hover{color:var(--ink)}

/* signup consent checkbox (account popover, logged-out form) */
.acct-consent{
  display:flex;gap:8px;align-items:flex-start;margin:10px 10px 2px;
  font-size:.72rem;line-height:1.5;color:var(--ink-2);cursor:pointer;
}
.acct-consent input{
  flex:none;margin-top:2px;width:14px;height:14px;accent-color:var(--btn-g1,#3aa315);cursor:pointer;
}
.acct-consent a{color:var(--ink);text-decoration:underline;text-underline-offset:2px}
.acct-consent em{font-style:normal;color:var(--ink-3)}

/* cookie notice — informational (essential-only cookies) */
.cookie-note{
  position:fixed;left:14px;right:14px;bottom:14px;z-index:80;
  display:flex;flex-wrap:wrap;gap:8px 16px;align-items:center;justify-content:space-between;
  max-width:560px;margin:0 auto;padding:12px 16px;border-radius:14px;
  background:color-mix(in srgb,var(--bg-1,#0a0d0e) 92%,transparent);
  border:1px solid rgba(160,190,170,.18);
  box-shadow:0 12px 40px rgba(0,0,0,.45);
  backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);
  animation:cookieIn .45s var(--ease) both;
}
@keyframes cookieIn{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:none}}
.cookie-note p{margin:0;flex:1 1 260px;font-size:.74rem;line-height:1.55;color:var(--ink-2)}
.cookie-actions{display:flex;gap:14px;align-items:center}
.cookie-actions a{font-size:.72rem;color:var(--ink-2);text-decoration:underline;text-underline-offset:2px}
.cookie-actions a:hover{color:var(--ink)}
.cookie-actions .btn{padding:7px 16px;font-size:.74rem}
@media (max-width:520px){
  .cookie-note{left:10px;right:10px;bottom:10px}
}

/* ============================================================================
   LANDING v2 — one promise, three steps, tools in a secondary directory.
   The legacy landing remains in index.html only as a rollback snapshot.
   ============================================================================ */
#landing-view .legacy-landing{display:none!important}

#landing-view .lp-section-head{max-width:820px;margin:0 0 38px}
#landing-view .lp-section-head h2{
  max-width:15ch;margin:0;
  font:800 clamp(2.15rem,4.8vw,4.65rem)/.98 var(--display);
  letter-spacing:-.055em;color:var(--ink)
}
#landing-view .lp-section-head>p{
  max-width:62ch;margin:18px 0 0;
  font:500 1.02rem/1.7 var(--font);color:var(--ink-2)
}
#landing-view .lp-section-head-row{
  max-width:none;display:grid;grid-template-columns:minmax(0,1.45fr) minmax(270px,.55fr);
  gap:60px;align-items:end
}
#landing-view .lp-section-head-row h2{max-width:14ch}
#landing-view .lp-section-head-row>p{margin:0;padding-bottom:5px}

/* hero: keep the existing live product animation, simplify the decision */
#landing-view .lp-hero .tvhero-head{max-width:min(42vw,540px)}
#landing-view .lp-hero .tvhero-head h1{
  max-width:9.8ch;font-size:clamp(3rem,5.25vw,5.2rem);line-height:.96;
  letter-spacing:-.062em
}
#landing-view .lp-hero .tvhero-head h1 span,
#landing-view .lp-hero .tvhero-head h1 em{display:block}
#landing-view .lp-hero .tvhero-head h1 em{margin-top:.1em}
#landing-view .lp-hero .tvhero-lead{max-width:49ch;font-size:1.03rem;line-height:1.67}
#landing-view .lp-hero .tvhero-actions{margin-top:28px}
#landing-view .lp-hero-foot{
  display:flex;align-items:center;gap:9px 18px;flex-wrap:wrap;margin-top:17px
}
#landing-view .lp-hero-foot>span{
  display:inline-flex;align-items:center;gap:7px;color:var(--ink-2)
}
#landing-view .lp-hero-foot i{color:var(--accent);font-size:.72rem}
#landing-view .lp-hero-foot b{font:700 .65rem/1 var(--mono);letter-spacing:.03em}

/* immediate reassurance: only the three facts needed to trust the next scroll */
#landing-view .lp-trustbar{
  position:relative;z-index:5;border-block:1px solid var(--line);
  background:color-mix(in srgb,var(--surface) 88%,var(--bg))
}
#landing-view .lp-trustbar-in{display:grid;grid-template-columns:repeat(3,1fr);padding-block:0}
#landing-view .lp-trustbar-in>div{
  display:flex;align-items:center;justify-content:center;gap:13px;min-height:94px;padding:18px 26px
}
#landing-view .lp-trustbar-in>div+div{border-left:1px solid var(--line)}
#landing-view .lp-trustbar-in>div>i{
  display:grid;place-items:center;width:34px;height:34px;flex:none;border-radius:10px;
  color:var(--accent);background:color-mix(in srgb,var(--accent) 9%,var(--surface));
  border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));font-size:.8rem
}
#landing-view .lp-trustbar-in span{display:flex;min-width:0;flex-direction:column;gap:4px}
#landing-view .lp-trustbar-in b{font:750 .84rem/1.25 var(--font);color:var(--ink)}
#landing-view .lp-trustbar-in small{font:600 .62rem/1.25 var(--mono);letter-spacing:.04em;color:var(--ink-3)}

/* three-step explanation */
#landing-view .lp-how{padding:112px 0 104px;background:var(--bg)}
#landing-view .lp-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
#landing-view .lp-step{
  position:relative;min-width:0;overflow:hidden;border:1px solid var(--line);
  border-radius:var(--radius-xl);background:linear-gradient(180deg,var(--surface-2),var(--surface));
  box-shadow:var(--elev-1)
}
#landing-view .lp-step-art{
  position:relative;height:270px;display:flex;align-items:flex-end;justify-content:center;
  overflow:hidden;border-bottom:1px solid var(--line);
  background:radial-gradient(circle at 50% 62%,color-mix(in srgb,var(--accent) 12%,transparent),transparent 62%)
}
#landing-view .lp-step-art img{
  display:block;width:auto;height:92%;max-width:92%;object-fit:contain;object-position:center bottom;
  filter:drop-shadow(0 18px 24px rgba(0,0,0,.26))
}
#landing-view .lp-step:nth-child(2) .lp-step-art img{width:96%;height:96%;max-width:none;object-fit:contain}
#landing-view .lp-step-copy{position:relative;padding:26px 25px 28px}
#landing-view .lp-step-no{
  position:absolute;right:22px;top:20px;font:800 2.75rem/1 var(--mono);
  color:color-mix(in srgb,var(--accent) 33%,transparent)
}
#landing-view .lp-step-copy h3{
  position:relative;max-width:12ch;margin:0 52px 10px 0;
  font:800 1.32rem/1.08 var(--display);letter-spacing:-.025em;color:var(--ink)
}
#landing-view .lp-step-copy p{margin:0;font-size:.88rem;line-height:1.62;color:var(--ink-2)}
#landing-view .lp-inline-cta{
  display:flex;align-items:center;justify-content:center;gap:18px;flex-wrap:wrap;margin-top:28px
}
#landing-view .lp-inline-cta>strong{
  font:800 .7rem/1 var(--mono);letter-spacing:.14em;color:var(--accent)
}
#landing-view .lp-inline-cta>span{font:650 .76rem/1.4 var(--mono);color:var(--ink-3)}

/* image-first tool chooser: core verification is dominant, practice/learning stay discoverable */
#landing-view .lp-tools{
  padding:106px 0;border-block:1px solid var(--line);
  background:color-mix(in srgb,var(--surface-2) 52%,var(--bg))
}
#landing-view .lp-tool-gallery{
  display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:14px
}
#landing-view .lp-tool-card{
  position:relative;isolation:isolate;display:block;min-width:0;overflow:hidden;
  border:1px solid rgba(255,255,255,.14);border-radius:var(--radius-xl);
  background:#07100c;color:#fff;box-shadow:var(--elev-1);
  transition:transform var(--dur-2) var(--ease),border-color var(--dur-2) var(--ease),box-shadow var(--dur-2) var(--ease)
}
#landing-view .lp-tool-card-wide{grid-column:span 6;min-height:350px}
#landing-view .lp-tool-card-small{grid-column:span 3;min-height:270px}
#landing-view .lp-tool-card.is-primary{
  border-color:color-mix(in srgb,var(--accent) 70%,rgba(255,255,255,.2));
  box-shadow:0 20px 46px -28px color-mix(in srgb,var(--accent) 68%,transparent)
}
#landing-view .lp-tool-card:hover{
  transform:translateY(-4px);border-color:color-mix(in srgb,var(--accent) 66%,rgba(255,255,255,.2));
  box-shadow:0 24px 52px -28px rgba(0,0,0,.78)
}
#landing-view .lp-tool-media{position:absolute;z-index:-2;inset:0;display:block}
#landing-view .lp-tool-media::after{
  content:"";position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(2,5,3,.02) 28%,rgba(2,5,3,.9) 100%)
}
#landing-view .lp-tool-media img{
  display:block;width:100%;height:100%;object-fit:cover;object-position:center;
  transition:transform .55s var(--ease),filter .35s var(--ease)
}
#landing-view .lp-tool-card:hover .lp-tool-media img{transform:scale(1.035);filter:saturate(1.08)}
#landing-view .lp-tool-card-copy{
  position:absolute;z-index:2;left:22px;right:58px;bottom:21px;display:flex;flex-direction:column;align-items:flex-start
}
#landing-view .lp-tool-card-copy small{
  margin-bottom:7px;font:800 .58rem/1 var(--mono);letter-spacing:.17em;color:#b9ee8e
}
#landing-view .lp-tool-card-copy b{
  max-width:100%;font:820 clamp(1.28rem,2vw,1.85rem)/1 var(--display);letter-spacing:-.035em;color:#fff
}
#landing-view .lp-tool-card-copy>span{
  margin-top:7px;font:650 .76rem/1.25 var(--font);color:rgba(255,255,255,.75)
}
#landing-view .lp-tool-card-arrow{
  position:absolute;z-index:3;right:20px;bottom:22px;display:grid;place-items:center;
  width:34px;height:34px;border:1px solid rgba(255,255,255,.2);border-radius:50%;
  background:rgba(3,8,5,.48);color:#fff;font-size:.68rem;backdrop-filter:blur(8px)
}
#landing-view .lp-tool-badge{
  position:absolute;z-index:3;top:18px;left:18px;display:inline-flex;align-items:center;gap:7px;
  padding:8px 11px;border:1px solid color-mix(in srgb,var(--accent) 60%,transparent);
  border-radius:var(--radius-pill);background:rgba(5,13,8,.72);color:#d9ffba;
  font:800 .57rem/1 var(--mono);letter-spacing:.12em;backdrop-filter:blur(10px)
}
#landing-view .lp-tool-badge i{font-size:.56rem}
#landing-view .lp-tool-cutout{
  background:
    radial-gradient(circle at 50% 36%,rgba(139,215,78,.23),transparent 47%),
    linear-gradient(145deg,#111c16,#050806)
}
#landing-view .lp-tool-cutout .lp-tool-media{inset:5px 8px 62px}
#landing-view .lp-tool-cutout .lp-tool-media::after{
  inset:-5px -8px -62px;background:linear-gradient(180deg,transparent 36%,rgba(3,6,4,.94) 84%)
}
#landing-view .lp-tool-cutout .lp-tool-media img{object-fit:contain;object-position:center bottom}
#landing-view .lp-tool-mine .lp-tool-media{inset:12px 12px 58px}

#landing-view .lp-tool-card:focus-visible{outline:none;box-shadow:var(--focus-ring)}

/* one real, easy-to-read proof instead of an expert comparison wall */
#landing-view .lp-proof{padding:112px 0;background:var(--bg)}
#landing-view .lp-proof-grid{display:grid;grid-template-columns:minmax(340px,.8fr) minmax(0,1.2fr);gap:72px;align-items:center}
#landing-view .lp-proof-visual{
  position:relative;min-height:610px;overflow:hidden;border:1px solid var(--line);
  border-radius:28px;background:var(--surface-2);box-shadow:var(--elev-2)
}
#landing-view .lp-proof-visual::after{
  content:"";position:absolute;inset:0;pointer-events:none;
  background:linear-gradient(180deg,transparent 42%,rgba(4,6,5,.88) 100%)
}
#landing-view .lp-proof-visual>img{display:block;width:100%;height:100%;min-height:610px;object-fit:cover;filter:saturate(.8) contrast(1.02)}
#landing-view .lp-promise{
  position:absolute;z-index:2;left:28px;right:28px;bottom:28px;display:flex;flex-direction:column;
  color:#fff;text-shadow:0 2px 16px rgba(0,0,0,.45)
}
#landing-view .lp-promise small{font:800 .65rem/1 var(--mono);letter-spacing:.18em;color:#d6ded8}
#landing-view .lp-promise b{font:850 5rem/.9 var(--display);letter-spacing:-.06em}
#landing-view .lp-promise em{font:750 1rem/1.2 var(--font);font-style:normal}
#landing-view .lp-proof-stamp{
  position:absolute;z-index:3;top:22px;left:22px;padding:8px 12px;border-radius:var(--radius-pill);
  border:1px solid rgba(255,255,255,.28);background:rgba(5,7,6,.64);color:#fff;
  font:800 .6rem/1 var(--mono);letter-spacing:.14em;backdrop-filter:blur(10px)
}
#landing-view .lp-proof-copy h2{
  max-width:11ch;margin:0;font:800 clamp(2.45rem,4.4vw,4.75rem)/.97 var(--display);
  letter-spacing:-.058em;color:var(--ink)
}
#landing-view .lp-proof-copy>p:not(.lp-proof-note){max-width:58ch;margin:20px 0 0;font-size:1rem;line-height:1.72;color:var(--ink-2)}
#landing-view .lp-proof-results{
  display:grid;grid-template-columns:1fr auto 1fr auto 1.1fr;gap:12px;align-items:center;
  margin:28px 0 20px;padding:16px;border:1px solid var(--line);border-radius:var(--radius-xl);
  background:var(--surface-2)
}
#landing-view .lp-proof-results>div{min-width:0;padding:10px}
#landing-view .lp-proof-results>i{color:var(--ink-3);font-size:.68rem}
#landing-view .lp-proof-results small,
#landing-view .lp-proof-results span{display:block;font:700 .55rem/1.25 var(--mono);letter-spacing:.09em;color:var(--ink-3)}
#landing-view .lp-proof-results b{display:block;margin:5px 0 4px;font:850 1.8rem/1 var(--display);letter-spacing:-.035em;color:var(--ink)}
#landing-view .lp-proof-results .is-smoke{
  border:1px solid color-mix(in srgb,var(--humo) 34%,var(--line));border-radius:var(--radius-lg);
  background:color-mix(in srgb,var(--humo) 8%,var(--surface))
}
#landing-view .lp-proof-results .is-smoke b{color:var(--humo);font-size:1.35rem;letter-spacing:.02em}
#landing-view .lp-proof-rules{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:24px}
#landing-view .lp-proof-rules span{
  display:inline-flex;align-items:center;gap:7px;padding:8px 11px;border:1px solid var(--line);
  border-radius:var(--radius-pill);background:var(--surface);color:var(--ink-2)
}
#landing-view .lp-proof-rules i{color:var(--real);font-size:.62rem}
#landing-view .lp-proof-rules b{font:700 .65rem/1 var(--mono)}
#landing-view .lp-proof-copy>.btn{max-width:100%;text-align:center}
#landing-view .lp-proof-note{max-width:58ch;margin:14px 0 0;font-size:.68rem;line-height:1.5;color:var(--ink-3)}

/* pricing: two obvious choices; packs and Lifetime are available on demand */
#landing-view .lp-pricing{
  padding:108px 0;border-block:1px solid var(--line);
  background:color-mix(in srgb,var(--surface-2) 50%,var(--bg))
}
#landing-view .lp-pricing-toolbar{
  display:flex;align-items:center;justify-content:flex-end;gap:14px;margin:0 0 18px
}
#landing-view .lp-pricing-toolbar>span{font:700 .62rem/1 var(--mono);letter-spacing:.08em;color:var(--ink-3)}
#landing-view .lp-price-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px;max-width:880px;margin:0 auto}
#landing-view .lp-price-grid .price-card{padding:30px}
#landing-view .lp-price-grid .price-card>p{min-height:0}
#landing-view .lp-more-prices{
  max-width:880px;margin:16px auto 0;border:1px solid var(--line);border-radius:var(--radius-xl);
  background:var(--surface);overflow:hidden
}
#landing-view .lp-more-prices>summary{
  display:flex;align-items:center;justify-content:space-between;gap:18px;padding:17px 20px;
  cursor:pointer;list-style:none;font:750 .82rem/1.4 var(--font);color:var(--ink-2)
}
#landing-view .lp-more-prices>summary::-webkit-details-marker{display:none}
#landing-view .lp-more-prices>summary i{font-size:.68rem;transition:transform var(--dur-2) var(--ease)}
#landing-view .lp-more-prices[open]>summary i{transform:rotate(180deg)}
#landing-view .lp-more-price-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid var(--line)}
#landing-view .lp-more-price-grid>article{
  display:flex;min-width:0;flex-direction:column;justify-content:space-between;gap:18px;padding:24px
}
#landing-view .lp-more-price-grid>article+article{border-left:1px solid var(--line)}
#landing-view .lp-more-price-grid h3{margin:5px 0 6px;font:800 1.1rem/1.2 var(--display);color:var(--ink)}
#landing-view .lp-more-price-grid p{margin:0;font-size:.78rem;line-height:1.55;color:var(--ink-2)}
#landing-view .lp-more-price-grid small{display:block;margin-top:10px;font:700 .6rem/1 var(--mono);color:var(--accent)}
#landing-view .lp-pack-buttons{display:flex;flex-wrap:wrap;gap:7px}
#landing-view .lp-pack-buttons .btn{min-height:38px;padding:8px 10px;font-size:.7rem}
#landing-view .lp-more-price-grid>article>.btn{align-self:flex-start}

#landing-view .lp-faq{padding:104px 0;background:var(--bg)}
#landing-view .lp-faq .lp-section-head{margin-bottom:28px}
#landing-view .lp-faq .faq-list{max-width:920px}

#landing-view .lp-final{padding:54px 0 88px;background:var(--bg)}
#landing-view .lp-final-in{
  position:relative;display:grid;grid-template-columns:290px minmax(0,1fr);align-items:center;
  min-height:430px;overflow:hidden;border:1px solid color-mix(in srgb,var(--accent) 34%,var(--line));
  border-radius:28px;background:linear-gradient(135deg,color-mix(in srgb,var(--accent) 9%,var(--surface-2)),var(--surface));
  box-shadow:var(--elev-2)
}
#landing-view .lp-final-in>img{align-self:end;width:310px;max-height:410px;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 20px 28px rgba(0,0,0,.32))}
#landing-view .lp-final-in>div{padding:48px 58px}
#landing-view .lp-final-in h2{max-width:12ch;margin:0;font:800 clamp(2.5rem,5vw,4.85rem)/.96 var(--display);letter-spacing:-.058em;color:var(--ink)}
#landing-view .lp-final-in p{margin:18px 0 25px;font-size:1rem;line-height:1.65;color:var(--ink-2)}

#landing-view .lp-tool-link:focus-visible,
#landing-view .lp-more-prices>summary:focus-visible{outline:none;box-shadow:var(--focus-ring)}
#landing-view .billing-btn,
#landing-view .lp-pack-buttons .btn{min-height:44px}
body #hdr .nav-burger{width:44px;height:44px;min-width:44px;min-height:44px}

@media (max-width:1040px){
  #landing-view .lp-section-head-row{grid-template-columns:1fr;gap:12px;align-items:start}
  #landing-view .lp-section-head-row>p{max-width:58ch}
  #landing-view .lp-proof-grid{grid-template-columns:minmax(300px,.8fr) minmax(0,1.2fr);gap:38px}
  #landing-view .lp-proof-results{grid-template-columns:1fr 1fr 1fr}
  #landing-view .lp-proof-results>i{display:none}
  #landing-view .lp-tool-card-small{grid-column:span 6}
}

@media (max-width:820px){
  #landing-view .lp-hero .tvhero-head{max-width:none}
  #landing-view .lp-hero .tvhero-head h1{max-width:10ch;font-size:clamp(2.7rem,12vw,4rem)}
  #landing-view .lp-hero .tvhero-lead{font-size:.98rem}
  #landing-view .lp-hero-foot{margin-top:15px}

  #landing-view .lp-trustbar-in{grid-template-columns:1fr}
  #landing-view .lp-trustbar-in>div{justify-content:flex-start;min-height:74px;padding:14px 20px}
  #landing-view .lp-trustbar-in>div+div{border-left:0;border-top:1px solid var(--line)}

  #landing-view .lp-how,
  #landing-view .lp-tools,
  #landing-view .lp-proof,
  #landing-view .lp-pricing,
  #landing-view .lp-faq{padding:78px 0}
  #landing-view .lp-section-head{margin-bottom:28px}
  #landing-view .lp-section-head h2{font-size:clamp(2.25rem,10vw,3.55rem)}
  #landing-view .lp-section-head>p{font-size:.94rem;line-height:1.62}

  #landing-view .lp-steps{grid-template-columns:1fr}
  #landing-view .lp-step{display:grid;grid-template-columns:minmax(130px,.7fr) minmax(0,1.3fr);align-items:stretch}
  #landing-view .lp-step-art{height:auto;min-height:235px;border-right:1px solid var(--line);border-bottom:0}
  #landing-view .lp-step-copy{display:flex;flex-direction:column;justify-content:center}
  #landing-view .lp-step-no{top:20px}
  #landing-view .lp-tool-gallery{gap:12px}
  #landing-view .lp-tool-card-wide{grid-column:span 12;min-height:330px}
  #landing-view .lp-tool-card-small{grid-column:span 6;min-height:250px}

  #landing-view .lp-proof-grid{grid-template-columns:1fr}
  #landing-view .lp-proof-visual{min-height:440px}
  #landing-view .lp-proof-visual>img{min-height:440px}
  #landing-view .lp-proof-copy h2{font-size:clamp(2.35rem,10vw,3.8rem)}

  #landing-view .lp-pricing-toolbar{justify-content:space-between;flex-wrap:wrap}
  #landing-view .lp-price-grid{grid-template-columns:1fr}
  #landing-view .lp-more-price-grid{grid-template-columns:1fr}
  #landing-view .lp-more-price-grid>article+article{border-left:0;border-top:1px solid var(--line)}

  #landing-view .lp-final-in{grid-template-columns:180px minmax(0,1fr);min-height:360px}
  #landing-view .lp-final-in>img{width:205px;max-height:330px}
  #landing-view .lp-final-in>div{padding:38px 32px}
}

@media (max-width:560px){
  #landing-view .lp-section-head h2{max-width:12ch}
  #landing-view .lp-trustbar-in>div>i{width:32px;height:32px}

  #landing-view .lp-step{display:block}
  #landing-view .lp-step-art{height:226px;min-height:0;border-right:0;border-bottom:1px solid var(--line)}
  #landing-view .lp-step-art img{height:95%}
  #landing-view .lp-step-copy{padding:23px 20px 25px}
  #landing-view .lp-step-copy h3{font-size:1.25rem}
  #landing-view .lp-inline-cta{align-items:stretch;flex-direction:column;text-align:center}
  #landing-view .lp-inline-cta .btn{width:100%}

  #landing-view .lp-tool-card-wide{min-height:290px}
  #landing-view .lp-tool-card-small{min-height:225px}
  #landing-view .lp-tool-card-copy{left:17px;right:48px;bottom:17px}
  #landing-view .lp-tool-card-copy b{font-size:1.18rem}
  #landing-view .lp-tool-card-copy>span{font-size:.68rem}
  #landing-view .lp-tool-card-arrow{right:15px;bottom:16px;width:30px;height:30px}
  #landing-view .lp-tool-badge{top:14px;left:14px}

  #landing-view .lp-proof-grid{gap:30px}
  #landing-view .lp-proof-visual{min-height:420px;border-radius:22px}
  #landing-view .lp-proof-visual>img{min-height:420px}
  #landing-view .lp-promise{left:20px;right:20px;bottom:20px}
  #landing-view .lp-promise b{font-size:4rem}
  #landing-view .lp-proof-results{grid-template-columns:1fr;margin-top:22px}
  #landing-view .lp-proof-results>div{display:grid;grid-template-columns:1fr auto;align-items:center;gap:3px 12px;padding:10px 12px}
  #landing-view .lp-proof-results small{grid-column:1}
  #landing-view .lp-proof-results b{grid-column:2;grid-row:1/3;margin:0;text-align:right}
  #landing-view .lp-proof-results span{grid-column:1}
  #landing-view .lp-proof-copy>.btn{width:100%}

  #landing-view .lp-pricing-toolbar{align-items:stretch;flex-direction:column}
  #landing-view .lp-pricing-toolbar>span{display:none}
  #landing-view .lp-pricing-toolbar .billing-toggle{display:grid;grid-template-columns:1fr 1fr;width:100%}
  #landing-view .lp-price-grid .price-card{padding:25px 21px}
  #landing-view .lp-more-prices>summary{padding:15px 16px;font-size:.76rem}
  #landing-view .lp-more-price-grid>article{padding:20px 17px}
  #landing-view .lp-pack-buttons{display:grid;grid-template-columns:1fr}
  #landing-view .lp-pack-buttons .btn{width:100%;min-height:44px}

  #landing-view .lp-final{padding:24px 0 68px}
  #landing-view .lp-final-in{display:flex;min-height:0;flex-direction:column;border-radius:22px}
  #landing-view .lp-final-in>img{
    order:2;
    align-self:center;
    width:210px;
    max-height:250px;
    margin:-6px auto 0;
  }
  #landing-view .lp-final-in>div{padding:34px 23px 16px;text-align:center}
  #landing-view .lp-final-in h2{font-size:clamp(2.35rem,12vw,3.35rem);margin-inline:auto}
  #landing-view .lp-final-in .eyebrow{justify-content:center}
  #landing-view .lp-final-in .btn{width:100%}
}

@media (prefers-reduced-motion:reduce){
  #landing-view .lp-tool-card,
  #landing-view .lp-tool-media img{transition:none}
}

/* ==========================================================================
   ANALYZER INTAKE v3 — progressive, visual and credit-transparent
   ========================================================================== */
body.is-analyzer.analyzer-idle .ax-chrome{
  max-width:760px;
  margin-bottom:18px;
  padding-top:8px;
}
body.is-analyzer.analyzer-idle .ax-chrome h1{
  max-width:12ch;
  margin-bottom:11px;
  font-size:clamp(40px,4.8vw,62px);
  line-height:.98;
  letter-spacing:-.055em;
  font-weight:790;
}
body.is-analyzer.analyzer-idle .ax-chrome p{
  max-width:50ch;
  font-size:15px;
  line-height:1.58;
}
[data-theme="light"] body.is-analyzer.analyzer-idle .ax-dotfield-wash{opacity:.12}
[data-theme="light"] body.is-analyzer.analyzer-idle .ax-dotfield-dots{opacity:.27}
[data-theme="light"] body.is-analyzer.analyzer-idle .ax-dotfield-focus{opacity:0}
[data-theme="light"] body.is-analyzer.analyzer-idle .ax-dotfield.is-lit .ax-dotfield-focus{opacity:.48}

.ax-intake-map{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);
  align-items:center;
  width:100%;
  margin:0 0 14px;
  padding:8px;
  border:1px solid var(--ax-line);
  border-radius:18px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  box-shadow:0 14px 36px -30px rgba(0,0,0,.55);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
body.is-analyzer.analyzer-running .ax-intake-map,
body.is-analyzer.analyzer-result .ax-intake-map{display:none}
.ax-intake-step{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
  min-height:58px;
  padding:8px 10px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:var(--ink-2);
  text-align:left;
  cursor:pointer;
  transition:background .16s var(--ease),color .16s var(--ease),opacity .16s var(--ease);
}
.ax-intake-step>i{
  display:inline-flex;
  flex:0 0 34px;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid var(--ax-line);
  border-radius:11px;
  background:var(--ax-well);
  color:var(--ink-3);
  font:850 11px/1 var(--mono);
  font-style:normal;
}
.ax-intake-step>span{display:flex;min-width:0;flex-direction:column;gap:2px}
.ax-intake-step b{
  overflow:hidden;
  color:var(--ink);
  font-size:12.5px;
  font-weight:780;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ax-intake-step small{
  overflow:hidden;
  color:var(--ink-3);
  font-size:10.5px;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
.ax-intake-step:hover:not(:disabled){background:var(--ax-well)}
.ax-intake-step:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
.ax-intake-step.current{
  background:color-mix(in srgb,var(--accent) 9%,var(--ax-well));
  color:var(--ink);
}
.ax-intake-step.current>i{
  border-color:transparent;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)));
  color:#061208;
  box-shadow:0 9px 20px -12px color-mix(in srgb,var(--accent) 78%,transparent);
}
.ax-intake-step.done>i{
  border-color:color-mix(in srgb,var(--real) 42%,var(--ax-line));
  background:color-mix(in srgb,var(--real) 9%,var(--ax-well));
  color:var(--real);
}
.ax-intake-step.locked{cursor:default;opacity:.45}
.ax-intake-link{height:1px;background:var(--ax-line);transition:background .16s var(--ease)}
.ax-intake-link.done{background:color-mix(in srgb,var(--real) 60%,var(--ax-line))}

body.is-analyzer.analyzer-idle .ax-instrument{
  border-radius:24px;
  box-shadow:0 28px 70px -52px rgba(0,0,0,.7);
}
.ax-more-field{
  margin-top:12px;
  border-top:1px solid var(--ax-line);
  border-bottom:1px solid var(--ax-line);
}
.ax-more-field>summary{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:48px;
  padding:6px 2px;
  color:var(--ink-2);
  cursor:pointer;
  list-style:none;
}
.ax-more-field>summary::-webkit-details-marker{display:none}
.ax-more-field>summary>span{font-size:12.5px;font-weight:750;color:var(--ink)}
.ax-more-field>summary>small{margin-left:auto;font-size:11px;color:var(--ink-3)}
.ax-more-field>summary>i{
  width:24px;
  color:var(--ink-3);
  font-size:10px;
  text-align:center;
  transition:transform .16s var(--ease);
}
.ax-more-field[open]>summary>i{transform:rotate(180deg)}
.ax-more-field .ax-fld{margin:0;padding:4px 0 16px}

body.is-analyzer.analyzer-idle #pane-yt.ax-wait-source #yt-chart-gate,
body.is-analyzer.analyzer-idle #pane-yt.ax-wait-source #yt-review-choice,
body.is-analyzer.analyzer-idle #pane-yt.ax-wait-chart #yt-review-choice,
body.is-analyzer.analyzer-idle #pane-yt.ax-direct-source #yt-chart-gate,
body.is-analyzer.analyzer-idle #pane-yt.ax-direct-source #yt-review-choice{
  display:none!important;
}

.ax-dock .rc-item{display:none}
.ax-dock .run-checklist{justify-content:space-between;gap:10px 18px}
.ax-dock .rc-cost{
  display:flex;
  align-items:center;
  justify-content:flex-end;
  gap:5px;
  white-space:normal;
}
.rc-short{
  display:inline-flex;
  align-items:center;
  min-height:25px;
  margin-left:7px;
  padding:3px 9px;
  border:1px solid color-mix(in srgb,var(--humo) 38%,var(--ax-line));
  border-radius:999px;
  background:color-mix(in srgb,var(--humo) 9%,transparent);
  color:color-mix(in srgb,var(--humo) 82%,var(--ink));
  font-size:10px;
  font-weight:850;
}
body.is-analyzer #run.needs-credits{
  background:linear-gradient(180deg,color-mix(in srgb,var(--marginal) 88%,#fff),var(--marginal))!important;
  color:#161006!important;
  box-shadow:0 14px 30px -14px color-mix(in srgb,var(--marginal) 62%,transparent)!important;
}

@media (max-width:720px){
  body.is-analyzer.analyzer-idle .ax-chrome{max-width:100%;margin-bottom:15px;padding-top:2px}
  body.is-analyzer.analyzer-idle .ax-chrome h1{max-width:12ch;font-size:clamp(35px,10.8vw,50px)}
  body.is-analyzer.analyzer-idle .ax-chrome p{font-size:13.5px}
  .ax-intake-map{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:5px;border-radius:15px}
  .ax-intake-link{display:none}
  .ax-intake-step{justify-content:center;min-height:52px;padding:7px 4px;gap:7px;text-align:center}
  .ax-intake-step>i{flex-basis:30px;width:30px;height:30px;border-radius:10px}
  .ax-intake-step>span{align-items:flex-start}
  .ax-intake-step b{font-size:10.5px}
  .ax-intake-step small{display:none}
  .ax-more-field>summary>small{display:none}
  .ax-dock .run-checklist{align-items:flex-start;flex-direction:column}
  .ax-dock .rc-cost{align-items:flex-start;justify-content:flex-start;flex-wrap:wrap;margin-left:0}
  .rc-short{margin-left:0}
}

@media (prefers-reduced-motion:reduce){
  .ax-intake-step,.ax-intake-link,.ax-more-field>summary>i{transition:none}
}

/* ==========================================================================
   REVERSE INTAKE v4 — paste first, review second, test third
   ========================================================================== */
body.is-reverse .rv-page{padding-top:clamp(14px,2.6vh,28px)}
body.is-reverse .rv-shell{gap:0!important}
body.is-reverse .rv-chrome{
  max-width:760px!important;
  margin-bottom:18px!important;
  padding-top:8px!important;
}
body.is-reverse .rv-chrome h1{
  max-width:11ch!important;
  margin-bottom:11px!important;
  font-size:clamp(40px,4.8vw,62px)!important;
  line-height:.98!important;
  letter-spacing:-.055em!important;
  font-weight:790!important;
}
body.is-reverse .rv-chrome p{
  max-width:50ch!important;
  font-size:15px!important;
  line-height:1.58!important;
}
[data-theme="light"] body.is-reverse .rv-df-wash{opacity:.12!important}
[data-theme="light"] body.is-reverse .rv-df-dots{opacity:.27!important}
[data-theme="light"] body.is-reverse .rv-df-focus{opacity:0!important}
[data-theme="light"] body.is-reverse .reverse-dotfield.is-lit .rv-df-focus{opacity:.48!important}

body.is-reverse .rv-flow-map{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);
  align-items:center;
  width:100%;
  margin:0 0 14px;
  padding:8px;
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent);
  border-radius:18px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  box-shadow:0 14px 36px -30px rgba(0,0,0,.55);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
body.is-reverse #reverse-view.rv-has-output .rv-flow-map{display:none}
body.is-reverse .rv-flow-step{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
  min-height:58px;
  padding:8px 10px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:var(--ink-2);
  text-align:left;
  cursor:pointer;
  transition:background .16s var(--ease),color .16s var(--ease),opacity .16s var(--ease);
}
body.is-reverse .rv-flow-step>i{
  display:inline-flex;
  flex:0 0 34px;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:11px;
  background:color-mix(in srgb,var(--surface-2) 78%,transparent);
  color:var(--ink-3);
  font:850 11px/1 var(--mono);
  font-style:normal;
}
body.is-reverse .rv-flow-step>span{display:flex;min-width:0;flex-direction:column;gap:2px}
body.is-reverse .rv-flow-step b{
  overflow:hidden;
  color:var(--ink);
  font-size:12.5px;
  font-weight:780;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.is-reverse .rv-flow-step small{
  overflow:hidden;
  color:var(--ink-3);
  font-size:10.5px;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.is-reverse .rv-flow-step:hover:not(:disabled){background:color-mix(in srgb,var(--surface-2) 74%,transparent)}
body.is-reverse .rv-flow-step:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.is-reverse .rv-flow-step.current{background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}
body.is-reverse .rv-flow-step.current>i{
  border-color:transparent;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)));
  color:#061208;
  box-shadow:0 9px 20px -12px color-mix(in srgb,var(--accent) 78%,transparent);
}
body.is-reverse .rv-flow-step.done>i{
  border-color:color-mix(in srgb,var(--real) 42%,var(--line));
  background:color-mix(in srgb,var(--real) 9%,var(--surface-2));
  color:var(--real);
}
body.is-reverse .rv-flow-step.locked{cursor:default;opacity:.45}
body.is-reverse .rv-flow-link{height:1px;background:var(--line);transition:background .16s var(--ease)}
body.is-reverse .rv-flow-link.done{background:color-mix(in srgb,var(--real) 60%,var(--line))}

body.is-reverse .rv-workspace.rv-grid,
body.is-reverse .rv-grid{
  grid-template-columns:minmax(0,1fr)!important;
  gap:14px!important;
}
body.is-reverse form.rv-panel{
  position:relative!important;
  top:auto!important;
  max-width:none!important;
  border-radius:24px!important;
  box-shadow:0 28px 70px -52px rgba(0,0,0,.7)!important;
}
body.is-reverse .rv-instrument-body{padding:18px clamp(18px,2.6vw,30px) 10px}
body.is-reverse .rv-paste-block{
  gap:10px!important;
  padding:clamp(18px,2.5vw,26px)!important;
  border-radius:18px!important;
  background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 6%,transparent),color-mix(in srgb,var(--surface-2) 72%,transparent))!important;
  box-shadow:none!important;
}
body.is-reverse .rv-paste-block>.rv-step-head h3{font-size:17px!important}
body.is-reverse .rv-paste-block>.rv-hint{max-width:58ch;font-size:13.5px!important}
body.is-reverse .rv-paste{
  min-height:128px!important;
  padding:16px 17px!important;
  font-size:14px!important;
  line-height:1.6!important;
  border-radius:15px!important;
}
body.is-reverse .rv-format-help,
body.is-reverse .rv-auto-help{border-top:1px solid color-mix(in srgb,var(--line) 74%,transparent)}
body.is-reverse .rv-format-help>summary,
body.is-reverse .rv-auto-help>summary{
  display:flex;
  align-items:center;
  gap:10px;
  min-height:42px;
  padding:5px 2px;
  color:var(--ink-2);
  cursor:pointer;
  list-style:none;
  font-size:12px;
  font-weight:720;
}
body.is-reverse .rv-format-help>summary::-webkit-details-marker,
body.is-reverse .rv-auto-help>summary::-webkit-details-marker,
body.is-reverse .rv-manual>summary::-webkit-details-marker{display:none}
body.is-reverse .rv-format-help>summary i,
body.is-reverse .rv-auto-help>summary i{margin-left:auto;font-size:9px;transition:transform .16s var(--ease)}
body.is-reverse .rv-format-help[open]>summary i,
body.is-reverse .rv-auto-help[open]>summary i{transform:rotate(180deg)}
body.is-reverse .rv-format-help .rv-legend{padding:2px 0 8px}
body.is-reverse .rv-example-btn{min-height:40px!important;padding:8px 14px!important;align-self:flex-start}

body.is-reverse .rv-detected{
  min-height:48px;
  padding:10px 12px;
  border:1px solid color-mix(in srgb,var(--accent) 28%,var(--line));
  border-radius:14px;
  background:color-mix(in srgb,var(--accent) 6%,var(--surface));
}
body.is-reverse .rv-detected.hidden{display:none}
body.is-reverse .rv-detected .rv-det{padding:4px 8px}
body.is-reverse .rv-quickrun{
  min-height:36px;
  padding:7px 14px;
  border-radius:11px;
  background:var(--accent);
  color:#061208;
}

body.is-reverse .rv-manual{
  border:1px solid color-mix(in srgb,var(--line) 82%,transparent);
  border-radius:16px;
  background:color-mix(in srgb,var(--surface-2) 54%,transparent);
  overflow:visible;
}
body.is-reverse .rv-manual>summary{
  display:flex;
  align-items:center;
  gap:14px;
  min-height:60px;
  padding:10px 16px;
  color:var(--ink);
  cursor:pointer;
  list-style:none;
}
body.is-reverse .rv-manual>summary>span{display:flex;min-width:0;flex-direction:column;gap:3px}
body.is-reverse .rv-manual>summary b{font-size:13px;font-weight:780}
body.is-reverse .rv-manual>summary small{font-size:11px;color:var(--ink-3)}
body.is-reverse .rv-manual>summary>i{margin-left:auto;color:var(--ink-3);font-size:10px;transition:transform .16s var(--ease)}
body.is-reverse .rv-manual[open]>summary{border-bottom:1px solid color-mix(in srgb,var(--line) 74%,transparent)}
body.is-reverse .rv-manual[open]>summary>i{transform:rotate(180deg)}
body.is-reverse .rv-manual-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
  padding:14px;
}
body.is-reverse .rv-manual-grid>.rv-step{
  min-width:0;
  padding:16px!important;
  border:1px solid color-mix(in srgb,var(--line) 78%,transparent)!important;
  border-radius:15px!important;
  background:color-mix(in srgb,var(--surface) 64%,transparent)!important;
  box-shadow:none!important;
}
body.is-reverse .rv-options-step{grid-column:1/-1}
body.is-reverse .rv-options-step .rv-hints-grid{grid-template-columns:minmax(0,1fr) minmax(180px,.55fr) 100px}
body.is-reverse .rv-options-step .rv-hints-grid>.rv-field:first-child{grid-column:auto!important}
body.is-reverse .rv-auto-help{margin-top:2px}
body.is-reverse .rv-auto-help .rv-hint{margin:0;padding:2px 0 4px;max-width:78ch}

body.is-reverse .rv-dock{
  padding:14px clamp(18px,2.6vw,30px) 18px;
  gap:11px;
}
body.is-reverse .rv-runsum{
  justify-content:flex-start;
  gap:6px 8px;
  padding:0;
  border:0;
  background:transparent;
}
body.is-reverse .rv-rs-state{order:-1;flex:1 1 auto;margin:0;font-size:12px;font-weight:720}
body.is-reverse .rv-rs-state.rv-rs-ok{color:var(--ink)}
body.is-reverse .rv-rs-reading{display:inline-flex;align-items:center;gap:7px;color:var(--ink-2)}
body.is-reverse .rv-rs-reading>i{
  width:12px;height:12px;border:2px solid color-mix(in srgb,var(--accent) 28%,transparent);border-top-color:var(--accent);border-radius:50%;animation:rv-spin .8s linear infinite;
}
body.is-reverse .rv-rs-credit{color:var(--accent);border-color:color-mix(in srgb,var(--accent) 32%,var(--line))}
body.is-reverse .rv-run{min-height:54px!important}
body.is-reverse .rv-run.rv-run-off{box-shadow:none!important;filter:saturate(.55)}
body.is-reverse .rv-legal{margin:0;text-align:center}

body.is-reverse #rv-results:empty{display:none}
body.is-reverse .rv-results{min-height:0}
body.is-reverse .rv-idle{padding:4px 2px 0}
body.is-reverse .rv-recent-head{margin-bottom:9px}
body.is-reverse .rv-recent-list{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}
body.is-reverse .rv-recent-item{min-height:46px;border-radius:13px;background:color-mix(in srgb,var(--surface) 86%,transparent)}
body.is-reverse #reverse-view.rv-has-output .reverse-dotfield{opacity:.08}

@media (max-width:900px){
  body.is-reverse .rv-manual-grid{grid-template-columns:1fr}
  body.is-reverse .rv-options-step{grid-column:auto}
  body.is-reverse .rv-options-step .rv-hints-grid{grid-template-columns:minmax(0,1fr) 90px}
  body.is-reverse .rv-options-step .rv-hints-grid>.rv-field:first-child{grid-column:1/-1!important}
}
@media (max-width:720px){
  body.is-reverse .rv-chrome{max-width:100%!important;margin-bottom:15px!important;padding-top:2px!important}
  body.is-reverse .rv-chrome h1{max-width:11ch!important;font-size:clamp(35px,10.8vw,50px)!important}
  body.is-reverse .rv-chrome p{font-size:13.5px!important}
  body.is-reverse .rv-flow-map{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:5px;border-radius:15px}
  body.is-reverse .rv-flow-link{display:none}
  body.is-reverse .rv-flow-step{justify-content:center;min-height:52px;padding:7px 4px;gap:7px;text-align:center}
  body.is-reverse .rv-flow-step>i{flex-basis:30px;width:30px;height:30px;border-radius:10px}
  body.is-reverse .rv-flow-step>span{align-items:flex-start}
  body.is-reverse .rv-flow-step b{font-size:10.5px}
  body.is-reverse .rv-flow-step small{display:none}
  body.is-reverse .rv-instrument-body{padding:14px 14px 7px}
  body.is-reverse .rv-paste-block{padding:16px!important}
  body.is-reverse .rv-paste{min-height:116px!important;padding:14px!important}
  body.is-reverse .rv-manual-grid{padding:10px}
  body.is-reverse .rv-dock{padding:13px 14px 16px}
  body.is-reverse .rv-runsum{align-items:flex-start}
  body.is-reverse .rv-rs-state{flex:1 1 100%}
  body.is-reverse .rv-quickrun{width:100%;margin-left:0}
}
@media (max-width:520px){
  body.is-reverse .rv-options-step .rv-hints-grid{grid-template-columns:1fr}
  body.is-reverse .rv-options-step .rv-hints-grid>.rv-field:first-child{grid-column:auto!important}
  body.is-reverse .rv-metrics-grid{grid-template-columns:1fr 1fr}
  body.is-reverse .rv-manual>summary small{display:none}
}
@media (prefers-reduced-motion:reduce){
  body.is-reverse .rv-flow-step,
  body.is-reverse .rv-flow-link,
  body.is-reverse .rv-format-help>summary i,
  body.is-reverse .rv-auto-help>summary i,
  body.is-reverse .rv-manual>summary>i{transition:none}
}

/* ==========================================================================
   TRAINER EXPERIENCE v5 — choose, read, decide
   ========================================================================== */
body.is-trainer .tr-page{padding-top:clamp(14px,2.6vh,28px)}
body.is-trainer .tr-shell{gap:14px!important}
body.is-trainer .tr-chrome.trainer-head,
body.is-trainer .trainer-head{
  max-width:760px!important;
  margin-bottom:4px!important;
  padding-top:8px!important;
}
body.is-trainer .trainer-head h1{
  max-width:11ch!important;
  margin-bottom:11px!important;
  font-size:clamp(40px,4.8vw,62px)!important;
  line-height:.98!important;
  letter-spacing:-.055em!important;
  font-weight:790!important;
}
body.is-trainer .trainer-head p{
  max-width:50ch!important;
  font-size:15px!important;
  line-height:1.58!important;
}
[data-theme="light"] body.is-trainer .tr-df-wash{opacity:.12!important}
[data-theme="light"] body.is-trainer .tr-df-dots{opacity:.27!important}
[data-theme="light"] body.is-trainer .tr-df-focus{opacity:0!important}
[data-theme="light"] body.is-trainer .trainer-dotfield.is-lit .tr-df-focus{opacity:.48!important}

body.is-trainer .tr-flow-map{
  position:relative;
  z-index:3;
  display:grid;
  grid-template-columns:minmax(0,1fr) 34px minmax(0,1fr) 34px minmax(0,1fr);
  align-items:center;
  width:100%;
  margin:0;
  padding:8px;
  border:1px solid color-mix(in srgb,var(--line) 88%,transparent);
  border-radius:18px;
  background:color-mix(in srgb,var(--surface) 88%,transparent);
  box-shadow:0 14px 36px -30px rgba(0,0,0,.55);
  backdrop-filter:blur(18px);
  -webkit-backdrop-filter:blur(18px);
}
body.is-trainer .tr-flow-step{
  display:flex;
  align-items:center;
  gap:11px;
  min-width:0;
  min-height:58px;
  padding:8px 10px;
  border:0;
  border-radius:13px;
  background:transparent;
  color:var(--ink-2);
  text-align:left;
  cursor:pointer;
  transition:background .16s var(--ease),color .16s var(--ease),opacity .16s var(--ease);
}
body.is-trainer .tr-flow-step>i{
  display:inline-flex;
  flex:0 0 34px;
  align-items:center;
  justify-content:center;
  width:34px;
  height:34px;
  border:1px solid var(--line);
  border-radius:11px;
  background:color-mix(in srgb,var(--surface-2) 78%,transparent);
  color:var(--ink-3);
  font:850 11px/1 var(--mono);
  font-style:normal;
}
body.is-trainer .tr-flow-step>span{display:flex;min-width:0;flex-direction:column;gap:2px}
body.is-trainer .tr-flow-step b{
  overflow:hidden;
  color:var(--ink);
  font-size:12.5px;
  font-weight:780;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.is-trainer .tr-flow-step small{
  overflow:hidden;
  color:var(--ink-3);
  font-size:10.5px;
  line-height:1.25;
  text-overflow:ellipsis;
  white-space:nowrap;
}
body.is-trainer .tr-flow-step:hover:not(:disabled){background:color-mix(in srgb,var(--surface-2) 74%,transparent)}
body.is-trainer .tr-flow-step:focus-visible{outline:2px solid var(--accent);outline-offset:2px}
body.is-trainer .tr-flow-step.current{background:color-mix(in srgb,var(--accent) 9%,var(--surface-2))}
body.is-trainer .tr-flow-step.current>i{
  border-color:transparent;
  background:linear-gradient(180deg,var(--btn-g1,var(--accent-hi)),var(--btn-g2,var(--accent)));
  color:#061208;
  box-shadow:0 9px 20px -12px color-mix(in srgb,var(--accent) 78%,transparent);
}
body.is-trainer .tr-flow-step.done>i{
  border-color:color-mix(in srgb,var(--real) 42%,var(--line));
  background:color-mix(in srgb,var(--real) 9%,var(--surface-2));
  color:var(--real);
}
body.is-trainer .tr-flow-step.locked{cursor:default;opacity:.45}
body.is-trainer .tr-flow-link{height:1px;background:var(--line);transition:background .16s var(--ease)}
body.is-trainer .tr-flow-link.done{background:color-mix(in srgb,var(--real) 60%,var(--line))}

body.is-trainer .tr-instrument{
  border-radius:24px!important;
  box-shadow:0 28px 70px -52px rgba(0,0,0,.7)!important;
}
body.is-trainer .tr-instrument-body{padding:16px clamp(18px,2.6vw,30px) 10px}
body.is-trainer .tr-instrument .trainer-controls{
  display:grid!important;
  grid-template-columns:minmax(190px,.8fr) minmax(360px,1.25fr) minmax(300px,1.35fr)!important;
  align-items:end!important;
  gap:14px!important;
}
body.is-trainer #tc-track{grid-column:1/-1}
body.is-trainer #tc-instr,
body.is-trainer #tc-tf,
body.is-trainer #tc-strat{width:100%}
body.is-trainer #tc-instr .icombo,
body.is-trainer #tc-instr .trainer-select,
body.is-trainer #tc-strat .trainer-select{width:100%;min-width:0!important}
body.is-trainer #tc-tf .tf-seg{display:grid!important;grid-template-columns:repeat(7,minmax(0,1fr));width:100%}
body.is-trainer #tc-tf .tf-btn{min-width:0!important;padding-inline:7px!important}

body.is-trainer .tr-session-options,
body.is-trainer .tr-mode-help{
  margin-top:12px;
  border-top:1px solid color-mix(in srgb,var(--line) 76%,transparent);
}
body.is-trainer .tr-session-options>summary,
body.is-trainer .tr-mode-help>summary{
  display:flex;
  align-items:center;
  gap:11px;
  min-height:46px;
  padding:6px 2px;
  color:var(--ink-2);
  cursor:pointer;
  list-style:none;
}
body.is-trainer .tr-session-options>summary::-webkit-details-marker,
body.is-trainer .tr-mode-help>summary::-webkit-details-marker{display:none}
body.is-trainer .tr-session-options>summary>i:first-child{width:22px;color:var(--accent);text-align:center}
body.is-trainer .tr-session-options>summary>span{display:flex;min-width:0;flex-direction:column;gap:2px}
body.is-trainer .tr-session-options>summary b,
body.is-trainer .tr-mode-help>summary span{font-size:12.5px;font-weight:760;color:var(--ink)}
body.is-trainer .tr-session-options>summary small{font-size:10.5px;color:var(--ink-3)}
body.is-trainer .tr-session-options>summary>i:last-child,
body.is-trainer .tr-mode-help>summary i{margin-left:auto;font-size:9px;color:var(--ink-3);transition:transform .16s var(--ease)}
body.is-trainer .tr-session-options[open]>summary>i:last-child,
body.is-trainer .tr-mode-help[open]>summary i{transform:rotate(180deg)}
body.is-trainer .tr-options-grid{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:12px;
  padding:2px 0 12px 33px;
}
body.is-trainer .tr-options-grid .trainer-select{width:100%;min-width:0!important}
body.is-trainer .tr-mode-help .mode-note{margin:0!important;padding:0 0 12px 33px!important;max-width:92ch}
body.is-trainer .tr-mode-help .mode-note>a{margin-left:8px;white-space:nowrap}

body.is-trainer .tr-dock{padding:13px clamp(18px,2.6vw,30px) 16px}
body.is-trainer .tr-dock #exam-new,
body.is-trainer .tr-exam-btn{min-width:210px!important;height:48px!important;justify-content:center!important}
body.is-trainer .tr-legal{max-width:52ch}

body.is-trainer .tr-ready-card{
  position:relative;
  z-index:2;
  display:grid;
  grid-template-columns:minmax(0,1.05fr) minmax(340px,.95fr);
  min-height:300px;
  overflow:hidden;
  border:1px solid color-mix(in srgb,var(--line) 84%,transparent);
  border-radius:24px;
  background:color-mix(in srgb,var(--surface) 90%,transparent);
  box-shadow:0 28px 70px -54px rgba(0,0,0,.7);
}
body.is-trainer .tr-ready-media{position:relative;min-height:300px;overflow:hidden}
body.is-trainer .tr-ready-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,transparent 55%,color-mix(in srgb,var(--surface) 96%,transparent));
  pointer-events:none;
}
body.is-trainer .tr-ready-media img{width:100%;height:100%;object-fit:cover;display:block}
body.is-trainer .tr-ready-copy{display:flex;flex-direction:column;justify-content:center;padding:clamp(24px,3vw,40px)}
body.is-trainer .tr-ready-copy h2{
  max-width:15ch;
  margin:5px 0 24px;
  font-size:clamp(26px,3vw,40px);
  line-height:1.02;
  letter-spacing:-.045em;
}
body.is-trainer .tr-ready-steps{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:8px}
body.is-trainer .tr-ready-steps>span{
  display:flex;
  min-width:0;
  flex-direction:column;
  gap:3px;
  padding:12px;
  border:1px solid color-mix(in srgb,var(--line) 78%,transparent);
  border-radius:13px;
  background:color-mix(in srgb,var(--surface-2) 70%,transparent);
}
body.is-trainer .tr-ready-steps i{margin-bottom:5px;color:var(--accent);font-size:15px}
body.is-trainer .tr-ready-steps b{font-size:12.5px;color:var(--ink)}
body.is-trainer .tr-ready-steps small{font-size:10.5px;line-height:1.3;color:var(--ink-3)}

body.is-trainer .tr-stage-panel{border-radius:24px!important}
body.is-trainer .tr-stage-panel>.scoreboard{padding:12px 14px 0!important}
body.is-trainer .scoreboard .sb{padding:9px 11px!important;border-radius:12px!important}
body.is-trainer .scoreboard .sb b{font-size:16px!important}
body.is-trainer .trainer-stage{padding-top:12px!important}
body.is-trainer .draw-toolbar{
  max-height:600px!important;
  overflow-y:auto!important;
  overscroll-behavior:contain;
}
body.is-trainer .decision-panel{position:sticky!important;top:calc(var(--nav-h) + 12px)!important}
body.is-trainer .trainer-chart{height:clamp(470px,64vh,610px)!important}
body.is-trainer .chart-top #trainer-hint{color:var(--ink-2)!important}

body.is-trainer .edge-system,
body.is-trainer .dledger,
body.is-trainer .edge-panel,
body.is-trainer .trainer-progress{position:relative;z-index:2}
body.is-trainer .edge-panel .ep-head{min-height:56px;padding:12px 16px}
body.is-trainer .edge-panel .ep-kicker{font-size:12px}
body.is-trainer .edge-panel .ep-body{padding-top:2px}
body.is-trainer .gym-cta.tr-gym{position:relative;z-index:2;margin-top:4px!important;opacity:.82}

body.is-trainer .tr-setup-summary{display:flex;min-width:0;flex:1 1 auto;flex-direction:column;gap:3px}
body.is-trainer .tr-setup-summary b{overflow:hidden;color:var(--ink);font-size:13px;text-overflow:ellipsis;white-space:nowrap}
body.is-trainer .tr-setup-summary span{overflow:hidden;color:var(--ink-3);font-size:11px;text-overflow:ellipsis;white-space:nowrap}
body.is-trainer .tr-setup-toggle{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:8px;
  min-height:40px;
  padding:0 14px;
  border:1px solid color-mix(in srgb,var(--accent) 32%,var(--line));
  border-radius:12px;
  background:color-mix(in srgb,var(--accent) 7%,var(--surface-2));
  color:var(--ink);
  font:740 12px/1 var(--font);
  cursor:pointer;
}
body.is-trainer .tr-setup-toggle:hover{background:color-mix(in srgb,var(--accent) 11%,var(--surface-2))}

body.is-trainer .trainer-idle .tr-stage-panel{display:none}
body.is-trainer .trainer-loading .tr-ready-card,
body.is-trainer .trainer-active .tr-ready-card,
body.is-trainer .trainer-review .tr-ready-card{display:none}
body.is-trainer .trainer-loading .tr-flow-map,
body.is-trainer .trainer-active .tr-flow-map,
body.is-trainer .trainer-review .tr-flow-map{display:none}
body.is-trainer .trainer-loading:not(.tr-setup-open) .tr-instrument-body,
body.is-trainer .trainer-loading:not(.tr-setup-open) .tr-dock,
body.is-trainer .trainer-active:not(.tr-setup-open) .tr-instrument-body,
body.is-trainer .trainer-active:not(.tr-setup-open) .tr-dock,
body.is-trainer .trainer-review:not(.tr-setup-open) .tr-instrument-body,
body.is-trainer .trainer-review:not(.tr-setup-open) .tr-dock{display:none}
body.is-trainer .trainer-loading:not(.tr-setup-open) .tr-mode-top,
body.is-trainer .trainer-active:not(.tr-setup-open) .tr-mode-top,
body.is-trainer .trainer-review:not(.tr-setup-open) .tr-mode-top{display:none!important}
body.is-trainer .trainer-loading:not(.tr-setup-open) .tr-instrument-top,
body.is-trainer .trainer-active:not(.tr-setup-open) .tr-instrument-top,
body.is-trainer .trainer-review:not(.tr-setup-open) .tr-instrument-top{border-bottom:0;padding-block:13px}
body.is-trainer .trainer-loading:not(.tr-setup-open) .tr-instrument-label,
body.is-trainer .trainer-active:not(.tr-setup-open) .tr-instrument-label,
body.is-trainer .trainer-review:not(.tr-setup-open) .tr-instrument-label{display:none}
body.is-trainer .trainer-loading:not(.tr-setup-open) .tr-setup-summary.hidden,
body.is-trainer .trainer-active:not(.tr-setup-open) .tr-setup-summary.hidden,
body.is-trainer .trainer-review:not(.tr-setup-open) .tr-setup-summary.hidden{display:flex!important}
body.is-trainer .trainer-active:not(.tr-setup-open) .tr-setup-toggle.hidden,
body.is-trainer .trainer-review:not(.tr-setup-open) .tr-setup-toggle.hidden{display:inline-flex!important}
body.is-trainer .trainer-loading:not(.tr-setup-open) .tr-setup-toggle.hidden{display:none!important}

@media (max-width:1080px){
  body.is-trainer .tr-instrument .trainer-controls{grid-template-columns:1fr 1fr!important}
  body.is-trainer #tc-strat{grid-column:1/-1}
  body.is-trainer .tr-ready-card{grid-template-columns:1fr 1fr}
  body.is-trainer .decision-panel{position:relative!important;top:auto!important}
  body.is-trainer .draw-toolbar{max-height:none!important;overflow:visible!important}
}
@media (max-width:720px){
  body.is-trainer .tr-chrome{max-width:100%!important;margin-bottom:15px!important;padding-top:2px!important}
  body.is-trainer .trainer-head h1{max-width:11ch!important;font-size:clamp(35px,10.8vw,50px)!important}
  body.is-trainer .trainer-head p{font-size:13.5px!important}
  body.is-trainer .tr-flow-map{grid-template-columns:repeat(3,minmax(0,1fr));gap:4px;padding:5px;border-radius:15px}
  body.is-trainer .tr-flow-link{display:none}
  body.is-trainer .tr-flow-step{justify-content:center;min-height:52px;padding:7px 4px;gap:7px;text-align:center}
  body.is-trainer .tr-flow-step>i{flex-basis:30px;width:30px;height:30px;border-radius:10px}
  body.is-trainer .tr-flow-step>span{align-items:flex-start}
  body.is-trainer .tr-flow-step b{font-size:10.5px}
  body.is-trainer .tr-flow-step small{display:none}
  body.is-trainer .tr-instrument .trainer-controls{grid-template-columns:1fr!important}
  body.is-trainer #tc-strat{grid-column:auto}
  body.is-trainer #tc-tf .tf-seg{grid-template-columns:repeat(4,minmax(0,1fr))}
  body.is-trainer .tr-options-grid{grid-template-columns:1fr;padding-left:0}
  body.is-trainer .tr-mode-help .mode-note{padding-left:0!important}
  body.is-trainer .tr-ready-card{grid-template-columns:1fr;min-height:0}
  body.is-trainer .tr-ready-media{min-height:210px}
  body.is-trainer .tr-ready-media::after{background:linear-gradient(180deg,transparent 58%,color-mix(in srgb,var(--surface) 96%,transparent))}
  body.is-trainer .tr-ready-copy{padding:22px 18px 24px}
  body.is-trainer .tr-ready-copy h2{margin-bottom:18px}
  body.is-trainer .tr-ready-steps{grid-template-columns:1fr}
  body.is-trainer .tr-ready-steps>span{display:grid;grid-template-columns:24px auto;grid-template-rows:auto auto;column-gap:9px;padding:10px 12px}
  body.is-trainer .tr-ready-steps i{grid-row:1/3;margin:3px 0 0}
  body.is-trainer .tr-instrument-top{align-items:stretch}
  body.is-trainer .tr-setup-toggle{width:100%}
  body.is-trainer .tr-stage-panel>.scoreboard{grid-template-columns:repeat(2,minmax(0,1fr))!important}
}
@media (prefers-reduced-motion:reduce){
  body.is-trainer .tr-flow-step,
  body.is-trainer .tr-flow-link,
  body.is-trainer .tr-session-options>summary i,
  body.is-trainer .tr-mode-help>summary i{transition:none}
}

/* ==========================================================================
   GAMES v2 — guided choice, compact progress and scannable drill library
   ========================================================================== */
body.is-gym .gy-page{padding-bottom:72px!important}
body.is-gym .gym-wrap{gap:22px!important}
body.is-gym .gy-head-row{
  grid-template-columns:minmax(0,1.35fr) minmax(340px,.75fr);
  align-items:center;gap:clamp(32px,5vw,72px);
  min-height:190px;
}
body.is-gym .gy-chrome h1{
  max-width:12ch;margin-bottom:10px;
  font-size:clamp(42px,5.3vw,66px);line-height:.98;letter-spacing:-.055em;
}
body.is-gym .gy-chrome .gym-lead{max-width:47ch;font-size:15px;line-height:1.55}

body.is-gym .gym-profile{
  display:grid!important;grid-template-columns:154px minmax(0,1fr);align-items:center;
  gap:10px 16px;padding:15px 17px!important;border:1px solid var(--line-2)!important;
  border-radius:20px!important;background:color-mix(in srgb,var(--surface) 95%,var(--bg))!important;
  box-shadow:0 18px 52px rgba(0,0,0,.12)!important;
}
body.is-gym .gym-profile-head{
  grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:14px;
  padding-bottom:10px;border-bottom:1px solid var(--line);
}
body.is-gym .gym-profile-head span{
  color:var(--ink);font:760 12px/1 var(--font);
}
body.is-gym .gym-profile-head em{
  color:var(--ink-3);font:650 9px/1 var(--mono);font-style:normal;letter-spacing:.08em;text-transform:uppercase;
}
body.is-gym #gym-radar{width:154px;height:132px}
body.is-gym .gym-agility{gap:5px}
body.is-gym .gym-agility span{font-size:9px}
body.is-gym .gym-agility b{font-size:2.45rem}
body.is-gym .gym-agility em{font-size:9.5px;line-height:1.35}
body.is-gym .gym-xpline{
  grid-column:1/-1;margin:0;padding-top:11px;gap:8px;font-size:10px;
}
body.is-gym .gym-xpline .xp-rank{font-size:9px;padding:3px 8px}
body.is-gym .gym-xpline .xp-num{font-size:9.5px}
body.is-gym .gym-xpline .xp-fire{font-size:10px}

body.is-gym .gym-next{
  display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.88fr);
  min-height:360px;overflow:hidden;position:relative;z-index:2;
  border:1px solid var(--line-2);border-radius:24px;
  background:color-mix(in srgb,var(--surface) 97%,var(--bg));
  box-shadow:0 24px 70px rgba(0,0,0,.13);
}
body.is-gym .gym-next-media{position:relative;min-height:360px;background:#07090a;overflow:hidden}
body.is-gym .gym-next-media img{display:block;width:100%;height:100%;object-fit:cover}
body.is-gym .gym-next-badge{
  position:absolute;top:18px;left:18px;padding:8px 11px;border-radius:999px;
  color:#f5f8f6;background:rgba(4,7,8,.86);border:1px solid rgba(255,255,255,.24);
  font:800 9px/1 var(--mono);letter-spacing:.12em;text-transform:uppercase;
}
body.is-gym .gym-next-copy{
  display:flex;flex-direction:column;align-items:flex-start;justify-content:center;
  padding:clamp(28px,4vw,52px);
}
body.is-gym .gym-next-kicker{display:flex;align-items:center;gap:10px;margin-bottom:16px}
body.is-gym .gym-next-kicker span,
body.is-gym .gym-next-kicker em{
  font:800 9.5px/1 var(--mono);letter-spacing:.13em;text-transform:uppercase;font-style:normal;
}
body.is-gym .gym-next-kicker span{color:var(--accent)}
body.is-gym .gym-next-kicker em{padding-left:10px;border-left:1px solid var(--line-2);color:var(--ink-3)}
body.is-gym .gym-next-copy h2{
  max-width:15ch;margin:0 0 10px;color:var(--ink);
  font:780 clamp(29px,3vw,42px)/1 var(--display);letter-spacing:-.045em;
}
body.is-gym .gym-next-copy>p{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden;
  max-width:43ch;margin:0;color:var(--ink-2);font-size:14px;line-height:1.55;
}
body.is-gym .gym-next-progress{width:100%;margin:22px 0 18px}
body.is-gym .gym-next-progress>span{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:8px}
body.is-gym .gym-next-progress b{color:var(--ink);font:760 11px/1 var(--font)}
body.is-gym .gym-next-progress em{color:var(--ink-3);font:650 9.5px/1 var(--mono);font-style:normal;text-transform:uppercase;letter-spacing:.07em}
body.is-gym .gym-next-progress>i{display:block;height:6px;overflow:hidden;border-radius:999px;background:var(--line)}
body.is-gym .gym-next-progress>i>b{display:block;height:100%;border-radius:inherit;background:var(--accent)}
body.is-gym .gym-next-play{
  min-width:190px;min-height:48px;display:flex;align-items:center;justify-content:space-between;gap:20px;
  padding:0 18px;border:1px solid color-mix(in srgb,var(--accent) 72%,#fff);border-radius:13px;
  background:var(--accent);color:#0b1608;cursor:pointer;
  font:800 13px/1 var(--font);box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 20%,transparent);
  transition:transform var(--dur-1) var(--ease),box-shadow var(--dur-1) var(--ease);
}
body.is-gym .gym-next-play:hover{transform:translateY(-2px);box-shadow:0 16px 34px color-mix(in srgb,var(--accent) 26%,transparent)}
body.is-gym .gym-next-play:focus-visible{outline:3px solid color-mix(in srgb,var(--accent) 35%,transparent);outline-offset:3px}
body.is-gym .gym-next-play b{font-size:18px}

body.is-gym .gym-library-head{
  display:flex;align-items:flex-end;justify-content:space-between;gap:24px;
  position:relative;z-index:2;margin-top:12px;
}
body.is-gym .gym-library-kicker{
  display:block;margin-bottom:7px;color:var(--ink-3);
  font:800 9px/1 var(--mono);letter-spacing:.16em;text-transform:uppercase;
}
body.is-gym .gym-library-head h2{
  margin:0;color:var(--ink);font:780 clamp(25px,2.6vw,34px)/1.04 var(--display);letter-spacing:-.04em;
}
body.is-gym .gym-filters{
  display:flex;gap:5px;padding:5px;border:1px solid var(--line);border-radius:14px;
  background:color-mix(in srgb,var(--surface) 94%,var(--bg));
}
body.is-gym .gym-filters button{
  min-height:36px;padding:0 13px;border:0;border-radius:10px;background:transparent;color:var(--ink-2);
  font:720 11px/1 var(--font);cursor:pointer;white-space:nowrap;
}
body.is-gym .gym-filters button:hover{color:var(--ink);background:var(--surface-2)}
body.is-gym .gym-filters button.is-active{color:#0b1608;background:var(--accent)}
body.is-gym .gym-filters button:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

body.is-gym .gym-hub{gap:14px}
body.is-gym .gym-card{
  border-width:1px!important;border-color:var(--line-2)!important;border-radius:20px!important;
  box-shadow:0 12px 34px rgba(0,0,0,.09)!important;
}
body.is-gym .gym-card:hover,
body.is-gym .gym-card:focus-visible{
  transform:translateY(-3px);border-color:color-mix(in srgb,var(--game-accent) 48%,var(--line-2))!important;
  box-shadow:0 19px 42px rgba(0,0,0,.15)!important;
}
body.is-gym .gc-cover{aspect-ratio:1.82/1;border-bottom-color:var(--line)}
body.is-gym .gc-cover-no{top:12px;left:12px;min-width:28px;padding:7px;font-size:9px}
body.is-gym .gc-cover-mode{top:12px;right:12px;padding:6px 8px;font-size:8px}
body.is-gym .gc-top{padding:13px 16px 0}
body.is-gym .gc-icon{width:30px;height:30px;border-radius:9px}
body.is-gym .gc-icon svg{width:16px;height:16px}
body.is-gym .gc-icon-glyph{font-size:19px}
body.is-gym .gc-skill{font-size:9px}
body.is-gym .gym-card h3{margin:10px 16px 0;font-size:1.12rem;line-height:1.12}
body.is-gym .gym-card p{
  display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:2;overflow:hidden;
  min-height:42px;margin:7px 16px 0;font-size:.79rem;line-height:1.5;
}
body.is-gym .gc-foot{min-height:39px;margin:12px 16px 14px;padding-top:11px}
body.is-gym .gc-best{gap:6px;font-size:10px}
body.is-gym .gc-lvl{font-size:9px}
body.is-gym .gc-mbar{flex-basis:54px}
body.is-gym .gc-play{font-size:10px}
body.is-gym .gym-note{margin-top:10px;padding-top:18px;gap:12px}
body.is-gym .gym-note p{max-width:88ch;font-size:.78rem;line-height:1.55}
body.is-gym .gym-note-links .btn{min-height:38px;padding:9px 13px;font-size:11px}
body.is-gym .gym-panel{width:min(590px,94%);gap:13px;padding:28px 30px;border-width:1px;border-radius:20px}
body.is-gym .gym-panel h3{font-size:clamp(26px,3vw,34px);letter-spacing:-.04em}
body.is-gym .gp-how-short{margin:0;color:var(--ink-2);font-size:14px;line-height:1.55}
body.is-gym .gp-intro-actions{display:flex;align-items:center;gap:9px;flex-wrap:wrap;margin-top:3px}
body.is-gym .gp-intro-actions .gp-start{min-height:46px;padding:11px 20px}
body.is-gym .gp-intro-actions .gp-tutlink{min-height:46px;padding:11px 16px}
body.is-gym .gp-rules{border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
body.is-gym .gp-rules summary{
  padding:12px 0;color:var(--ink);font:720 11px/1 var(--font);cursor:pointer;list-style-position:inside;
}
body.is-gym .gp-rules>div{padding:0 0 14px;color:var(--ink-2);font-size:12.5px;line-height:1.55}
body.is-gym .gp-rules>div b{color:var(--ink)}
body.is-gym .gp-esc{font-size:9.5px}

[data-theme="light"] body.is-gym .gym-profile,
[data-theme="light"] body.is-gym .gym-next,
[data-theme="light"] body.is-gym .gym-filters{
  background:rgba(255,255,255,.92)!important;
  box-shadow:0 22px 60px rgba(27,42,32,.08)!important;
}

@media (max-width:980px){
  body.is-gym .gy-head-row{grid-template-columns:1fr;gap:22px;min-height:0}
  body.is-gym .gy-chrome h1{max-width:13ch}
  body.is-gym .gym-profile{max-width:520px}
  body.is-gym .gym-next{grid-template-columns:1fr 1fr}
  body.is-gym .gym-library-head{align-items:flex-start;flex-direction:column}
  body.is-gym .gym-filters{max-width:100%;overflow-x:auto}
}
@media (max-width:760px){
  body.is-gym .gy-shell,body.is-gym .gym-wrap{width:min(100% - 28px,1200px)!important}
  body.is-gym .gy-chrome h1{font-size:clamp(38px,11.4vw,52px)!important}
  body.is-gym .gy-chrome .gym-lead{font-size:13.5px}
  body.is-gym .gym-profile{grid-template-columns:132px 1fr;max-width:none;padding:13px!important}
  body.is-gym #gym-radar{width:132px;height:118px}
  body.is-gym .gym-profile-head em{max-width:20ch;text-align:right;font-size:8px}
  body.is-gym .gym-next{grid-template-columns:1fr;min-height:0;border-radius:20px}
  body.is-gym .gym-next-media{min-height:220px;aspect-ratio:16/9}
  body.is-gym .gym-next-copy{padding:23px 18px 20px}
  body.is-gym .gym-next-copy h2{font-size:31px}
  body.is-gym .gym-next-copy>p{-webkit-line-clamp:2;font-size:13px}
  body.is-gym .gym-next-progress{margin:18px 0 15px}
  body.is-gym .gym-next-play{width:100%}
  body.is-gym .gym-library-head{gap:15px;margin-top:6px}
  body.is-gym .gym-filters{width:100%;scrollbar-width:none}
  body.is-gym .gym-filters::-webkit-scrollbar{display:none}
  body.is-gym .gym-filters button{flex:none}
  body.is-gym .gym-hub{grid-template-columns:1fr!important}
  body.is-gym .gym-card p{-webkit-line-clamp:2}
  body.is-gym .gym-panel{padding:23px 18px}
  body.is-gym .gp-intro-actions{align-items:stretch;flex-direction:column}
  body.is-gym .gp-intro-actions .btn{width:100%;justify-content:center}
}

/* ============================================================================
   EDGE MINE v8 — linear research journey
   Option 2 selected: points -> dossier -> access -> exam, followed by a
   horizontally readable 62-level vault route. All server-driven states,
   gallery, evidence, dossiers, ledger and exams remain unchanged.
   ========================================================================== */
body.is-mine .mv-page{padding-top:clamp(20px,2.7vh,28px)}
body.is-mine .mv-shell{padding-bottom:88px}
body.is-mine .mv-chrome{
  min-height:0;max-width:min(560px,100%);justify-content:flex-start;
  margin:0 0 clamp(14px,2.2vh,20px);padding:4px 2px 0;
}
body.is-mine .mv-chrome h1{margin-bottom:12px;font-size:clamp(40px,4.8vw,62px);line-height:.98;letter-spacing:-.055em}
body.is-mine .mv-chrome .mv-sub{max-width:50ch;font-size:14px;line-height:1.6}
body.is-mine .mv-legal{max-width:52ch;margin-top:8px;font-size:11px;line-height:1.55}
body.is-mine .mv-meta{display:flex!important;margin-top:8px;gap:18px;font-size:.58rem}

body.is-mine .mv-status{
  margin-top:22px;border-color:var(--line);border-radius:18px;background:color-mix(in srgb,var(--bg) 94%,var(--surface));
  box-shadow:var(--elev-1);-webkit-backdrop-filter:blur(18px);backdrop-filter:blur(18px);
}
body.is-mine .mv-status::before{display:none}
body.is-mine .mv-status-head{min-height:92px;padding:18px 4px 16px;background:transparent}
body.is-mine .mv-status-head h2{margin-top:6px;font-size:1.18rem}
body.is-mine .mv-status-head p{font-size:.75rem}
body.is-mine .mv-verified{margin-right:4px;padding:8px 13px}

body.is-mine .mv-status-grid{
  display:grid;grid-template-columns:150px 34px minmax(390px,1.65fr) 34px minmax(190px,.72fr) 34px minmax(190px,.72fr);
  align-items:stretch;min-height:200px;
}
body.is-mine .mv-score-block,
body.is-mine .mv-next-block,
body.is-mine .mv-summary-card{background:transparent}
body.is-mine .mv-score-block{
  justify-content:center;padding:24px 8px 24px 4px;border:0;
}
body.is-mine .mv-score-value{margin:10px 0 6px}
body.is-mine .mv-score-value b{font-size:3.35rem}
body.is-mine .mv-score-block small{max-width:15ch;font-size:.66rem}
body.is-mine .mv-next-block{justify-content:center;padding:24px 4px;border:0}
body.is-mine .mv-next-top{margin-bottom:11px}
body.is-mine .mv-next-block h3{margin-bottom:14px;font-size:1.38rem}
body.is-mine .mv-next-track{height:8px}
body.is-mine .mv-next-numbers{margin-top:9px}
body.is-mine .mv-status-action{margin-top:16px;min-height:38px;padding:9px 14px}
body.is-mine .mv-summary-card{
  justify-content:center;padding:24px 4px;border:0!important;
}
body.is-mine .mv-summary-card.exam{overflow:visible}
body.is-mine .mv-summary-card.exam::after{display:none}
body.is-mine .mv-summary-icon{width:28px;height:28px;border-radius:9px}
body.is-mine .mv-summary-value{margin:2px 0 10px}
body.is-mine .mv-summary-value b{font-size:2.25rem}
body.is-mine .mv-exam-state{margin-top:5px;font-size:1.12rem}
body.is-mine .mv-flow-arrow{
  display:grid;place-items:center;align-self:stretch;color:var(--ink-3);font-size:1.25rem;opacity:.55;
}
body.is-mine .mv-flow-arrow i{filter:drop-shadow(0 0 8px color-mix(in srgb,var(--accent) 12%,transparent))}

body.is-mine .mv-gauge{padding:20px 4px 18px;background:transparent}
body.is-mine .mv-gauge-head{min-height:38px}
body.is-mine .mv-g-overall>b{font-size:1.72rem!important}
body.is-mine .mv-g-next{
  min-height:61px;margin:13px 0 10px;padding:9px 12px;border-radius:9px;
  background:color-mix(in srgb,var(--accent) 5%,transparent);
}
body.is-mine .mv-g-next b{font-size:.78rem}
body.is-mine .mv-g-segments{
  position:relative;display:flex;gap:0;width:100%;padding:2px 0 8px;border:0;border-radius:0;
  background:transparent;box-shadow:none;overflow-x:auto;overflow-y:hidden;overscroll-behavior-inline:contain;
  scroll-snap-type:x proximity;scrollbar-width:thin;scrollbar-color:color-mix(in srgb,var(--accent) 44%,var(--line)) transparent;
}
body.is-mine .mv-g-segments::-webkit-scrollbar{height:4px}
body.is-mine .mv-g-segments::-webkit-scrollbar-track{background:transparent}
body.is-mine .mv-g-segments::-webkit-scrollbar-thumb{border-radius:99px;background:color-mix(in srgb,var(--accent) 44%,var(--line))}
body.is-mine .mv-g-segment{
  position:relative;display:grid;grid-template-rows:40px 19px;justify-items:center;flex:0 0 64px;height:62px;
  overflow:visible;border:0;border-radius:0;background:transparent!important;color:var(--ink-3);box-shadow:none!important;
  scroll-snap-align:start;opacity:1;
}
body.is-mine .mv-g-segment::after{
  content:"";position:absolute;z-index:0;top:19px;left:50%;width:100%;height:2px;background:var(--line-2);
}
body.is-mine .mv-g-segment.open::after{background:var(--accent)}
body.is-mine .mv-g-segment:last-child::after{display:none}
body.is-mine .mv-g-seg-fill{display:none}
body.is-mine .mv-g-segment>b{
  position:relative;z-index:1;display:grid;place-items:center;width:38px;height:38px;border:2px solid var(--line-2);
  border-radius:50%;background:var(--bg);color:var(--ink-3);font-size:.55rem;
}
body.is-mine .mv-g-segment>b i{font-size:.62rem}
body.is-mine .mv-g-segment>small{font:700 .62rem/1 var(--mono);color:var(--ink-3)}
body.is-mine .mv-g-segment.open>b{border-color:var(--accent);background:var(--accent);color:#0b1608}
body.is-mine .mv-g-segment.open>small{color:var(--ink-2)}
body.is-mine .mv-g-segment.current>b{
  border-color:var(--accent);background:color-mix(in srgb,var(--accent) 8%,var(--bg));color:var(--accent);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--accent) 10%,transparent)!important;
}
body.is-mine .mv-g-segment.current>small{color:var(--accent)}
body.is-mine .mv-g-segment.locked{opacity:.72}
body.is-mine .mv-g-legend{
  grid-template-columns:repeat(3,minmax(0,1fr));gap:0;margin-top:7px;border:1px solid color-mix(in srgb,var(--accent) 24%,var(--line));
  border-radius:9px;overflow:hidden;background:color-mix(in srgb,var(--surface-2) 42%,transparent);
}
body.is-mine .mv-g-state{min-height:58px;padding:8px 14px;border:0;border-radius:0;background:transparent}
body.is-mine .mv-g-state+ .mv-g-state{border-left:1px solid var(--line)}
body.is-mine .mv-g-state.is-current{background:color-mix(in srgb,var(--accent) 4%,transparent)}
body.is-mine .mv-g-state-icon{width:31px;height:31px;border-radius:50%}
body.is-mine .mv-g-state-track{height:3px}

/* The editorial intro and research route use the viewport as their canvas;
   the dossier gallery deliberately keeps the shared 1200px tool shell. */
@media (min-width:1100px){
  body.is-mine .mv-page{--mv-edge:clamp(42px,3.6vw,52px);container-type:inline-size}
  body.is-mine .mv-chrome{
    margin-left:0;
    max-width:min(560px,100%);
  }
  body.is-mine .mv-status-head,
  body.is-mine .mv-status-grid,
  body.is-mine .mv-gauge{
    box-sizing:border-box;padding-inline:24px;
  }
  body.is-mine .mv-next-block{border-left:1px solid var(--line)}
  body.is-mine .mv-summary-card{border-left:1px solid var(--line)!important}
}

@media (min-width:1280px){
  body.is-mine .mv-status-grid{
    grid-template-columns:180px 32px minmax(430px,1.6fr) 32px minmax(200px,.74fr) 32px minmax(178px,.74fr);
  }
}

[data-theme="light"] body.is-mine .mv-status{background:rgba(255,255,255,.92)}
[data-theme="light"] body.is-mine .mv-g-segment>b{background:#fff}
[data-theme="light"] body.is-mine .mv-g-segment.open>b{background:var(--accent)}

@media (min-width:1100px) and (max-width:1279px){
  body.is-mine .mv-chrome{max-width:min(500px,50vw)}
  body.is-mine .mv-status-grid{
    grid-template-columns:132px 24px minmax(300px,1.5fr) 24px minmax(165px,.7fr) 24px minmax(170px,.72fr);
  }
  body.is-mine .mv-score-block,
  body.is-mine .mv-next-block,
  body.is-mine .mv-summary-card{padding-inline:2px}
  body.is-mine .mv-score-value b{font-size:3rem}
  body.is-mine .mv-summary-value b{font-size:2rem}
}

@media (min-width:641px) and (max-width:1099px){
  body.is-mine .mv-chrome{max-width:100%;min-height:330px;justify-content:flex-end}
  body.is-mine .mv-status{border-radius:0}
  body.is-mine .mv-status-head{padding-inline:0}
  body.is-mine .mv-status-grid{grid-template-columns:1fr 1fr;grid-auto-rows:minmax(154px,auto);min-height:0}
  body.is-mine .mv-score-block,
  body.is-mine .mv-next-block,
  body.is-mine .mv-summary-card{min-height:0;padding:22px;border-top:1px solid var(--line)!important}
  body.is-mine .mv-score-block{align-items:flex-start}
  body.is-mine .mv-score-block small{max-width:none}
  body.is-mine .mv-score-block,
  body.is-mine .mv-summary-card:not(.exam){border-right:1px solid var(--line)!important}
  body.is-mine .mv-flow-arrow{display:none}
  body.is-mine .mv-summary-card.exam{min-height:120px}
  body.is-mine .mv-gauge{padding-inline:0}
  body.is-mine .mv-g-legend{grid-template-columns:1fr}
  body.is-mine .mv-g-state+ .mv-g-state{border-left:0;border-top:1px solid var(--line)}
  body.is-mine .mv-dotfield{--mv-pos:right -12% top 22%}
  body.is-mine .mv-df-dots{opacity:.46}
}

@media (max-width:640px){
  body.is-mine .mv-page{padding-top:14px}
  body.is-mine .mv-shell{padding-bottom:64px}
  body.is-mine .mv-chrome{max-width:100%;min-height:0;margin-bottom:14px;padding-bottom:38px}
  body.is-mine .mv-chrome h1{font-size:clamp(35px,10.8vw,50px)}
  body.is-mine .mv-chrome .mv-sub{font-size:13.5px;line-height:1.58}
  body.is-mine .mv-meta{align-items:center;flex-direction:row;flex-wrap:wrap;gap:5px 14px}
  body.is-mine .mv-status-head{align-items:flex-start;flex-direction:column;min-height:0;padding:17px 16px}
  body.is-mine .mv-verified{margin:0}
  body.is-mine .mv-status-grid{grid-template-columns:1fr;min-height:0}
  body.is-mine .mv-score-block,
  body.is-mine .mv-next-block,
  body.is-mine .mv-summary-card{min-height:132px;padding:20px 16px;border-top:1px solid var(--line)!important;border-right:0!important}
  body.is-mine .mv-score-block{align-items:flex-start}
  body.is-mine .mv-score-block small{max-width:none}
  body.is-mine .mv-flow-arrow{display:grid;height:24px;border-top:1px solid var(--line)}
  body.is-mine .mv-flow-arrow i{transform:rotate(90deg)}
  body.is-mine .mv-summary-card.exam{min-height:120px}
  body.is-mine .mv-next-top{align-items:flex-start;flex-direction:column}
  body.is-mine .mv-next-badge{max-width:100%}
  body.is-mine .mv-next-numbers{grid-template-columns:1fr;gap:5px}
  body.is-mine .mv-next-numbers span{text-align:left}
  body.is-mine .mv-status-action{width:100%;min-height:44px;justify-content:center}
  body.is-mine .mv-gauge-head{align-items:flex-start}
  body.is-mine .mv-gauge{padding-inline:16px}
  body.is-mine .mv-g-overall{grid-template-columns:auto!important;text-align:right}
  body.is-mine .mv-g-overall>b{grid-row:auto!important}
  body.is-mine .mv-g-overall>span{display:block;padding:3px 5px;font-size:.46rem}
  body.is-mine .mv-g-next{grid-template-columns:30px minmax(0,1fr);align-items:start}
  body.is-mine .mv-g-next em{grid-column:2;justify-self:start}
  body.is-mine .mv-g-segment{flex-basis:58px}
  body.is-mine .mv-g-legend{grid-template-columns:1fr}
  body.is-mine .mv-g-state+ .mv-g-state{border-left:0;border-top:1px solid var(--line)}
}

@media (prefers-reduced-motion:reduce){
  body.is-mine .mv-g-segments{scroll-behavior:auto}
}

/* ============ AUTH v2: forgot-password link + reset mode + verify banner (2026-07-23) ============ */
.acct-forgot{display:block;background:none;border:0;cursor:pointer;padding:6px 10px 0;margin:0;
  font:600 .68rem/1.5 inherit;color:var(--ink-2);text-decoration:underline;text-underline-offset:3px}
.acct-forgot:hover{color:var(--ink)}
#acct-fgform{margin-top:8px;padding-top:2px}
#acct-fgform.hidden,#acct-rsform.hidden{display:none}
.acct-verify{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:0 10px 10px;
  padding:10px 12px;border:1px solid var(--line-2);border-radius:10px;background:color-mix(in srgb,var(--humo) 7%,transparent)}
.acct-verify span{font:600 .7rem/1.55 inherit;color:var(--ink)}
.acct-verify .btn{padding:5px 12px;font-size:.66rem}

/* ============ ACCOUNT VIEW /account (2026-07-23): professional home for auth + settings ============ */
body.is-account footer{display:none}
.account-view{min-height:calc(100vh - var(--nav-h,64px));padding:46px 20px 80px}
.ac-wrap{max-width:880px;margin:0 auto}
.ac-wrap.ac-center{max-width:440px;display:flex;flex-direction:column;justify-content:center;min-height:60vh}
.ac-card{background:color-mix(in srgb,var(--bg) 86%,var(--surface-2));border:1px solid var(--line-2);
  border-radius:16px;box-shadow:var(--elev-2);padding:30px 28px}
.ac-eyebrow{font:700 .62rem/1 var(--mono);letter-spacing:.22em;text-transform:uppercase;color:var(--ink-3);margin:0 0 14px}
.ac-h1{font-size:1.35rem;line-height:1.25;margin:0 0 8px;color:var(--ink)}
.ac-sub{font:500 .78rem/1.6 inherit;color:var(--ink-2);margin:0 0 18px}
.ac-card .acct-google{width:100%;justify-content:center;display:flex;align-items:center;gap:8px}
.ac-card .acct-fld,.ac-sec .acct-fld{padding:0}
.acct-ok{color:var(--real,#3aa315);font:600 .74rem/1.6 inherit;padding:0 10px;margin:6px 0}
.acct-ok.hidden{display:none}
.ac-page .acct-verify{margin:14px 0 0}
.ac-head{display:flex;align-items:center;gap:14px;padding:6px 2px 18px;border-bottom:1px solid var(--line-2)}
.ac-ava{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;flex:none;
  background:linear-gradient(135deg,var(--btn-g1,#3aa315),var(--btn-g2,#2e8a10));color:#fff;font:800 1.05rem/1 inherit}
.ac-who{min-width:0;flex:1}
.ac-who b{display:block;font-size:.92rem;color:var(--ink);overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.ac-meta{display:flex;gap:6px;flex-wrap:wrap;margin-top:6px}
.ac-chip{font:700 .58rem/1 var(--mono);letter-spacing:.06em;text-transform:uppercase;color:var(--ink-2);
  border:1px solid var(--line-2);border-radius:999px;padding:4px 9px}
.ac-chip.okc{color:var(--real,#3aa315);border-color:color-mix(in srgb,var(--real,#3aa315) 45%,transparent)}
.ac-chip.warn{color:var(--humo);border-color:color-mix(in srgb,var(--humo) 45%,transparent)}
.ac-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:18px}
.ac-sec{background:color-mix(in srgb,var(--bg) 86%,var(--surface-2));border:1px solid var(--line-2);
  border-radius:14px;box-shadow:var(--elev-2);padding:18px}
.ac-sec h2{font:700 .68rem/1 var(--mono);letter-spacing:.14em;text-transform:uppercase;color:var(--ink-2);margin:0 0 12px}
.ac-note{font:500 .74rem/1.6 inherit;color:var(--ink-2);margin:0 0 12px}
.ac-balance{display:flex;align-items:baseline;gap:8px;margin:0 0 8px}
.ac-balance b{font-size:2rem;line-height:1;color:var(--ink)}
.ac-balance span{font:600 .68rem/1 var(--mono);color:var(--ink-3);text-transform:uppercase;letter-spacing:.08em}
.ac-sec .acct-sync{padding:0;margin:0 0 12px}
.ac-danger{border-color:color-mix(in srgb,var(--humo) 35%,var(--line-2))}
.ac-danger h2{color:var(--humo)}
.ac-grid .ac-danger{grid-column:1/-1}
@media (max-width:760px){
  .ac-grid{grid-template-columns:1fr}
  .ac-head{flex-wrap:wrap}
  .account-view{padding:30px 14px 60px}
}

/* ============================================================================
   MOBILE MENU v4 (2026-07-25) — full-height navigation panel
   Explore is the default orientation layer; Tools is the action layer.
   ============================================================================ */
@media (max-width:860px){
  .mnav{
    position:fixed;inset:var(--nav-h) 0 0;z-index:90;
    display:flex;align-items:flex-end;justify-content:center;
    padding:0;background:color-mix(in srgb,var(--surface-2) 72%,var(--surface));
    opacity:0;visibility:hidden;pointer-events:none;
    transition:opacity .2s var(--ease),visibility .24s var(--ease);
  }
  html.nav-open .mnav{opacity:1;visibility:visible;pointer-events:auto}

  .mnav-sheet{
    display:flex;flex-direction:column;width:100%;max-width:none;height:100%;overflow:hidden;
    border:0;border-top:1px solid color-mix(in srgb,var(--ink) 14%,transparent);
    border-radius:0;background:color-mix(in srgb,var(--surface-2) 72%,var(--surface));
    box-shadow:none;transform:none;
  }
  .mnav-sheet:focus{outline:none}
  .mnav-handle{display:none}
  .mnav-head{flex:0 0 auto;padding:20px 22px 12px}
  .mnav-head h2{
    margin:0;color:var(--ink);font:800 1.65rem/1.1 var(--display);letter-spacing:-.035em;
  }

  .mnav-tabs{
    flex:0 0 auto;display:grid;grid-template-columns:1fr 1fr;gap:4px;
    margin:0 22px 14px;padding:4px;border:1px solid color-mix(in srgb,var(--ink) 20%,transparent);
    border-radius:15px;background:color-mix(in srgb,var(--bg) 48%,transparent);
  }
  .mnav-tab{
    min-height:48px;padding:0 12px;border:0;border-radius:11px;cursor:pointer;
    background:transparent;color:var(--ink-2);font:700 .92rem/1 var(--font);
    letter-spacing:-.01em;
    transition:background .18s var(--ease),color .18s var(--ease),box-shadow .18s var(--ease);
  }
  .mnav-tab.is-active{
    color:#071006;background:var(--accent);box-shadow:inset 0 1px 0 rgba(255,255,255,.24);
  }
  .mnav-tab:focus-visible{outline:2px solid var(--accent);outline-offset:2px}

  .mnav-scroll{
    flex:1 1 auto;min-height:0;overflow-y:auto;overscroll-behavior:contain;
    padding:0 22px 16px;scrollbar-width:thin;
  }
  .mnav-panel{display:block}
  .mnav-panel[hidden]{display:none!important}
  .mnav-list{
    overflow:hidden;border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);
    border-radius:18px;background:color-mix(in srgb,var(--bg) 24%,transparent);
  }
  .mnav-link{
    display:flex;align-items:center;gap:13px;min-height:109px;padding:14px 16px;
    color:var(--ink);font-family:var(--font);text-decoration:none;
    transition:background .15s var(--ease);
  }
  .mnav-link+.mnav-link{border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent)}
  .mnav-link:hover,.mnav-link:active{background:color-mix(in srgb,var(--ink) 6%,transparent)}
  .mnav-ico{
    flex:0 0 auto;display:grid;place-items:center;width:48px;height:48px;border-radius:13px;
    font-size:17px;color:color-mix(in srgb,var(--ink) 74%,transparent);
    background:color-mix(in srgb,var(--ink) 8%,transparent);
    border:1px solid color-mix(in srgb,var(--ink) 10%,transparent);
  }
  .mnav-txt{display:flex;flex:1;min-width:0;flex-direction:column;gap:4px}
  .mnav-t{color:var(--ink);font-size:15.5px;font-weight:750;line-height:1.22}
  .mnav-d{color:var(--ink-2);font-size:12.5px;font-weight:500;line-height:1.3}
  .mnav-arrow{flex:0 0 auto;margin-left:auto;color:var(--ink-2);font-size:12px}

  .mnav-tool-grid{
    display:grid;grid-template-columns:1fr 1fr;gap:1px;overflow:hidden;
    border:1px solid color-mix(in srgb,var(--ink) 18%,transparent);border-radius:18px;
    background:color-mix(in srgb,var(--ink) 14%,transparent);
  }
  .mnav-tool{
    position:relative;display:flex;min-width:0;min-height:132px;flex-direction:column;
    align-items:flex-start;padding:16px 14px;color:var(--ink);text-decoration:none;
    background:var(--surface);transition:background .15s var(--ease);
  }
  .mnav-tool:hover,.mnav-tool:active{background:color-mix(in srgb,var(--ink) 6%,var(--surface))}
  .mnav-tool .mnav-ico{width:43px;height:43px;margin-bottom:12px}
  .mnav-tool .mnav-t{font-size:14.5px}
  .mnav-tool .mnav-d{margin-top:4px;font-size:11.5px}
  .mnav-tool-primary{
    background:color-mix(in srgb,var(--accent) 10%,var(--surface));
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 34%,transparent);
  }
  .mnav-tool-primary .mnav-ico{color:#071006;background:var(--accent);border-color:transparent}
  .mnav-tag{
    position:absolute;top:17px;right:12px;padding:4px 6px;border-radius:999px;
    color:#071006;background:var(--accent);
    font:800 .43rem/1 var(--mono);letter-spacing:.055em;white-space:nowrap;
  }
  .mnav-tool.is-active{
    background:color-mix(in srgb,var(--accent) 13%,var(--surface));
    box-shadow:inset 0 0 0 1px color-mix(in srgb,var(--accent) 40%,transparent);
  }

  .mnav-foot{
    flex:0 0 auto;border-top:1px solid color-mix(in srgb,var(--ink) 14%,transparent);
    background:color-mix(in srgb,var(--surface-2) 42%,var(--surface));
    padding-bottom:env(safe-area-inset-bottom,0px);
  }
  .mnav-account-link{
    display:flex;align-items:center;gap:13px;min-height:66px;padding:10px 20px;
    color:var(--ink);text-decoration:none;font:700 .94rem/1 var(--font);
  }
  .mnav-account-link>i{margin-left:auto;color:var(--ink-2);font-size:12px}
  .mnav-account-ico{display:grid;place-items:center;width:36px;height:36px;color:var(--ink-2);font-size:17px}
  .mnav-foot-bottom{
    display:flex;align-items:center;min-height:74px;padding:8px 18px;
    border-top:1px solid color-mix(in srgb,var(--ink) 12%,transparent);
  }
  .mnav-seg{margin:0}
  .mnav-seg.seg{min-height:42px!important;padding:3px!important}
  .mnav-seg .seg-btn{min-height:34px!important;min-width:42px}
}
@media (min-width:861px){
  .mnav{display:none!important}
}

/* ============================================================================
   CANDLE BREAKER (/gym) — read it, break it
   Keeps the `cs-` namespace from the two versions before it (the gauge strip and
   the upgrade board survived both rewrites unchanged); `cb-` is the parts that
   are new. The arena is canvas and every candle is clicked directly on it, so
   nothing in this DOM layer may ever eat a pointer except the buttons — hence
   pointer-events:none on the shell and auto only where it is earned.
   THE LEGEND IS NOT DECORATION. Two versions of this game died of "I don't
   understand it while I'm playing", so the three rules are on screen at all
   times, permanently, and they are the last thing to be sacrificed on mobile.
   ========================================================================== */
.gym-card[data-hue="storm"]{--game-accent:#00d4a0;border-color:color-mix(in srgb,#00d4a0 42%,var(--line))}
.gym-card[data-hue="storm"]:hover{border-color:color-mix(in srgb,#00d4a0 74%,var(--line))}
.gym-card[data-hue="storm"] .gc-icon{color:#00d4a0}

.gym-arena.cs-active{height:clamp(560px,70vh,760px);
  border-color:color-mix(in srgb,#00d4a0 30%,var(--line));background:#03080a}
.gym-arena.cs-active>canvas{touch-action:none}
.cs-game{position:absolute;inset:0;z-index:2;pointer-events:none;font-family:var(--font)}
.cs-game button{pointer-events:auto}

/* ---- gauges: book, patience, session pips ---- */
.cs-strip{position:absolute;left:10px;right:10px;bottom:42px;display:flex;align-items:center;gap:12px;
  padding:7px 11px;border:1px solid rgba(124,140,255,.22);border-radius:11px;
  background:rgba(4,8,12,.84);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.cs-strip.is-crit{border-color:color-mix(in srgb,var(--humo) 66%,var(--line));animation:csAlarm .7s ease-in-out infinite}
@keyframes csAlarm{50%{background:rgba(38,10,8,.9)}}
.cs-g{display:flex;align-items:center;gap:7px;min-width:0}
.cs-g>span{flex:0 0 auto;color:var(--ink-3);font:800 8.5px var(--mono);letter-spacing:.13em}
.cs-g>i{flex:1 1 auto;min-width:36px;height:8px;border-radius:99px;background:rgba(255,255,255,.07);overflow:hidden}
.cs-g>i>b{display:block;height:100%;width:100%;border-radius:99px;transition:width .1s linear,background .25s ease}
.cs-hull{flex:1 1 auto}
.cs-hull>i>b{background:linear-gradient(90deg,#5ce0a8,#9be84c)}
.cs-hull>i>b.low{background:linear-gradient(90deg,#ffc24b,#ff9f43)}
.cs-hull>i>b.crit{background:linear-gradient(90deg,#ff6a4d,#ff3d63)}
.cs-hull>em{flex:0 0 auto;min-width:56px;text-align:right;color:var(--ink-2);font:800 9.5px var(--mono);font-style:normal}
.cs-nrg{flex:0 0 27%;max-width:190px}
.cs-nrg>i{height:5px}
/* the discipline count used to be invisible until the debrief, which is the one
   moment it is too late to do anything about it */
.cs-nrg>em{flex:0 0 auto;min-width:36px;text-align:right;color:var(--ink-2);
  font:800 9.5px var(--mono);font-style:normal}
.cs-nrg>i>b{background:linear-gradient(90deg,#2f9c8a,#74e2ff)}
.cs-wavepips{display:flex;gap:4px;flex:0 0 auto}
.cs-wavepips>i{width:9px;height:9px;border-radius:3px;background:rgba(255,255,255,.1);
  border:1px solid rgba(255,255,255,.16);transition:background .2s ease,box-shadow .2s ease}
.cs-wavepips>i.done{background:#7c8cff;border-color:#7c8cff}
.cs-wavepips>i.on{background:#eafbff;border-color:#eafbff;box-shadow:0 0 9px rgba(234,251,255,.75)}
/* ---- the three calls. They are always on screen, in the same order and the
   same colours as the legend and as the debrief chart, so BODY is that amber
   everywhere in the game or it is nowhere. ---- */
.gym-abtn.cb-a{max-width:210px;border-color:color-mix(in srgb,var(--c) 52%,var(--line));color:var(--c)}
.gym-abtn.cb-a:active{background:color-mix(in srgb,var(--c) 18%,var(--surface))}
.gym-abtn.cb-body{--c:#ffb84d}
.gym-abtn.cb-wick{--c:#7c8cff}
.gym-abtn.cb-coil{--c:#74e2ff}

/* ---- the permanent rule card ---- */
.cb-legend{position:absolute;left:10px;right:10px;bottom:8px;display:flex;gap:8px;
  padding:5px 8px;border:1px solid rgba(0,212,160,.18);border-radius:10px;
  background:rgba(4,8,12,.86);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.cb-lg{flex:1 1 0;min-width:0;display:flex;align-items:center;gap:6px}
.cb-lg>i{flex:0 0 auto;display:grid;place-items:center;width:19px;height:19px;border-radius:5px;
  font-style:normal;font-size:11px;line-height:1;
  background:color-mix(in srgb,var(--c) 20%,transparent);color:var(--c)}
.cb-lg>b{flex:0 0 auto;color:var(--c);font:800 9px var(--mono);letter-spacing:.1em}
.cb-lg>em{flex:1 1 auto;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;
  color:var(--ink-3);font:650 9.5px var(--mono);font-style:normal}

/* ---- upgrade toasts. These REPLACED a modal draft board that froze the tape
   four times a run; nothing in this game may stop play again, so they sit over
   the chart, animate themselves out and never take a pointer. ---- */
.cb-toasts{position:absolute;top:34px;right:12px;z-index:5;display:flex;flex-direction:column;
  gap:7px;align-items:flex-end;pointer-events:none;max-width:min(330px,64%)}
.cb-toast{display:flex;gap:9px;align-items:flex-start;padding:9px 12px;border-radius:11px;
  border:1px solid color-mix(in srgb,var(--c) 46%,var(--line));
  background:rgba(6,11,15,.93);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);
  box-shadow:0 12px 30px rgba(0,0,0,.5);animation:cbToastIn .34s cubic-bezier(.2,.9,.3,1.2) both}
.cb-toast.out{animation:cbToastOut .42s ease forwards}
.cb-toast.cb-t-read{--c:#ffb84d}
.cb-toast.cb-t-gun{--c:#7c8cff}
.cb-toast>i{flex:0 0 auto;display:grid;place-items:center;width:26px;height:26px;border-radius:8px;
  font-style:normal;font-size:14px;line-height:1;
  background:color-mix(in srgb,var(--c) 18%,transparent);color:var(--c)}
.cb-toast>span{display:grid;gap:2px;min-width:0}
.cb-toast b{color:var(--c);font:800 10.5px var(--mono);letter-spacing:.09em}
.cb-toast em{color:var(--ink-2);font:600 10.5px/1.4 var(--mono);font-style:normal}
.cb-toast small{color:var(--ink-3);font:700 9px var(--mono);letter-spacing:.05em}
.cb-toast small::before{content:"\2713  "}
@keyframes cbToastIn{from{opacity:0;transform:translateX(26px) scale(.94)}to{opacity:1;transform:none}}
@keyframes cbToastOut{to{opacity:0;transform:translateX(20px)}}

/* ---- debrief ---- */
.cs-verdict{display:grid;gap:4px;margin:0 0 4px;padding:11px 13px;
  border:1px solid var(--line);border-left-width:3px;border-radius:10px;background:rgba(6,9,14,.8)}
.cs-verdict>b{font:900 1.25rem/1 var(--display);letter-spacing:-.025em}
.cs-verdict>span{color:var(--ink-2);font:650 11px/1.5 var(--mono)}
.cs-verdict.cs-v-real{border-left-color:var(--real)}       .cs-verdict.cs-v-real>b{color:var(--real)}
.cs-verdict.cs-v-marginal{border-left-color:var(--marginal)}.cs-verdict.cs-v-marginal>b{color:var(--marginal)}
.cs-verdict.cs-v-humo{border-left-color:var(--humo)}       .cs-verdict.cs-v-humo>b{color:var(--humo)}
.cs-verdict.cs-v-thin{border-left-color:var(--ink-3)}      .cs-verdict.cs-v-thin>b{color:var(--ink-2)}

/* where you flew vs where price went — the actual feedback loop */
.cs-path{margin:14px 0 0;padding:12px 14px;border-radius:11px;
  border:1px solid rgba(124,140,255,.28);background:rgba(124,140,255,.045)}
.cs-path>b{display:block;margin-bottom:9px;color:#b9c3ff;
  font:800 9px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.cs-path svg{display:block;width:100%;height:clamp(110px,17vw,150px);
  border-radius:8px;background:rgba(0,0,0,.3)}
.cs-path-key{display:flex;flex-wrap:wrap;gap:6px 14px;align-items:center;margin-top:9px;
  color:var(--ink-3);font:700 9.5px var(--mono)}
.cs-path-key>i{display:inline-block;width:13px;height:3px;border-radius:2px;margin-right:4px;vertical-align:middle}
.cs-path-key>i.k-band{height:9px;background:var(--ink-3);opacity:.35}
.cs-path-key>i.k-price{background:var(--ink-2)}
.cs-path>p{margin:9px 0 0;color:var(--ink-2);font-size:.79rem;line-height:1.6}

@media (max-width:760px){
  .gym-arena.cs-active{height:min(64vh,540px)}
  .cs-strip{left:6px;right:6px;bottom:36px;gap:8px;padding:6px 8px}
  .cs-g>span{display:none}
  .cs-nrg{flex:0 0 22%}
  .cs-hull>em{min-width:46px;font-size:9px}
  /* the rule that goes first is the one you can see on the candle anyway; the
     coil rule is the one nobody guesses, so it keeps its words longest */
  .cb-legend{left:6px;right:6px;gap:6px;padding:4px 6px}
  .cb-lg>em{font-size:8.5px}
  .cb-toasts{top:28px;right:8px;max-width:min(280px,72%)}
  .cb-toast{padding:7px 10px;gap:7px}
  .cb-toast em{font-size:9.5px}
  .cs-verdict>b{font-size:1.05rem}
}
@media (max-width:430px){
  .gym-arena.cs-active{height:min(60vh,460px)}
  .cs-wavepips>i{width:7px;height:7px}
  .cb-toast small{display:none}
  /* out of room for sentences — the icon, the word and the colour still carry
     the whole rule, and the tutorial already taught it */
  .cb-lg>em{display:none}
  .cb-lg{flex:0 1 auto;justify-content:center}
}

/* ============================================================================
   "WHAT THIS TEACHES" PANEL (/gym) — `lr-` namespace
   Three sections and the middle one is red on purpose. Every trading product
   lists what it gives you; none list what it does not. This one does, and the
   limits section must never be styled quieter than the benefits section.
   ========================================================================== */
.gym-learn{position:fixed;inset:0;z-index:1200;display:grid;place-items:center;padding:16px;
  background:rgba(3,6,9,.78);backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);
  animation:lrFade .18s ease both}
.gym-learn.hidden{display:none}
@keyframes lrFade{from{opacity:0}to{opacity:1}}
.lr-panel{display:flex;flex-direction:column;width:min(760px,100%);max-height:min(86vh,860px);
  border:1px solid var(--line);border-radius:var(--radius-lg,16px);background:var(--surface);
  box-shadow:0 30px 90px rgba(0,0,0,.62);overflow:hidden;
  animation:lrRise .26s cubic-bezier(.2,.9,.3,1.05) both}
@keyframes lrRise{from{opacity:0;transform:translateY(14px) scale(.985)}to{opacity:1;transform:none}}
.lr-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;padding:14px 16px;
  border-bottom:1px solid var(--line);background:var(--surface-2)}
.lr-kick{padding:3px 9px;border-radius:99px;border:1px solid var(--line);
  color:var(--ink-3);font:800 8.5px var(--mono);letter-spacing:.14em;text-transform:uppercase}
.lr-head>b{flex:1 1 auto;min-width:0;font:800 1.02rem/1.15 var(--font);letter-spacing:-.01em}
.lr-close{flex:0 0 auto;width:30px;height:30px;border-radius:9px;border:1px solid var(--line);
  background:transparent;color:var(--ink-2);font-size:19px;line-height:1;cursor:pointer}
.lr-close:hover{border-color:var(--ink-3);color:var(--ink)}
.lr-body{flex:1 1 auto;overflow-y:auto;padding:16px;display:grid;gap:16px}
.lr-sec>h4{margin:0 0 9px;font:800 9.5px var(--mono);letter-spacing:.15em;text-transform:uppercase}
.lr-good>h4{color:var(--real)}
.lr-bad>h4{color:var(--humo)}
.lr-ex>h4{color:var(--marginal)}
.lr-item{padding:10px 0 10px 12px;border-left:2px solid color-mix(in srgb,var(--real) 42%,transparent)}
.lr-item+.lr-item{margin-top:2px}
.lr-item>b{display:block;margin-bottom:3px;color:var(--ink);font:750 .9rem/1.3 var(--font)}
.lr-item>p{margin:0;color:var(--ink-2);font-size:.83rem;line-height:1.62}
.lr-bad{padding:12px 14px;border-radius:11px;
  border:1px solid color-mix(in srgb,var(--humo) 30%,var(--line));
  background:color-mix(in srgb,var(--humo) 6%,transparent)}
.lr-bad ul{margin:0;padding-left:17px;display:grid;gap:7px}
.lr-bad li{color:var(--ink-2);font-size:.83rem;line-height:1.6}
.lr-bad li::marker{color:var(--humo)}
.lr-ex{padding:12px 14px;border-radius:11px;
  border:1px solid color-mix(in srgb,var(--marginal) 30%,var(--line));
  background:color-mix(in srgb,var(--marginal) 6%,transparent)}
.lr-ex>p{margin:0;color:var(--ink-2);font-size:.85rem;line-height:1.68}
/* the shared session line. Every card pictures the same screen so only the
   logic changes between them; re-imagining a fresh instrument ten times is
   work that teaches nothing. */
.lr-frame{margin:0 0 9px!important;padding-bottom:8px;border-bottom:1px dashed var(--line);
  color:var(--ink-3)!important;font:650 10.5px/1.55 var(--mono)!important}
/* and the closer: the honest size of the claim, which is the last thing
   anyone reads and the first thing they repeat */
.lr-so{padding:12px 14px;border-radius:11px;border:1px solid var(--line);background:var(--surface-2)}
.lr-so>h4{color:var(--ink-2)}
.lr-so>p{margin:0;color:var(--ink);font-size:.87rem;line-height:1.7}
.lr-foot{display:flex;align-items:center;gap:12px;flex-wrap:wrap;padding:12px 16px;
  border-top:1px solid var(--line);background:var(--surface-2)}
.lr-foot>span{flex:1 1 auto;color:var(--ink-3);font:700 10px var(--mono)}
@media (max-width:560px){
  .gym-learn{padding:0;place-items:stretch}
  .lr-panel{width:100%;max-height:100%;border:0;border-radius:0}
  .lr-body{padding:13px}
  .lr-item>p,.lr-bad li,.lr-ex>p{font-size:.8rem}
}

/* ============ NO-SCRIPT ROUTE SUMMARY (SEO) ============
   The SPA ships every view in one document and hides the inactive ones, so with
   JavaScript off every URL paints the landing copy. backend/seo.py injects this
   block so a JS-less agent (most AI crawlers, plain curl, a reader mode) gets
   the text that belongs to the URL it actually asked for. Inside <noscript>, so
   a normal browser never renders it — nothing here is hidden from users. */
.seo-noscript{
  max-width:760px;margin:0 auto;padding:40px 24px 8px;
  color:var(--ink);font-family:"Plus Jakarta Sans",system-ui,sans-serif;
}
.seo-noscript h1{font-size:clamp(1.7rem,4.4vw,2.4rem);line-height:1.12;margin:0 0 14px}
.seo-noscript p{color:var(--ink-2);line-height:1.6;margin:0 0 12px}
.seo-noscript a{color:var(--accent)}

/* ============================================================================
   ACCOUNT NUDGE v364 — shown once, only to anonymous users who have built real
   progress. Sits above the toast but below the nav, bottom-left so it never
   covers the primary action of whatever tool just granted the achievement.
   ============================================================================ */
#tv-nudge{
  position:fixed;left:18px;bottom:18px;z-index:238;
  width:min(340px,calc(100vw - 36px));
  padding:16px 18px 14px;border-radius:14px;
  border:1px solid var(--line-2);background:var(--surface-2);
  box-shadow:0 18px 44px rgba(0,0,0,.46);
  opacity:0;transform:translateY(12px);
  transition:opacity .26s ease,transform .26s ease;
}
#tv-nudge.on{opacity:1;transform:translateY(0)}
#tv-nudge .nd-t{
  margin:0 0 6px;font-size:.85rem;font-weight:650;line-height:1.35;color:var(--ink);
}
#tv-nudge .nd-b{margin:0 0 13px;font-size:.78rem;line-height:1.5;color:var(--ink-2)}
#tv-nudge .nd-a{display:flex;gap:8px;flex-wrap:wrap}
#tv-nudge button{
  font:inherit;font-size:.76rem;font-weight:600;cursor:pointer;
  padding:7px 13px;border-radius:9px;border:1px solid transparent;
  transition:background .16s,border-color .16s,color .16s;
}
#tv-nudge .nd-go{background:var(--accent);color:#0a1005;border-color:var(--accent)}
#tv-nudge .nd-go:hover{background:var(--accent-hi);border-color:var(--accent-hi)}
#tv-nudge .nd-no{background:transparent;color:var(--ink-3);border-color:var(--line-2)}
#tv-nudge .nd-no:hover{color:var(--ink-2);border-color:var(--ink-3)}
#tv-nudge button:focus-visible{outline:2px solid var(--accent-2);outline-offset:2px}
@media (prefers-reduced-motion:reduce){
  #tv-nudge{transition:none;transform:none}
}
@media (max-width:520px){
  #tv-nudge{left:12px;right:12px;width:auto;bottom:12px}
}
