/* Night mode only: the site is always dark. */
:root {
  --bg:#06121B; --blob-a:rgba(60,100,255,.30); --blob-b:rgba(0,200,170,.17); --blob-c:rgba(201,162,75,.13);
  --ink:#EAF0F6; --ink-2:#A3B3C4; --ink-3:#6F8297;
  --glass:rgba(17,35,51,.56); --glass-strong:rgba(17,35,51,.82); --line:rgba(255,255,255,.09);
  --accent:#86A1FF; --accent-soft:rgba(134,161,255,.14); --brass:#D7B365;
  --up:#34D399; --up-soft:rgba(52,211,153,.14); --down:#FF6B72; --down-soft:rgba(255,107,114,.14); --mix:#F2B84B; --mix-soft:rgba(242,184,75,.15);
  --shadow:0 1px 0 rgba(255,255,255,.05) inset, 0 14px 34px -14px rgba(0,0,0,.65);
  --shadow-hero:0 1px 0 rgba(255,255,255,.07) inset, 0 36px 70px -30px rgba(0,0,0,.85);
  --r-lg:26px; --r-md:18px; --r-sm:12px;
  color-scheme: dark;
}

* { box-sizing:border-box; }
html { -webkit-text-size-adjust:100%; scroll-behavior:smooth; }
body {
  margin:0; background:var(--bg); color:var(--ink);
  font:400 16px/1.6 Heebo, system-ui, -apple-system, "Segoe UI", Arial, sans-serif;
  -webkit-font-smoothing:antialiased; text-rendering:optimizeLegibility;
  transition:background-color .35s ease, color .35s ease;
  padding-bottom:calc(84px + env(safe-area-inset-bottom));
}
.num, [dir="ltr"] { unicode-bidi:isolate; font-variant-numeric:tabular-nums; }
.sr { position:absolute; width:1px; height:1px; margin:-1px; padding:0; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; border:0; }
html, body { overflow-x:clip; }
a { color:inherit; }
button { font:inherit; color:inherit; }
:focus-visible { outline:2px solid var(--accent); outline-offset:3px; border-radius:8px; }

/* ambient background */
.bg { position:fixed; inset:0; z-index:-1; overflow:hidden; pointer-events:none; }
.bg i { position:absolute; width:62vmax; height:62vmax; border-radius:50%; filter:blur(70px); }
.bg i:nth-child(1) { background:var(--blob-a); top:-24vmax; inset-inline-start:-16vmax; }
.bg i:nth-child(2) { background:var(--blob-b); top:30vh; inset-inline-end:-26vmax; }
.bg i:nth-child(3) { background:var(--blob-c); bottom:-30vmax; inset-inline-start:10vw; }

.glass {
  background:var(--glass); border:1px solid var(--line); box-shadow:var(--shadow);
  -webkit-backdrop-filter:blur(22px) saturate(1.5); backdrop-filter:blur(22px) saturate(1.5);
}
.wrap { max-width:1120px; margin:0 auto; padding:0 16px; }

/* top bar */
.bar { position:sticky; top:0; z-index:20; border-width:0 0 1px; border-radius:0; }
.bar .wrap { display:flex; align-items:center; gap:14px; height:60px; }
.brand { display:flex; align-items:center; gap:10px; text-decoration:none; flex:none; }
.mark { width:34px; height:34px; border-radius:10px; display:grid; place-items:center;
  background:linear-gradient(145deg, var(--ink), color-mix(in srgb, var(--ink) 70%, var(--accent))); color:var(--bg); }
.brand b { font:900 1.2rem/1 "Frank Ruhl Libre", serif; letter-spacing:.01em; }
.brand small { display:block; font-size:.72rem; color:var(--ink-3); margin-top:3px; letter-spacing:.02em; text-align:start; }
.desk-nav { display:none; gap:2px; margin-inline-start:12px; }
.desk-nav a { padding:7px 13px; border-radius:999px; text-decoration:none; color:var(--ink-2); font-weight:500; font-size:.94rem; transition:background .2s, color .2s; }
.desk-nav a:hover { background:var(--accent-soft); color:var(--ink); }
.desk-nav a[aria-current] { background:var(--ink); color:var(--bg); }
.search { flex:1; min-width:0; position:relative; max-width:380px; margin-inline-start:auto; }
.search input { width:100%; height:38px; border-radius:999px; border:1px solid var(--line); background:var(--glass-strong); color:var(--ink);
  padding:0 40px 0 14px; font:inherit; font-size:.94rem; transition:box-shadow .2s, border-color .2s; }
