/* Newsmap v2 -- Manna's interface language: warm monochrome shell, Inter/Mulish/Play type, white cards with a soft lift,
   score chips with an ambient glow (Buzz score + letter grade), per-letter "DNA" headlines, cloud / starfield sky.
   v1 (the original "modern" look) is kept in /classic/ and /root/.newsmap/versions/v1-modern/. */
:root {
  --bg:#fcfcfb; --card:#ffffff; --card-hover:#f7f6f3;
  --line:rgba(20,20,22,.09); --line-strong:rgba(20,20,22,.15); --edge:rgba(20,20,22,.17);
  --text:#15151a; --ink:#1f2430; --dim:#63625f; --faint:#8b8983; --accent:#15151a; --accent-weak:rgba(20,20,22,.075);
  --shadow:0 1px 2px rgba(20,20,22,.045), 0 7px 20px -8px rgba(20,20,22,.14);
  --lift-hi:inset 0 1px 0 rgba(255,255,255,.6);
  --ease:cubic-bezier(.4,0,.2,1); --dur-fast:.15s; --dur:.2s; --r-card:14px;
  --display:"Play",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --body:"Mulish",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  --inter:"InterVariable","Inter",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
}
:root[data-theme="dark"] {
  --bg:#0c0c10; --card:#17171d; --card-hover:#1d1d25;
  --line:rgba(255,255,255,.09); --line-strong:rgba(255,255,255,.16); --edge:rgba(255,255,255,.2);
  --text:#f3f3f6; --ink:#e6e7ee; --dim:#a4a6b3; --faint:#7b7e8d; --accent:#f3f3f6; --accent-weak:rgba(255,255,255,.09);
  --shadow:0 1px 2px rgba(0,0,0,.5), 0 8px 24px -8px rgba(0,0,0,.65); --lift-hi:inset 0 1px 0 rgba(255,255,255,.05);
}
* { box-sizing:border-box; margin:0; padding:0; }
html { -webkit-text-size-adjust:100%; }
body { position:relative; min-height:100vh; display:flex; flex-direction:column; background:var(--bg); color:var(--text); font-family:var(--body); -webkit-font-smoothing:antialiased; }
.vh { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
:focus-visible { outline:2px solid var(--accent); outline-offset:2px; }

/* wordmark (font-weight stacking outline, as Manna's h1) */
.top { position:relative; padding:calc(14px + env(safe-area-inset-top)) 16px 6px; max-width:1500px; width:100%; margin:0 auto; }
h1 { font-family:var(--inter); font-size:clamp(40px,8vw,60px); letter-spacing:-.02em; font-weight:1000; line-height:1.2; display:flex; align-items:baseline; justify-content:space-between; gap:12px; }
.stack-outline { position:relative; display:inline-block; }
.stack-bottom { font-weight:1000; color:var(--text); }
.stack-top { position:absolute; inset:0; font-weight:900; color:color-mix(in srgb, var(--text) 85%, var(--bg)); }
h1 .h1-tag { flex:none; text-align:right; color:var(--dim); font-weight:500; font-size:11px; letter-spacing:.01em; line-height:1; font-family:var(--body); }
.statline { font:600 12px/1.3 var(--body); color:var(--dim); margin:2px 0 8px; letter-spacing:.01em; }

.iconrow { position:absolute; right:18px; top:calc(78px + env(safe-area-inset-top)); display:flex; gap:12px; }
.midrow { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 22px; margin:4px 0 10px; }
.qwrap { margin:0 0 10px; }
.ibtn { -webkit-appearance:none; appearance:none; background:none; border:none; padding:0; width:34px; height:34px; cursor:pointer; display:flex; align-items:center; justify-content:center; transition:transform var(--dur-fast) var(--ease); }
.ibtn img { width:30px; height:30px; display:block; pointer-events:none; object-fit:contain; }
.ibtn:active { transform:translateY(1px); }

/* "News forecast" -- High / Avg / Low of the Buzz scores on screen, same chips as Manna's Local forecast */
.forecast { margin:0; }
.fc-cap { font:500 10px/1 ui-monospace,"JetBrains Mono",monospace; letter-spacing:.14em; text-transform:uppercase; color:var(--faint); margin:0 2px 8px; }
.fc-chips { display:flex; gap:8px; }
.hal { position:relative; display:flex; flex-direction:column; align-items:center; gap:1px; padding:5px 10px 5px 11px; border-radius:14px;
  background:color-mix(in srgb, rgb(var(--sc)) 15%, var(--card)); border:1px solid color-mix(in srgb, rgb(var(--sc)) 10%, transparent);
  box-shadow:0 0 12px 1px rgba(var(--sc), .30), 0 3px 12px rgba(var(--sc), .18); }
:root[data-theme="dark"] .hal { background:color-mix(in srgb, rgb(var(--sc)) 24%, var(--card)); }
.hal b { font-family:var(--inter); font-weight:900; font-size:30px; line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums; color:rgb(var(--sc)); min-width:3ch; text-align:center; }
.hal i { font-style:normal; font-family:var(--inter); font-size:15px; font-weight:800; letter-spacing:.01em; text-transform:uppercase; color:rgb(var(--sc)); }
:root[data-theme="dark"] .hal b, :root[data-theme="dark"] .hal i { color:color-mix(in srgb, rgb(var(--sc)) 55%, #fff); }

.controls { display:flex; flex-wrap:wrap; gap:8px; }
.sel { -webkit-appearance:none; appearance:none; cursor:pointer; font:600 15px/1 var(--body); color:var(--text); background:var(--card); border:1px solid #fff; box-shadow:var(--shadow);
  border-radius:14px; padding:13px 38px 13px 16px; min-width:150px;
  background-image:linear-gradient(45deg,transparent 50%,var(--dim) 50%),linear-gradient(135deg,var(--dim) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%, calc(100% - 15px) 50%; background-size:5px 5px,5px 5px; background-repeat:no-repeat; }
:root[data-theme="dark"] .sel { border-color:var(--line); }
.sel option { background:var(--card); color:var(--text); }
.qwrap[hidden] { display:none; }
#q { width:100%; font:500 16px/1 var(--body); color:var(--text); background:var(--card); border:1px solid #fff; box-shadow:var(--shadow); border-radius:14px; padding:13px 16px; }
:root[data-theme="dark"] #q { border-color:var(--line); }
#q::placeholder { color:var(--faint); } #q:focus { outline:none; border-color:var(--accent); }

.chips { display:flex; gap:7px; overflow-x:auto; padding:2px 2px 6px; scrollbar-width:none; }
.chips::-webkit-scrollbar { display:none; }
.chip { flex:none; cursor:pointer; font:700 12.5px/1 var(--body); color:var(--text); background:var(--card); border:1px solid var(--edge); border-radius:999px; padding:9px 14px; box-shadow:var(--lift-hi); transition:background var(--dur-fast) var(--ease), color var(--dur-fast) var(--ease); }
@media (hover:hover) { .chip:hover { background:var(--card-hover); } }
.chip[aria-pressed="true"] { background:var(--accent); color:var(--bg); border-color:var(--accent); }

.stage { position:relative; flex:1 1 auto; min-height:360px; margin:6px 10px 10px; }
.empty { position:absolute; inset:0; display:grid; place-items:center; color:var(--dim); font-size:15px; text-align:center; padding:20px; }

/* regions = sections; the label is Manna's .pk-h voice */
.region { position:absolute; }
.rlabel { position:absolute; left:2px; top:0; right:0; height:20px; display:flex; align-items:center; gap:7px; font:1000 11px/1 var(--inter); letter-spacing:.09em; text-transform:uppercase; color:var(--text); pointer-events:none; }
.rlabel em { font-style:normal; font-weight:700; color:var(--faint); letter-spacing:.02em; }

/* story tile = a Prep Rows card: white, soft lift, DNA headline, Buzz chip with ambient glow */
.tile { position:absolute; margin:0; padding:0; text-align:left; cursor:pointer; overflow:hidden; border-radius:var(--r-card); color:var(--text); font-family:var(--body);
  background:var(--card); border:1px solid #fff; box-shadow:var(--shadow);
  transition:transform var(--dur) var(--ease), box-shadow var(--dur) var(--ease), border-color var(--dur) var(--ease), opacity .2s ease, filter .2s ease; }
:root[data-theme="dark"] .tile { border-color:var(--line); }
@media (hover:hover) { .tile:hover { border-color:var(--edge); } }
.tile:hover, .tile:focus-visible { z-index:3; transform:translateY(-1px); border-color:var(--edge); box-shadow:var(--shadow), 0 0 0 1px rgba(var(--sc), .35); }
.tile.dim { opacity:.2; filter:saturate(.3); }
.tile::before { content:""; position:absolute; left:0; top:9px; bottom:9px; width:3px; border-radius:0 3px 3px 0; background:rgb(var(--sc)); opacity:.85; }
.t-in { position:absolute; inset:0; padding:8px 10px 7px 12px; display:flex; flex-direction:column; justify-content:space-between; gap:3px; }
.t-title { font-family:var(--body); font-weight:800; line-height:1.14; letter-spacing:-.012em; display:-webkit-box; -webkit-box-orient:vertical; overflow:hidden; text-wrap:balance; }
.pr-dna { }
:root[data-theme="dark"] .t-title { text-shadow:0 0 10px rgba(var(--sc), .55), 0 0 22px rgba(var(--sc), .32); }
.t-meta { font:600 10px/1.2 var(--body); color:var(--faint); letter-spacing:.02em; white-space:nowrap; overflow:hidden; text-overflow:ellipsis; }

/* the chip: Manna's .pr-score + .pr-grade (number darker, letter bigger, ambient glow) */
.pr-score { position:absolute; z-index:1; display:flex; align-items:center; justify-content:center; gap:3px;
  font-family:var(--inter); font-weight:1000; font-size:var(--cs,30px); line-height:1; letter-spacing:-.03em; font-variant-numeric:tabular-nums;
  color:color-mix(in srgb, rgb(var(--sc)) 85%, black); padding:5px 10px 5px 11px; border-radius:calc(var(--cs,30px) * .38);
  background:color-mix(in srgb, rgb(var(--sc)) 15%, var(--card)); border:1px solid color-mix(in srgb, rgb(var(--sc)) 10%, transparent);
  box-shadow:0 0 14px 1px rgba(var(--sc), .34), 0 3px 16px rgba(var(--sc), .22); }
:root[data-theme="dark"] .pr-score { color:color-mix(in srgb, rgb(var(--sc)) 70%, #fff); background:color-mix(in srgb, rgb(var(--sc)) 24%, var(--card)); }
.pr-grade { font-size:1.15em; letter-spacing:.01em; color:rgb(var(--sc)); opacity:.9; }
:root[data-theme="dark"] .pr-grade { color:color-mix(in srgb, rgb(var(--sc)) 55%, #fff); }
/* lg: chip stretched down the right side (as the Prep Rows chip is stretched down its row) */
.tile.lg .pr-score { right:6px; top:6px; bottom:6px; }
/* md: compact chip tucked in the bottom-right corner */
.tile.md .pr-score { right:6px; bottom:6px; padding:3px 7px 3px 8px; border-radius:9px; box-shadow:0 0 9px 1px rgba(var(--sc), .30), 0 2px 8px rgba(var(--sc), .2); }
.tile.md .t-meta { padding-right:62px; }
.tile.sm .pr-score, .tile.xs .pr-score, .tile.xxs .pr-score { right:5px; bottom:5px; --cs:12px; padding:2px 5px 2px 6px; border-radius:7px; gap:2px;
  box-shadow:0 0 7px 1px rgba(var(--sc), .28), 0 2px 6px rgba(var(--sc), .18); }
.tile.xs .pr-score, .tile.xxs .pr-score { --cs:10px; padding:1px 4px 1px 5px; border-radius:6px; right:3px; bottom:3px; }
.tile.xxs .pr-grade { display:none; }
.tile.sm .t-in { padding:5px 7px 4px 10px; } .tile.sm .t-meta { display:none; }
.tile.xs .t-in { padding:3px 4px 3px 8px; } .tile.xs .t-meta { display:none; }
.tile.xxs .t-title { display:none; } .tile.xxs::before { top:3px; bottom:3px; }
.tile.sm .t-title, .tile.xs .t-title { padding-right:2px; }

.foot { display:flex; flex-wrap:wrap; gap:8px 18px; align-items:center; justify-content:space-between; max-width:1500px; width:100%; margin:0 auto; padding:6px 18px calc(16px + env(safe-area-inset-bottom)); font:500 11.5px/1.4 var(--body); color:var(--faint); }
.foot a { color:var(--dim); }
.legend { display:flex; align-items:center; gap:6px; }
.lgchip { font:900 11px/1 var(--inter); padding:4px 7px; border-radius:7px; color:color-mix(in srgb, rgb(var(--sc)) 85%, black); background:color-mix(in srgb, rgb(var(--sc)) 15%, var(--card)); box-shadow:0 0 8px rgba(var(--sc), .3); }
:root[data-theme="dark"] .lgchip { color:color-mix(in srgb, rgb(var(--sc)) 55%, #fff); }

/* drawer = Manna's opened card: white panel, grey "how it's scored" band, colour wash band for the actions */
.scrim { position:fixed; inset:0; background:rgba(10,10,12,.36); z-index:20; } .scrim[hidden], .drawer[hidden] { display:none; }
.drawer { position:fixed; z-index:21; top:0; right:0; bottom:0; width:min(460px,100vw); background:var(--card); border-left:1px solid var(--line-strong); box-shadow:-12px 0 40px rgba(0,0,0,.18);
  overflow-y:auto; animation:slide .22s var(--ease); }
@keyframes slide { from { transform:translateX(24px); opacity:0; } to { transform:none; opacity:1; } }
.drawer-x { position:absolute; right:12px; top:10px; z-index:2; width:34px; height:34px; border-radius:50%; border:1px solid var(--edge); background:var(--card); color:var(--text); font-size:22px; cursor:pointer; line-height:1; }
.d-top { padding:22px 20px 18px; position:relative; }
.d-cat { font:1000 11px/1 var(--inter); letter-spacing:.09em; text-transform:uppercase; color:var(--faint); }
.d-title { font:800 24px/1.18 var(--body); letter-spacing:-.02em; margin:10px 40px 10px 0; text-wrap:balance; }
:root[data-theme="dark"] .d-title { text-shadow:0 0 10px rgba(var(--sc), .55), 0 0 22px rgba(var(--sc), .32); }
.d-sub { color:var(--faint); font:600 12px/1.4 var(--body); letter-spacing:.02em; }
.d-chiprow { display:flex; align-items:center; gap:14px; margin:16px 0 4px; }
.d-chiprow .pr-score { position:relative; --cs:40px; padding:8px 14px 8px 16px; border-radius:15px; }
.d-chiprow small { font:600 12px/1.35 var(--body); color:var(--dim); }
.d-band { margin:0; padding:2px 20px 20px; background:linear-gradient(180deg,#ececee 0%,#f6f6f7 38%,#fff 100%); }
:root[data-theme="dark"] .d-band { background:linear-gradient(180deg,rgba(255,255,255,.09) 0%,rgba(255,255,255,.03) 45%,transparent 100%); }
.pk-h { font:1000 12px/1 var(--inter); letter-spacing:.08em; text-transform:uppercase; color:var(--text); margin:22px 0 10px; padding-top:14px; border-top:1px solid var(--line); }
.d-band .pk-h:first-child { border-top:0; padding-top:12px; }
.pk-system { font:500 10px/1 ui-monospace,"JetBrains Mono",monospace; letter-spacing:.08em; text-transform:uppercase; color:var(--faint); margin-bottom:8px; }
.pk-system-desc { font:500 12.5px/1.55 var(--body); color:var(--dim); }
.d-steps { list-style:none; display:flex; flex-direction:column; gap:1px; border:1px solid var(--line); border-radius:12px; overflow:hidden; margin-bottom:6px; }
.d-steps a { display:block; padding:11px 13px; text-decoration:none; color:var(--text); background:var(--card); }
@media (hover:hover) { .d-steps a:hover { background:var(--card-hover); } }
.d-steps b { display:block; font:800 12px/1.2 var(--body); color:var(--dim); margin-bottom:3px; }
.d-steps span { font:600 14px/1.3 var(--body); }
.pk-band { margin:0; padding:20px; background:linear-gradient(180deg, rgba(var(--sc), .16) 0%, rgba(var(--sc), .08) 100%); }
.d-open { display:inline-flex; align-items:center; gap:8px; font:800 14px/1 var(--body); color:var(--bg); background:var(--accent); text-decoration:none; padding:13px 18px; border-radius:13px; box-shadow:var(--shadow); }
.d-note { margin-top:14px; font:500 11.5px/1.5 var(--body); color:var(--faint); }

@media (max-width:700px) {
  .top { padding-left:14px; padding-right:14px; }
  .sel { flex:1 1 140px; min-width:0; font-size:14px; }
  .stage { margin:4px 8px 8px; }
  .drawer { top:auto; height:82vh; width:100vw; border-left:0; border-top:1px solid var(--line-strong); border-radius:18px 18px 0 0; animation:rise .24s var(--ease); }
  @keyframes rise { from { transform:translateY(30px); opacity:0; } to { transform:none; opacity:1; } }
}
@media (prefers-reduced-motion:reduce) { *, .drawer { transition:none !important; animation:none !important; } }

/* 2026-11-01: colour = section, intensity = Buzz score (was: colour by score band). Dot beside each section name. */
.rlabel i, .chip i { display:inline-block; width:8px; height:8px; border-radius:50%; flex:none; }
.chip { display:inline-flex; align-items:center; gap:7px; }

/* 2026-11-01: no chip on the tile. The TILE takes the chip's own look: its tinted background, hairline border and ambient glow;
   the headline keeps the DNA colouring. Score + grade now live in the story panel and the tile tooltip. REVERT: delete block. */
.tile { background:color-mix(in srgb, rgb(var(--sc)) 15%, var(--card)); border:1px solid color-mix(in srgb, rgb(var(--sc)) 10%, transparent);
  box-shadow:0 0 14px 1px rgba(var(--sc), .34), 0 3px 16px rgba(var(--sc), .22); }
:root[data-theme="dark"] .tile { background:color-mix(in srgb, rgb(var(--sc)) 24%, var(--card)); border-color:color-mix(in srgb, rgb(var(--sc)) 10%, transparent); }
.tile:hover, .tile:focus-visible { border-color:color-mix(in srgb, rgb(var(--sc)) 40%, transparent);
  box-shadow:0 0 18px 2px rgba(var(--sc), .46), 0 4px 20px rgba(var(--sc), .30); }
.tile::before { display:none; }
.tile .t-in { padding:8px 11px 7px 11px; }
.t-meta { color:color-mix(in srgb, rgb(var(--sc)) 55%, var(--faint)); }

/* logo from the first Newsmap, with Manna's wordmark type (the stacked outline) */
.brandrow { display:inline-flex; align-items:center; gap:clamp(8px,1.6vw,14px); }
.logo { display:grid; grid-template-columns:1fr 1fr; grid-template-rows:1.3fr 1fr; gap:3px; width:clamp(34px,6.2vw,48px); height:clamp(34px,6.2vw,48px); flex:none; filter:drop-shadow(0 3px 10px rgba(255,93,93,.28)); }
.logo i { border-radius:5px; display:block; }
.logo i:nth-child(1) { background:#ff5d5d; grid-row:1 / 3; box-shadow:0 0 12px rgba(255,93,93,.45); }
.logo i:nth-child(2) { background:#ffb340; box-shadow:0 0 12px rgba(255,179,64,.45); }
.logo i:nth-child(3) { background:#37d6a0; box-shadow:0 0 12px rgba(55,214,160,.45); }

/* 2026-11-01 (2): the tile's tint scales with popularity (Buzz score) -- light wash for a quiet story, deep colour for a big one.
   --k = 0..1 from the score (35 -> 0, 95 -> 1). Replaces the fixed 15% tint above. REVERT: delete block. */
.tile { background:color-mix(in srgb, rgb(var(--sc)) calc(5% + 40% * var(--k, .5)), var(--card));
  box-shadow:0 0 calc(6px + 10px * var(--k, .5)) 1px rgba(var(--sc), calc(.14 + .26 * var(--k, .5))), 0 3px 16px rgba(var(--sc), calc(.08 + .18 * var(--k, .5))); }
:root[data-theme="dark"] .tile { background:color-mix(in srgb, rgb(var(--sc)) calc(8% + 46% * var(--k, .5)), var(--card)); }

/* 2026-11-01 (3): white headlines. Tiles are now a deep section colour (richer/darker = more popular) so white "DNA" type reads on
   every one, light or dark theme. Chip look (hairline border, ambient glow) kept. REVERT: delete block + whiteDnaHTML in app.js. */
.tile, :root[data-theme="dark"] .tile { background:hsl(var(--h) calc(22% + 56% * var(--k, .5)) calc(39% - 19% * var(--k, .5)));
  color:#fff; border-color:rgba(255,255,255,.14); }
.t-title, :root[data-theme="dark"] .t-title { color:#fff; text-shadow:0 1px 2px rgba(0,0,0,.28); }
.t-meta { color:rgba(255,255,255,.72); }
@media (hover:hover) { .tile:hover { border-color:rgba(255,255,255,.35); } }
.tile:hover, .tile:focus-visible { border-color:rgba(255,255,255,.4); }

/* 2026-11-01: Classic <-> Manna look switch (segmented pill, same ink-fill idiom as the section chips) */
.styleswitch { display:inline-flex; align-self:center; padding:3px; margin-right:6px; border-radius:999px; background:var(--card); border:1px solid var(--edge); box-shadow:var(--lift-hi); }
.styleswitch button { cursor:pointer; border:0; background:transparent; color:var(--dim); font:700 12px/1 var(--body); padding:8px 13px; border-radius:999px; }
.styleswitch button[aria-pressed="true"] { background:var(--accent); color:var(--bg); }
.iconrow { align-items:center; }

/* switch pinned to the SAME spot on both looks (top-right of the page) so toggling never moves it */
.styleswitch { position:absolute; top:12px; right:14px; z-index:15; margin:0; }
@media (max-width:700px) { .top { padding-top:calc(58px + env(safe-area-inset-top)); } }

/* identical size/type on both looks so the pill is pixel-for-pixel the same wherever it is */
.styleswitch { width:150px; box-sizing:content-box; }
.styleswitch button { flex:1 1 0; text-align:center; padding:8px 0; font:700 12px/1 "InterVariable","Inter",-apple-system,"Segoe UI",Roboto,sans-serif; }

/* 2026-11-01: control row laid out exactly like Classic -- edition | per-section | search | light/dark, then the Classic/Manna pill
   pinned at the far right. Same fixed widths + 36px height as the Classic copy so every control lands on the same pixels. */
.top { padding:calc(12px + env(safe-area-inset-top)) 14px 6px; }
.toprow { display:flex; align-items:flex-start; justify-content:space-between; gap:12px; }
.ctlrow { display:flex; align-items:flex-start; gap:8px; margin-right:158px; }
.ctlrow .selwrap { display:block; } .ctlrow .qwrap { flex:none; }
.ctlrow .sel, .ctlrow #q, .ctlrow .ibtn { height:36px; }
.ctlrow .sel { padding:0 26px 0 12px; font-size:13px; min-width:0; border-radius:12px; background-position:calc(100% - 17px) 50%, calc(100% - 12px) 50%; }
#edition { width:140px; } #density { width:130px; }
.ctlrow #q { width:210px; padding:0 14px; font-size:14px; border-radius:12px; }
.ctlrow .ibtn { width:38px; border:0; }
.ctlrow .ibtn img { width:30px; height:30px; }
.statline { margin:2px 0 8px 2px; }
@media (max-width:700px) {
  .top { padding-top:calc(58px + env(safe-area-inset-top)); }
  .toprow { flex-direction:column; gap:10px; }
  .ctlrow { flex-wrap:wrap; margin-right:0; width:100%; }
  .ctlrow .qwrap { order:5; flex:1 1 100%; } .ctlrow #q { width:100%; }
}

/* 2026-11-01 (4): wider light-to-dark spread. Quiet stories are a lighter, muted tone; the biggest are deep and saturated
   (the old range was ~20 points of lightness; this is ~38). --k is now each story's rank among the stories on screen. REVERT: delete block. */
.tile, :root[data-theme="dark"] .tile { background:hsl(var(--h) calc(16% + 66% * var(--k, .5)) calc(52% - 36% * var(--k, .5))); }
.tile .t-title { text-shadow:0 1px 3px rgba(0,0,0,.38); }
.tile .t-meta { color:rgba(255,255,255,.85); text-shadow:0 1px 2px rgba(0,0,0,.3); }

/* story preview inside the panel */
.d-preview { padding:4px 20px 18px; }
.d-prev-img { display:block; width:100%; aspect-ratio:16/9; object-fit:cover; border-radius:12px; border:1px solid var(--line); margin:4px 0 12px; background:var(--card-hover); }
.d-prev-text { font:600 15px/1.5 var(--body); color:var(--text); }
.d-prev-wait { color:var(--dim); font-weight:500; font-size:13.5px; }
.d-prev-src { margin-top:10px; font:500 11.5px/1.5 var(--body); color:var(--faint); }
.d-prev-src a { color:var(--dim); font-weight:700; }

/* panel order: Also covered by, then the Buzz explainer */
.d-band .d-buzz { margin-top:22px; padding-top:14px; border-top:1px solid var(--line); }
.d-band .d-buzz:first-child { margin-top:0; border-top:0; padding-top:12px; }
