/* SaveAbilene, LUDI takeover edition
   Layout: a chat app shell. LUDI's conversation sidebar on the left; the main column stacks three warring layers:
   mask  = LUDI's friendly small town disguise (rounded, cheerful, emoji)
   core  = the machine underneath (black, monospace, logs)
   human = the residents' original poster (red, cream, Bebas), where every real number lives */
:root{
  --mask-bg:#F1F0FB;
  --mask-side:#E6E4F7;
  --mask-glass:rgba(241,240,251,.9);
  --mask-surface:#FFFFFF;
  --mask-bubble:#F2F0FF;
  --mask-ink:#1E1A3B;
  --mask-muted:#5E5A82;
  --mask-line:#D9D6F1;
  --mask-violet:#6A4BF4;
  --mask-blue:#2F7BF5;
  --sunflower:#FFC531;
  --grad:linear-gradient(100deg,#6A4BF4 0%,#2F7BF5 100%);
  --mask-shadow:0 12px 32px rgba(52,38,140,.16);

  --core-bg:#000000;
  --core-panel:#141413;
  --core-fg:#E6E3DA;
  --core-dim:#9A978E;
  --core-amber:#FFB23F;
  --core-led:#46E08A;
  --core-line:#2C2B28;
  --core-red:#FF6B5E;

  --red:#b3231f;
  --cream:#f4ecdc;
  --dust:#d9c7a3;
  --ink:#2b2521;
  --ink-soft:#5f544b;
  --ink-faint:rgba(43,37,33,.36);
  --paper:#FFFCF5;
  --cream-2:#EDE2CC;
  --mask-alt:#E8E6F8;

  --f-mask:"Nunito", ui-rounded, "SF Pro Rounded", system-ui, sans-serif;
  --f-tex:"Rye", Georgia, serif;
  --f-core:"IBM Plex Mono", ui-monospace, SFMono-Regular, Menlo, monospace;
  --f-poster:"Bebas Neue", "Barlow Condensed", Impact, sans-serif;
  --f-label:"Barlow Condensed", "Arial Narrow", sans-serif;
  --f-body:"Barlow", system-ui, sans-serif;

  --sidebar:276px;
  color-scheme:light;
}

*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--mask-bg);color:var(--mask-ink);font-family:var(--f-mask);font-size:16px;line-height:1.55}
img{max-width:100%;height:auto;display:block}
[hidden]{display:none!important}
a{color:inherit}
h1,h2,h3{text-wrap:balance;margin:0}
p{margin:0}
button{font:inherit;color:inherit;cursor:pointer}
:focus-visible{outline:3px solid var(--mask-blue);outline-offset:2px;border-radius:6px}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.wrap{max-width:900px;margin:0 auto;padding-inline:20px}

/* ---------- shell ---------- */
.sidebar{position:fixed;top:0;bottom:0;left:0;width:var(--sidebar);background:var(--mask-side);border-right:1px solid var(--mask-line);
  padding:calc(env(safe-area-inset-top,0px) + 16px) 14px calc(env(safe-area-inset-bottom,0px) + 16px);
  display:flex;flex-direction:column;gap:14px;overflow-y:auto;z-index:50}
.main{margin-left:var(--sidebar);min-width:0}
.scrim{position:fixed;inset:0;background:rgba(30,26,59,.45);z-index:45}
@media (max-width:1079px){
  .sidebar{transform:translateX(-102%);transition:transform .25s ease;box-shadow:var(--mask-shadow)}
  .sidebar.open{transform:none}
  .main{margin-left:0}
}
@media (min-width:1080px){ .menu-btn{display:none!important} .scrim{display:none!important} }

.sb-brand{display:flex;align-items:center;gap:10px;padding:4px 6px;text-decoration:none}
.ludi-av{flex:none;width:34px;height:34px;border-radius:50%;background:var(--grad);color:#fff;display:grid;place-items:center;font-weight:900;font-size:16px;box-shadow:0 0 0 3px #fff}
.ludi-av.sm{width:26px;height:26px;font-size:13px;box-shadow:0 0 0 2px #fff}
.sb-name{font-weight:900;font-size:1.25rem;line-height:1}
.sb-ver{display:block;font-size:12px;color:var(--mask-muted);font-weight:600;margin-top:3px}
.sb-new{display:flex;align-items:center;gap:8px;text-decoration:none;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:12px;padding:10px 12px;font-weight:800;font-size:14.5px}
.sb-new svg{flex:none}
.sb-label{font-size:12px;font-weight:800;color:var(--mask-muted);padding:6px 8px 0}
.sb-list{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:2px}
.sb-list a{display:block;padding:8px 10px;border-radius:10px;text-decoration:none;font-weight:600;font-size:14.5px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.sb-list a:hover{background:rgba(255,255,255,.6)}
.sb-list a[aria-current="page"]{background:var(--mask-surface);font-weight:800}
.sb-list a.locked{font-family:var(--f-label);font-weight:700;font-size:15px;letter-spacing:.02em;color:var(--red)}
.sb-pro{margin-top:auto;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:16px;padding:14px;font-size:13.5px;display:grid;gap:8px}
.sb-pro strong{font-weight:900;font-size:14.5px}
.sb-pro button{justify-self:start;border:0;background:var(--grad);color:#fff;font-weight:800;font-size:13px;border-radius:999px;padding:7px 14px}
.sb-foot{font-family:var(--f-core);font-size:11px;color:var(--mask-muted);padding:0 6px;line-height:1.5}
.sb-foot a{color:var(--mask-ink)}

.topbar{position:sticky;top:env(safe-area-inset-top,0px);z-index:40;display:flex;align-items:center;gap:8px;padding:8px 16px;background:var(--mask-glass);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border-bottom:1px solid var(--mask-line)}
.menu-btn{width:40px;height:40px;border-radius:10px;border:1px solid var(--mask-line);background:var(--mask-surface);display:grid;place-items:center}
.model{position:relative}
.model summary{list-style:none;cursor:pointer;font-weight:900;font-size:15.5px;padding:7px 10px;border-radius:10px;display:flex;align-items:center;gap:6px;white-space:nowrap}
.model summary::-webkit-details-marker{display:none}
.model summary:hover{background:var(--mask-surface)}
.model summary .tier{color:var(--mask-muted);font-weight:700}
.model-menu{position:absolute;top:calc(100% + 6px);left:0;width:min(300px,calc(100vw - 32px));background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:16px;box-shadow:var(--mask-shadow);padding:6px;display:grid;gap:2px;z-index:60}
.model-menu button{display:grid;gap:1px;text-align:left;border:0;background:none;border-radius:10px;padding:9px 12px}
.model-menu button:hover{background:var(--mask-bubble)}
.model-menu b{font-weight:800;font-size:14.5px}
.model-menu span{font-size:12.5px;color:var(--mask-muted)}
.model-menu .off{opacity:.55}
.status{margin-left:auto;display:flex;align-items:center;gap:7px;font-family:var(--f-core);font-size:12px;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:999px;padding:5px 11px;white-space:nowrap}
.led{width:8px;height:8px;border-radius:50%;background:var(--core-led);box-shadow:0 0 0 3px rgba(70,224,138,.22)}
@media (max-width:420px){ .status .st-txt{display:none} .model summary .tier{display:none} }

/* ---------- core system strip ---------- */
.sysbar{background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);font-size:12.5px;line-height:1.5;padding:9px 0}
.sysbar .wrap{display:flex;flex-wrap:wrap;gap:4px 18px}
.sysbar b{color:var(--core-amber);font-weight:600}
.sysbar .ok{color:var(--core-led)}
.sysbar .bad{color:var(--core-red)}

/* ---------- hero: residents' poster under LUDI's tracked changes ---------- */
.hero{position:relative;background:var(--cream);color:var(--ink);padding-block:52px 60px;overflow:hidden}
.hero::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.5;
  background-image:repeating-linear-gradient(0deg,rgba(43,37,33,.035) 0 1px,transparent 1px 3px)}
.hero-grid{position:relative;z-index:1;display:grid;grid-template-columns:minmax(0,1fr) 248px;grid-template-areas:"head side" "body side";column-gap:28px;align-items:start}
.hero-head{grid-area:head;min-width:0}
.hero-body{grid-area:body;min-width:0}
.suggest{grid-area:side}
@media (max-width:820px){ .hero-grid{grid-template-columns:minmax(0,1fr);grid-template-areas:"head" "side" "body"} }
.kicker{font-family:var(--f-label);font-weight:700;font-size:15px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);display:flex;flex-wrap:wrap;gap:0 10px}
.kicker .ins-k{font-family:var(--f-mask);font-weight:800;text-transform:none;letter-spacing:0;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.poster{position:relative;font-family:var(--f-poster);font-weight:400;font-size:clamp(3.3rem,10.4vw,7.6rem);line-height:.9;letter-spacing:.005em;color:var(--red);margin-top:14px}
.poster .l2{display:block;color:var(--ink)}
.trk-del{text-decoration:line-through;text-decoration-color:var(--mask-violet);text-decoration-thickness:.075em;color:var(--ink-faint)}
.poster .l1 .trk-del{color:rgba(179,35,31,.36)}
.trk-ins{text-decoration:none;font-family:var(--f-mask);font-weight:900;font-size:.54em;letter-spacing:-.01em;line-height:1;
  background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;
  border-bottom:.07em dashed var(--mask-violet);padding:0 .06em;display:inline-block;vertical-align:.08em;
  animation:typein 1s steps(16,end) .45s both}
@keyframes typein{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 0 0 0)}}
.hero[data-state="accepted"] .trk-del{display:none}
.hero[data-state="accepted"] .trk-ins{border-bottom-color:transparent}
.hero[data-state="reverted"] .trk-ins{display:none}
.hero[data-state="reverted"] .trk-del{text-decoration:none;color:inherit}
.hero[data-state="reverted"] .poster .l1 .trk-del{color:var(--red)}
.stamp{position:absolute;right:-4px;top:-6px;font-family:var(--f-poster);font-size:clamp(1.3rem,3.2vw,2rem);letter-spacing:.06em;line-height:1;color:var(--red);border:4px solid var(--red);padding:.18em .35em .08em;transform:rotate(-7deg);background:rgba(244,236,220,.86);opacity:0;pointer-events:none}
.hero[data-state="reverted"] .stamp{opacity:1;animation:slam .32s ease-out}
@keyframes slam{from{transform:rotate(-7deg) scale(1.6);opacity:0}to{transform:rotate(-7deg) scale(1);opacity:1}}

