/* ============================================================
   Neuro Atlas — the binding around a hundred plates.
   Tokens deliberately match the demos, so the frame disappears.
   ============================================================ */

:root{
  --paper:#E7EBEE; --sheet:#F7F8F9; --plate:#FBFCFC;
  --ink:#15202B; --ink-2:#55616D; --ink-3:#7F8B96;
  --rule:#C9D1D8; --hair:#DDE3E7; --tint:#E1E7EB;
  --mark:#1F5E8C;            /* instrument blue: the one accent */
  --mark-soft:#DCE7F0;
  --live:#2E7A4E;            /* semantic: this plate exists */
  --live-soft:#DCEAE1;
  --star:#9A6A0E;            /* the fifteen to build first */
  --contested:#7B4BB3;       /* the dagger: models still argued over */
  --warn:#B0431F;
  --shadow:10 20 28;
  --sans:"IBM Plex Sans Condensed","Arial Narrow","Helvetica Neue",Arial,sans-serif;
  --serif:"Source Serif 4",Georgia,"Times New Roman",serif;
  --rail:232px; --chrome:52px;
  color-scheme:light;
}
@media (prefers-color-scheme:dark){
  :root:not([data-theme="light"]){
    --paper:#0F1519; --sheet:#161F25; --plate:#131B20;
    --ink:#E4E9ED; --ink-2:#93A0AA; --ink-3:#74828C;
    --rule:#2A353D; --hair:#212B32; --tint:#1C252B;
    --mark:#6FA8D8; --mark-soft:#1B2C3A;
    --live:#5CBC86; --live-soft:#173026;
    --star:#DFAB4A; --contested:#B08BE6; --warn:#EE8A6B;
    --shadow:0 0 0;
    color-scheme:dark;
  }
}
:root[data-theme="dark"]{
  --paper:#0F1519; --sheet:#161F25; --plate:#131B20;
  --ink:#E4E9ED; --ink-2:#93A0AA; --ink-3:#74828C;
  --rule:#2A353D; --hair:#212B32; --tint:#1C252B;
  --mark:#6FA8D8; --mark-soft:#1B2C3A;
  --live:#5CBC86; --live-soft:#173026;
  --star:#DFAB4A; --contested:#B08BE6; --warn:#EE8A6B;
  --shadow:0 0 0;
  color-scheme:dark;
}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;height:100%}
body{
  margin:0;height:100%;overflow:hidden;
  background:var(--paper);color:var(--ink);
  font-family:var(--serif);font-size:16.5px;line-height:1.55;
  font-optical-sizing:auto;
  -webkit-tap-highlight-color:transparent;
}
button,input,select,textarea{font:inherit;color:inherit}
a{color:var(--mark)}
:focus-visible{outline:2px solid var(--mark);outline-offset:2px;border-radius:3px}
:focus:not(:focus-visible){outline:none}
[hidden]{display:none !important}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}

/* ============================ frame ============================ */
.app{
  display:grid;height:100%;
  grid-template-columns:var(--rail) minmax(0,1fr);
  grid-template-areas:"rail main";
}
@media (max-width:899px){
  .app{grid-template-columns:minmax(0,1fr);grid-template-rows:auto minmax(0,1fr) auto;
       grid-template-areas:"top" "main" "tabs"}
}

/* ---------------------------- rail ---------------------------- */
.rail{
  grid-area:rail;display:flex;flex-direction:column;min-height:0;
  background:var(--sheet);border-right:1px solid var(--rule);
  padding-top:env(safe-area-inset-top,0px);
}
.brand{display:flex;align-items:center;gap:10px;padding:16px 16px 12px;text-decoration:none;color:inherit}
.brand svg{flex:none}
.brand b{display:block;font-family:var(--sans);font-weight:600;font-size:15px;letter-spacing:.01em;line-height:1.15}
.brand span{display:block;font-family:var(--sans);font-size:12px;color:var(--ink-3);line-height:1.3;
  font-variant-numeric:tabular-nums}