.search input::placeholder { color:var(--ink-3); }
.search input:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); }
.search svg { position:absolute; inset-inline-start:auto; right:13px; top:50%; translate:0 -50%; width:16px; height:16px; color:var(--ink-3); pointer-events:none; }
.icon-btn { flex:none; width:38px; height:38px; border-radius:50%; border:1px solid var(--line); background:var(--glass-strong); cursor:pointer; display:grid; place-items:center; transition:transform .15s; }
.icon-btn:active { transform:scale(.92); }

/* running ticker tape */
.tape { overflow:hidden; direction:ltr; border-top:1px solid var(--line);
  -webkit-mask-image:linear-gradient(90deg, transparent, #000 36px, #000 calc(100% - 36px), transparent);
          mask-image:linear-gradient(90deg, transparent, #000 36px, #000 calc(100% - 36px), transparent); }
.tape-track { display:flex; width:max-content; animation:tape 70s linear infinite; }
.tape:hover .tape-track, .tape:focus-within .tape-track { animation-play-state:paused; }
@keyframes tape { to { transform:translateX(-50%); } }
.t-item { display:flex; align-items:center; gap:8px; padding:7px 20px; font-size:.84rem; white-space:nowrap; text-decoration:none; position:relative; }
.t-item::after { content:""; position:absolute; right:0; top:25%; bottom:25%; width:1px; background:var(--line); }
.t-item b { font-weight:800; }
.t-item .p { color:var(--ink-2); font-variant-numeric:tabular-nums; }
.t-item .c { font-weight:700; font-variant-numeric:tabular-nums; }
.t-item .c.up { color:var(--up); } .t-item .c.down { color:var(--down); }
.t-item:hover { background:var(--accent-soft); }
@media (prefers-reduced-motion: reduce) { .tape { overflow-x:auto; } .tape-track > [aria-hidden="true"] { display:none; } }


/* hero */
.hero { position:relative; margin-top:14px; border-radius:var(--r-lg); overflow:hidden; box-shadow:var(--shadow-hero); }
.hero-art { position:absolute; inset:0; width:100%; height:100%; opacity:.9; }
.hero-in { position:relative; display:grid; gap:22px; padding:26px 20px 22px; }
.when { display:flex; flex-wrap:wrap; align-items:center; gap:8px 10px; color:var(--ink-2); font-size:.92rem; }
.when .pill { display:inline-flex; align-items:center; gap:6px; padding:4px 11px; border-radius:999px; background:var(--glass-strong); border:1px solid var(--line); font-weight:600; color:var(--ink); }
.pulse { width:8px; height:8px; border-radius:50%; background:var(--up); box-shadow:0 0 0 0 var(--up); animation:pulse 2.2s infinite; }
@keyframes pulse { 70% { box-shadow:0 0 0 9px transparent; } 100% { box-shadow:0 0 0 0 transparent; } }
.hero h1 { margin:10px 0 8px; font:900 clamp(1.9rem, 6.4vw, 3.2rem)/1.12 "Frank Ruhl Libre", serif; letter-spacing:-.01em; max-width:20ch; text-wrap:balance; }
.hero p.lead { margin:0; color:var(--ink-2); font-size:1.04rem; max-width:46ch; }
.mood { background:var(--glass-strong); border:1px solid var(--line); border-radius:var(--r-md); padding:14px 14px 12px;
  -webkit-backdrop-filter:blur(18px); backdrop-filter:blur(18px); }
.mood-head { display:flex; justify-content:space-between; align-items:baseline; margin-bottom:8px; }
.mood-head h2 { margin:0; font-size:.95rem; font-weight:800; }
.mood-head span { font-size:.8rem; color:var(--ink-3); }
.m-row { display:grid; grid-template-columns:112px 1fr 58px; align-items:center; gap:10px; padding:5px 0; font-size:.9rem; }
.m-row .nm { color:var(--ink-2); font-weight:500; }
.m-bar { position:relative; height:8px; border-radius:99px; background:color-mix(in srgb, var(--ink) 8%, transparent); direction:ltr; }
.m-bar::before { content:""; position:absolute; left:50%; top:-3px; bottom:-3px; width:1px; background:var(--ink-3); opacity:.45; }
.m-bar b { position:absolute; top:0; bottom:0; border-radius:99px; width:0; transition:width 1s cubic-bezier(.2,.8,.2,1); }
.m-bar b.up { left:50%; background:var(--up); }
.m-bar b.down { right:50%; background:var(--down); }
.m-val { text-align:end; font-weight:700; direction:ltr; }
.up-t { color:var(--up); } .down-t { color:var(--down); }
.vix { display:flex; align-items:center; justify-content:space-between; gap:10px; margin-top:8px; padding-top:10px; border-top:1px solid var(--line); font-size:.9rem; }
.vix .tag { padding:2px 10px; border-radius:99px; background:var(--up-soft); color:var(--up); font-weight:600; font-size:.82rem; }

/* sections */
section.block { margin-top:34px; }
.sec-head { display:flex; align-items:baseline; justify-content:space-between; gap:12px; margin-bottom:12px; }
.sec-head h2 { margin:0; font:800 1.35rem/1.2 Heebo, sans-serif; }
.sec-head span { color:var(--ink-3); font-size:.88rem; }

/* stories */
.stories { display:grid; gap:12px; }
.story { display:grid; gap:8px; padding:16px; border-radius:var(--r-md); transition:transform .25s cubic-bezier(.2,.8,.2,1), box-shadow .25s; text-decoration:none; }
@media (hover:hover) { .story:hover { transform:translateY(-2px); } }
.story h3 { margin:0; font:700 1.08rem/1.35 Heebo, sans-serif; }
.story.lead-story h3 { font:900 1.5rem/1.25 "Frank Ruhl Libre", serif; }
.story p { margin:0; color:var(--ink-2); font-size:.96rem; }
.meta { display:flex; flex-wrap:wrap; align-items:center; gap:8px; font-size:.82rem; color:var(--ink-3); }
.bias { display:inline-flex; align-items:center; gap:6px; padding:2px 10px; border-radius:99px; font-weight:600; font-size:.8rem; }
.bias.pos { background:var(--up-soft); color:var(--up); } .bias.neg { background:var(--down-soft); color:var(--down); }
.bias.mix { background:var(--mix-soft); color:var(--mix); } .bias.unk { background:color-mix(in srgb, var(--ink) 8%, transparent); color:var(--ink-2); }
.tk { display:inline-block; padding:1px 8px; border-radius:7px; background:var(--accent-soft); color:var(--accent); font-weight:700; font-size:.8rem; direction:ltr; }
.src-link { margin-inline-start:auto; color:var(--accent); font-weight:600; text-decoration:none; }

/* events */
.cols { display:grid; gap:12px; }
.panel { padding:16px; border-radius:var(--r-md); }
.seg { display:inline-flex; padding:3px; border-radius:99px; background:color-mix(in srgb, var(--ink) 7%, transparent); margin-bottom:12px; }
.seg button { border:0; background:transparent; padding:6px 16px; border-radius:99px; cursor:pointer; color:var(--ink-2); font-weight:600; font-size:.9rem; transition:background .2s, color .2s; }
.seg button[aria-pressed="true"] { background:var(--glass-strong); color:var(--ink); box-shadow:0 1px 4px rgba(0,0,0,.12); }
.ev { display:grid; grid-template-columns:58px 1fr auto; gap:10px; align-items:center; padding:10px 0; border-top:1px solid var(--line); }
.ev:first-of-type { border-top:0; }
.ev time { font-weight:800; direction:ltr; text-align:start; }
.ev .t { font-weight:600; }
.ev .s { display:block; color:var(--ink-3); font-size:.84rem; }
.dots { display:inline-flex; gap:3px; }
.dots i { width:7px; height:7px; border-radius:50%; background:color-mix(in srgb, var(--ink) 16%, transparent); }
.dots i.on { background:var(--down); }
.dots.mid i.on { background:var(--mix); }
.earn { display:flex; flex-wrap:wrap; gap:8px; }
.earn .e { display:inline-flex; align-items:center; gap:7px; padding:6px 12px; border-radius:12px; background:color-mix(in srgb, var(--ink) 5%, transparent); border:1px solid var(--line); font-size:.88rem; }
.earn .e b { direction:ltr; }

/* movers */
.filters { display:flex; flex-wrap:wrap; gap:8px; margin-bottom:12px; }
.chip { border:1px solid var(--line); background:var(--glass); padding:6px 14px; border-radius:99px; cursor:pointer; font-weight:600; font-size:.9rem; color:var(--ink-2); transition:all .2s; }
.chip:hover { color:var(--ink); }
.chip[aria-pressed="true"] { background:var(--ink); color:var(--bg); border-color:var(--ink); }
.movers { display:grid; gap:10px; }
.mover { display:grid; gap:8px; padding:14px 16px; border-radius:var(--r-md); }
.mv-top { display:flex; align-items:center; gap:10px; }
.mv-top .sym { font:800 1.15rem/1 Heebo, sans-serif; direction:ltr; }
.mv-top .nm { color:var(--ink-3); font-size:.86rem; flex:1; min-width:0; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }
.pct { font-weight:800; padding:3px 11px; border-radius:99px; direction:ltr; font-size:.92rem; }
.pct.up { background:var(--up-soft); color:var(--up); } .pct.down { background:var(--down-soft); color:var(--down); }
.mover .why { margin:0; color:var(--ink-2); font-size:.95rem; }
.mv-foot { display:flex; align-items:center; gap:12px; }
.range { flex:1; direction:ltr; }
.track { position:relative; height:6px; border-radius:99px; background:color-mix(in srgb, var(--ink) 10%, transparent); margin:7px 0 4px; }
.track .fill { position:absolute; top:0; bottom:0; border-radius:99px; background:linear-gradient(90deg, color-mix(in srgb, var(--down) 55%, transparent), color-mix(in srgb, var(--up) 55%, transparent)); }
.track .pc { position:absolute; top:-4px; bottom:-4px; width:2px; background:var(--ink-3); border-radius:2px; }
.track .op { position:absolute; top:-2px; width:10px; height:10px; translate:-50% 0; border-radius:50%; border:2px solid var(--ink-2); background:var(--bg); }
.track .now { position:absolute; top:-4px; width:14px; height:14px; translate:-50% 0; border-radius:50%; border:3px solid var(--bg); box-shadow:0 0 0 1px var(--line); }
.track .now.up { background:var(--up); } .track .now.down { background:var(--down); }
.range .lh { display:flex; justify-content:space-between; font-size:.74rem; color:var(--ink-3); }
.vol { flex:none; padding:2px 9px; border-radius:99px; font-size:.78rem; font-weight:700; background:var(--accent-soft); color:var(--accent); direction:ltr; }
.empty { padding:26px; text-align:center; color:var(--ink-3); }
.legend { margin:10px 2px 0; color:var(--ink-3); font-size:.8rem; }

footer { margin:44px 0 20px; text-align:center; color:var(--ink-3); font-size:.88rem; }
footer b { color:var(--ink-2); }

/* mobile tab bar */
.tabbar { position:fixed; inset-inline:12px; bottom:calc(10px + env(safe-area-inset-bottom)); z-index:30; border-radius:24px; display:flex; padding:6px; }
.tabbar a { flex:1; display:grid; justify-items:center; gap:1px; padding:6px 2px; border-radius:18px; text-decoration:none; font-size:.7rem; color:var(--ink-3); font-weight:600; transition:background .2s, color .2s; }
.tabbar a span { font-size:1.25rem; line-height:1.2; }
.tabbar a[aria-current] { background:var(--ink); color:var(--bg); }

@media (min-width: 820px) {
  .desk-nav { display:flex; }
  .tabbar { display:none; }
  body { padding-bottom:20px; }
  .hero-in { grid-template-columns:1.25fr 1fr; align-items:end; padding:42px 38px 34px; gap:34px; }
  .stories { grid-template-columns:repeat(2, 1fr); }
  .story.lead-story { grid-column:1 / -1; padding:22px; }
  .cols { grid-template-columns:1fr 1fr; }
  .movers { grid-template-columns:repeat(2, 1fr); }
}
@media (prefers-reduced-motion: reduce) {
  * { animation:none !important; transition:none !important; scroll-behavior:auto !important; }
}

/* ===================== additions for the full site ===================== */
.spark { width:100%; height:34px; display:block; direction:ltr; }
.spark .line { fill:none; stroke-width:1.8; stroke-linejoin:round; stroke-linecap:round; }
.spark .line.up { stroke:var(--up); } .spark .line.down { stroke:var(--down); }
.spark .area.up { fill:var(--up-soft); } .spark .area.down { fill:var(--down-soft); }
.spark .base { stroke:var(--ink-3); stroke-width:1; stroke-dasharray:3 3; opacity:.6; }
.mv-name { display:flex; flex-direction:column; min-width:0; flex:1; }
.mv-name .px { color:var(--ink-3); font-size:.82rem; direction:ltr; text-align:start; }
.chart-cap { display:flex; justify-content:space-between; color:var(--ink-3); font-size:.74rem; direction:ltr; }
.vol-note { color:var(--ink-3); font-size:.8rem; }

.page-title { margin:22px 0 4px; font:900 clamp(1.7rem, 5vw, 2.5rem)/1.15 "Frank Ruhl Libre", serif; }
.page-sub { margin:0 0 18px; color:var(--ink-2); max-width:60ch; }
.seg-links { display:inline-flex; padding:3px; border-radius:99px; background:color-mix(in srgb, var(--ink) 7%, transparent); margin:0 0 16px; }
.seg-links a { padding:6px 16px; border-radius:99px; text-decoration:none; color:var(--ink-2); font-weight:600; font-size:.9rem; }
.seg-links a[aria-current] { background:var(--glass-strong); color:var(--ink); box-shadow:0 1px 4px rgba(0,0,0,.25); }

/* analyst */
.a-list { display:grid; gap:14px; }
.a-card { padding:18px; border-radius:var(--r-lg); border-inline-start:5px solid var(--unk, var(--ink-3)); scroll-margin-top:130px; }
.a-card.pos { border-inline-start-color:var(--up); } .a-card.neg { border-inline-start-color:var(--down); } .a-card.mix { border-inline-start-color:var(--mix); }
.a-head { display:flex; flex-wrap:wrap; align-items:center; gap:8px 12px; }
.a-head .sym { font:800 1.5rem/1 Heebo, sans-serif; direction:ltr; }
.a-head .nm { color:var(--ink-3); font-size:.9rem; flex:1; min-width:0; }
.a-story { margin:10px 0 6px; font:900 1.25rem/1.3 "Frank Ruhl Libre", serif; }
.a-card p { margin:6px 0; }
.a-grid { display:grid; gap:10px; margin:12px 0; }
.scn { padding:12px 14px; border-radius:var(--r-md); border:1px solid var(--line); }
.scn h4 { margin:0 0 4px; font-size:.95rem; }
.scn p { margin:0; font-size:.95rem; color:var(--ink-2); }
.scn.bull { background:var(--up-soft); border-color:color-mix(in srgb, var(--up) 30%, transparent); }
.scn.bull h4 { color:var(--up); }
.scn.bear { background:var(--down-soft); border-color:color-mix(in srgb, var(--down) 30%, transparent); }
.scn.bear h4 { color:var(--down); }
.levels { display:flex; flex-wrap:wrap; gap:8px; margin:6px 0 4px; }
.lv { display:inline-flex; flex-direction:column; padding:6px 12px; border-radius:12px; background:color-mix(in srgb, var(--ink) 6%, transparent); border:1px solid var(--line); min-width:92px; }
.lv span { color:var(--ink-3); font-size:.74rem; }
.lv b { direction:ltr; font-variant-numeric:tabular-nums; text-align:start; }
.sub-h { margin:14px 0 4px; font-size:.95rem; font-weight:800; }
.news-line { display:flex; gap:8px; margin:6px 0; }
.news-line a { color:inherit; text-decoration-color:var(--accent); text-underline-offset:3px; }

/* weekly / weekend */
.w-list { display:grid; gap:12px; }
.w-card { padding:16px; border-radius:var(--r-md); }
.w-card h3 { margin:0; font:800 1.1rem/1.3 Heebo, sans-serif; display:flex; gap:10px; align-items:center; flex-wrap:wrap; }
.w-card h3 .sym { direction:ltr; }
.w-card p { margin:6px 0 0; color:var(--ink-2); }
.themes { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 16px; }
.theme { padding:6px 14px; border-radius:99px; background:var(--accent-soft); color:var(--accent); font-weight:600; font-size:.9rem; }
.cal-day { padding:14px 16px; border-radius:var(--r-md); }
.cal-day h3 { margin:0 0 6px; font-size:1rem; }
.cal-it { display:flex; gap:10px; padding:5px 0; border-top:1px solid var(--line); font-size:.94rem; }
.cal-it:first-of-type { border-top:0; }
.cal-it time { min-width:48px; font-weight:700; direction:ltr; }
.cal-it .k { color:var(--ink-3); font-size:.78rem; }
.perf { display:grid; gap:2px; }
.tbl { width:100%; border-collapse:collapse; font-size:.94rem; }
.tbl th { text-align:start; color:var(--ink-3); font-weight:600; font-size:.8rem; padding:6px 8px; border-bottom:1px solid var(--line); }
.tbl td { padding:10px 8px; border-bottom:1px solid var(--line); vertical-align:top; }
.tbl td.s { font-weight:800; direction:ltr; text-align:start; }
.tbl td.n { direction:ltr; text-align:start; font-variant-numeric:tabular-nums; }
.tbl-wrap { overflow-x:auto; -webkit-overflow-scrolling:touch; }
.review-sum { font-size:1.05rem; color:var(--ink-2); max-width:62ch; }

/* sentiment */
.src-grid { display:grid; gap:10px; margin-bottom:16px; }
.src { display:flex; align-items:center; gap:12px; padding:14px 16px; border-radius:var(--r-md); }
.src .st { margin-inline-start:auto; padding:2px 12px; border-radius:99px; font-size:.8rem; font-weight:700; }
.st.ok { background:var(--up-soft); color:var(--up); } .st.unavailable { background:var(--down-soft); color:var(--down); } .st.planned { background:var(--accent-soft); color:var(--accent); }
.src small { display:block; color:var(--ink-3); }
.bar2 { display:flex; height:8px; border-radius:99px; overflow:hidden; background:color-mix(in srgb, var(--ink) 8%, transparent); min-width:90px; direction:ltr; }
.bar2 i { display:block; height:100%; } .bar2 .b { background:var(--up); } .bar2 .r { background:var(--down); }
.pill-tr { display:inline-block; padding:1px 8px; border-radius:99px; background:var(--accent-soft); color:var(--accent); font-size:.76rem; font-weight:700; }

/* archive */
.arch-tools { display:flex; flex-wrap:wrap; gap:10px; align-items:center; margin-bottom:14px; }
.arch-search { flex:1; min-width:220px; height:44px; border-radius:99px; border:1px solid var(--line); background:var(--glass-strong); color:var(--ink); padding:0 18px; font:inherit; }
.arch-search:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 4px var(--accent-soft); }
.arch-list { list-style:none; margin:0; padding:0; display:grid; gap:8px; }
.arch-list a { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 14px; padding:12px 16px; border-radius:var(--r-md); text-decoration:none; }
.arch-list .d { font-weight:700; }
.arch-list .t { color:var(--ink-3); font-size:.84rem; direction:ltr; }
.arch-list .h { flex-basis:100%; color:var(--ink-2); font-size:.9rem; }

/* header search dropdown */
.search-pop { position:absolute; top:44px; inset-inline:0; z-index:40; border-radius:var(--r-md); padding:6px; max-height:60vh; overflow:auto; }
.search-pop a { display:block; padding:9px 12px; border-radius:10px; text-decoration:none; }
.search-pop a:hover, .search-pop a:focus { background:var(--accent-soft); }
.search-pop small { color:var(--ink-3); display:block; }
.search-pop[hidden] { display:none; }

.sample-banner { margin:14px 0 0; padding:8px 14px; border-radius:var(--r-sm); background:var(--mix-soft); color:var(--mix); font-size:.86rem; font-weight:500; }
.degraded { margin:14px 0 0; padding:8px 14px; border-radius:var(--r-sm); background:var(--down-soft); color:var(--down); font-size:.88rem; font-weight:600; }
.fail { color:var(--ink-3); font-size:.82rem; margin:18px 0 0; }

@media (min-width: 820px) {
  .a-grid { grid-template-columns:1fr 1fr; }
  .src-grid { grid-template-columns:repeat(3, 1fr); }
  .w-list { grid-template-columns:repeat(2, 1fr); }
}