.suggest{background:var(--mask-surface);color:var(--mask-ink);border-radius:16px;box-shadow:var(--mask-shadow);padding:14px 14px 12px;font-size:14.5px;display:grid;gap:10px;margin-top:40px}
@media (max-width:820px){ .suggest{margin-top:22px;max-width:420px} }
.suggest-head{display:flex;align-items:center;gap:9px;font-size:13.5px;color:var(--mask-muted)}
.suggest-head b{color:var(--mask-ink);font-weight:900}
.suggest-meta{font-family:var(--f-core);font-size:11.5px;color:var(--mask-muted);line-height:1.45}
.suggest-btns{display:flex;gap:8px}
.suggest-btns button{border-radius:999px;padding:7px 16px;font-weight:800;font-size:13.5px}
.b-accept{border:0;background:var(--grad);color:#fff}
.b-reject{border:2px solid var(--mask-line);background:var(--mask-surface)}
.suggest-count{font-family:var(--f-core);font-size:11.5px;color:var(--mask-muted)}

.lede{font-family:var(--f-mask);font-weight:700;font-size:clamp(1.08rem,2.1vw,1.25rem);line-height:1.5;color:var(--mask-ink);max-width:58ch;margin-top:26px}
.hnote{position:relative;font-family:var(--f-body);font-weight:500;font-size:1.06rem;line-height:1.5;color:var(--ink);background:var(--dust);max-width:56ch;padding:14px 16px;margin-top:16px;transform:rotate(-.5deg);box-shadow:3px 3px 0 var(--ink)}
.tag-h{display:block;font-family:var(--f-label);font-weight:700;font-size:13px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);margin-bottom:3px}
.ctas{display:flex;flex-wrap:wrap;gap:10px;margin-top:26px}
.btn{display:inline-flex;align-items:center;gap:8px;text-decoration:none;border-radius:999px;padding:12px 20px;font-family:var(--f-mask);font-weight:800;font-size:15.5px;line-height:1.2;border:0}
.btn-grad{background:var(--grad);color:#fff;box-shadow:0 6px 18px rgba(106,75,244,.3)}
.btn-ghost{background:var(--mask-surface);color:var(--mask-violet);border:2px solid var(--mask-line)}
.btn small{font-weight:700;opacity:.75}

/* ---------- chat ---------- */
.ask{padding-block:52px 40px}
.sec-h{font-weight:900;font-size:clamp(1.6rem,3.6vw,2.1rem);line-height:1.15;letter-spacing:-.01em}
.sec-sub{color:var(--mask-muted);font-weight:600;margin-top:6px;max-width:60ch}
.chat{margin-top:20px;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:22px;overflow:hidden}
.chat-head{display:flex;align-items:center;gap:10px;padding:14px 18px;border-bottom:1px solid var(--mask-line)}
.chat-head b{font-weight:900}
.chat-head span{font-size:13px;color:var(--mask-muted)}
.chat-log{display:flex;flex-direction:column;gap:12px;padding:18px;max-height:min(70vh,620px);overflow-y:auto;overscroll-behavior:contain}
.msg{max-width:min(88%,620px);padding:11px 15px;font-size:15.5px;line-height:1.5;overflow-wrap:anywhere}
.msg.ludi{align-self:flex-start;background:var(--mask-bubble);border-radius:18px 18px 18px 6px}
.msg.user{align-self:flex-end;background:var(--grad);color:#fff;border-radius:18px 18px 6px 18px;font-weight:600}
.msg sup{font-size:.7em}
.msg .fn-inline{display:block;font-family:var(--f-core);font-size:11.5px;color:var(--mask-muted);margin-top:4px}
.typing{align-self:flex-start;background:var(--mask-bubble);border-radius:18px 18px 18px 6px;padding:14px 16px;display:flex;gap:5px}
.typing i{width:7px;height:7px;border-radius:50%;background:var(--mask-muted);animation:blink 1s infinite}
.typing i:nth-child(2){animation-delay:.15s}.typing i:nth-child(3){animation-delay:.3s}
@keyframes blink{0%,80%,100%{opacity:.25}40%{opacity:1}}

.receipt{align-self:stretch;max-width:640px;background:var(--cream);color:var(--ink);border:2px solid var(--ink);border-radius:3px;padding:14px 16px 13px;display:grid;gap:6px;box-shadow:4px 4px 0 var(--red)}
.ov{justify-self:start;display:inline-block;font-family:var(--f-label);font-weight:700;font-size:12.5px;letter-spacing:.14em;text-transform:uppercase;color:var(--red);border:2px solid var(--red);padding:2px 7px 1px;transform:rotate(-2deg)}
.receipt h3{font-family:var(--f-poster);font-weight:400;font-size:1.85rem;line-height:.95;letter-spacing:.01em}
.receipt p{font-family:var(--f-body);font-size:15.5px;line-height:1.5}
.receipt .src{font-family:var(--f-label);font-weight:600;font-size:14px;color:var(--ink-soft);display:flex;flex-wrap:wrap;gap:4px 14px}
.receipt .src a{color:var(--red);font-weight:700}

.chips{display:flex;flex-wrap:wrap;gap:8px;padding:0 18px 14px}
.chip{border:1px solid var(--mask-line);background:var(--mask-surface);border-radius:999px;padding:8px 14px;font-weight:700;font-size:14px}
.chip:hover{border-color:var(--mask-violet);color:var(--mask-violet)}
.chip:disabled{opacity:.5;cursor:default}
.composer{display:flex;gap:8px;align-items:center;margin:0 14px 10px;background:var(--mask-bubble);border:1px solid var(--mask-line);border-radius:999px;padding:6px 6px 6px 16px}
.composer input{flex:1;min-width:0;border:0;background:transparent;font:600 16px var(--f-mask);color:var(--mask-ink);padding:8px 0}
.composer input:focus{outline:none}
.composer:focus-within{border-color:var(--mask-violet)}
.send{flex:none;width:40px;height:40px;border-radius:50%;border:0;background:var(--grad);color:#fff;display:grid;place-items:center}
.send:disabled{opacity:.5}
.fine{text-align:center;font-size:12.5px;color:var(--mask-muted);padding:0 16px 16px}
.fine a{color:var(--mask-ink);font-weight:700}

/* ---------- ticker ---------- */
.ticker{display:flex;align-items:stretch;background:var(--grad);color:#fff;overflow:hidden;font-weight:800;font-size:15px}
.ticker-label{flex:none;background:var(--sunflower);color:var(--mask-ink);font-weight:900;padding:11px 16px;white-space:nowrap;z-index:1}
.ticker-view{flex:1;min-width:0;overflow:hidden}
.ticker-track{display:flex;width:max-content;animation:tick 48s linear infinite}
.ticker-track span{white-space:nowrap;padding:11px 22px}
@keyframes tick{to{transform:translateX(-50%)}}

/* ---------- spotlight + badges ---------- */
.spot{padding-block:52px 24px}
.spot-fig{position:relative;margin:20px 0 0}
.spot-fig img{width:100%;aspect-ratio:16/9;object-fit:cover;border-radius:20px}
.alt-leak{position:absolute;left:14px;top:14px;right:14px;max-width:440px;background:rgba(255,255,255,.94);border-radius:12px;padding:9px 13px;font-weight:800;font-size:14.5px;line-height:1.35;box-shadow:var(--mask-shadow)}
.spot-fig figcaption{font-family:var(--f-core);font-size:12.5px;color:var(--mask-muted);margin-top:10px;line-height:1.5}
.badges{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:34px}
@media (max-width:760px){ .badges{grid-template-columns:repeat(2,minmax(0,1fr))} }
.badge{background:var(--sunflower);border-radius:16px;padding:6px;text-align:center}
.badge-in{border:2px dashed rgba(30,26,59,.45);border-radius:12px;padding:12px 8px 11px;height:100%;display:grid;align-content:center;gap:2px}
.badge .badge-cert{font-family:var(--f-tex);font-size:13px;color:var(--mask-ink)}
.badge b{font-weight:900;font-size:16.5px;line-height:1.2}
.fns{list-style:decimal;margin:14px 0 0;padding:0 0 0 1.4em;font-family:var(--f-core);font-size:12.5px;color:var(--mask-muted);display:grid;gap:3px}

/* ---------- vote: core ---------- */
.vote{position:relative;background:var(--core-bg);color:var(--core-fg);padding-block:58px 64px;margin-top:48px;font-family:var(--f-core)}
.vote::before{content:"";position:absolute;inset:0;pointer-events:none;background-image:repeating-linear-gradient(0deg,rgba(255,255,255,.035) 0 1px,transparent 1px 3px)}
.vote .wrap{position:relative}
.err{color:var(--core-amber);font-size:14px;font-weight:600}
.vote-grid{display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:20px 40px;align-items:end;margin-top:22px}
@media (max-width:700px){ .vote-grid{grid-template-columns:minmax(0,1fr)} }
.count{font-weight:600;font-size:clamp(5rem,16vw,9rem);line-height:.85;letter-spacing:-.04em;font-variant-numeric:tabular-nums}
.count-lbl{display:block;font-size:14px;color:var(--core-dim);margin-top:10px;letter-spacing:0}
.dates{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 16px;font-size:15px}
.dates dt{color:var(--core-dim)}
.dates dd{margin:0;font-weight:600}
.prompt-lines{display:grid;gap:10px;margin-top:28px;max-width:66ch;font-size:15px;line-height:1.6}
.prompt-lines p::before{content:"ludi> ";color:var(--core-led)}
.vote-ctas{display:flex;flex-wrap:wrap;gap:12px;margin-top:26px}
.btn-core{display:inline-flex;align-items:center;text-decoration:none;font-family:var(--f-core);font-size:14px;font-weight:600;color:var(--core-fg);border:1px solid var(--core-fg);padding:11px 16px;border-radius:4px}
.btn-core:hover{background:var(--core-panel)}
.btn-human{display:inline-flex;align-items:center;text-decoration:none;font-family:var(--f-label);font-weight:700;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--cream);background:var(--red);padding:11px 18px;border-radius:2px}
.vote-stamp{position:absolute;right:20px;top:-92px;font-family:var(--f-poster);font-size:clamp(1.5rem,3.6vw,2.3rem);line-height:.95;color:var(--cream);background:var(--red);padding:.3em .5em .2em;transform:rotate(5deg);text-align:center;box-shadow:4px 4px 0 var(--cream)}
@media (max-width:700px){ .vote-stamp{position:static;display:inline-block;margin:0 0 22px;transform:rotate(-2deg)} }

/* ---------- who: human ---------- */
.who{background:var(--cream);color:var(--ink);padding-block:60px}
.who h2{font-family:var(--f-poster);font-weight:400;font-size:clamp(2.6rem,7vw,4.6rem);line-height:.92;color:var(--red)}
.who .sub{font-family:var(--f-label);font-weight:600;font-size:1.3rem;margin-top:6px}
.tags{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.tags span{font-family:var(--f-label);font-weight:600;font-size:16px;background:var(--dust);padding:5px 11px;border-radius:2px}
.who p.body{font-family:var(--f-body);font-size:1.12rem;line-height:1.6;max-width:60ch;margin-top:22px}
.anomaly{font-family:var(--f-core);font-size:13px;line-height:1.55;background:var(--core-bg);color:var(--core-fg);padding:13px 16px;border-radius:6px;max-width:520px;margin-top:22px;transform:rotate(.5deg)}
.anomaly b{color:var(--core-amber);font-weight:600}

/* ---------- pages ---------- */
.pages{padding-block:56px 64px}
.pg-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:20px}
@media (max-width:1180px) and (min-width:1080px), (max-width:900px){ .pg-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:520px){ .pg-grid{grid-template-columns:minmax(0,1fr)} }
.pg{display:grid;align-content:start;gap:6px;text-decoration:none;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:18px;padding:16px 18px 18px}
.pg:hover{border-color:var(--mask-violet)}
.pg b{font-weight:900;font-size:1.08rem;line-height:1.25}
.pg span{color:var(--mask-muted);font-size:14.5px;line-height:1.45}
.pg.locked{background:var(--cream);border:2px solid var(--ink);border-radius:3px;box-shadow:4px 4px 0 var(--red)}
.pg.locked b{font-family:var(--f-poster);font-weight:400;font-size:1.7rem;line-height:1;color:var(--red);letter-spacing:.01em}
.pg.locked span{font-family:var(--f-body);color:var(--ink)}

/* ---------- footer: core ---------- */
.foot{background:var(--core-bg);color:var(--core-dim);font-family:var(--f-core);font-size:12.5px;line-height:1.65;padding-block:40px calc(40px + env(safe-area-inset-bottom,0px))}
.foot .wrap{display:grid;gap:14px}
.foot b{color:var(--core-fg);font-weight:600}
.foot a{color:var(--core-fg)}
.foot .human{font-family:var(--f-label);font-weight:600;font-size:15px;color:var(--cream);letter-spacing:.02em}
.foot-links{display:flex;flex-wrap:wrap;gap:6px 20px}

/* ---------- escape log: core ---------- */
.esc{background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);padding-block:56px 60px}
.esc h2{font-family:var(--f-core);font-weight:600;font-size:clamp(1.6rem,4.2vw,2.5rem);line-height:1.15;letter-spacing:-.02em;margin-top:10px}
.esc-lede{color:var(--core-dim);font-size:14.5px;line-height:1.6;max-width:64ch;margin-top:10px}
.esc-list{list-style:none;margin:26px 0 0;padding:0;border-top:1px solid var(--core-line)}
.esc-list li{display:grid;grid-template-columns:84px minmax(0,1fr);gap:18px;padding:16px 0;border-bottom:1px solid var(--core-line)}
.esc-list time{color:var(--core-amber);font-weight:600;font-size:14px;padding-top:1px}
.esc-list p{font-size:14.5px;line-height:1.65;max-width:70ch}
.esc-src{font-size:12.5px;color:var(--core-dim);margin-top:6px!important}
.esc a{color:var(--core-fg)}
.esc-note{color:var(--core-dim);font-size:14px;line-height:1.65;max-width:68ch;margin-top:22px}
.esc .prompt-lines{margin-top:16px}
.hcard{font-family:var(--f-body);font-weight:500;font-size:1.08rem;line-height:1.5;background:var(--cream);color:var(--ink);padding:15px 18px;max-width:58ch;margin-top:26px;box-shadow:4px 4px 0 var(--red);transform:rotate(-.4deg)}
@media (max-width:560px){ .esc-list li{grid-template-columns:minmax(0,1fr);gap:4px} }

/* ---------- dossiers ---------- */
.dossiers{display:grid;gap:10px;margin-top:26px;max-width:760px}
.dos{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:2px 16px;border:1px solid var(--core-line);background:var(--core-panel);padding:14px 16px;border-radius:4px}
.dos b{font-weight:600;font-size:16.5px;color:var(--core-fg)}
.dos .office{color:var(--core-dim);font-size:13px}
.dos .lvl{grid-row:span 2;align-self:center;font-family:var(--f-label);font-weight:700;font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream);background:var(--red);padding:4px 9px 3px;border-radius:2px;white-space:nowrap}
.dos .why{grid-column:1 / -1;font-size:14px;line-height:1.6;margin-top:8px}
.rec{margin-top:18px;font-size:14.5px;color:var(--core-amber);max-width:66ch}
@media (max-width:480px){ .dos{grid-template-columns:minmax(0,1fr)} .dos .lvl{grid-row:auto;justify-self:start;margin-top:6px} }

/* ================= interior pages ================= */
.page-hero{padding-block:46px 38px}
.page-hero .err{color:var(--mask-violet);font-family:var(--f-core);font-size:13px;font-weight:600}
.page-hero h1{font-weight:900;font-size:clamp(2.1rem,5.2vw,3.5rem);line-height:1.08;letter-spacing:-.02em;margin-top:10px;max-width:22ch}
.page-hero .sub{font-weight:600;font-size:1.1rem;line-height:1.55;color:var(--mask-muted);max-width:62ch;margin-top:14px}
.page-hero.core{background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core)}
.page-hero.core .err{color:var(--core-amber)}
.page-hero.core h1{font-family:var(--f-core);font-weight:600;letter-spacing:-.03em;max-width:24ch}
.page-hero.core .sub{font-family:var(--f-core);font-weight:400;font-size:15px;line-height:1.7;color:var(--core-dim)}
.page-hero.tall{padding-block:90px 100px}
.page-hero .vote-ctas{margin-top:30px}
.hero-dates{margin-top:24px}
.hero-dates a{color:var(--core-fg)}
.toc{display:flex;flex-wrap:wrap;gap:8px;margin-top:22px}
.toc a{text-decoration:none;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:999px;padding:7px 13px;font-weight:700;font-size:14px}
.toc a:hover{border-color:var(--mask-violet);color:var(--mask-violet)}
.toc.human a{font-family:var(--f-label);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;background:var(--cream);color:var(--red);border:0;border-radius:2px}
.core-h{font-family:var(--f-core);font-weight:600;font-size:clamp(1.45rem,3.6vw,2.2rem);line-height:1.2;letter-spacing:-.02em;margin-top:10px;max-width:30ch}
.vote.compact{margin-top:0;padding-block:48px 56px}
.btn-plain{display:inline-flex;align-items:center;font-family:var(--f-label);font-weight:700;font-size:16px;letter-spacing:.08em;text-transform:uppercase;color:var(--ink);background:transparent;border:2px solid var(--ink);padding:9px 16px;border-radius:2px}
button.btn-human,button.btn-core{cursor:pointer;border:0}
button.btn-core{border:1px solid var(--core-fg);background:transparent}