.railnav{display:flex;flex-direction:column;gap:1px;padding:0 10px 10px}
.railnav a{
  display:flex;align-items:center;gap:9px;padding:7px 9px;border-radius:7px;
  font-family:var(--sans);font-size:14.5px;color:var(--ink-2);text-decoration:none;
}
.railnav a:hover{background:var(--tint);color:var(--ink)}
.railnav a[aria-current="page"]{background:var(--ink);color:var(--plate)}
.railnav a svg{flex:none;opacity:.85}
.railnav .count{margin-left:auto;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.railnav a[aria-current="page"] .count{color:var(--plate);opacity:.65}

.railsecs{flex:1;overflow-y:auto;overscroll-behavior:contain;padding:4px 10px 14px;
  border-top:1px solid var(--hair);scrollbar-width:thin}
.railsecs h3{font-family:var(--sans);font-size:11px;font-weight:600;letter-spacing:.09em;
  text-transform:uppercase;color:var(--ink-3);margin:12px 9px 6px}
.railsecs button{
  display:grid;grid-template-columns:2.9em minmax(0,1fr);gap:8px;align-items:baseline;
  width:100%;text-align:left;background:none;border:0;border-radius:7px;
  padding:5px 9px;cursor:pointer;font-family:var(--sans);font-size:13.5px;color:var(--ink-2);line-height:1.25;
}
.railsecs button:hover{background:var(--tint);color:var(--ink)}
.railsecs button .rn{font-variant-numeric:tabular-nums;font-size:12px;color:var(--ink-3)}
.railsecs button .rb{width:100%;height:3px;border-radius:2px;background:var(--hair);
  grid-column:2;margin-top:3px;overflow:hidden}
.railsecs button .rb i{display:block;height:100%;background:var(--live);border-radius:2px}

.railfoot{padding:10px 14px calc(12px + env(safe-area-inset-bottom,0px));
  border-top:1px solid var(--hair);display:flex;gap:6px;align-items:center;flex-wrap:wrap}

/* --------------------- mobile top and tabs --------------------- */
.topbar,.tabbar{display:none}
@media (max-width:899px){
  .rail{position:fixed;inset:0 auto 0 0;width:min(86vw,300px);z-index:60;
    transform:translateX(-102%);transition:transform .22s ease;
    box-shadow:0 0 40px -8px rgb(var(--shadow) / .45)}
  body.rail-open .rail{transform:none}
  .scrim{position:fixed;inset:0;z-index:55;background:rgb(var(--shadow) / .42);
    opacity:0;pointer-events:none;transition:opacity .22s}
  body.rail-open .scrim{opacity:1;pointer-events:auto}
  .topbar{grid-area:top;display:flex;align-items:center;gap:8px;
    padding:calc(6px + env(safe-area-inset-top,0px)) 10px 6px;
    background:var(--sheet);border-bottom:1px solid var(--rule)}
  .topbar .ttl{flex:1;min-width:0;font-family:var(--sans);font-size:15px;font-weight:600;
    white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
  .tabbar{grid-area:tabs;display:grid;grid-template-columns:repeat(4,1fr);
    background:var(--sheet);border-top:1px solid var(--rule);
    padding-bottom:env(safe-area-inset-bottom,0px)}
  .tabbar a{display:flex;flex-direction:column;align-items:center;gap:2px;padding:7px 2px 6px;
    font-family:var(--sans);font-size:11px;color:var(--ink-3);text-decoration:none}
  .tabbar a[aria-current="page"]{color:var(--mark)}
  .tabbar a svg{opacity:.9}
}

/* ---------------------------- main ---------------------------- */
.main{grid-area:main;min-width:0;min-height:0;overflow:hidden;position:relative;display:flex;flex-direction:column}
.scroller{flex:1;min-height:0;overflow-y:auto;overscroll-behavior:contain;scroll-behavior:smooth}
@media (prefers-reduced-motion:reduce){.scroller{scroll-behavior:auto}}
.wrap{max-width:1080px;margin:0 auto;padding:26px 20px 64px}
@media (max-width:560px){.wrap{padding:18px 14px 48px}}

/* ---------------------------- buttons ---------------------------- */
.btn{
  appearance:none;display:inline-flex;align-items:center;gap:6px;
  border:1px solid var(--rule);background:var(--plate);color:var(--ink);
  border-radius:7px;padding:6px 12px;cursor:pointer;
  font-family:var(--sans);font-size:14px;line-height:1.3;white-space:nowrap;
}
.btn:hover:not(:disabled){border-color:var(--ink)}
.btn[disabled]{opacity:.4;cursor:default}
.btn.primary{background:var(--ink);color:var(--plate);border-color:var(--ink)}
.btn.primary:hover:not(:disabled){filter:brightness(1.12)}
.btn.icon{padding:6px;min-width:34px;justify-content:center}
.btn.sm{padding:4px 9px;font-size:13px}
.seg{display:inline-flex;font-family:var(--sans)}
.seg button{appearance:none;border:1px solid var(--rule);background:var(--plate);color:var(--ink-2);
  padding:5px 10px;font-size:13.5px;cursor:pointer;margin-left:-1px;line-height:1.3;white-space:nowrap}
.seg button:first-child{border-radius:7px 0 0 7px;margin-left:0}
.seg button:last-child{border-radius:0 7px 7px 0}
.seg button[aria-pressed="true"]{background:var(--ink);color:var(--plate);border-color:var(--ink);
  position:relative;z-index:1}

/* ============================ atlas ============================ */
.masthead{max-width:66ch;margin:0 0 4px}
.masthead h1{font-family:var(--serif);font-weight:700;font-size:clamp(28px,5.4vw,42px);
  line-height:1.04;letter-spacing:-.018em;margin:0 0 10px;text-wrap:balance}
.masthead p{margin:0 0 9px;color:var(--ink-2);font-size:17px}
.masthead p.small{font-size:15px;color:var(--ink-3);font-family:var(--sans)}

.tally{display:flex;flex-wrap:wrap;gap:0;margin:20px 0 6px;
  border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:var(--sheet)}
.tally div{flex:1 1 128px;padding:11px 14px;border-left:1px solid var(--hair);min-width:0}
.tally div:first-child{border-left:0}
.tally b{display:block;font-family:var(--serif);font-weight:600;font-size:27px;line-height:1.05;
  font-variant-numeric:tabular-nums;letter-spacing:-.01em}
.tally span{display:block;font-family:var(--sans);font-size:12.5px;color:var(--ink-3);margin-top:2px}
.tally .done b{color:var(--live)}

.filters{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:18px 0 4px;
  position:sticky;top:0;z-index:5;padding:10px 0;background:linear-gradient(var(--paper) 72%,transparent)}
.searchwrap{position:relative;flex:1 1 200px;min-width:0;max-width:300px}
.searchwrap svg{position:absolute;left:9px;top:50%;transform:translateY(-50%);opacity:.5;pointer-events:none}
.searchwrap input{width:100%;padding:7px 10px 7px 30px;border:1px solid var(--rule);border-radius:7px;
  background:var(--plate);font-family:var(--sans);font-size:14px}
.searchwrap input::placeholder{color:var(--ink-3)}

/* ------- a section band, and the plates inside it ------- */
.band{margin:26px 0 0;scroll-margin-top:12px}
.band > header{display:flex;align-items:baseline;gap:10px;flex-wrap:wrap;
  padding-bottom:7px;border-bottom:1.5px solid var(--ink);margin-bottom:12px}
.band h2{font-family:var(--serif);font-weight:700;font-size:20px;line-height:1.2;margin:0;letter-spacing:-.008em}
.band .range{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);font-variant-numeric:tabular-nums;
  letter-spacing:.04em}
.band .made{margin-left:auto;font-family:var(--sans);font-size:12.5px;color:var(--ink-3);
  font-variant-numeric:tabular-nums}
.band > p{margin:-4px 0 14px;color:var(--ink-2);font-size:15.5px;max-width:64ch}

.plates{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(248px,1fr))}
@media (max-width:420px){.plates{grid-template-columns:minmax(0,1fr)}}

