body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,"Segoe UI",Roboto,sans-serif}
.font-mono{font-family:"JetBrains Mono",ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-variant-numeric:tabular-nums}
.tabular-nums{font-variant-numeric:tabular-nums}
@keyframes nmx{from{transform:translateX(0)}to{transform:translateX(-50%)}}.nmx-marquee{animation:nmx 90s linear infinite}.nmx-marquee:hover{animation-play-state:paused}
@media (prefers-reduced-motion:reduce){.nmx-marquee{animation:none}}
.noscroll{scrollbar-width:none}.noscroll::-webkit-scrollbar{display:none}
.snaprow{display:flex;gap:.75rem;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;-webkit-overflow-scrolling:touch}
.snaprow::-webkit-scrollbar{display:none}.snaprow>*{scroll-snap-align:start;flex:0 0 auto}
.clamp2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.clamp3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.clamp4{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.chip{white-space:nowrap;border-radius:9999px;padding:.35rem .8rem;font-size:12px;font-weight:600;background:rgba(255,255,255,.05);color:#cbd5e1;box-shadow:inset 0 0 0 1px rgba(255,255,255,.08)}
.chip.on{background:#f97316;color:#0f172a;box-shadow:none}
.tab{display:flex;flex:1 1 0;min-width:0;flex-direction:column;align-items:center;gap:2px;padding:.35rem .1rem;font-size:9.5px;font-weight:600;color:#94a3b8;border-radius:.6rem;white-space:nowrap}
.tab .ic{font-size:16px;line-height:1}.tab.on{color:#fdba74;background:rgba(249,115,22,.12)}
@media (min-width:768px){.tab{flex:0 0 auto;flex-direction:row;gap:6px;font-size:13px;padding:.55rem .8rem}.tab .ic{font-size:14px}}
.grid-bg{background-image:linear-gradient(rgba(148,163,184,.045) 1px,transparent 1px),linear-gradient(90deg,rgba(148,163,184,.045) 1px,transparent 1px);background-size:24px 24px}
.fade-in{animation:fi .18s ease-out}@keyframes fi{from{opacity:0;transform:translateY(4px)}to{opacity:1;transform:none}}
@keyframes nmpulse{0%{transform:scale(1);opacity:.7}70%{transform:scale(1.9);opacity:0}100%{transform:scale(1.9);opacity:0}}