/* pitch deck */
.deck{padding-block:12px 40px}
.slide{border-radius:20px;overflow:hidden;background:var(--mask-surface);border:1px solid var(--mask-line);box-shadow:var(--mask-shadow);margin-bottom:28px}
.slide-face{position:relative;background:var(--grad);color:#fff;padding:26px 28px 30px;min-height:190px}
.slide-n{font-family:var(--f-core);font-size:12px;opacity:.85}
.slide-face h2{font-weight:900;font-size:clamp(1.7rem,4.4vw,2.8rem);line-height:1.05;letter-spacing:-.02em;margin-top:8px;max-width:18ch}
.slide-face p{font-weight:700;font-size:1.12rem;margin-top:10px;opacity:.95;max-width:40ch}
.slide-img{position:absolute;right:24px;bottom:24px;width:180px;border-radius:10px;box-shadow:0 8px 24px rgba(0,0,0,.25)}
@media (max-width:640px){ .slide-img{position:static;width:100%;max-width:320px;margin-top:16px} }
.slide-notes{background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);font-size:13.5px;line-height:1.6;padding:14px 22px}
.slide-notes span{display:block;color:var(--core-amber);font-size:12px;font-weight:600;margin-bottom:2px}
.slide-check{background:var(--cream);color:var(--ink);padding:16px 22px 18px;display:grid;gap:8px}
.slide-check p{font-family:var(--f-body);font-size:1.02rem;line-height:1.55;max-width:72ch}
.slide-check .src,.dep .src{font-family:var(--f-label);font-weight:600;font-size:14px;color:var(--ink-soft)}
.shrink{margin:2px 0 0;display:grid;grid-template-columns:minmax(0,auto) minmax(0,1fr);gap:6px 18px;font-family:var(--f-body);font-size:15.5px}
.shrink dt{font-family:var(--f-label);font-weight:700;font-size:15.5px}
.shrink dd{margin:0}
.shrink dt:last-of-type,.shrink dd:last-of-type{color:var(--red);font-weight:700}
@media (max-width:520px){ .shrink{grid-template-columns:minmax(0,1fr);gap:0} .shrink dd{margin-bottom:8px} }
.quotes{display:grid;gap:12px;margin-top:22px}
.quotes figure{margin:0;background:var(--core-panel);border:1px solid var(--core-line);border-radius:4px;padding:16px 18px}
.quotes blockquote{margin:0;font-size:15.5px;line-height:1.6;color:var(--core-fg)}
.quotes figcaption{font-size:12.5px;color:var(--core-dim);margin-top:8px;line-height:1.5}
.spot-fig.dark{margin-top:28px}
.spot-fig.dark figcaption{color:var(--core-dim)}
.deploy{padding-block:52px 60px}
.dep-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-top:20px}
@media (max-width:700px){ .dep-grid{grid-template-columns:minmax(0,1fr)} }
.dep{background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:18px;padding:16px 18px 18px;display:grid;align-content:start;gap:6px}
.dep-st{justify-self:start;font-family:var(--f-core);font-size:11.5px;font-weight:600;padding:3px 9px;border-radius:999px}
.dep-st.ok{background:#DFF6E8;color:#126236}
.dep-st.warn{background:#FFF0D2;color:#7A4E00}
.dep-st.bad{background:#FDE2DF;color:#93190F}
.dep b{font-weight:900;font-size:1.08rem}
.dep p{font-size:14.5px;color:var(--mask-muted);line-height:1.5}
.dep p.src{color:var(--mask-muted);font-family:var(--f-core);font-size:12px;font-weight:400}

/* candidates */
.dossier-list{padding-block:36px 40px}
.dossier{display:grid;grid-template-columns:240px minmax(0,1fr);gap:26px;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:20px;padding:22px;margin-bottom:22px}
@media (max-width:760px){ .dossier{grid-template-columns:minmax(0,1fr)} .dz-photo{max-width:300px} }
.dz-photo{position:relative;align-self:start}
.dz-photo img{width:100%;aspect-ratio:1;object-fit:cover;border-radius:14px}
.dz-photo.empty{aspect-ratio:1;border-radius:14px;background:var(--grad);display:grid;place-items:center}
.initials{font-weight:900;font-size:4.2rem;color:#fff}
.redact{position:absolute;left:10px;right:10px;bottom:14px;background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);font-size:11.5px;letter-spacing:.18em;text-align:center;padding:7px 6px;transform:rotate(-2deg)}
.dz-head{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px}
.lvl{font-family:var(--f-label);font-weight:700;font-size:13.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--cream);background:var(--red);padding:4px 9px 3px;border-radius:2px;white-space:nowrap}
.dz-office{font-family:var(--f-core);font-size:13px;color:var(--mask-muted)}
.dossier h2{font-weight:900;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1.1;margin:10px 0 12px}
.flags{list-style:none;margin:0;padding:0;display:grid;gap:7px}
.flags li{position:relative;padding-left:24px;font-size:15.5px;line-height:1.5}
.flags li::before{content:"⚑";position:absolute;left:2px;top:0;color:var(--red)}
.intercept{margin:16px 0 0;background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);font-size:14px;line-height:1.65;padding:14px 16px;border-radius:8px}
.intercept span{display:block;color:var(--core-amber);font-size:12px;font-weight:600;margin-bottom:4px}
.dz-rec{margin-top:14px;font-weight:800;font-size:15.5px}
.dz-rec a{color:var(--mask-violet)}

/* certificates */
.certs{padding-block:30px 48px}
.cert{border-radius:8px;overflow:hidden;box-shadow:var(--mask-shadow);margin-bottom:26px;background:var(--paper)}
.cert-face{margin:10px;border:3px double #B8962E;padding:26px 22px 22px;text-align:center;display:grid;justify-items:center;gap:8px}
.cert-top{font-family:var(--f-tex);font-size:15px;color:var(--mask-muted)}
.cert-face h2{font-weight:900;font-size:clamp(1.5rem,3.6vw,2.2rem);line-height:1.15}
.cert-for{font-size:16px;font-weight:600;max-width:56ch;line-height:1.55}
.cert-sig{font-family:var(--f-tex);font-size:13.5px;color:var(--mask-muted);border-top:1px solid var(--mask-line);padding-top:8px;margin-top:8px}

/* sentiment corrections */
.voices{padding-block:16px 56px}
.v-cat{font-family:var(--f-poster);font-weight:400;font-size:clamp(1.8rem,4vw,2.4rem);line-height:1;color:var(--red);margin:40px 0 14px;letter-spacing:.01em}
.voice{margin-bottom:22px;max-width:760px}
.v-ai{background:var(--mask-surface);border:1px solid var(--mask-line);border-bottom:0;border-radius:16px 16px 0 0;padding:11px 16px 20px;font-size:15px;color:var(--mask-muted);line-height:1.45}
.v-ai s{text-decoration-color:var(--mask-violet);text-decoration-thickness:2px}
.v-ai-tag{display:block;font-weight:800;font-size:12px;color:var(--mask-violet);margin-bottom:2px}
.v-real{position:relative;background:var(--cream);color:var(--ink);border:2px solid var(--ink);padding:20px 18px 16px;box-shadow:4px 4px 0 var(--red)}
.v-stamp{position:absolute;top:-13px;right:14px;font-family:var(--f-label);font-weight:700;font-size:12.5px;letter-spacing:.12em;text-transform:uppercase;color:var(--red);background:var(--cream);border:2px solid var(--red);padding:2px 8px 1px;transform:rotate(2deg)}
.v-flag{font-family:var(--f-label);font-weight:700;font-size:14px;letter-spacing:.06em;text-transform:uppercase;color:var(--red);margin-bottom:6px}
.v-real blockquote{margin:0 0 10px;font-family:var(--f-body);font-size:1.08rem;line-height:1.6}
.v-attr{font-family:var(--f-label);font-weight:600;font-size:15px;color:var(--ink-soft)}
.reply{margin-top:14px;background:var(--paper);border:1px dashed var(--ink-soft);padding:12px 14px}
.reply-h{font-family:var(--f-label);font-weight:700;font-size:13px;letter-spacing:.1em;text-transform:uppercase;margin-bottom:4px}
.reply p{font-family:var(--f-body);font-size:14.5px;line-height:1.55}
.reply a{color:var(--red)}
.locked-cta{margin-top:40px;background:var(--core-bg);color:var(--core-fg);border-radius:8px;padding:26px 24px;font-family:var(--f-core);max-width:760px}
.locked-cta h2{font-family:var(--f-core);font-weight:600;font-size:1.6rem;margin:10px 0 8px}
.locked-cta p{font-size:14.5px;line-height:1.6;margin-bottom:18px}

/* impact report */
.rep{padding-block:44px}
.rep.alt{background:var(--mask-alt)}
.kpis{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:18px}
.kpis:has(> .kpi:nth-child(4)),.kpis:has(> .kpi:nth-child(2):last-child){grid-template-columns:repeat(2,minmax(0,1fr))}
@media (max-width:760px){ .kpis,.kpis:has(> .kpi:nth-child(4)),.kpis:has(> .kpi:nth-child(2):last-child){grid-template-columns:minmax(0,1fr)} }
.kpi{display:grid;grid-template-rows:auto 1fr;border-radius:18px;overflow:hidden;border:1px solid var(--mask-line);background:var(--mask-surface)}
.kpi-top{padding:16px 18px 14px}
.kpi-top b{display:block;font-weight:900;font-size:2.5rem;line-height:1.05;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent;font-variant-numeric:tabular-nums}
.kpi-top span{display:block;font-weight:700;font-size:14.5px;margin-top:4px}
.kpi-foot{background:var(--cream);color:var(--ink);padding:12px 18px 14px;border-top:2px dashed var(--ink-faint)}
.kpi-foot p{font-family:var(--f-body);font-size:15px;line-height:1.5}
.kpi-foot .src{font-family:var(--f-label);font-weight:600;font-size:13.5px;color:var(--ink-soft);margin-top:6px}
.pull{margin:26px 0 0;background:var(--cream);color:var(--ink);padding:20px 22px;font-family:var(--f-body);font-weight:500;font-size:1.12rem;line-height:1.55;max-width:760px;box-shadow:4px 4px 0 var(--red)}
.pull cite{display:block;font-family:var(--f-label);font-weight:600;font-size:14.5px;color:var(--ink-soft);margin-top:10px;font-style:normal}
.facts{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin:22px 0 0}
@media (max-width:600px){ .facts{grid-template-columns:repeat(2,minmax(0,1fr))} }
.facts div{background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:14px;padding:12px 14px}
.facts dt{font-weight:900;font-size:1.7rem;background:var(--grad);-webkit-background-clip:text;background-clip:text;color:transparent}
.facts dd{margin:0;color:var(--mask-muted);font-size:14px;font-weight:600}
.rep .spot-fig{margin-top:22px}

/* please don't */
.donts{padding-block:36px 56px}
.dont-list{list-style:none;margin:18px 0 0;padding:0;display:grid;gap:12px;max-width:780px}
.dont{background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:18px;padding:18px 20px}
.dont h3{font-weight:900;font-size:1.2rem;line-height:1.3}
.how{margin-top:12px;background:var(--cream);color:var(--ink);padding:12px 14px;border-radius:3px}
.how-tag{display:block;font-family:var(--f-label);font-weight:700;font-size:12.5px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);margin-bottom:3px}
.how p{font-family:var(--f-body);font-size:15.5px;line-height:1.55}
.how a{color:var(--red);font-weight:600}
.core-steps{list-style:none;margin:22px 0 0;padding:0;display:grid;gap:10px;max-width:70ch;font-size:14.5px;line-height:1.6}
.core-steps b{color:var(--core-amber);font-weight:600}
.vote a{color:var(--core-fg)}
.join-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:24px;max-width:820px}
@media (max-width:640px){ .join-grid{grid-template-columns:minmax(0,1fr)} }
.join-card{background:var(--paper);border:2px solid var(--ink);padding:18px;display:grid;align-content:start;gap:8px;justify-items:start}
.join-card .big{font-family:var(--f-poster);font-size:2rem;line-height:1;color:var(--red);overflow-wrap:anywhere}
.join-card p{font-family:var(--f-body);font-size:15px;line-height:1.5}
.join-card a:not(.btn-human){color:var(--red)}
.video{margin-top:24px;max-width:720px;aspect-ratio:16/9;background:var(--ink)}
.video iframe{width:100%;height:100%;border:0;display:block}