.plate-card{
  display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:12px;row-gap:3px;
  align-items:start;text-align:left;width:100%;
  border:1px solid var(--rule);border-radius:9px;background:var(--plate);
  padding:11px 13px 12px;cursor:pointer;position:relative;
  transition:border-color .13s,transform .13s;
}
.plate-card:hover{border-color:var(--ink);transform:translateY(-1px)}
@media (prefers-reduced-motion:reduce){.plate-card{transition:none}.plate-card:hover{transform:none}}
.plate-card .num{
  grid-row:1 / span 3;font-family:var(--serif);font-weight:600;font-size:25px;line-height:1;
  color:var(--ink-3);font-variant-numeric:tabular-nums;min-width:1.55em;padding-top:1px;
}
.plate-card h3{grid-column:2;margin:0;font-family:var(--serif);font-weight:600;font-size:15.5px;
  line-height:1.26;letter-spacing:-.004em}
.plate-card p{grid-column:2;margin:0;font-family:var(--sans);font-size:12.8px;line-height:1.38;
  color:var(--ink-3);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.plate-card .marks{grid-column:2;display:flex;gap:5px;align-items:center;flex-wrap:wrap;margin-top:2px}

.chip{display:inline-flex;align-items:center;gap:4px;border-radius:4px;padding:0 5px;
  font-family:var(--sans);font-size:11px;font-weight:600;line-height:1.65;letter-spacing:.02em;
  border:1px solid transparent}
.chip.live{color:var(--live);border-color:color-mix(in srgb,var(--live) 42%,transparent);background:var(--live-soft)}
.chip.star{color:var(--star);border-color:color-mix(in srgb,var(--star) 42%,transparent)}
.chip.dag{color:var(--contested);border-color:color-mix(in srgb,var(--contested) 42%,transparent)}
.chip.qn{color:var(--mark);border-color:color-mix(in srgb,var(--mark) 38%,transparent)}
.chip.seen{color:var(--ink-3);border-color:var(--rule)}

/* a plate that has not been made yet: ruled, but blank */
.plate-card.planned{background:transparent;border-style:dashed;cursor:default}
.plate-card.planned:hover{border-color:var(--rule);transform:none}
.plate-card.planned h3{color:var(--ink-2);font-weight:500}
.plate-card.planned .num{opacity:.55}

.plate-card.done::after{
  content:"";position:absolute;inset:-1px auto -1px -1px;width:3px;
  border-radius:9px 0 0 9px;background:var(--live);
}

.emptyhint{font-family:var(--sans);font-size:14px;color:var(--ink-3);padding:24px 0}

/* ============================ threads ============================ */
.thread{border:1px solid var(--rule);border-radius:10px;background:var(--sheet);
  padding:14px 16px 15px;margin:0 0 12px}
.thread h3{font-family:var(--serif);font-weight:700;font-size:18px;margin:0 0 4px}
.thread p{margin:0 0 10px;color:var(--ink-2);font-size:15.5px;max-width:64ch}
.thread .row{display:flex;flex-wrap:wrap;gap:6px}
.pill{appearance:none;display:inline-flex;align-items:baseline;gap:6px;border:1px solid var(--rule);
  background:var(--plate);border-radius:999px;padding:4px 11px 4px 8px;cursor:pointer;
  font-family:var(--sans);font-size:13px;color:var(--ink-2);max-width:100%}
.pill:hover{border-color:var(--ink);color:var(--ink)}
.pill b{font-variant-numeric:tabular-nums;color:var(--ink-3);font-weight:600;font-size:12px}
.pill.on{border-color:var(--live);background:var(--live-soft);color:var(--ink)}
.pill.off{opacity:.62;cursor:default}
.pill span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}

