/* राष्ट्रीय जनखोज – design tokens, then base, reader app, reels, sheets, admin */
:root{
  --bg:#f5f4f1; --surface:#ffffff; --surface-2:#eeece8; --ink:#15161b; --mute:#6b6e79; --line:#e6e3dd;
  --brand:#e5322d; --brand-ink:#ffffff; --brand-soft:#fde9e8;
  --glass:color-mix(in srgb,var(--surface) 76%,transparent);
  --shadow:0 10px 30px -14px rgba(20,20,30,.35);
  --f:"Anek Devanagari","Noto Sans Devanagari",system-ui,-apple-system,"Segoe UI",sans-serif;
  --ease:cubic-bezier(.2,.8,.2,1); --spring:cubic-bezier(.34,1.45,.64,1);
  --bar:56px; --nav:64px; --safe-b:env(safe-area-inset-bottom,0px); --safe-t:env(safe-area-inset-top,0px);
  color-scheme:light;
}
@media(prefers-color-scheme:dark){:root{
  --bg:#0b0c10; --surface:#15171e; --surface-2:#1e212a; --ink:#f3f4f8; --mute:#9b9fb0; --line:#262935;
  --brand:#ff4d46; --brand-soft:#2b1514; --shadow:0 10px 30px -14px rgba(0,0,0,.8); color-scheme:dark}}
*{box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{scroll-behavior:smooth}
body{margin:0;background:var(--bg);color:var(--ink);font:400 17px/1.55 var(--f);-webkit-font-smoothing:antialiased}
body.lock{overflow:hidden}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer;background:none;border:0;padding:0;border-radius:0}
a{color:inherit}
:focus-visible{outline:2px solid var(--brand);outline-offset:2px;border-radius:8px}
[hidden]{display:none!important}
svg.i{display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round}
.cat{--c:#6b7280;--g1:#334155;--g2:#64748b}
.cat[data-cat=crime]{--c:#e5322d;--g1:#7f1d1d;--g2:#ef4444}
.cat[data-cat=politics]{--c:#5b6cff;--g1:#312e81;--g2:#6366f1}
.cat[data-cat=sports]{--c:#12a150;--g1:#065f46;--g2:#34d399}
.cat[data-cat=education]{--c:#0ea5e9;--g1:#0c4a6e;--g2:#38bdf8}
.cat[data-cat=farming]{--c:#65a30d;--g1:#3f6212;--g2:#a3e635}
.cat[data-cat=business]{--c:#d97706;--g1:#78350f;--g2:#fbbf24}
.cat[data-cat=weather]{--c:#0891b2;--g1:#164e63;--g2:#67e8f9}
.cat[data-cat=entertainment]{--c:#db2777;--g1:#831843;--g2:#f472b6}

/* ---------- header ---------- */
.app-header{position:fixed;top:0;left:0;right:0;z-index:30;height:calc(var(--bar) + var(--safe-t));padding:var(--safe-t) max(14px,calc(50% - 340px + 16px)) 0;display:flex;align-items:center;gap:10px;
  background:var(--glass);backdrop-filter:blur(18px) saturate(1.4);-webkit-backdrop-filter:blur(18px) saturate(1.4);border-bottom:1px solid color-mix(in srgb,var(--line) 70%,transparent);
  transition:transform .35s var(--ease),background .3s,border-color .3s,color .3s}
.app-header.hide{transform:translateY(-100%)}
.brand-mini{display:flex;align-items:center;gap:7px;font:800 17px/1 var(--f);letter-spacing:-.2px;text-decoration:none;flex:none;white-space:nowrap}
.brand-mini img{width:28px;height:28px;border-radius:8px}
.loc{margin-left:auto;color:var(--ink);display:flex;align-items:center;gap:6px;max-width:58%;padding:7px 10px 7px 8px;border:1px solid var(--line);border-radius:999px;background:var(--surface);font-weight:600;transition:transform .2s var(--spring)}
.loc:active{transform:scale(.95)}
.loc span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.loc svg{flex:none;color:var(--brand)}
.menu-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:var(--surface);color:var(--ink);flex:none;transition:transform .2s var(--spring)}
.menu-btn:active{transform:scale(.92)}
body.in-reels .menu-btn{background:#0006;border-color:#fff3;color:#fff}
.hdr-link{font-size:14px;font-weight:600;text-decoration:none;color:var(--mute);padding:6px 4px}
body.in-reels .app-header{background:linear-gradient(#000a,transparent);border-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none;color:#fff}
body.in-reels .app-header .loc{background:#0006;border-color:#fff3;color:#fff}
body.in-reels .hdr-link{color:#fffc}

/* ---------- home ---------- */
.home{max-width:680px;margin:0 auto;padding:calc(var(--bar) + var(--safe-t) + 14px) 16px calc(var(--nav) + var(--safe-b) + 40px)}
.hero-date{font-size:14px;color:var(--mute);font-weight:500}
.hero-title{margin:2px 0 14px;font:800 clamp(28px,8vw,38px)/1.18 var(--f);letter-spacing:-.4px;text-wrap:balance}
.hero-title em{font-style:normal;background:linear-gradient(100deg,var(--brand),#ff8a3d);-webkit-background-clip:text;background-clip:text;color:transparent}
.swap{animation:swap .45s var(--ease)}
@keyframes swap{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.search{display:flex;align-items:center;gap:10px;background:var(--surface);border:1px solid var(--line);border-radius:16px;padding:0 14px;height:48px;transition:box-shadow .25s,border-color .25s}
.search:focus-within{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 18%,transparent)}
.search svg{color:var(--mute);flex:none}
.search input[type=search]{flex:1;min-width:0;border:0;background:transparent;outline:none;font-size:16px;height:100%;padding:0;border-radius:0;box-shadow:none}
.search input::placeholder{color:var(--mute)}

.stories{display:flex;gap:14px;overflow-x:auto;margin:10px -16px 4px;padding:12px 22px 10px;scrollbar-width:none;scroll-snap-type:x proximity}
.stories::-webkit-scrollbar{display:none}
.st{flex:none;width:68px;display:grid;justify-items:center;gap:6px;background:none;border:0;padding:0;scroll-snap-align:start}
.st .ring{width:64px;height:64px;border-radius:50%;padding:3px;background:conic-gradient(from 210deg,#ff8a3d,#e5322d,#ff3d77,#ff8a3d);display:grid;place-items:center;transition:transform .35s var(--spring)}
.st.none .ring{background:var(--line)}
.st .av{width:100%;height:100%;border-radius:50%;background:var(--surface);border:3px solid var(--bg);display:grid;place-items:center;font:700 22px var(--f);color:var(--ink)}
.st.on .ring{transform:scale(1.1);background:var(--brand);animation:pulse 2.4s ease-in-out infinite}
.st.on .av{background:var(--brand);color:#fff}
.st label{font-size:13px;font-weight:600;max-width:68px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:var(--mute);pointer-events:none}
.st.on label{color:var(--ink)}
@keyframes pulse{0%,100%{box-shadow:0 0 0 0 color-mix(in srgb,var(--brand) 40%,transparent)}50%{box-shadow:0 0 0 7px transparent}}
.st:active .ring{transform:scale(.92)}

.cats{display:flex;gap:8px;overflow-x:auto;margin:6px -16px 14px;padding:2px 16px 6px;scrollbar-width:none}
.cats::-webkit-scrollbar{display:none}
.chip{flex:none;border:1px solid var(--line);background:var(--surface);color:var(--ink);border-radius:999px;padding:7px 14px;font-weight:600;font-size:14.5px;transition:background .25s,color .25s,transform .25s var(--spring),border-color .25s}
.chip:active{transform:scale(.94)}
.chip[aria-pressed=true],.chip.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}

.lead-card{position:relative;display:block;width:100%;aspect-ratio:4/4.6;border-radius:28px;overflow:hidden;background:linear-gradient(150deg,var(--g1),var(--g2));box-shadow:var(--shadow);cursor:pointer;border:0;padding:0;text-align:left;color:#fff;transition:transform .45s var(--ease)}
.lead-card:active{transform:scale(.985)}
.lead-card .media{position:absolute;inset:0;background:center/cover no-repeat;transform:scale(1.04);transition:transform 1.2s var(--ease)}
.lead-card:hover .media{transform:scale(1.1)}
.lead-card .grad{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.82) 8%,rgba(0,0,0,.25) 52%,transparent)}
.lead-card .over{position:absolute;left:0;right:0;bottom:0;padding:20px}
.lead-card h2{margin:10px 0 8px;font:800 clamp(24px,6.6vw,30px)/1.28 var(--f);text-wrap:balance}
.lead-card .m{font-size:14px;opacity:.88}
.lead-card .pl{position:absolute;top:16px;right:16px;display:flex;gap:8px}
.tagc{display:inline-flex;align-items:center;gap:6px;background:#ffffff26;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #ffffff33;color:#fff;border-radius:999px;padding:3px 11px;font-size:13px;font-weight:600}
.tagc i,.k i{width:8px;height:8px;border-radius:50%;background:var(--c);display:inline-block}
.live{display:inline-flex;align-items:center;gap:6px;background:var(--brand);color:#fff;border-radius:999px;padding:3px 10px;font-size:12.5px;font-weight:700}
.live::before{content:"";width:7px;height:7px;border-radius:50%;background:#fff;animation:blink 1.4s infinite}
@keyframes blink{50%{opacity:.25}}

.list{display:grid;grid-template-columns:minmax(0,1fr);gap:4px;margin-top:10px}
.row-card{min-width:0;display:grid;grid-template-columns:1fr 104px;gap:14px;align-items:center;padding:14px 0;border-bottom:1px solid var(--line);cursor:pointer;transition:transform .3s var(--ease),opacity .3s}
.row-card:active{transform:scale(.985);opacity:.8}
.row-card .k{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--c);margin-bottom:4px}
.row-card h3{margin:0 0 6px;font:700 18px/1.4 var(--f);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;text-wrap:pretty}
.row-card .m{font-size:13px;color:var(--mute);display:flex;gap:6px;align-items:center;flex-wrap:wrap}
.row-card .th{width:104px;height:104px;border-radius:20px;background:linear-gradient(150deg,var(--g1),var(--g2)) center/cover;position:relative;overflow:hidden}
.row-card .th.ph::after{content:attr(data-l);position:absolute;inset:0;display:grid;place-items:center;font:800 40px var(--f);color:#ffffff88}
.dotsep::before{content:"·";margin-right:6px}

.vrail{margin:18px -16px 8px;padding:0 0 4px}
.vrail h4{margin:0 16px 10px;font:800 20px var(--f);display:flex;align-items:center;gap:8px}
.vscroll{display:flex;gap:12px;overflow-x:auto;padding:2px 16px 10px;scrollbar-width:none;scroll-snap-type:x mandatory}
.vscroll::-webkit-scrollbar{display:none}
.vc{flex:none;width:138px;aspect-ratio:9/15;border-radius:22px;position:relative;overflow:hidden;background:linear-gradient(150deg,var(--g1),var(--g2)) center/cover;border:0;padding:0;color:#fff;text-align:left;scroll-snap-align:start;box-shadow:var(--shadow);transition:transform .35s var(--spring)}
.vc:active{transform:scale(.95)}
.vc .g{position:absolute;inset:0;background:linear-gradient(to top,#000d,transparent 60%)}
.vc .pb{position:absolute;top:10px;right:10px;width:32px;height:32px;border-radius:50%;background:#0006;backdrop-filter:blur(6px);display:grid;place-items:center}
.vc p{position:absolute;left:10px;right:10px;bottom:10px;margin:0;font:700 14px/1.35 var(--f);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}

.empty{text-align:center;color:var(--mute);padding:56px 16px}
.empty b{display:block;font-size:19px;color:var(--ink);margin-bottom:4px}
.sk{border-radius:14px;background:linear-gradient(100deg,var(--surface-2) 30%,var(--surface) 50%,var(--surface-2) 70%);background-size:300% 100%;animation:shimmer 1.3s linear infinite}
@keyframes shimmer{from{background-position:100% 0}to{background-position:0 0}}
.sk-row{display:grid;grid-template-columns:1fr 104px;gap:14px;padding:14px 0}
.sk-row .l{display:grid;gap:8px;align-content:center}
.rv{opacity:0;transform:translateY(16px)}
.rv.in{opacity:1;transform:none;transition:opacity .55s var(--ease),transform .6s var(--ease);transition-delay:calc(var(--i,0)*55ms)}
.sentinel{height:1px}
.list>div:empty{display:none}
#breaking{margin:0 0 12px}
.brk{display:flex;align-items:center;gap:10px;width:100%;text-align:left;padding:8px 14px 8px 8px;border-radius:999px;background:var(--brand-soft);border:1px solid color-mix(in srgb,var(--brand) 30%,transparent);font-weight:700;font-size:15px;overflow:hidden}
.brk .live{flex:none}
.brk .t{flex:1;min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.trend{margin:14px 0 6px;padding:16px;border-radius:24px;background:var(--surface);border:1px solid var(--line)}
.trend h4{margin:0 0 6px;font:800 19px var(--f);display:flex;align-items:center;gap:8px}
.trend h4 svg{color:var(--brand)}
.tr{display:grid;grid-template-columns:34px 1fr;gap:10px;align-items:start;padding:11px 0;border-top:1px solid var(--line);cursor:pointer;transition:opacity .2s}
.tr:first-of-type{border-top:0}
.tr:active{opacity:.7}
.tr b{font:800 30px/1 var(--f);color:color-mix(in srgb,var(--brand) 85%,transparent);font-variant-numeric:tabular-nums}
.tr h5{margin:0 0 3px;font:700 16.5px/1.4 var(--f);display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.tr .m{font-size:13px;color:var(--mute)}
.relh{font:800 19px var(--f);margin:26px 0 4px;padding-top:18px;border-top:1px solid var(--line)}
.act.on[data-save]{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.act.on[data-save] svg{fill:currentColor}

/* ---------- nav ---------- */
.nav{position:fixed;z-index:40;left:50%;transform:translateX(-50%);bottom:calc(12px + var(--safe-b));width:min(calc(100% - 32px),400px);height:var(--nav);padding:6px;display:grid;grid-template-columns:repeat(4,1fr);border-radius:999px;
  background:var(--glass);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border:1px solid color-mix(in srgb,var(--line) 80%,transparent);box-shadow:var(--shadow);transition:background .3s,border-color .3s}
.nav .ind{position:absolute;top:6px;bottom:6px;left:6px;width:calc((100% - 12px)/4);border-radius:999px;background:var(--brand);transition:transform .5s var(--spring)}
.nav[data-t=reels] .ind{transform:translateX(100%)}
.nav[data-t=market] .ind{transform:translateX(200%)}
.nav[data-t=saved] .ind{transform:translateX(300%)}
.nav a{position:relative;display:flex;align-items:center;justify-content:center;gap:6px;text-decoration:none;font-weight:700;font-size:12.5px;flex-direction:column;gap:1px;color:var(--mute);border-radius:999px;transition:color .3s}
.nav a.on{color:#fff}
.nav a svg{transition:transform .5s var(--spring)}
.nav a.on svg{transform:scale(1.12) rotate(-6deg)}
body.in-reels .nav{background:#0008;border-color:#fff2}
body.in-reels .nav a:not(.on){color:#fffa}

/* ---------- sheets ---------- */
.sheet{position:fixed;inset:0;z-index:60;pointer-events:none}
.sheet .scrim{position:absolute;inset:0;background:#000;opacity:0;transition:opacity .35s}
.sheet .panel{position:absolute;left:50%;bottom:0;width:min(100%,680px);max-height:92dvh;display:flex;flex-direction:column;background:var(--surface);border-radius:28px 28px 0 0;transform:translate(-50%,100%);transition:transform .5s var(--ease);box-shadow:0 -20px 60px -20px #0008;will-change:transform}
.sheet.open{pointer-events:auto}
.sheet.open .scrim{opacity:.55}
.sheet.open .panel{transform:translate(-50%,0)}
.sheet.drag .panel,.sheet.drag .scrim{transition:none}
.grab{flex:none;padding:10px 0 6px;touch-action:none;cursor:grab}
.grab i{display:block;width:44px;height:5px;border-radius:3px;background:var(--line);margin:0 auto}
.sheet .scroll{overflow-y:auto;overscroll-behavior:contain;padding:0 20px 24px;flex:1}
.pick h3{font:800 22px var(--f);margin:6px 0 12px}
.pick .search{height:44px;margin-bottom:10px}
.pick .grp{font-size:13px;font-weight:700;color:var(--mute);margin:14px 0 4px;letter-spacing:.3px}
.pick button.opt{display:flex;justify-content:space-between;align-items:center;width:100%;text-align:left;background:none;border:0;padding:13px 10px;border-radius:14px;font-size:17px;font-weight:600;transition:background .2s}
.pick button.opt:active,.pick button.opt:hover{background:var(--surface-2)}
.pick button.opt.on{background:var(--brand-soft);color:var(--brand)}
.pick .cnt{font-size:13px;color:var(--mute);font-weight:500}
.art .hero{margin:4px -20px 0;aspect-ratio:16/10;background:linear-gradient(150deg,var(--g1),var(--g2)) center/cover;position:relative;display:grid;place-items:center;color:#fff}
.art .hero video,.art .hero iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:#000}
.art .kicker{display:flex;flex-wrap:wrap;gap:8px;align-items:center;margin:16px 0 8px;font-size:14px;font-weight:700;color:var(--c)}
.art .kicker i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.art h2{margin:0 0 12px;font:800 clamp(26px,7vw,32px)/1.28 var(--f);text-wrap:balance;letter-spacing:-.2px}
.byline{display:flex;align-items:center;gap:10px;padding:10px 0 14px;border-bottom:1px solid var(--line);margin-bottom:16px}
.byline .ava{width:38px;height:38px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font-weight:800}
.byline small{display:block;color:var(--mute);font-size:13px}
.art .body{font-size:var(--fs,18.5px);line-height:1.85}
.art .body p{margin:0 0 1.1em}
.art.fs1{--fs:20.5px}.art.fs2{--fs:23px}
.actionbar{flex:none;display:flex;gap:8px;padding:10px 16px calc(10px + var(--safe-b));border-top:1px solid var(--line);background:var(--surface)}
.act{display:flex;align-items:center;gap:7px;height:46px;padding:0 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:700;font-size:15px;transition:transform .25s var(--spring),background .2s,color .2s,border-color .2s}
.act:active{transform:scale(.93)}
.act.grow{flex:1;justify-content:center;background:var(--ink);color:var(--bg);border-color:var(--ink)}
.act.like.on{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}
.act.like.on svg{fill:currentColor;animation:pop .5s var(--spring)}
@keyframes pop{0%{transform:scale(.6)}60%{transform:scale(1.35)}100%{transform:scale(1)}}

.toast{position:fixed;left:50%;bottom:calc(92px + var(--safe-b));transform:translate(-50%,20px);background:var(--ink);color:var(--bg);padding:10px 18px;border-radius:999px;font-weight:600;font-size:15px;opacity:0;z-index:80;pointer-events:none;transition:opacity .3s,transform .5s var(--spring)}
.toast.show{opacity:1;transform:translate(-50%,0)}

/* ---------- reels ---------- */
.reels{position:fixed;inset:0;z-index:10;overflow-y:scroll;scroll-snap-type:y mandatory;background:#000;overscroll-behavior:contain;scrollbar-width:none}
.reels::-webkit-scrollbar{display:none}
.reel{position:relative;height:100dvh;scroll-snap-align:start;scroll-snap-stop:always;overflow:hidden;color:#fff;background:#000;max-width:480px;margin:0 auto}
.reel .bg{position:absolute;inset:-20px;background:linear-gradient(150deg,var(--g1),var(--g2)) center/cover;filter:blur(28px) brightness(.6);transform:scale(1.15)}
.reel .media{position:absolute;inset:0}
.reel video,.reel iframe{position:absolute;inset:0;width:100%;height:100%;border:0;background:transparent}
.reel iframe{pointer-events:none}
.reel .shade{position:absolute;inset:0;background:linear-gradient(to top,#000d 0%,#0000 42%),linear-gradient(to bottom,#0008,#0000 18%);pointer-events:none}
.reel .tap{position:absolute;inset:0;z-index:1}
.reel .info{position:absolute;left:16px;right:84px;bottom:calc(var(--nav) + var(--safe-b) + 34px);z-index:2;pointer-events:none}
.reel .info h3{margin:10px 0 8px;font:700 19px/1.4 var(--f);text-shadow:0 1px 10px #0009;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.reel .by{display:flex;align-items:center;gap:8px;font-size:14px;font-weight:600}
.reel .by .ava{width:30px;height:30px;border-radius:50%;background:var(--brand);display:grid;place-items:center;font-size:14px;font-weight:800}
.reel .by span{opacity:.8;font-weight:500}
.reel .acts{position:absolute;right:12px;bottom:calc(var(--nav) + var(--safe-b) + 34px);z-index:3;display:grid;gap:16px;justify-items:center}
.ract{display:grid;justify-items:center;gap:4px;background:none;border:0;color:#fff;font-size:12.5px;font-weight:700;padding:0;text-shadow:0 1px 6px #0008}
.ract .c{width:50px;height:50px;border-radius:50%;background:#ffffff1f;backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1px solid #ffffff22;display:grid;place-items:center;transition:transform .3s var(--spring),background .2s}
.ract:active .c{transform:scale(.88)}
.ract.on .c{background:var(--brand);border-color:var(--brand)}
.ract.on svg{fill:#fff}
.ract.on .c{animation:pop .5s var(--spring)}
.reel .progress{position:absolute;left:16px;right:16px;bottom:calc(var(--nav) + var(--safe-b) + 18px);height:3px;border-radius:2px;background:#ffffff33;z-index:2;overflow:hidden}
.reel .progress i{display:block;height:100%;width:0;background:#fff;border-radius:2px}
.reel .pauseic{position:absolute;inset:0;display:grid;place-items:center;z-index:2;pointer-events:none}
.reel .pauseic span{width:84px;height:84px;border-radius:50%;background:#0007;display:grid;place-items:center;transform:scale(.6);opacity:0;transition:transform .35s var(--spring),opacity .25s}
.reel.paused .pauseic span{transform:scale(1);opacity:1}
.burst{position:absolute;z-index:4;width:110px;height:110px;margin:-55px 0 0 -55px;pointer-events:none;color:var(--brand);animation:burst .9s var(--ease) forwards}
.burst svg{width:100%;height:100%;fill:currentColor;stroke:#fff;stroke-width:1.2;filter:drop-shadow(0 6px 14px #0007)}
@keyframes burst{0%{transform:scale(.2) rotate(-12deg);opacity:0}25%{transform:scale(1.15) rotate(6deg);opacity:1}60%{transform:scale(1) rotate(0)}100%{transform:translateY(-70px) scale(1.1);opacity:0}}
.hint{position:absolute;left:0;right:0;bottom:calc(var(--nav) + var(--safe-b) + 90px);z-index:3;display:grid;justify-items:center;gap:2px;font-size:13px;font-weight:600;pointer-events:none;animation:hint 1.8s ease-in-out infinite;text-shadow:0 1px 8px #000a}
@keyframes hint{0%,100%{transform:translateY(0);opacity:.95}50%{transform:translateY(-12px);opacity:.5}}
.reels-empty{height:100dvh;display:grid;place-items:center;color:#fff;text-align:center;padding:24px;font-size:18px}

/* ---------- admin / forms (shared) ---------- */
header.top{position:sticky;top:0;z-index:20;display:flex;align-items:center;gap:10px;padding:12px 16px;background:var(--glass);backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);border-bottom:1px solid var(--line)}
header.top h1{margin:0;font:800 19px var(--f);flex:1;display:flex;align-items:center;gap:8px}
header.top h1 img{border-radius:8px}
header.top a{font-size:14px;font-weight:600;text-decoration:none;border:1px solid var(--line);border-radius:999px;padding:5px 12px;background:var(--surface)}
main{max-width:720px;margin:0 auto;padding:16px 16px 60px}
select,input[type=text],input[type=search],input[type=password],input[type=url],input[type=file],textarea{width:100%;padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);outline:none;transition:border-color .2s,box-shadow .2s}
select:focus,input:focus,textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}
textarea{min-height:150px;resize:vertical}
#app button,form button,.empty button{border-radius:14px;padding:11px 18px;background:var(--brand);color:var(--brand-ink);font-weight:700;transition:transform .2s var(--spring),opacity .2s}
#app button:active,form button:active{transform:scale(.96)}
button:disabled{opacity:.6}
#app button.ghost,.empty button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
button.small{padding:6px 12px;font-size:13.5px;border-radius:999px}
.card{background:var(--surface);border:1px solid var(--line);border-radius:20px;overflow:hidden;margin-bottom:12px;box-shadow:0 1px 0 #0000000a}
.card .pad{padding:14px 16px}
.card h3{margin:0 0 6px;font:700 18px/1.4 var(--f)}
.meta{font-size:13.5px;color:var(--mute);display:flex;flex-wrap:wrap;gap:4px 10px;align-items:center}
.tag{background:var(--brand);color:#fff;border-radius:999px;padding:1px 10px;font-size:13px;font-weight:700}
.pill{font-size:12.5px;padding:1px 10px;border-radius:999px;border:1px solid var(--line);font-weight:600}
.msg{padding:10px 14px;border-radius:14px;background:var(--surface);border:1px solid var(--line);margin-bottom:10px}
.msg.err{border-color:var(--brand);color:var(--brand)}
form.stack{display:grid;gap:12px}
label{font-size:13.5px;color:var(--mute);display:grid;gap:5px;font-weight:600}
.row{display:flex;gap:8px;flex-wrap:wrap;align-items:center}
h2{font:800 20px var(--f);margin:24px 0 10px}
.tiles{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}
.tile{background:var(--surface);border:1px solid var(--line);border-radius:18px;padding:12px 14px;display:grid;gap:2px}
.tile b{font:800 24px/1.1 var(--f);font-variant-numeric:tabular-nums}
.tile span{font-size:12.5px;color:var(--mute);font-weight:600}
h3.sub{font:700 15px var(--f);margin:16px 0 6px;color:var(--mute)}
.bar{display:grid;grid-template-columns:96px 1fr 28px;gap:10px;align-items:center;padding:3px 0;font-size:14px}
.bar i{display:block;height:8px;border-radius:4px;background:linear-gradient(90deg,var(--brand),#ff8a3d);width:var(--w);min-width:6px}
.bar em,.toprow em{font-style:normal;color:var(--mute);font-variant-numeric:tabular-nums;text-align:right}
.toprow{display:flex;justify-content:space-between;gap:12px;padding:5px 0;border-bottom:1px solid var(--line);font-size:14.5px}
.toprow span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;min-width:0}
label.chk{display:flex;align-items:center;gap:10px;color:var(--ink);font-size:14.5px}
label.chk input{width:20px;height:20px;accent-color:var(--brand)}

@media (prefers-reduced-motion:reduce){
  *,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}
  .rv{opacity:1;transform:none}
}


/* ---------- v3: menu, notifications, geo, polls, ads, comments, reporter, market, gallery ---------- */
button.pri,button.ghost{display:inline-flex;align-items:center;justify-content:center;gap:8px}
button.pri{background:var(--brand);color:#fff;border-radius:14px;padding:11px 18px;font-weight:700;transition:transform .2s var(--spring),opacity .2s}
button.pri.small{padding:7px 14px;font-size:14px;border-radius:999px}
button.pri:active,button.ghost:active{transform:scale(.95)}
button.pri:disabled{opacity:.6}
button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:14px;padding:10px 16px;font-weight:600}
button.ghost.small{padding:6px 12px;font-size:13.5px;border-radius:999px}
.hp{position:absolute!important;left:-9999px;width:1px;height:1px;opacity:0}
.sub{color:var(--mute);font-size:14.5px}
.vbadge{display:inline-grid;place-items:center;width:18px;height:18px;border-radius:50%;background:#1d9bf0;color:#fff;font-size:11px;font-weight:800;vertical-align:1px}
.sp-tag{display:inline-block;margin-left:8px;padding:0 8px;border-radius:999px;background:#f59e0b22;color:#b45309;font-size:12px;font-weight:700}
@media(prefers-color-scheme:dark){.sp-tag{color:#fbbf24}}
.menu h3{font:800 22px var(--f);margin:6px 0 12px}
.menu .mrow{display:flex;align-items:center;gap:14px;width:100%;text-align:left;padding:13px 6px;border-radius:16px;text-decoration:none;color:var(--ink);transition:background .2s}
.menu .mrow:active,.menu .mrow:hover{background:var(--surface-2)}
.menu .mrow svg{color:var(--brand);flex:none}
.menu .mrow b{display:block;font-weight:700}
.menu .mrow small{display:block;color:var(--mute);font-size:13.5px;line-height:1.35}
.menu .mrow.note{cursor:default}
.menu .grp{font-size:13px;font-weight:700;color:var(--mute);margin:14px 0 4px}
.chk{display:flex;align-items:center;gap:12px;padding:10px 4px;font-weight:600;color:var(--ink)}
.chk input{width:20px;height:20px;accent-color:var(--brand);flex:none}
.chk small{margin-left:auto;color:var(--mute);font-weight:500}
.dlist{max-height:34dvh;overflow:auto;border:1px solid var(--line);border-radius:16px;padding:2px 10px}
.row-btns{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0 6px}
.locme{display:flex;align-items:center;gap:8px;width:100%;justify-content:center;padding:12px;border-radius:14px;background:var(--brand-soft);color:var(--brand);font-weight:700;margin-bottom:10px}

.geocard{display:flex;align-items:center;gap:12px;margin:0 0 12px;padding:12px 12px 12px 14px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.geocard>span{color:var(--brand)}
.geocard div{flex:1;min-width:0}.geocard b{display:block;font-size:15.5px}.geocard small{color:var(--mute);font-size:13px}
.geocard .x{width:30px;height:30px;border-radius:50%;display:grid;place-items:center;color:var(--mute)}
.pills{display:flex;gap:8px;flex-wrap:wrap;margin:0 0 12px}
.pill2{display:inline-flex;align-items:center;gap:6px;padding:7px 13px;border-radius:999px;border:1px solid var(--line);background:var(--surface);font-weight:600;font-size:14px;transition:transform .2s var(--spring)}
.pill2:active{transform:scale(.94)}
.pill2 svg{color:var(--brand)}

.pollcard{margin:14px 0;padding:16px;border-radius:24px;background:var(--surface);border:1px solid var(--line)}
.pollcard .phead{display:flex;align-items:center;gap:6px;font-size:13px;font-weight:700;color:var(--brand);margin-bottom:4px}
.pollcard h4{margin:0 0 12px;font:800 19px/1.4 var(--f)}
.popt{position:relative;display:flex;align-items:center;justify-content:space-between;gap:10px;width:100%;text-align:left;padding:12px 14px;margin-bottom:8px;border-radius:14px;border:1px solid var(--line);background:var(--bg);font-weight:600;overflow:hidden;transition:transform .2s var(--spring),border-color .2s}
button.popt:active{transform:scale(.98);border-color:var(--brand)}
.popt.done i{position:absolute;inset:0 auto 0 0;background:var(--brand-soft);transition:width .9s var(--ease);z-index:0}
.popt.done.mine{border-color:var(--brand)}
.popt.done span,.popt.done b{position:relative;z-index:1}
.pollcard small{color:var(--mute)}
.adcard{margin:14px 0;padding:10px 12px 12px;border-radius:22px;border:1px dashed var(--line);background:var(--surface)}
.adcard .adlab{display:block;color:var(--mute);font-size:12px;margin-bottom:6px}
.adcard a{display:flex;gap:12px;align-items:center;text-decoration:none;color:var(--ink)}
.adcard img{width:88px;height:88px;border-radius:16px;object-fit:cover;flex:none}
.adcard b{display:block;font:800 17px/1.35 var(--f)}.adcard p{margin:2px 0 0;color:var(--mute);font-size:14.5px}

.art .byline{display:flex;width:100%;text-align:left;background:none}
.byline .ava{flex:none}
.cform{display:grid;gap:8px;margin:10px 0 16px}
.cform input[type=text],.cform textarea,.mkform input,.mkform select,.mkform textarea{width:100%;padding:11px 13px;border:1px solid var(--line);border-radius:14px;background:var(--bg);outline:none}
.cform textarea{min-height:76px;resize:vertical}
.cform input:focus,.cform textarea:focus,.mkform input:focus,.mkform select:focus,.mkform textarea:focus{border-color:var(--brand);box-shadow:0 0 0 4px color-mix(in srgb,var(--brand) 16%,transparent)}
.cm{display:flex;gap:10px;padding:10px 0;border-top:1px solid var(--line)}
.cm .ava{width:34px;height:34px;border-radius:50%;background:var(--surface-2);display:grid;place-items:center;font-weight:800;flex:none}
.cm div{flex:1;min-width:0}.cm b{margin-right:8px}.cm small{color:var(--mute)}.cm p{margin:2px 0 0;white-space:pre-wrap;overflow-wrap:anywhere}
.cflag{color:var(--mute);width:30px;height:30px;display:grid;place-items:center;flex:none;opacity:.6}
.act.on#listenBtn{color:var(--brand);border-color:var(--brand);background:var(--brand-soft)}

.art .gal{overflow:hidden}
.gal-track{position:absolute;inset:0;display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none}
.gal-track::-webkit-scrollbar{display:none}
.gal-track img{flex:none;width:100%;height:100%;object-fit:cover;scroll-snap-align:center}
.dots{position:absolute;bottom:10px;left:0;right:0;display:flex;justify-content:center;gap:6px;pointer-events:none}
.dots i{width:7px;height:7px;border-radius:50%;background:#fff8;transition:width .3s var(--ease),background .3s}
.dots i.on{width:20px;background:#fff}
.proc{display:grid;place-items:center;gap:8px;color:#fff;text-align:center;padding:20px;font-weight:600}

.repo-h{display:flex;align-items:center;gap:14px;margin:4px 0 8px}
.repo-h h3{margin:0;font:800 22px var(--f)}.repo-h small{color:var(--mute)}
.ava.big{width:60px;height:60px;border-radius:50%;background:var(--brand);color:#fff;display:grid;place-items:center;font:800 26px var(--f);flex:none}
.repo .bio{margin:6px 0 12px;line-height:1.6}
.rstats{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:8px 0}
.rstats div{background:var(--surface-2);border-radius:16px;padding:10px;text-align:center}
.rstats b{display:block;font:800 20px var(--f);font-variant-numeric:tabular-nums}.rstats small{color:var(--mute)}
.digest canvas{width:100%;height:auto;border-radius:18px;border:1px solid var(--line);display:block}

.seg2{display:flex;background:var(--surface-2);border-radius:999px;padding:4px;margin:0 0 12px}
.seg2 button{flex:1;padding:9px 6px;border-radius:999px;font-weight:700;font-size:14.5px;color:var(--mute);transition:background .3s,color .3s}
.seg2 button.on{background:var(--surface);color:var(--ink);box-shadow:0 1px 6px #0002}
#market .cats{margin-top:12px}
.mk-card{display:flex;gap:12px;padding:12px;margin-bottom:10px;border-radius:20px;background:var(--surface);border:1px solid var(--line)}
.mk-th{width:84px;height:84px;border-radius:16px;flex:none;background:linear-gradient(150deg,#475569,#94a3b8) center/cover;position:relative;overflow:hidden}
.mk-th.ph::after{content:attr(data-l);position:absolute;inset:0;display:grid;place-items:center;font:800 32px var(--f);color:#ffffff99}
.mk-b{flex:1;min-width:0}
.mk-t{font:700 17px/1.35 var(--f)}.mk-s{font-size:13.5px;color:var(--mute);margin-top:1px}
.mk-b p{margin:6px 0 0;font-size:14.5px;color:var(--ink);opacity:.85;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.mk-act{display:flex;gap:8px;margin-top:10px}
.mk-act a{display:inline-flex;align-items:center;gap:6px;padding:7px 14px;border-radius:999px;font-weight:700;font-size:14px;text-decoration:none}
.mk-act .call{background:var(--brand);color:#fff}.mk-act .wa{background:#25d36622;color:#128c3e}
.kindtag{display:inline-block;padding:0 8px;border-radius:999px;background:var(--brand-soft);color:var(--brand);font-size:12.5px;font-weight:700;vertical-align:1px}
.fab{position:fixed;right:18px;bottom:calc(var(--nav) + var(--safe-b) + 30px);z-index:35;display:flex;align-items:center;gap:8px;padding:13px 18px;border-radius:999px;background:var(--ink);color:var(--bg);font-weight:700;box-shadow:var(--shadow);transition:transform .25s var(--spring)}
.fab:active{transform:scale(.94)}
.mkform{display:grid;gap:12px}
.mkform label{display:grid;gap:5px;font-size:13.5px;font-weight:600;color:var(--mute)}
.mkform .two{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mkform .prev{width:100%;max-height:200px;object-fit:cover;border-radius:14px}
@media(max-width:380px){.mkform .two{grid-template-columns:1fr}}

/* crawlable article / district pages (served by the server, no JavaScript) */
body.sp{background:var(--bg)}
.sp-head{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px max(16px,calc(50% - 340px + 16px));background:var(--surface);border-bottom:1px solid var(--line);position:sticky;top:0;z-index:5}
.sp-open{font-weight:700;color:var(--brand);text-decoration:none}
.sp-main{max-width:680px;margin:0 auto;padding:18px 16px 60px}
.sp-main h1{font:800 clamp(26px,6vw,34px)/1.28 var(--f);margin:6px 0 10px}
.sp-kick{font-size:14px;font-weight:700;color:var(--brand)}.sp-kick a{color:inherit}
.sp-by{color:var(--mute);font-size:14.5px;margin-bottom:14px}.sp-by a{color:inherit;font-weight:700}
.sp-media{width:100%;aspect-ratio:16/10;object-fit:cover;border-radius:18px;border:0;margin-bottom:14px;background:#000}
.sp-more{width:100%;border-radius:16px;margin:10px 0}
.sp-body{font-size:19px;line-height:1.85}.sp-body p{margin:0 0 1em}
.sp-cta{margin:22px 0;display:flex;gap:10px;flex-wrap:wrap}
.sp-btn{display:inline-block;padding:12px 20px;border-radius:999px;background:var(--brand);color:#fff;font-weight:700;text-decoration:none}
.sp-btn.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.sp-rel{margin-top:26px;border-top:1px solid var(--line);padding-top:6px}
.sp-rel h2{font:800 19px var(--f);margin:14px 0 4px}
.sp-rel a{display:block;padding:11px 0;border-bottom:1px solid var(--line);color:var(--ink);text-decoration:none;font-weight:600}
.sp-rel a small{display:block;color:var(--mute);font-weight:400}

.mk-s svg{display:inline-block;vertical-align:-2px}

/* ---------- admin panel v3 ---------- */
.atabs{display:flex;gap:6px;overflow-x:auto;margin:6px -16px 14px;padding:2px 16px 8px;scrollbar-width:none;position:sticky;top:0;z-index:5;background:var(--bg)}
.atabs::-webkit-scrollbar{display:none}
.atabs button{flex:none;position:relative;padding:9px 16px;border-radius:999px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 15px var(--f);cursor:pointer;transition:background .25s var(--ease),color .25s,transform .2s}
.atabs button:active{transform:scale(.96)}
.atabs button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
.atabs .dot{position:absolute;top:5px;right:7px;width:9px;height:9px;border-radius:50%;background:var(--brand)}
.seg2{display:flex;gap:6px;margin-bottom:14px}
.seg2 button{flex:1;padding:10px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--ink);font:600 15px var(--f);cursor:pointer}
.seg2 button.on{background:var(--ink);color:var(--bg)}
.hp{position:absolute;left:-9999px;width:1px;height:1px;opacity:0}
.hello{margin:4px 0 8px}
a.lnk{display:inline-flex;align-items:center;text-decoration:none}
label.chk{display:flex;gap:10px;align-items:flex-start;font-size:15px}
label.chk input{width:20px;height:20px;margin-top:2px;flex:none}
.aibox{border:1px dashed var(--line);border-radius:16px;padding:10px 12px;display:grid;gap:8px}
.aiout{background:var(--surface);border-radius:12px;padding:10px 12px;font-size:15px}
.aiout .pre{white-space:pre-wrap;margin:6px 0}
.chipbtn{display:block;width:100%;text-align:left;margin-top:6px;padding:9px 12px;border-radius:12px;border:1px solid var(--line);background:var(--bg);color:var(--ink);font:600 15px var(--f);cursor:pointer}
.thumbs{display:flex;gap:10px;flex-wrap:wrap;margin-top:8px}
.th2{position:relative;width:104px;height:104px;border-radius:14px;overflow:hidden;background:var(--surface-2)}
.th2 img{width:100%;height:100%;object-fit:cover;display:block}
.th2 .n{position:absolute;top:5px;left:5px;background:#000a;color:#fff;font:700 11px var(--f);padding:2px 8px;border-radius:999px}
.th2 .tb{position:absolute;inset:auto 0 0 0;display:flex;justify-content:space-between;background:linear-gradient(transparent,#000b);padding:14px 3px 3px}
.th2 .tb button{border:0;background:none;color:#fff;font-size:15px;min-width:26px;min-height:26px;cursor:pointer}
.cropper{position:fixed;inset:0;z-index:100;background:#000c;display:grid;place-items:center;padding:16px}
.cbox{background:var(--bg);color:var(--ink);border-radius:22px;padding:16px;display:grid;gap:10px;max-width:400px;width:100%;justify-items:center}
.cbox canvas{border-radius:12px;touch-action:none;cursor:grab;background:#000}
.cbox .zoom{display:flex;gap:10px;align-items:center;width:100%}.cbox .zoom input{flex:1}
.cbox button.on{background:var(--ink);color:var(--bg)}
.chart{width:100%;height:auto;display:block}
.chart .gl{stroke:var(--line);stroke-width:1}
.chart .tl{fill:var(--mute);font:11px var(--f)}.chart .pk{fill:var(--ink);font-weight:700}
.chart .bar-b{fill:var(--mute);opacity:.55}.chart .bar-now{fill:var(--brand)}
.toprow{display:flex;justify-content:space-between;gap:10px;padding:8px 0;border-bottom:1px solid var(--line);font-size:15px}
.toprow em{font-style:normal;color:var(--mute);flex:none}
.sys{display:grid;gap:8px}.sys div{display:flex;justify-content:space-between;gap:12px;padding:10px 12px;background:var(--surface);border:1px solid var(--line);border-radius:14px;font-size:14.5px}
.sys span{color:var(--mute);text-align:right}
.vbadge{color:#fff;background:#1d9bf0;border-radius:50%;font-size:11px;padding:1px 5px}
#app .atabs button,#app .seg2 button{background:var(--surface);color:var(--ink);border:1px solid var(--line);padding:9px 16px;border-radius:999px}
#app .seg2 button{flex:1;border-radius:14px}
#app .atabs button.on,#app .seg2 button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
#app .th2 .tb button{background:none;color:#fff;padding:0;border-radius:0}
#app .chipbtn{background:var(--bg);color:var(--ink);border:1px solid var(--line);padding:9px 12px;border-radius:12px}
.cbox button{border-radius:14px;padding:9px 16px;font-weight:700}
.cbox button.ghost{background:transparent;color:var(--ink);border:1px solid var(--line)}
.cbox button.pri{background:var(--brand);color:#fff}
.cbox button.on{background:var(--ink);color:var(--bg);border-color:var(--ink)}
#app a.ghost.lnk{border:1px solid var(--line);color:var(--ink);padding:6px 12px;font-size:13.5px;border-radius:999px;font-weight:700}
#app input[type=number],#app input[type=url],#app input[type=password],#app input[type=text]{padding:12px 14px;border:1px solid var(--line);border-radius:14px;background:var(--surface);min-width:0}

/* =====================================================================
   v4 redesign: aura background, glass header, carousel, card feed, sticky chips
   ===================================================================== */
:root{--grad:linear-gradient(135deg,#ff8a3d,var(--brand) 58%,#e11d74);--r:26px}
body::before{content:"";position:fixed;inset:-25% -15% auto;height:75vh;z-index:-1;pointer-events:none;filter:blur(34px);opacity:.9;
  background:radial-gradient(38% 46% at 14% 22%,color-mix(in srgb,#ff9a4d 30%,transparent),transparent 70%),radial-gradient(42% 52% at 86% 8%,color-mix(in srgb,var(--brand) 22%,transparent),transparent 70%),radial-gradient(38% 46% at 62% 62%,color-mix(in srgb,#7c5cff 16%,transparent),transparent 70%);
  animation:aura 20s ease-in-out infinite alternate}
@keyframes aura{to{transform:translate3d(-4%,5%,0) scale(1.12)}}
body.in-reels::before,body.lock::before{display:none}
body::after{content:"";position:fixed;top:0;left:0;right:0;height:3px;z-index:60;background:var(--grad);transform-origin:0 50%;transform:scaleX(var(--sp,0));opacity:0;transition:opacity .3s;pointer-events:none}
body.scrolled::after{opacity:1}body.in-reels::after{display:none}

/* header: clear at the top, glass once you scroll */
.app-header{background:transparent;border-bottom-color:transparent;backdrop-filter:none;-webkit-backdrop-filter:none}
body.scrolled .app-header{background:var(--glass);backdrop-filter:blur(20px) saturate(1.5);-webkit-backdrop-filter:blur(20px) saturate(1.5);border-bottom-color:color-mix(in srgb,var(--line) 70%,transparent)}
.brand-mini{font-size:19px;letter-spacing:-.3px}
.brand-mini img{width:32px;height:32px;border-radius:10px;box-shadow:0 6px 16px -6px color-mix(in srgb,var(--brand) 70%,transparent)}
.loc,.menu-btn{background:color-mix(in srgb,var(--surface) 80%,transparent);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px)}

/* greeting + title */
.hero-date{display:flex;align-items:center;gap:8px;font-size:14px}
.gr{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:1px 12px;font-weight:700;color:var(--ink);box-shadow:0 6px 14px -10px rgba(0,0,0,.4)}
.hero-title{font-size:clamp(32px,9.6vw,46px);line-height:1.1;letter-spacing:-.8px;margin:6px 0 16px}
.hero-title em{background:var(--grad);-webkit-background-clip:text;background-clip:text}
.search{height:52px;border-radius:18px;background:color-mix(in srgb,var(--surface) 86%,transparent);box-shadow:0 14px 30px -22px rgba(20,20,30,.5)}

/* district rings */
.st .ring{background:conic-gradient(from 200deg,#ffb347,#ff5a36,#e11d74,#7c5cff,#ffb347)}
.st.on .ring{background:var(--grad)}
.st.on label{color:var(--brand)}

/* category chips: icon + colour, sticky under the header */
.cats{position:sticky;top:calc(var(--bar) + var(--safe-t));z-index:12;margin:4px -16px 8px;padding:8px 16px 10px;
  background:linear-gradient(var(--bg) 62%,color-mix(in srgb,var(--bg) 0%,transparent));transition:top .35s var(--ease)}
.app-header.hide ~ main .cats{top:var(--safe-t)}
.chip{display:inline-flex;align-items:center;gap:6px;padding:8px 15px 8px 11px;border-radius:999px;background:var(--surface)}
.chip .ce{font-size:16px;line-height:1}
.chip[aria-pressed=true]{background:linear-gradient(135deg,var(--g1),var(--g2));color:#fff;border-color:transparent;box-shadow:0 10px 20px -10px var(--g2);transform:translateY(-1px)}
.chip[data-v=""][aria-pressed=true]{background:var(--ink);color:var(--bg);box-shadow:0 10px 20px -12px var(--ink)}
#mkCats .chip{padding:8px 15px}

/* top stories carousel */
.leads{position:relative;margin:2px -16px 6px}
.lt{display:flex;gap:12px;overflow-x:auto;scroll-snap-type:x mandatory;padding:6px 16px 16px;scrollbar-width:none;overscroll-behavior-x:contain}
.lt::-webkit-scrollbar{display:none}
.lead-card{flex:none;width:calc(100% - 40px);max-width:520px;aspect-ratio:4/5;border-radius:32px;scroll-snap-align:center;box-shadow:0 26px 40px -26px rgba(15,15,30,.6)}
.lead-card:first-child{scroll-snap-align:start}
.lead-card .media{inset:0 -14%;transform:translateX(calc(var(--px,0)*-16%)) scale(1.04);transition:none}
.lead-card:hover .media{transform:translateX(calc(var(--px,0)*-16%)) scale(1.04)}
.lead-card .grad{background:linear-gradient(to top,rgba(5,5,12,.88) 6%,rgba(5,5,12,.3) 52%,rgba(5,5,12,.05) 80%)}
.lead-card h2{font-size:clamp(23px,6.4vw,29px);line-height:1.28;margin:12px 0 8px;text-shadow:0 2px 14px #0006}
.lead-card .cnt{position:absolute;top:16px;left:16px;font:800 17px/1 var(--f);color:#fff;background:#00000040;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);border:1px solid #ffffff30;border-radius:999px;padding:7px 12px}
.lead-card .cnt small{opacity:.65;font-weight:600}
.ldots{display:flex;gap:6px;justify-content:center;margin-top:-4px}
.ldots i{width:6px;height:6px;border-radius:99px;background:color-mix(in srgb,var(--ink) 20%,transparent);transition:width .45s var(--spring),background .3s}
.ldots i.on{width:24px;background:var(--grad)}
.live{background:var(--grad)}

/* feed as cards */
.list{gap:12px}
.row-card{grid-template-columns:1fr 96px;gap:14px;padding:14px;background:var(--surface);border:1px solid var(--line);border-radius:var(--r);box-shadow:0 18px 30px -26px rgba(20,20,30,.55);transition:transform .35s var(--spring),box-shadow .3s}
.row-card:active{transform:scale(.97);opacity:1}
.row-card .k{width:fit-content;padding:2px 10px 2px 8px;border-radius:999px;background:color-mix(in srgb,var(--c) 13%,transparent)}
.row-card h3{font-size:18px;line-height:1.38}
.row-card .th{width:96px;height:116px;border-radius:20px}
.feat{display:block;border-radius:30px;overflow:hidden;background:var(--surface);border:1px solid var(--line);box-shadow:0 24px 36px -28px rgba(15,15,30,.6);cursor:pointer;transition:transform .35s var(--spring)}
.feat:active{transform:scale(.97)}
.feat .im{position:relative;aspect-ratio:16/10;background:linear-gradient(150deg,var(--g1),var(--g2)) center/cover}
.feat .im .live{position:absolute;top:12px;left:12px}
.feat .bd{padding:14px 18px 18px}
.feat .k{display:flex;align-items:center;gap:7px;font-size:13px;font-weight:700;color:var(--c)}
.feat .k i{width:8px;height:8px;border-radius:50%;background:var(--c)}
.feat h3{margin:8px 0 8px;font:800 22px/1.34 var(--f);text-wrap:balance}
.feat .m{font-size:13px;color:var(--mute);display:flex;gap:6px}
.sk-row{background:var(--surface);border:1px solid var(--line);border-radius:var(--r);padding:14px;margin-bottom:12px}
.vrail h4,.trend h4{letter-spacing:-.3px}
.vc{border-radius:24px}

/* floating nav */
.nav{background:color-mix(in srgb,var(--surface) 70%,transparent);backdrop-filter:blur(24px) saturate(1.7);-webkit-backdrop-filter:blur(24px) saturate(1.7);
  border:1px solid color-mix(in srgb,#fff 45%,var(--line));box-shadow:0 22px 44px -18px rgba(10,10,25,.5),inset 0 1px 0 #ffffff55}
.nav .ind{background:var(--grad);box-shadow:0 10px 22px -8px color-mix(in srgb,var(--brand) 75%,transparent)}
button.pri,.pri{background:var(--grad)}

/* article reading progress */
.rprog{position:sticky;top:0;z-index:5;height:3px;margin:-1px 0 0;background:transparent}
.rprog i{display:block;height:100%;background:var(--grad);transform-origin:0 50%;transform:scaleX(0);border-radius:0 3px 3px 0}

/* pull to refresh */
.ptr{position:fixed;top:calc(var(--bar) + var(--safe-t));left:50%;z-index:45;width:40px;height:40px;margin-left:-20px;border-radius:50%;background:var(--surface);box-shadow:var(--shadow);display:grid;place-items:center;opacity:0;transform:translateY(-30px) scale(.6);transition:opacity .2s,transform .25s var(--spring);pointer-events:none}
.ptr.on{opacity:1;transform:translateY(calc(var(--pull,0)*1px - 10px)) scale(1)}
.ptr i{width:18px;height:18px;border-radius:50%;border:3px solid var(--line);border-top-color:var(--brand);transform:rotate(calc(var(--pull,0)*6deg))}
.ptr.rdy i{animation:spin .7s linear infinite}
@keyframes spin{to{transform:rotate(360deg)}}

@media(prefers-color-scheme:dark){
  body::before{opacity:.7}
  .row-card,.feat,.sk-row{box-shadow:none}
  .gr,.chip{background:var(--surface-2)}
  .nav{border-color:color-mix(in srgb,#fff 12%,transparent);box-shadow:0 22px 44px -18px #000,inset 0 1px 0 #ffffff1a}
}
@media(prefers-reduced-motion:reduce){body::before{animation:none}.ptr.rdy i{animation:none}}
@media(min-width:700px){.lead-card{width:min(78%,520px)}}
/* tighter top section */
.geocard{padding:8px 8px 8px 14px;border-radius:18px;margin-bottom:8px;background:color-mix(in srgb,var(--surface) 88%,transparent)}
.geocard small{display:none}
.geocard .pri,.geocard button.pri{padding:8px 16px}
.pills{margin:0 0 10px}
.pill2{background:var(--surface);border:1px solid var(--line);border-radius:999px;padding:7px 14px 7px 11px;font-weight:700;font-size:14px;display:inline-flex;align-items:center;gap:6px;color:var(--ink)}
.pill2 svg{color:var(--brand)}
.stories{margin-top:6px;padding-top:8px}

/* =====================================================================
   v5: Instagram-style front page (stories + post feed)
   ===================================================================== */
.srch-btn{width:40px;height:40px;border-radius:50%;display:grid;place-items:center;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--ink);flex:none;margin-left:auto}
.srch-btn + .loc{margin-left:0}
.app-header .loc{max-width:46%}
#searchBox{margin:0 0 6px}
.home{padding-top:calc(var(--bar) + var(--safe-t) + 6px)}
#breaking{margin-bottom:4px}

/* stories row */
.stories{margin:2px -16px 0;padding:8px 14px 10px;gap:12px}
.st{width:72px}
.st .ring{width:68px;height:68px;padding:3px}
.st .av{border-width:3px;font-size:24px}
.st.seen .ring{background:var(--line);animation:none}
.st.cur .ring{box-shadow:0 0 0 2px var(--bg),0 0 0 4px var(--brand)}
.st label{font-size:12.5px;max-width:72px;color:var(--ink)}
.st.seen label{color:var(--mute)}
.st.on .ring{transform:none;background:conic-gradient(from 200deg,#ffb347,#ff5a36,#e11d74,#7c5cff,#ffb347);animation:none}
.st.on .av{background:var(--surface);color:var(--ink)}

/* sticky category chips stay thin */
.cats{margin:0 -16px 0;padding:6px 16px 8px;border-bottom:1px solid var(--line);background:color-mix(in srgb,var(--bg) 92%,transparent);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px)}
.chip{padding:6px 13px 6px 9px;font-size:14px}

/* feed */
#list.list{display:block;margin:0 -16px;gap:0}
.pc{background:var(--surface);border-bottom:8px solid var(--bg);max-width:560px;margin:0 auto;position:relative}
@media(min-width:640px){.pc{border:1px solid var(--line);border-radius:22px;overflow:hidden;margin:14px auto}}
.ph{display:flex;align-items:center;gap:10px;padding:10px 14px;cursor:pointer}
.pav{flex:none;width:38px;height:38px;border-radius:50%;padding:2px;background:conic-gradient(from 200deg,#ffb347,#ff5a36,#e11d74,#7c5cff,#ffb347);display:grid;place-items:center}
.pav.seen{background:var(--line)}
.pav i{font-style:normal;width:100%;height:100%;border-radius:50%;background:var(--surface);border:2px solid var(--surface);display:grid;place-items:center;font:800 16px var(--f);color:var(--ink)}
.pm{flex:1;min-width:0;line-height:1.25}.pm b{font-size:15px;display:block}.pm small{font-size:12.5px;color:var(--c);font-weight:600}
.pm small u{text-decoration:none;color:#fff;background:var(--brand);padding:0 7px;border-radius:999px;font-size:11.5px;margin-left:2px}
.pdots{color:var(--mute)}
.pmed{position:relative;width:100%;aspect-ratio:1/1;background:linear-gradient(150deg,var(--g1),var(--g2)) center/cover no-repeat;overflow:hidden;cursor:pointer;user-select:none;-webkit-user-select:none}
.pmed.vid{aspect-ratio:4/5;background-color:#000}
.pmed video,.pmed iframe{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border:0;background:#000}
.pmed.text{display:grid;place-items:center;padding:26px;text-align:center;aspect-ratio:1/1}
.pmed.text::before{content:"";position:absolute;inset:0;background:radial-gradient(60% 50% at 20% 15%,#ffffff2e,transparent 70%),radial-gradient(50% 50% at 85% 90%,#00000040,transparent 70%)}
.pmed .ttl{position:relative;font:800 clamp(24px,7vw,34px)/1.35 var(--f);color:#fff;text-wrap:balance;text-shadow:0 2px 18px #0004;display:-webkit-box;-webkit-line-clamp:6;-webkit-box-orient:vertical;overflow:hidden}
.vtag{position:absolute;top:12px;left:12px;z-index:2;display:inline-flex;gap:5px;align-items:center;background:#0008;color:#fff;border-radius:999px;padding:3px 10px;font-size:12px;font-weight:700;backdrop-filter:blur(6px)}
.pvol{position:absolute;right:12px;bottom:12px;z-index:2;width:34px;height:34px;border-radius:50%;background:#0009;color:#fff;display:grid;place-items:center}
.bigplay{position:absolute;inset:0;display:grid;place-items:center;color:#fff}
.bigplay svg{width:64px;height:64px;padding:16px;border-radius:50%;background:#000a;backdrop-filter:blur(6px)}
.pmed.yt.playing .bigplay,.pmed.yt.playing .vtag{display:none}
.pmed .burst{z-index:5}
.pa{display:flex;align-items:center;gap:4px;padding:6px 8px 0}
.pact{display:inline-flex;align-items:center;gap:6px;padding:8px;border-radius:12px;color:var(--ink);font-weight:700;font-size:15px;transition:transform .25s var(--spring)}
.pact:active{transform:scale(.85)}
.pact.sv{margin-left:auto}
.pact.like.on{color:var(--brand)}.pact.like.on svg{fill:currentColor;animation:pop .45s var(--spring)}
.pact.sv.on svg{fill:currentColor}
@keyframes pop{40%{transform:scale(1.35)}}
.pcap{padding:2px 14px 14px}
.pcap p{margin:2px 0;font-size:15.5px;line-height:1.5;cursor:pointer}
.pcap p b{margin-right:4px}
.pcap .pcs{color:var(--mute);font-size:14.5px}.pcap .pcs em{font-style:normal;color:var(--ink);font-weight:600}
.ptm{display:block;margin-top:6px;color:var(--mute);font-size:12.5px}
.pc.rv{transform:translateY(12px)}
.sk-pc .ph{padding:10px 14px}

/* story viewer */
.sview{position:fixed;inset:0;z-index:90;background:#000;color:#fff;display:flex;justify-content:center;animation:svin .3s var(--ease)}
@keyframes svin{from{opacity:0;transform:scale(.94)}}
.sview>*{max-width:520px}
.sbars{position:absolute;top:calc(8px + var(--safe-t));left:max(10px,calc(50% - 250px));right:max(10px,calc(50% - 250px));z-index:5;display:flex;gap:4px}
.sbars i{flex:1;height:3px;border-radius:3px;background:#ffffff40;overflow:hidden}
.sbars b{display:block;height:100%;width:0;background:#fff}
.shead{position:absolute;z-index:5;top:calc(20px + var(--safe-t));left:max(12px,calc(50% - 248px));right:max(12px,calc(50% - 248px));display:flex;align-items:center;gap:10px;text-shadow:0 1px 8px #0008}
.shead .pav{width:36px;height:36px}.shead b{font-size:15px}.shead small{opacity:.75}
.sx{margin-left:auto;color:#fff;padding:6px;border-radius:50%}
.sslide{position:relative;width:100%;max-width:520px;height:100%;overflow:hidden;background:linear-gradient(150deg,var(--g1),var(--g2))}
.smedia{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;background:center/cover no-repeat;animation:kb 7s ease-out both}
.smedia.plain{background:none}
@keyframes kb{from{transform:scale(1.02)}to{transform:scale(1.1)}}
.sgrad{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.9) 6%,rgba(0,0,0,.25) 55%,rgba(0,0,0,.45))}
.scap{position:absolute;left:0;right:0;bottom:0;padding:22px 20px calc(24px + var(--safe-b));z-index:4;display:grid;gap:10px;justify-items:start}
.scap h2{margin:0;font:800 clamp(24px,6.6vw,30px)/1.3 var(--f);text-wrap:balance;text-shadow:0 2px 14px #0007}
.scap p{margin:0;opacity:.88;font-size:15.5px}
.scap .pri{margin-top:4px;padding:11px 20px;border-radius:999px}
.sprev,.snext{position:absolute;top:70px;bottom:150px;z-index:3;width:35%;background:none}
.sprev{left:max(0px,calc(50% - 260px))}.snext{right:max(0px,calc(50% - 260px));width:65%}
@media(prefers-color-scheme:dark){.pc{border-bottom-color:var(--bg)}}
@media(prefers-reduced-motion:reduce){.smedia{animation:none}.sview{animation:none}}

/* feed group headings */
.tierbar{padding:14px 16px 10px;background:var(--bg);max-width:560px;margin:0 auto;display:flex;flex-direction:column;gap:2px}
.tierbar b{font:800 18px var(--f);letter-spacing:-.2px}
.tierbar small{color:var(--brand);font-weight:700;font-size:12.5px}
@media(min-width:640px){.tierbar{padding-left:4px}}

/* language switch */
.lang-btn{height:40px;min-width:40px;padding:0 10px;border-radius:999px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 80%,transparent);color:var(--ink);font:800 13.5px var(--f);flex:none;margin-left:auto}
.lang-btn + .srch-btn{margin-left:0}
.mrow.lang{cursor:default}
.langseg{margin-left:auto;display:inline-flex;gap:4px;background:var(--surface-2);border-radius:999px;padding:3px}
.langseg button{padding:6px 14px;border-radius:999px;font-weight:700;font-size:14px;color:var(--mute)}
.langseg button.on{background:var(--ink);color:var(--bg)}
.brand-mini{min-width:0;flex:0 1 auto}
.app-header .loc{max-width:42%;min-width:0}
.brand-mini{flex:none}
.app-header{gap:8px}
.app-header .loc{max-width:36%;min-width:0;flex:0 1 auto;padding-right:8px}
.app-header .loc span{min-width:0}
.chip.srch{padding:6px 11px;color:var(--ink)}
.lang-btn{margin-left:auto}

/* admin: e-paper upload progress */
.epprog{position:relative;height:30px;border-radius:999px;background:var(--surface-2);overflow:hidden}
.epprog i{position:absolute;inset:0 auto 0 0;width:0;background:var(--grad);transition:width .3s}
.epprog span{position:relative;display:block;text-align:center;font-weight:700;font-size:13.5px;line-height:30px}

/* ---------- e-paper ---------- */
.epbar{display:flex;align-items:center;gap:12px;width:100%;margin:0 0 8px;padding:8px 12px 8px 8px;border-radius:18px;background:var(--surface);border:1px solid var(--line);color:var(--ink);text-align:left;box-shadow:0 14px 28px -22px rgba(20,20,30,.5);transition:transform .25s var(--spring)}
.epbar:active{transform:scale(.98)}
.epth{flex:none;width:42px;height:54px;border-radius:7px;background:#ddd center top/cover no-repeat;border:1px solid var(--line);box-shadow:0 4px 10px -5px #0006}
.ept{flex:1;min-width:0;display:grid;line-height:1.3}.ept b{font:800 16.5px var(--f)}.ept small{color:var(--mute);font-size:12.5px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.epgo{display:inline-flex;align-items:center;gap:4px;background:var(--grad);color:#fff;border-radius:999px;padding:7px 14px 7px 16px;font-weight:700;font-size:14px}
.epv{position:fixed;inset:0;z-index:95;background:#16171c;color:#fff;display:flex;flex-direction:column;-webkit-user-select:none;user-select:none;-webkit-touch-callout:none}
.eptop{display:flex;align-items:center;gap:6px;padding:calc(8px + var(--safe-t)) 10px 8px;background:#0e0f12;border-bottom:1px solid #ffffff1f}
.eptop button{color:#fff;padding:8px;border-radius:50%;display:grid;place-items:center}
.eptop select{background:#22242b;color:#fff;border:1px solid #ffffff2e;border-radius:999px;padding:6px 10px;font-size:13.5px;max-width:120px}
.eptt{flex:1;min-width:0;display:grid;line-height:1.25}.eptt b{font-size:15px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.eptt small{opacity:.7;font-size:12.5px}
.epbody{--z:1;flex:1;overflow:auto;overscroll-behavior:contain;touch-action:pan-x pan-y;padding:10px 0 60px;-webkit-overflow-scrolling:touch}
.eppage{position:relative;width:calc(100% * var(--z));max-width:calc(900px * var(--z));margin:0 auto 12px;background:#fff;min-height:240px;aspect-ratio:1/1.5;box-shadow:0 8px 30px #0008}
@media(max-width:900px){.eppage{max-width:none}}
.eppage canvas{display:block;width:100%;height:100%;pointer-events:none}
.eppage:not(.done) canvas{visibility:hidden}
.epspin{position:absolute;inset:0;display:grid;place-items:center;color:#777;font-size:14px}
.eppage.done .epspin{display:none}
.eppage:not(.done):not(.fail) .epspin::before{content:"";width:30px;height:30px;border-radius:50%;border:3px solid #ddd;border-top-color:var(--brand);animation:spin .8s linear infinite}
.epnote{position:absolute;left:50%;bottom:calc(14px + var(--safe-b));transform:translateX(-50%);display:inline-flex;gap:6px;align-items:center;background:#000a;color:#fffc;font-size:12.5px;padding:4px 12px;border-radius:999px;pointer-events:none}
@media print{.epv,.epbar{display:none!important}}

/* e-paper bubble in the stories row */
.st.paper .ring{background:linear-gradient(135deg,#222,#666)}
.st.paper .av{background-size:cover;background-position:top center;border-radius:50%;font-size:0}
.st.paper label{font-weight:800}

/* header: logo, e-paper, district, language, menu (all the same rounded-rectangle buttons) */
.app-header{gap:6px}
.app-header .brand-mini{flex:none}
.hbtn,.app-header .loc,.app-header .lang-btn,.app-header .menu-btn{height:38px;border-radius:12px;border:1px solid var(--line);background:color-mix(in srgb,var(--surface) 86%,transparent);color:var(--ink);font:700 14px var(--f);display:inline-flex;align-items:center;justify-content:center;gap:5px;padding:0 10px;flex:none;margin:0}
.hbtn{background:var(--grad);color:#fff;border-color:transparent;padding:0 12px;white-space:nowrap}
.app-header .loc{flex:1 1 0;min-width:0;max-width:none;justify-content:flex-start;padding:0 8px}
.app-header .loc span{min-width:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.app-header .lang-btn,.app-header .menu-btn{width:38px;padding:0}
@media(max-width:520px){.app-header .brand-mini{font-size:0;gap:0}.app-header .brand-mini img{width:34px;height:34px}}
body.in-reels .hbtn{background:#0006}

/* the brand logo image replaces the old icon + wordmark */
.app-header .brand-mini{font-size:0;gap:0;line-height:0}
.app-header .brand-mini img{height:36px;width:auto;max-width:none;border-radius:8px;box-shadow:0 4px 14px -6px #0009;display:block}

/* latest-news ribbon */
.ticker{display:flex;align-items:stretch;height:38px;margin:0 -16px 10px;background:var(--ink);color:var(--bg);overflow:hidden;position:relative}
.tk-label{flex:none;display:inline-flex;align-items:center;gap:7px;padding:0 14px 0 14px;background:var(--grad);color:#fff;font:800 13.5px var(--f);white-space:nowrap;position:relative;z-index:2;clip-path:polygon(0 0,100% 0,calc(100% - 10px) 100%,0 100%);padding-right:20px}
.tk-label i{width:8px;height:8px;border-radius:50%;background:#fff;animation:blink 1.4s infinite}
.tk-view{flex:1;min-width:0;overflow:hidden;display:flex;align-items:center;mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%);-webkit-mask-image:linear-gradient(90deg,transparent 0,#000 18px,#000 calc(100% - 18px),transparent 100%)}
.tk-track{--tk-dist:1200px;--tk-time:40s;display:flex;white-space:nowrap;will-change:transform;animation:tk var(--tk-time) linear infinite}
.ticker:hover .tk-track,.ticker.hold .tk-track{animation-play-state:paused}
@keyframes tk{from{transform:translateX(0)}to{transform:translateX(calc(var(--tk-dist) * -1))}}
.tk-item{display:inline-flex;align-items:center;gap:8px;padding:0 22px 0 0;color:inherit;font:600 14.5px var(--f);cursor:pointer}
.tk-item span{max-width:none}
.tk-new{color:#ff5a4d;font-size:11px}.tk-dot{color:#ffffff66;font-size:9px}
@media(prefers-color-scheme:dark){.ticker{background:var(--surface-2);color:var(--ink)}.tk-dot{color:#ffffff55}}
@media(prefers-reduced-motion:reduce){.tk-track{animation:none}.tk-view{overflow-x:auto;scrollbar-width:none}}

/* header and latest-news ribbon are pinned (they no longer hide on scroll) */
.ticker{position:fixed;top:calc(var(--bar) + var(--safe-t));left:0;right:0;margin:0;z-index:29;box-shadow:0 8px 18px -12px #0008}
body:not([data-view=home]) .ticker{display:none}
body.has-ticker[data-view=home] #home{padding-top:calc(var(--bar) + var(--safe-t) + 50px)}
body.has-ticker[data-view=home] .cats{top:calc(var(--bar) + var(--safe-t) + 38px)}
body.in-reels .ticker{display:none}

/* install-the-app popup */
.installpop{position:fixed;left:50%;bottom:calc(var(--nav) + var(--safe-b) + 26px);z-index:70;width:min(calc(100% - 24px),420px);transform:translate(-50%,30px);opacity:0;transition:transform .45s var(--spring),opacity .3s;background:var(--surface);color:var(--ink);border:1px solid var(--line);border-radius:22px;padding:14px 14px 14px;box-shadow:0 24px 50px -16px rgba(10,10,25,.55)}
.installpop.in{transform:translate(-50%,0);opacity:1}
.installpop .ipx{position:absolute;top:6px;right:6px;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:var(--mute)}
.ipr{display:flex;gap:12px;align-items:center;padding-right:22px}
.ipr img{flex:none;border-radius:13px;box-shadow:0 6px 14px -6px #0006}
.ipr b{display:block;font:800 16px/1.3 var(--f)}.ipr small{display:block;color:var(--mute);font-size:13px;line-height:1.35;margin-top:2px}
.ipsteps{margin-top:10px;padding:10px 12px;background:var(--surface-2);border-radius:14px;font-size:14px;line-height:1.5}
.ipsteps svg{display:inline-block;vertical-align:-3px}
.ipb{display:flex;gap:8px;margin-top:12px}
.ipb .pri{flex:1;padding:11px 14px}.ipb .ghost{padding:11px 16px;border-radius:14px;border:1px solid var(--line)}

/* alerts popup + settings */
.iplink{display:block;width:100%;margin-top:8px;padding:6px;color:var(--brand);font-weight:700;font-size:14px;text-align:center}
.nmode{display:flex;gap:16px;margin:6px 0 4px}

/* install bar (top) and subscribe pill (right corner) */
.installbar{position:fixed;left:0;right:0;top:calc(var(--bar) + var(--safe-t));z-index:28;background:var(--surface);border-bottom:1px solid var(--line);box-shadow:0 14px 24px -16px #0007;transform:translateY(-110%);opacity:0;transition:transform .45s var(--spring),opacity .3s}
body.has-ticker .installbar{top:calc(var(--bar) + var(--safe-t) + 38px)}
.installbar.in{transform:none;opacity:1}
body:not([data-view=home]) .installbar,body.in-reels .installbar{display:none}
.ibr{display:flex;align-items:center;gap:10px;padding:8px 10px 8px 12px;max-width:680px;margin:0 auto}
.ibr img{flex:none;border-radius:10px}
.ibt{flex:1;min-width:0;line-height:1.25}.ibt b{display:block;font:800 15px var(--f)}.ibt small{display:block;color:var(--mute);font-size:12px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.ibgo{flex:none;background:var(--grad);color:#fff;font:800 14px var(--f);padding:8px 16px;border-radius:999px;box-shadow:0 8px 16px -8px var(--brand)}
.ibx{flex:none;width:30px;height:30px;display:grid;place-items:center;border-radius:50%;color:var(--mute)}
.installbar .ipsteps{margin:0 12px 10px;max-width:656px}
@media(min-width:700px){.installbar .ipsteps{margin:0 auto 10px}}
.subpill{position:fixed;right:12px;bottom:calc(var(--nav) + var(--safe-b) + 26px);z-index:60;display:flex;align-items:center;background:#e5322d;color:#fff;border-radius:999px;box-shadow:0 12px 24px -10px #e5322d,0 4px 10px -4px #0006;transform:translateX(130%);transition:transform .5s var(--spring)}
.subpill.in{transform:none}
body.in-reels .subpill{bottom:calc(var(--safe-b) + 90px)}
.spgo{display:inline-flex;align-items:center;gap:6px;padding:8px 6px 8px 12px;font:800 13.5px var(--f);color:#fff}
.spgo svg{animation:ring 2.4s ease-in-out infinite;transform-origin:50% 0}
.spx{width:26px;height:26px;display:grid;place-items:center;border-radius:50%;color:#ffffffcc;margin-right:2px}
@keyframes ring{0%,60%,100%{transform:rotate(0)}10%{transform:rotate(14deg)}20%{transform:rotate(-12deg)}30%{transform:rotate(9deg)}40%{transform:rotate(-6deg)}}
@media(prefers-reduced-motion:reduce){.spgo svg{animation:none}}