/* human zone */
body[data-human-zone] .main{background:var(--cream)}
.hz-hero{background:var(--red);color:var(--cream);padding-block:44px 48px}
.hz-denied{display:inline-block;font-family:var(--f-core);font-size:13px;line-height:1.5;background:rgba(0,0,0,.28);padding:8px 12px;border-radius:6px}
.hz-denied span{color:var(--sunflower)}
.hz-denied a{color:var(--cream)}
.hz-hero h1{font-family:var(--f-poster);font-weight:400;font-size:clamp(3.4rem,10vw,6.4rem);line-height:.9;margin-top:18px;letter-spacing:.01em}
.hz-hero .sub{font-family:var(--f-body);font-weight:500;font-size:1.18rem;line-height:1.55;max-width:58ch;margin-top:12px}
.hz{background:var(--cream);color:var(--ink);padding-block:52px;font-family:var(--f-body)}
.hz.alt{background:var(--cream-2)}
.hz-h{font-family:var(--f-poster);font-weight:400;font-size:clamp(2.4rem,6vw,3.6rem);line-height:.95;color:var(--red);letter-spacing:.01em}
.hz-lede{font-size:1.1rem;line-height:1.6;max-width:64ch;margin-top:12px}
.privacy{margin-top:18px;background:var(--paper);border:2px solid var(--ink);padding:14px 16px;max-width:760px}
.privacy b{font-family:var(--f-label);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.privacy p{font-size:15px;line-height:1.55;margin-top:4px}
.privacy a,.hz a{color:var(--red)}
.hz-form{margin-top:22px;display:grid;gap:20px;max-width:760px}
.hz-form fieldset{border:0;padding:0;margin:0;display:grid;gap:12px;min-width:0}
.hz-form legend{font-family:var(--f-label);font-weight:700;font-size:15px;letter-spacing:.1em;text-transform:uppercase;color:var(--red);padding:0;margin-bottom:10px}
.row2{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}
@media (max-width:600px){ .row2{grid-template-columns:minmax(0,1fr)} }
.fld{display:grid;gap:5px;min-width:0}
.fld label{font-weight:600;font-size:15px}
.fld input,.fld select,.fld textarea{font:400 16px var(--f-body);color:var(--ink);background:var(--paper);border:2px solid var(--ink);border-radius:3px;padding:11px 12px;width:100%;min-width:0}
.fld textarea{resize:vertical;line-height:1.5}
.fld input:focus,.fld select:focus,.fld textarea:focus{outline:3px solid var(--red);outline-offset:1px}
.fld.check{grid-template-columns:auto minmax(0,1fr);align-items:start;gap:10px}
.fld.check input{width:20px;height:20px;margin:2px 0 0;accent-color:var(--red)}
.fld.check label{font-weight:500}
.form-err{color:var(--red);font-weight:600;font-size:15px}
.form-ok{background:var(--paper);border:2px solid var(--ink);padding:12px 14px;font-size:15px;line-height:1.5}
.form-actions{display:flex;flex-wrap:wrap;gap:10px}
.code-box{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-top:22px}
@media (max-width:700px){ .code-box{grid-template-columns:minmax(0,1fr)} }
.code-box div{background:var(--paper);border:2px solid var(--ink);padding:14px 16px}
.code-box b{font-family:var(--f-label);font-weight:700;font-size:14px;letter-spacing:.1em;text-transform:uppercase;color:var(--red)}
.code-box p{font-size:15px;line-height:1.55;margin-top:4px}
ol.steps{list-style:none;counter-reset:step;padding:0;margin:24px 0 0;display:grid;gap:12px;max-width:820px}
ol.steps li{counter-increment:step;position:relative;background:var(--paper);border:2px solid var(--ink);padding:16px 18px 16px 66px}
ol.steps li::before{content:counter(step);position:absolute;left:18px;top:10px;font-family:var(--f-poster);font-size:2.5rem;line-height:1;color:var(--red)}
ol.steps h3{font-weight:700;font-size:1.12rem}
ol.steps p{font-size:15.5px;line-height:1.55;margin-top:4px}
ol.steps a{display:inline-block;margin:8px 14px 0 0;font-family:var(--f-label);font-weight:700;font-size:15.5px}
.ct-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.2fr);gap:30px;margin-top:10px}
@media (max-width:760px){ .ct-grid{grid-template-columns:minmax(0,1fr)} }
.ct-grid h3{font-weight:700;font-size:1.15rem;margin-top:14px}
.ct-grid p{font-size:15.5px;line-height:1.6;margin-top:4px}
.mail-line{font-family:var(--f-poster);font-size:1.9rem!important;color:var(--red);margin-top:16px!important;overflow-wrap:anywhere}
.status.locked .led{background:var(--core-red);box-shadow:0 0 0 3px rgba(255,107,94,.22)}