/* ============================ demo view ============================ */
.demoview{display:flex;flex-direction:column;height:100%;min-height:0;background:var(--paper)}
.chrome{
  display:flex;align-items:center;gap:8px;flex:none;min-height:var(--chrome);
  padding:7px 12px;background:var(--sheet);border-bottom:1px solid var(--rule);
}
@media (max-width:899px){.chrome{padding:6px 8px;min-height:46px}}
.chrome .who{flex:1;min-width:0;display:flex;align-items:baseline;gap:8px}
.chrome .who .n{font-family:var(--serif);font-weight:600;font-size:19px;color:var(--ink-3);
  font-variant-numeric:tabular-nums;flex:none}
.chrome .who .t{font-family:var(--sans);font-weight:600;font-size:15px;
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.chrome .who .s{font-family:var(--sans);font-size:12.5px;color:var(--ink-3);flex:none}
@media (max-width:1180px){.chrome .who .s{display:none}}
.chrome .depth{font-family:var(--sans);font-size:12px;color:var(--ink-3);margin-right:-3px}
@media (max-width:1100px){.chrome .depth{display:none}}
/* Below the rail's breakpoint the chrome is too tight for it, and each demo's
   own depth control takes over. app.js tells the demo which of them is live. */
@media (max-width:899px){.chrome .seg.depthseg{display:none}}

.frame{flex:1;min-height:0;position:relative;background:var(--paper)}
.frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
.loading{position:absolute;inset:0;display:grid;place-items:center;
  font-family:var(--sans);font-size:14px;color:var(--ink-3);pointer-events:none;
  transition:opacity .2s}
.loading[hidden]{display:none}
.spin{width:19px;height:19px;border-radius:50%;border:2px solid var(--rule);
  border-top-color:var(--mark);animation:spin .7s linear infinite;margin:0 auto 9px}
@keyframes spin{to{transform:rotate(1turn)}}
@media (prefers-reduced-motion:reduce){.spin{animation-duration:2.4s}}

/* the host refused to embed the model */
.blocked{position:absolute;inset:0;overflow-y:auto;padding:44px 22px;max-width:56ch;margin:0 auto}
.blocked .eyebrow{font-family:var(--sans);font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 8px}
.blocked h2{font-family:var(--serif);font-weight:700;font-size:26px;line-height:1.12;margin:0 0 12px;
  letter-spacing:-.014em}
.blocked p{margin:0 0 14px;color:var(--ink-2)}

/* a plate that is planned but not yet made */
.stub{max-width:62ch;margin:0 auto;padding:44px 20px}
.stub .eyebrow{font-family:var(--sans);font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:0 0 8px}
.stub h1{font-family:var(--serif);font-weight:700;font-size:clamp(25px,4.5vw,34px);
  line-height:1.1;margin:0 0 12px;letter-spacing:-.015em;text-wrap:balance}
.stub .lede{font-size:17px;color:var(--ink-2);margin:0 0 18px}
.stub .note{border-left:3px solid var(--rule);padding:2px 0 2px 14px;margin:0 0 20px;
  font-family:var(--sans);font-size:14.5px;color:var(--ink-3);line-height:1.5}
.stub h2{font-family:var(--sans);font-size:12px;letter-spacing:.09em;text-transform:uppercase;
  color:var(--ink-3);margin:22px 0 8px;font-weight:600}

/* ============================ quiz ============================ */
.quizwrap{max-width:720px;margin:0 auto;padding:24px 20px 72px}
@media (max-width:560px){.quizwrap{padding:16px 14px 56px}}

.qsetup h1{font-family:var(--serif);font-weight:700;font-size:clamp(25px,4.6vw,34px);
  line-height:1.08;margin:0 0 10px;letter-spacing:-.016em}
.qsetup > p{margin:0 0 16px;color:var(--ink-2);max-width:60ch}
.picker{border:1px solid var(--rule);border-radius:10px;background:var(--sheet);overflow:hidden;margin:0 0 14px}
.picker > header{display:flex;align-items:center;gap:8px;padding:9px 13px;border-bottom:1px solid var(--hair)}
.picker > header h2{flex:1;font-family:var(--sans);font-size:13px;font-weight:600;margin:0;
  letter-spacing:.06em;text-transform:uppercase;color:var(--ink-3)}
.picker .list{max-height:min(46vh,360px);overflow-y:auto;overscroll-behavior:contain}
.pickrow{display:flex;align-items:center;gap:10px;width:100%;padding:8px 13px;background:none;border:0;
  border-top:1px solid var(--hair);cursor:pointer;text-align:left;font-family:var(--sans);font-size:14px}
.pickrow:first-child{border-top:0}
.pickrow:hover{background:var(--tint)}
.pickrow .box{flex:none;width:16px;height:16px;border-radius:4px;border:1.5px solid var(--ink-3);
  display:grid;place-items:center}
.pickrow[aria-checked="true"] .box{background:var(--ink);border-color:var(--ink)}
.pickrow[aria-checked="true"] .box svg{display:block}
.pickrow .box svg{display:none}
.pickrow .lbl{flex:1;min-width:0;display:flex;align-items:baseline;gap:7px}
.pickrow .lbl i{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:12.5px;
  min-width:1.9em}
.pickrow .lbl span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.pickrow .qn{flex:none;font-size:12px;color:var(--ink-3);font-variant-numeric:tabular-nums}
.pickrow.sechead{background:var(--tint);font-weight:600;font-size:12px;letter-spacing:.06em;
  text-transform:uppercase;color:var(--ink-3);padding-top:6px;padding-bottom:6px;cursor:pointer}

.qopts{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:0 0 16px;
  font-family:var(--sans);font-size:14px;color:var(--ink-2)}
.startbar{display:flex;gap:10px;align-items:center;flex-wrap:wrap;
  padding:13px;border:1px solid var(--rule);border-radius:10px;background:var(--sheet)}
.startbar .n{font-family:var(--sans);font-size:14px;color:var(--ink-2);flex:1;min-width:140px}
.startbar .n b{font-variant-numeric:tabular-nums;color:var(--ink)}

/* ---- the question itself ---- */
.qhead{display:flex;align-items:center;gap:10px;margin:0 0 14px;font-family:var(--sans);font-size:13px;
  color:var(--ink-3)}
.qhead .bar{flex:1;height:4px;border-radius:2px;background:var(--hair);overflow:hidden}
.qhead .bar i{display:block;height:100%;background:var(--mark);transition:width .3s}
.qhead .sc{font-variant-numeric:tabular-nums}

.qcard{border:1px solid var(--rule);border-radius:11px;background:var(--sheet);padding:16px 18px 18px}
.qcard .src{display:flex;align-items:baseline;gap:8px;font-family:var(--sans);font-size:12.5px;
  color:var(--ink-3);margin:0 0 9px;flex-wrap:wrap}
.qcard .src b{color:var(--ink-2);font-weight:600}
.qcard .src .dot{opacity:.5}
.qcard h2{font-family:var(--serif);font-weight:600;font-size:19px;line-height:1.24;margin:0 0 6px;
  letter-spacing:-.006em;text-wrap:balance}
.qcard .setup{margin:0 0 12px;color:var(--ink-2);font-size:15.5px}
.qcard .stem{margin:0 0 14px;font-size:17px;line-height:1.45}

.answers{display:grid;gap:7px;margin:0 0 4px}
.answer{appearance:none;display:grid;grid-template-columns:auto minmax(0,1fr);gap:10px;align-items:start;
  text-align:left;border:1px solid var(--rule);background:var(--plate);border-radius:9px;
  padding:10px 12px;cursor:pointer;font-family:var(--sans);font-size:15px;line-height:1.38}
.answer:hover:not(:disabled){border-color:var(--ink)}
.answer:disabled{cursor:default}
.answer .key{flex:none;width:20px;height:20px;border-radius:50%;border:1.5px solid var(--ink-3);
  display:grid;place-items:center;font-size:11.5px;font-weight:600;color:var(--ink-3);margin-top:1px}
.answer[aria-pressed="true"]{border-color:var(--ink);box-shadow:inset 0 0 0 1px var(--ink)}
.answer[aria-pressed="true"] .key{background:var(--ink);color:var(--plate);border-color:var(--ink)}
.answer.right{border-color:var(--live);box-shadow:inset 3px 0 0 var(--live)}
.answer.partly{border-color:var(--star);box-shadow:inset 3px 0 0 var(--star)}
.answer.wrong[aria-pressed="true"]{border-color:var(--warn);box-shadow:inset 3px 0 0 var(--warn)}
.answer .tag{display:block;font-size:12.5px;margin-top:3px;font-weight:600}
.answer.right .tag{color:var(--live)}
.answer.partly .tag{color:var(--star)}
.answer.wrong .tag{color:var(--warn)}

.verdict{margin:15px 0 0;padding-top:14px;border-top:1px solid var(--hair)}
.verdict .v{font-family:var(--sans);font-weight:600;font-size:15px;margin:0 0 8px}
.verdict .v.ok{color:var(--live)} .verdict .v.part{color:var(--star)} .verdict .v.no{color:var(--warn)}
.verdict p{margin:0 0 11px;font-size:16px;line-height:1.5}
.verdict p:last-child{margin-bottom:0}
.verdict p.d2,.verdict p.d3{border-left:2px solid var(--rule);padding-left:13px}
.verdict p.d3{border-left-color:var(--ink-3);font-size:15.5px;color:var(--ink-2)}
.verdict .lvl{display:block;font-family:var(--sans);font-size:11.5px;letter-spacing:.07em;
  text-transform:uppercase;color:var(--ink-3);margin-bottom:2px}
.qactions{display:flex;flex-wrap:wrap;gap:9px;margin-top:16px;align-items:center}
.qactions .sp{flex:1}

/* ---- results ---- */
.result h1{font-family:var(--serif);font-weight:700;font-size:clamp(24px,4.4vw,32px);margin:0 0 4px;
  letter-spacing:-.015em}
.result .big{display:flex;align-items:baseline;gap:8px;margin:14px 0 18px}
.result .big b{font-family:var(--serif);font-weight:600;font-size:52px;line-height:1;
  font-variant-numeric:tabular-nums;letter-spacing:-.02em}
.result .big span{font-family:var(--sans);font-size:14px;color:var(--ink-3)}
.breakdown{border:1px solid var(--rule);border-radius:10px;overflow:hidden;background:var(--sheet);margin:0 0 16px}
.brow{display:grid;grid-template-columns:2.4em minmax(0,1fr) auto;gap:10px;align-items:center;
  padding:8px 13px;border-top:1px solid var(--hair);font-family:var(--sans);font-size:14px}
.brow:first-child{border-top:0}
.brow i{font-style:normal;font-variant-numeric:tabular-nums;color:var(--ink-3);font-size:12.5px}
.brow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.brow b{font-variant-numeric:tabular-nums;font-weight:600}
.brow.miss b{color:var(--warn)}

/* ============================ about ============================ */
.prose{max-width:66ch}
.prose h1{font-family:var(--serif);font-weight:700;font-size:clamp(25px,4.6vw,34px);margin:0 0 12px;
  letter-spacing:-.016em;line-height:1.08}
.prose h2{font-family:var(--serif);font-weight:700;font-size:19px;margin:26px 0 7px}
.prose p{margin:0 0 12px;color:var(--ink-2)}
.prose p strong{color:var(--ink)}
.prose ul{margin:0 0 14px;padding-left:19px;color:var(--ink-2)}
.prose li{margin:0 0 6px}
.prose code{font-family:var(--sans);font-size:.92em;background:var(--tint);border-radius:4px;padding:1px 5px}
.kbd{display:inline-block;font-family:var(--sans);font-size:12px;border:1px solid var(--rule);
  border-bottom-width:2px;border-radius:5px;padding:1px 6px;background:var(--plate);color:var(--ink-2)}

/* ============================ toast ============================ */
.toast{position:fixed;left:50%;bottom:calc(20px + env(safe-area-inset-bottom,0px));
  transform:translate(-50%,14px);z-index:90;
  padding:9px 16px;border-radius:999px;background:var(--ink);color:var(--plate);
  font-family:var(--sans);font-size:14px;opacity:0;pointer-events:none;transition:opacity .2s,transform .2s}
.toast.show{opacity:1;transform:translate(-50%,0)}
@media (max-width:899px){.toast{bottom:calc(72px + env(safe-area-inset-bottom,0px))}}