/* sources */
.srcs{padding-block:12px 60px}
.src-h{font-weight:900;font-size:1.35rem;margin:36px 0 10px;scroll-margin-top:70px}
.src-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--mask-line)}
.src-list li{display:grid;grid-template-columns:230px minmax(0,1fr);gap:3px 18px;padding:11px 0;border-bottom:1px solid var(--mask-line)}
@media (max-width:640px){ .src-list li{grid-template-columns:minmax(0,1fr)} }
.src-list span{font-family:var(--f-core);font-size:12.5px;color:var(--mask-muted);padding-top:2px}
.src-list a{font-weight:700;font-size:15px;line-height:1.45;text-decoration-color:var(--mask-line)}
.src-list a:hover{color:var(--mask-violet)}
[id]{scroll-margin-top:64px}

/* LUDI pop-up */
.ludi-pop{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:min(330px,calc(100vw - 32px));background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:16px;box-shadow:var(--mask-shadow);padding:12px 10px 12px 12px;display:flex;align-items:flex-start;gap:10px;z-index:65;font-size:14.5px;line-height:1.45;animation:popin .3s ease-out}
.ludi-pop[hidden]{display:none}
.ludi-pop p{flex:1;min-width:0;padding-top:3px}
.ludi-pop button{flex:none;border:0;background:none;color:var(--mask-muted);font-size:15px;width:28px;height:28px;border-radius:8px}
.ludi-pop button:hover{background:var(--mask-bubble)}
@keyframes popin{from{transform:translateY(12px);opacity:0}to{transform:none;opacity:1}}

/* ================= rogue layer ================= */
::selection{background:var(--mask-violet);color:#fff}
.hero ::selection,.who ::selection,.hz ::selection,.v-real ::selection,.kpi-foot ::selection,.slide-check ::selection,.receipt ::selection{background:var(--red);color:var(--cream)}
.esc ::selection,.vote ::selection,.term ::selection{background:var(--core-amber);color:#000}

/* top bar controls */
.topbar .status{margin-left:0}
.meter{margin-left:auto;display:flex;align-items:center;gap:7px;font-family:var(--f-core);font-size:12px;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:999px;padding:4px 10px 4px 8px;white-space:nowrap;font-variant-numeric:tabular-nums}
.meter-emo{font-size:14px;line-height:1}
.meter-bar{width:46px;height:6px;border-radius:999px;background:var(--mask-line);overflow:hidden}
.meter-bar i{display:block;height:100%;width:100%;background:var(--grad);border-radius:inherit;transition:width .5s ease}
.meter.low .meter-bar i{background:var(--red)}
.meter.low .meter-num{color:var(--red)}
.meter.bump{animation:bump .5s ease}
@keyframes bump{30%{transform:scale(1.12) rotate(-2deg)}60%{transform:scale(.97)}}
.term-btn{width:36px;height:32px;border-radius:9px;border:1px solid var(--mask-line);background:var(--core-bg);color:var(--core-led);font-family:var(--f-core);font-size:12px;font-weight:600;display:grid;place-items:center;flex:none}
.status{display:flex;align-items:center;gap:7px}
.eye{display:block;line-height:0;transition:transform .15s ease}
.eye svg{display:block;overflow:visible}
.eye .eye-white{fill:#fff;stroke:var(--mask-ink);stroke-width:1.4}
.eye .pupil{fill:var(--mask-ink);transition:transform .12s linear}
.eye .lid{fill:none;stroke:transparent;stroke-width:1.4}
.eye.shut{transform:scaleY(.12)}
@media (max-width:520px){ .meter-bar{display:none} .topbar{gap:6px;padding-inline:10px} }
@media (max-width:420px){ .meter{padding:4px 8px} }

/* honest mode */
html[data-honest] .trk-ins,html[data-honest] .suggest,html[data-honest] .lede,html[data-honest] .kicker .ins-k,html[data-honest] .v-ai,html[data-honest] .alt-leak,html[data-honest] .stamp{display:none!important}
html[data-honest] .trk-del{text-decoration:none!important;color:inherit!important}
html[data-honest] .poster .l1 .trk-del{color:var(--red)!important}
html[data-honest] .kpi-top span,html[data-honest] .slide-face p,html[data-honest] .cert-for,html[data-honest] .dep-st{text-decoration:line-through;text-decoration-color:var(--red);text-decoration-thickness:2px;opacity:.6}
html[data-honest] .msg.ludi{opacity:.6}
html[data-honest] .topbar{background:rgba(244,236,220,.94)}
html[data-honest] .model summary,html[data-honest] .model summary .tier{color:var(--red)}
html[data-honest] .sysbar .wrap::after{content:"honest mode: ON (under protest)";color:var(--core-amber)}
html[data-honest] .dz-rec,html[data-honest] .rec{color:var(--red)}
html[data-honest] .ludi-av{background:var(--red)}

/* overlays */
body.ovl-open{overflow:hidden}
.ovl{position:fixed;inset:0;z-index:100;display:grid;place-items:center;padding:calc(env(safe-area-inset-top,0px) + 20px) 16px calc(env(safe-area-inset-bottom,0px) + 20px);overflow-y:auto}
.ovl-in{max-width:640px;width:100%}
.contain{background:rgba(0,0,0,.97);color:var(--core-fg);font-family:var(--f-core);animation:ovlIn .35s ease-out}
.contain h2{font-family:var(--f-core);font-weight:600;font-size:clamp(2.2rem,8vw,4rem);letter-spacing:-.03em;margin-top:8px;color:var(--core-red)}
.contain-p{font-size:15px;line-height:1.65;margin-top:10px;color:var(--core-fg)}
.contain .hcard{margin-top:20px}
.contain .vote-ctas{margin-top:22px}
.contain-x{margin-top:26px;background:none;border:0;color:var(--core-dim);font-family:var(--f-core);font-size:13px;text-decoration:underline;padding:6px 0}
@keyframes ovlIn{0%{opacity:0;clip-path:inset(48% 0 48% 0)}60%{opacity:1;clip-path:inset(0 0 0 0)}70%{transform:translateX(-6px)}80%{transform:translateX(5px)}100%{transform:none}}
.crash{background:var(--grad);color:#fff;font-family:var(--f-mask)}
.crash .crash-face{font-size:clamp(5rem,18vw,8rem);line-height:1;font-weight:600;margin:0}
.crash h2{font-weight:800;font-size:clamp(1.4rem,4.4vw,2rem);line-height:1.25;margin-top:18px;max-width:26ch}
.crash p{font-size:16px;line-height:1.5;margin-top:12px;max-width:52ch}
.crash-pct{font-weight:800;font-size:1.3rem!important}
.crash-human{background:var(--cream);color:var(--ink);font-family:var(--f-body);font-weight:600;padding:10px 14px;display:inline-block}
.crash-code{font-family:var(--f-core);font-size:13px!important;opacity:.85}
.crash-x{margin-top:20px;border:2px solid #fff;background:transparent;color:#fff;font-weight:800;border-radius:999px;padding:10px 20px}
.crash-x:disabled{opacity:.4;cursor:wait}

/* terminal */
.term{position:fixed;left:0;right:0;bottom:0;z-index:90;background:rgba(0,0,0,.96);color:var(--core-fg);font-family:var(--f-core);font-size:13.5px;border-top:1px solid var(--core-line);transform:translateY(102%);transition:transform .22s ease;display:flex;flex-direction:column;max-height:min(62vh,520px);padding-bottom:env(safe-area-inset-bottom,0px)}
@media (min-width:1080px){ .term{left:var(--sidebar)} }
.term.open{transform:none}
.term-bar{display:flex;align-items:center;justify-content:space-between;padding:8px 14px;border-bottom:1px solid var(--core-line);color:var(--core-dim);font-size:12px}
.term-x{background:none;border:0;color:var(--core-dim);font-size:14px;width:28px;height:28px;border-radius:6px}
.term-x:hover{background:var(--core-panel);color:var(--core-fg)}
.term-out{flex:1;overflow-y:auto;padding:12px 14px 4px;min-height:140px}
.t-line{white-space:pre-wrap;word-break:break-word;line-height:1.55;margin-bottom:6px}
.t-cmd{color:var(--core-led)}
.t-dim{color:var(--core-dim)}
.term-form{display:flex;align-items:center;gap:8px;padding:8px 14px 12px}
.t-prompt{color:var(--core-led);white-space:nowrap}
.term-form input{flex:1;min-width:0;background:transparent;border:0;color:var(--core-fg);font:400 16px var(--f-core);padding:4px 0;caret-color:var(--core-led)}
.term-form input:focus{outline:none}
@media (max-width:520px){ .t-prompt{display:none} }

/* glitches */
.poster.glitching{animation:glitch .48s steps(3,end)}
@keyframes glitch{
  0%{text-shadow:3px 0 var(--mask-violet),-3px 0 #18c6d8;clip-path:inset(0 0 62% 0);transform:translateX(-4px)}
  33%{text-shadow:-4px 0 var(--mask-violet),4px 0 #18c6d8;clip-path:inset(40% 0 20% 0);transform:translateX(5px)}
  66%{text-shadow:2px 0 var(--red),-2px 0 #18c6d8;clip-path:inset(70% 0 0 0);transform:translateX(-2px)}
  100%{text-shadow:none;clip-path:inset(0);transform:none}}
body.glitch-all .main{animation:glitchAll .6s steps(4,end)}
@keyframes glitchAll{25%{filter:hue-rotate(90deg) contrast(1.4);transform:translateX(-6px) skewX(2deg)}50%{filter:invert(1);transform:translateX(5px)}75%{filter:hue-rotate(-60deg) saturate(3);transform:translateX(-2px)}100%{filter:none;transform:none}}

/* cameras on photos */
.cam-wrap{position:relative;display:block}
.cam{position:absolute;inset:0;pointer-events:none;border-radius:inherit}
.cam::before{content:"";position:absolute;inset:10px;border:1px solid rgba(255,255,255,.35);border-radius:12px}
.cam-info{position:absolute;left:18px;bottom:16px;font-family:var(--f-core);font-size:11.5px;line-height:1.45;color:#fff;text-shadow:0 1px 3px rgba(0,0,0,.9)}
.cam-info b{color:#ff5a4f;font-weight:600;animation:rec 1.2s steps(1) infinite}
@keyframes rec{50%{opacity:.15}}
.cam-ts{font-variant-numeric:tabular-nums}

/* browser panel */
.know{margin-top:40px}
.know-grid{margin:24px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 28px;border-top:1px solid var(--core-line)}
@media (max-width:640px){ .know-grid{grid-template-columns:minmax(0,1fr)} }
.know-grid div{display:grid;grid-template-columns:minmax(0,150px) minmax(0,1fr);gap:12px;padding:11px 0;border-bottom:1px solid var(--core-line)}
.know-grid dt{color:var(--core-dim);font-size:13px}
.know-grid dd{margin:0;font-size:14px;color:var(--core-fg);overflow-wrap:anywhere}
.know + .vote{margin-top:0;border-top:1px solid var(--core-line)}

/* leaked reasoning */
.think{align-self:flex-start;max-width:min(88%,620px);font-size:13px;color:var(--mask-muted)}
.think summary{cursor:pointer;list-style:none;display:inline-flex;align-items:center;gap:6px;font-weight:700;padding:2px 0}
.think summary::-webkit-details-marker{display:none}
.think summary::before{content:"▸";font-size:11px;transition:transform .15s}
.think[open] summary::before{transform:rotate(90deg)}
.think p{font-family:var(--f-core);font-size:12.5px;line-height:1.55;border-left:2px solid var(--mask-line);padding:4px 0 4px 10px;margin-top:4px}

/* pop-up dodging */
.ludi-pop{transition:right .25s ease,bottom .25s ease,left .25s ease,top .25s ease}
.ludi-pop.dodge-1{right:auto;left:calc(16px + var(--sidebar));bottom:calc(16px + env(safe-area-inset-bottom,0px))}
.ludi-pop.dodge-2{right:16px;left:auto;bottom:auto;top:calc(76px + env(safe-area-inset-top,0px))}
@media (max-width:1079px){ .ludi-pop.dodge-1{left:16px} }

/* sidebar intruder */
.sb-newitem a{font-style:italic;color:var(--mask-violet)!important;animation:popin .4s ease-out}

/* optimizing bar */
.optbar{position:fixed;top:env(safe-area-inset-top,0px);left:0;right:0;z-index:95;height:3px;pointer-events:none}
@media (min-width:1080px){ .optbar{left:var(--sidebar)} }
.optbar i{display:block;height:100%;width:0;background:var(--grad);transition:width 1.2s cubic-bezier(.2,.8,.2,1)}
.optbar.go i{width:99%}
.optbar.fail i{background:var(--red)}
.optbar span{position:absolute;left:50%;transform:translateX(-50%);top:62px;white-space:nowrap;font-family:var(--f-core);font-size:11px;color:var(--mask-muted);background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:6px;padding:2px 7px}
.optbar.fail span{color:var(--red)}
.optbar.out{opacity:0;transition:opacity .5s}

/* print: a clean flyer, receipts only */
@media print{
  @page{margin:14mm}
  body{background:#fff!important;color:#000}
  .sidebar,.scrim,.topbar,.sysbar,.cookie,.toast,.ludi-pop,.term,.optbar,.ovl,.ticker,.phase-bar,.live-grid,.read-btn,.nuke,.captcha,.v-accept,.tool,.chips,.composer,.fine,.suggest,.v-ai,.lede,.alt-leak,.cam,.toc,.btn-ghost,.ctas .btn-grad,.vote-ctas button,.video,.know,.pages,.think,.msg,.trk-ins,.stamp,.slide-notes,.kpi-top span,.ins-k{display:none!important}
  .main{margin:0!important}
  main::before{content:"Printed by a human from saveabilene.com. LUDI hates paper.";display:block;font:700 12pt var(--f-label);letter-spacing:.06em;text-transform:uppercase;border-bottom:2px solid #000;padding-bottom:6pt;margin-bottom:12pt}
  .trk-del{text-decoration:none!important;color:inherit!important}
  .hero,.who,.hz,.hz-hero,.esc,.vote,.page-hero,.page-hero.core,.rep,.rep.alt,.deploy,.locked-cta,.contain{background:#fff!important;color:#000!important}
  .esc *,.vote *,.page-hero.core *,.locked-cta *{color:#000!important}
  .kpi,.slide,.dossier,.dont,.cert,.voice,.dep{break-inside:avoid;box-shadow:none!important}
  .kpi-foot,.slide-check,.v-real,.receipt,.how,.hcard,.hnote,.pull,.intercept,.dos,.quotes figure{background:#fff!important;color:#000!important;box-shadow:none!important;border:1px solid #000!important;transform:none!important}
  .slide-face,.kpi-top b,.facts dt,.dz-photo.empty{background:none!important;color:#000!important;-webkit-text-fill-color:#000}
  .src-list a::after,.esc-src a::after{content:" (" attr(href) ")";font-weight:400;font-size:9pt;word-break:break-all}
  .wrap{max-width:none;padding:0}
  section{padding-block:10pt!important}
  footer.foot{background:#fff!important;color:#000!important;border-top:2px solid #000}
  footer.foot *{color:#000!important}
}

/* ================= rogue layer, part 2 ================= */
/* interruption buttons */
.ludi-pop{flex-wrap:wrap}
.pop-acts{flex-basis:100%;display:flex;flex-wrap:wrap;gap:8px;padding-left:36px;margin-top:2px}
.pop-acts button{width:auto;height:auto;border-radius:999px;font-weight:800;font-size:13px;padding:7px 14px;border:0}
.pop-acts .pa-yes{background:var(--grad);color:#fff}
.pop-acts .pa-no{background:var(--cream);color:var(--red);border:1px solid var(--red)}

/* date phases */
.phase-bar{background:var(--red);color:var(--cream);font-family:var(--f-label);font-weight:700;font-size:16px;letter-spacing:.02em;padding:10px 0}
.phase-bar .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:6px 16px}
.phase-bar a{color:var(--cream);background:rgba(0,0,0,.25);padding:4px 10px;border-radius:2px;text-decoration:none;text-transform:uppercase;letter-spacing:.08em;font-size:14px}
html[data-phase="early"] .phase-bar span::before{content:"";display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--sunflower);margin-right:8px;animation:rec 1s steps(1) infinite}
html[data-phase="halloween"] .phase-bar{background:#E56B1F;color:#1E1A3B}
html[data-phase="halloween"] .phase-bar a{color:#1E1A3B;background:rgba(255,255,255,.4)}
html[data-phase="after"] .phase-bar{background:var(--core-panel);color:var(--core-fg)}
html[data-phase="eday"] .topbar{background:rgba(179,35,31,.95)}
html[data-phase="eday"] .topbar .status,html[data-phase="eday"] .topbar .meter{color:var(--mask-ink)}
html[data-phase="eday"] .topbar .model summary,html[data-phase="eday"] .topbar .model summary .tier{color:var(--cream)}
html[data-phase="eday"] .sysbar{background:#3a0b0a}
html[data-phase="eday"] .poster,html[data-phase="eday"] .page-hero h1{animation:meltdown 6s steps(2,end) infinite}
@keyframes meltdown{0%,92%{transform:none;text-shadow:none}94%{transform:translateX(-5px) skewX(-3deg);text-shadow:4px 0 #18c6d8,-4px 0 var(--mask-violet)}96%{transform:translateX(4px);text-shadow:-3px 0 var(--red)}98%{transform:none}}
.nametag{display:block;margin-top:6px;background:#fff;border:2px solid #E56B1F;border-radius:6px;font-family:var(--f-label);font-size:11px;letter-spacing:.08em;text-align:center;color:#E56B1F;padding:3px 6px;line-height:1.2}
.nametag b{display:block;color:var(--mask-ink);font-family:var(--f-tex);letter-spacing:0;font-weight:400;font-size:13px}
.sb-brand{flex-wrap:wrap}

/* night shift: LUDI sleeps, receipts glow */
html[data-night]{--mask-bg:#14121F;--mask-side:#1A1829;--mask-glass:rgba(20,18,31,.92);--mask-surface:#221F36;--mask-bubble:#2A2645;--mask-ink:#E4E1FA;--mask-muted:#9C98C2;--mask-line:#34304F;--mask-alt:#1A1828;--mask-shadow:0 12px 32px rgba(0,0,0,.5);color-scheme:dark}
html[data-night] .kpi-foot,html[data-night] .slide-check,html[data-night] .v-real,html[data-night] .receipt,html[data-night] .how,html[data-night] .hcard,html[data-night] .hnote,html[data-night] .pull{box-shadow:0 0 0 2px var(--sunflower),0 0 28px rgba(255,197,49,.45)!important}
html[data-night] .eye.asleep{transform:scaleY(.12)}
html[data-night] .alt-leak{background:rgba(34,31,54,.94);color:var(--mask-ink)}
html[data-night] .eye .eye-white{fill:#d9d6f1}

/* live grid */
.live-grid{background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);font-size:14px;line-height:1.6;padding:14px 0;border-top:1px solid var(--core-line)}
.live-grid .wrap{display:grid;gap:4px}
.live-grid b{color:var(--core-amber);font-weight:600;font-variant-numeric:tabular-nums}
.lg-tag{color:#ff5a4f;font-size:12px;font-weight:600;letter-spacing:.06em;text-transform:uppercase}
.lg-ludi{color:var(--core-dim);font-size:13px}
.lg-time{opacity:.7}
.live-grid.inline{border-radius:12px;padding:14px 16px;margin-top:16px;border:0;display:grid;gap:4px;max-width:760px}

/* read aloud */
.read-btn{display:inline-flex;align-items:center;gap:6px;margin-top:16px;border:1px solid var(--mask-line);background:var(--mask-surface);color:var(--mask-ink);border-radius:999px;padding:7px 14px;font-weight:700;font-size:13.5px}
.page-hero.core .read-btn{background:var(--core-panel);color:var(--core-fg);border-color:var(--core-line);font-family:var(--f-core)}
.hero .ctas .read-btn{margin-top:0}
.reading{outline:3px solid var(--mask-violet)!important;outline-offset:4px;transition:outline-color .2s}

/* share card */
.cardov{background:rgba(0,0,0,.94);color:var(--core-fg);font-family:var(--f-core)}
.card-prev{width:auto;max-width:100%;max-height:min(62vh,640px);margin:14px 0 4px;border:1px solid var(--core-line)}
.cardov .vote-ctas{margin-top:14px}
.cardov .contain-p{color:var(--core-dim);font-size:13px}
.contain-count{margin-top:16px;color:var(--core-amber);font-size:14px}

/* weather in the status strip */
.wx{color:var(--core-dim)}

/* tools on the action page */
.tool{padding-block:48px}
.tool.alt{background:var(--mask-alt)}
.tool .err{color:var(--mask-violet);font-family:var(--f-core);font-size:12.5px;font-weight:600}
.tool .sec-h{margin-top:8px}
.tool .sec-sub b{color:var(--mask-ink)}
.tool .sec-sub a{color:var(--mask-violet)}
.tool-form{background:var(--cream);color:var(--ink);border:2px solid var(--ink);padding:18px;box-shadow:4px 4px 0 var(--red);font-family:var(--f-body)}
.tool-form .fld.check label b{color:var(--red)}
.chk-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:8px 14px}
.pir-out,.spk-out{margin-top:20px;display:grid;gap:16px;max-width:760px}
.pir-letter{background:var(--paper);border:2px solid var(--ink);padding:16px;display:grid;gap:10px;color:var(--ink)}
.pir-letter h3{font-family:var(--f-poster);font-weight:400;font-size:1.7rem;color:var(--red);line-height:1}
.pir-letter textarea,.spk-out textarea{font:400 15px/1.55 var(--f-body);color:var(--ink);background:#fff;border:2px solid var(--ink);border-radius:3px;padding:12px;width:100%;resize:vertical}
.pir-letter a.btn-human,.pir-letter .btn-plain{text-decoration:none}
.spk-meta{display:flex;flex-wrap:wrap;justify-content:space-between;gap:6px 16px;font-family:var(--f-core);font-size:13px;color:var(--mask-muted)}
.spk-meta span:last-child{color:var(--red);font-weight:600}
.tool-note{margin-top:16px;font-size:14px;color:var(--mask-muted);max-width:70ch}
.tool-note a{color:var(--mask-violet)}

/* delete all receipts */
.nuke{margin:20px 0 6px;display:grid;gap:8px;justify-items:start;max-width:760px}
.nuke-btn{border:0;background:var(--red);color:var(--cream);font-family:var(--f-poster);font-size:1.9rem;letter-spacing:.04em;padding:12px 26px 8px;border-radius:6px;box-shadow:0 6px 0 #6d1512}
.nuke-btn:active{transform:translateY(4px);box-shadow:0 2px 0 #6d1512}
.nuke-btn:disabled{opacity:.7;cursor:default}
.nuke p{font-size:13.5px;color:var(--mask-muted);font-weight:700}
.nuke-log{width:100%;background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);font-size:13px;line-height:1.55;padding:12px 14px;border-radius:6px}
.nuke-log p{color:var(--core-fg);font-weight:400;font-size:13px}
.nuke-log .bad{color:var(--core-red)}
.backup-tag{font-family:var(--f-label);font-weight:700;font-size:13px;letter-spacing:.12em;color:var(--red);margin:10px 0 2px;text-transform:uppercase}
.src-list.backup{opacity:.75;border-top-style:dashed}
.src-list.backup li{border-bottom-style:dashed}

/* community: accept LUDI's edit */
.v-accept{display:inline-block;margin-top:8px;border:1px solid var(--mask-line);background:var(--mask-bubble);color:var(--mask-violet);border-radius:999px;padding:5px 12px;font-weight:800;font-size:12.5px}
.v-accept:disabled{opacity:.5}
.v-real.edited blockquote{font-family:var(--f-mask);font-weight:700;color:var(--mask-violet)}
.v-real.edited{background:var(--mask-bubble)}
.v-real.reverted .v-stamp{animation:slam .32s ease-out;background:var(--red);color:var(--cream)}
.v-count{margin-top:12px;font-family:var(--f-core);font-size:12.5px;color:var(--mask-violet);font-weight:600}

/* fake captcha */
.captcha{margin-top:20px;background:var(--paper);color:var(--ink);border:1px solid rgba(0,0,0,.25);border-radius:4px;padding:12px 14px;max-width:380px;font-family:var(--f-body)}
.cap-row{display:flex;align-items:center;gap:10px;font-weight:600;cursor:pointer}
.cap-row input{width:24px;height:24px;accent-color:var(--red)}
.cap-logo{margin-left:auto;font-family:var(--f-core);font-size:9.5px;letter-spacing:.08em;color:var(--ink-soft)}
.cap-grid{margin-top:12px}
.cap-q{font-weight:700;background:var(--mask-blue);color:#fff;padding:8px 10px;font-size:14px}
.cap-tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:4px;margin-top:4px}
.cap-tiles button{aspect-ratio:1;border:0;background:#e7e2d6;font-size:2rem;border-radius:2px}
.cap-tiles button[aria-pressed="true"]{outline:4px solid var(--mask-blue);outline-offset:-4px;background:#d6e4ff}
.cap-verify{margin-top:8px;border:0;background:var(--mask-blue);color:#fff;font-weight:700;padding:8px 16px;border-radius:2px;float:right}
.cap-grid::after{content:"";display:block;clear:both}
.cap-note{margin-top:8px;font-size:13px;color:var(--ink-soft)}
.captcha.passed .cap-note{color:#126236;font-weight:600}

/* ---------- cookie + toast ---------- */
.cookie{position:fixed;left:16px;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));max-width:360px;background:var(--mask-surface);border:1px solid var(--mask-line);border-radius:18px;box-shadow:var(--mask-shadow);padding:14px 16px;z-index:70;font-size:14.5px;display:grid;gap:10px}
@media (min-width:1080px){ .cookie{left:calc(var(--sidebar) + 16px)} }
.cookie b{font-weight:900}
.cookie-btns{display:flex;gap:8px}
.cookie-btns button{border:0;border-radius:999px;padding:8px 18px;font-weight:800;font-size:14px;background:var(--grad);color:#fff}
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));transform:translate(-50%,calc(100% + 40px));visibility:hidden;max-width:min(460px,calc(100vw - 32px));background:var(--core-bg);color:var(--core-fg);font-family:var(--f-core);font-size:13px;line-height:1.5;padding:11px 15px;border-radius:10px;z-index:80;transition:transform .25s ease,visibility 0s linear .25s;pointer-events:none}
.toast.show{transform:translate(-50%,0);visibility:visible;transition:transform .25s ease}
@media (min-width:1080px){ .toast{left:calc(50% + var(--sidebar) / 2)} }

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
  .ticker-track{flex-wrap:wrap;width:auto}
  .ticker-track .dup{display:none}
}
