/* ============================================================
   Waarning Prism UI — calm, universal safety intelligence
   ============================================================ */

@property --signal { syntax:"<color>"; inherits:true; initial-value:#64a8ff; }
@property --signal-2 { syntax:"<color>"; inherits:true; initial-value:#8d72ff; }
@property --signal-3 { syntax:"<color>"; inherits:true; initial-value:#45e0c1; }

:root {
  color-scheme: light dark;
  --bg-0: light-dark(#f5f8fd, #070a12);
  --bg-1: light-dark(#eaf0f8, #0b101b);
  --bg-2: light-dark(#dfe8f3, #111827);
  --surface: light-dark(rgba(255,255,255,.72), rgba(19,27,42,.68));
  --surface-high: light-dark(rgba(255,255,255,.9), rgba(24,34,51,.88));
  --surface-low: light-dark(rgba(245,249,255,.58), rgba(14,21,34,.56));
  --surface-solid: light-dark(#ffffff, #151e2d);
  --text: light-dark(#101828, #f4f7fc);
  --text-soft: light-dark(#364359, #c3cede);
  --muted: light-dark(#647188, #91a0b7);
  --faint: light-dark(#8995a8, #6e7d94);
  --line: light-dark(rgba(91,112,144,.2), rgba(181,202,233,.13));
  --line-strong: light-dark(rgba(75,99,136,.34), rgba(195,216,246,.25));
  --white-glint: light-dark(rgba(255,255,255,.94), rgba(255,255,255,.18));
  --black-shadow: light-dark(rgba(41,62,92,.15), rgba(0,0,0,.42));
  --accent: light-dark(#c85c08, #ff9f43);
  --accent-bright: light-dark(#ff8b2c, #ffb76d);
  --accent-ink: #271100;
  --ok: light-dark(#087f5b, #48dba1);
  --warn: light-dark(#b85f00, #ffb24a);
  --bad: light-dark(#c62942, #ff6b7d);
  --extreme: light-dark(#7c3aed, #c39aff);
  --info: light-dark(#1769c2, #72b7ff);
  --signal: #64a8ff;
  --signal-2: #8d72ff;
  --signal-3: #45e0c1;
  --signal-rgb: 100, 168, 255;
  --signal-strength: 0;
  --module: var(--accent);
  --glass-blur: 28px;
  --radius-xs: 8px;
  --radius-sm: 12px;
  --radius-md: 18px;
  --radius-lg: 24px;
  --radius-xl: 30px;
  --radius-pill: 999px;
  --ease-spring: cubic-bezier(.2,.82,.2,1);
  --ease-out: cubic-bezier(.16,1,.3,1);
  --shadow-1: 0 8px 24px var(--black-shadow);
  --shadow-2: 0 20px 60px light-dark(rgba(39,62,95,.16), rgba(0,0,0,.34));
  --shadow-3: 0 34px 100px light-dark(rgba(42,66,104,.22), rgba(0,0,0,.5));
  --pointer-x: 72vw;
  --pointer-y: 20vh;
  --pointer-shift-x: 0px;
  --pointer-shift-y: 0px;

  /* Backward-compatible aliases used by lazy widget bundles. */
  --bg: var(--bg-0);
  --bg2: var(--bg-1);
  --card: var(--surface-solid);
  --card2: color-mix(in srgb, var(--surface-solid) 76%, var(--bg-1));
  --line2: var(--line-strong);
  --shadow: var(--shadow-2);
  --radius: var(--radius-md);
  --font: -apple-system, BlinkMacSystemFont, "SF Pro Display", "SF Pro Text", Inter, system-ui, "Segoe UI", sans-serif;
  --mono: "SFMono-Regular", ui-monospace, Menlo, Monaco, Consolas, monospace;
}

html[data-theme='light'] { color-scheme: light; }
html[data-theme='dark'] { color-scheme: dark; }
html[data-theme='auto'] { color-scheme: light dark; }
html[data-accent='red'] { --accent: light-dark(#c52235, #ff6675); --accent-bright: light-dark(#f14c5d, #ff98a2); --accent-ink: #fff; }
html[data-accent='green'] { --accent: light-dark(#087e55, #43d391); --accent-bright: light-dark(#19a56f, #78ebb1); --accent-ink: light-dark(#fff, #062317); }
html[data-accent='blue'] { --accent: light-dark(#1769c2, #5ba9ff); --accent-bright: light-dark(#3b8ce5, #91c7ff); --accent-ink: light-dark(#fff, #07182a); }
html[data-accent='violet'] { --accent: light-dark(#7545d4, #a98aff); --accent-bright: light-dark(#9569e8, #c8b6ff); --accent-ink: #fff; }

html[data-threat='clear'] { --signal:#34d6a0; --signal-2:#4fbcff; --signal-3:#9bf2c7; --signal-rgb:52,214,160; }
html[data-threat='notice'] { --signal:#f6c94c; --signal-2:#ff9f43; --signal-3:#69c9ff; --signal-rgb:246,201,76; }
html[data-threat='advisory'] { --signal:#ff9a3d; --signal-2:#ffcf5a; --signal-3:#ff6b55; --signal-rgb:255,154,61; }
html[data-threat='warning'] { --signal:#ff526b; --signal-2:#ff943d; --signal-3:#ff426f; --signal-rgb:255,82,107; }
html[data-threat='critical'] { --signal:#ff3d75; --signal-2:#bd5cff; --signal-3:#ff8b3d; --signal-rgb:255,61,117; }

*, *::before, *::after { box-sizing: border-box; }
html { min-width: 320px; background:var(--bg-0); scroll-behavior: smooth; transition:--signal 1.05s var(--ease-out),--signal-2 1.05s var(--ease-out),--signal-3 1.05s var(--ease-out); scrollbar-color: color-mix(in srgb,var(--signal) 40%,var(--line-strong)) transparent; }
body {
  margin: 0;
  min-height: 100vh;
  overflow-x: clip;
  background:
    radial-gradient(1000px 700px at 8% -10%, color-mix(in srgb,var(--signal-2) 17%,transparent), transparent 64%),
    radial-gradient(900px 600px at 94% 8%, color-mix(in srgb,var(--signal) 16%,transparent), transparent 62%),
    linear-gradient(145deg, var(--bg-0), var(--bg-1) 55%, var(--bg-0));
  color: var(--text);
  font-family: var(--font);
  font-size: 15px;
  line-height: 1.55;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}
::selection { color: var(--text); background: color-mix(in srgb,var(--signal) 30%,transparent); }
a { color: var(--info); text-decoration: none; }
a:hover { text-decoration: none; }
h1, h2, h3, h4 { margin: 0 0 .45em; line-height: 1.08; letter-spacing: -.025em; text-wrap: balance; }
p { text-wrap: pretty; }
button, input, select, textarea { font: inherit; color: inherit; }
button { cursor: pointer; }
button:disabled { cursor: not-allowed; opacity: .55; }
img { display: block; max-width: 100%; }
svg { display: inline-block; vertical-align: middle; flex: none; }
[hidden] { display: none !important; }
:focus-visible { outline: 3px solid color-mix(in srgb,var(--signal) 76%,white); outline-offset: 3px; border-radius: 8px; }
.skip-link { position: fixed; z-index: 999; top: 10px; left: 50%; translate: -50% -160%; padding: 10px 16px; border-radius: var(--radius-pill); color: var(--text); background: var(--surface-solid); box-shadow: var(--shadow-2); transition: translate .2s; }
.skip-link:focus { translate: -50% 0; }

/* ---------- ambient spectrum ---------- */
.ambient-scene { position: fixed; z-index: -1; inset: 0; overflow: hidden; pointer-events: none; contain: strict; background: radial-gradient(500px circle at var(--pointer-x) var(--pointer-y), rgba(var(--signal-rgb),.09), transparent 72%); }
.ambient-orb { position: absolute; display: block; border-radius: 50%; filter: blur(74px); opacity: .34; will-change: transform; transition: background-color 1.2s var(--ease-out), opacity 1.2s; }
.ambient-orb-a { width: min(52vw,780px); aspect-ratio:1; left:-18vw; top:-18vw; background:var(--signal); transform:translate(var(--pointer-shift-x),var(--pointer-shift-y)); animation:ambient-a 20s ease-in-out infinite alternate; }
.ambient-orb-b { width:min(46vw,680px); aspect-ratio:1; right:-12vw; top:8vh; background:var(--signal-2); transform:translate(calc(var(--pointer-shift-x) * -.7),calc(var(--pointer-shift-y) * -.8)); animation:ambient-b 24s ease-in-out infinite alternate; }
.ambient-orb-c { width:min(44vw,620px); aspect-ratio:1; left:32vw; bottom:-30vw; background:var(--signal-3); opacity:.2; animation:ambient-c 27s ease-in-out infinite alternate; }
.ambient-grid { position:absolute; inset:0; opacity:.16; background-image:linear-gradient(var(--line) 1px,transparent 1px),linear-gradient(90deg,var(--line) 1px,transparent 1px); background-size:72px 72px; mask-image:linear-gradient(to bottom,rgba(0,0,0,.45),transparent 75%); }
.ambient-grain { position:absolute; inset:-60%; opacity:.035; background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='3' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.7'/%3E%3C/svg%3E"); transform:rotate(10deg); }
.app-shell::before { content:""; position:fixed; z-index:80; top:0; left:0; right:0; height:2px; pointer-events:none; opacity:.28; background:linear-gradient(90deg,transparent,var(--signal),var(--signal-2),transparent); box-shadow:0 0 18px rgba(var(--signal-rgb),.35); transition:opacity .8s; }
html[data-threat='clear'] .ambient-orb-a { opacity:.3; }
html[data-threat='notice'] .ambient-orb-a, html[data-threat='advisory'] .ambient-orb-a { opacity:.42; }
html[data-threat='warning'] .ambient-orb-a, html[data-threat='critical'] .ambient-orb-a { opacity:.52; }
html[data-threat='warning'] .ambient-orb-b, html[data-threat='critical'] .ambient-orb-b { opacity:.46; }
html[data-threat='warning'] .app-shell::before, html[data-threat='critical'] .app-shell::before { opacity:.9; animation:risk-line 2.8s ease-in-out infinite; }
html[data-threat='critical'] .signal-chip, html[data-threat='warning'] .signal-chip { color:var(--signal); border-color:rgba(var(--signal-rgb),.42); box-shadow:0 0 24px rgba(var(--signal-rgb),.15),inset 0 1px 0 var(--white-glint); }
@keyframes risk-line { 50% { opacity:.46; filter:saturate(1.25) brightness(1.16); } }
@keyframes ambient-a { to { translate:10vw 12vh; scale:1.12; } }
@keyframes ambient-b { to { translate:-12vw 16vh; scale:.9; } }
@keyframes ambient-c { to { translate:6vw -14vh; scale:1.15; } }

/* ---------- controls ---------- */
.btn { position:relative; isolation:isolate; display:inline-flex; align-items:center; justify-content:center; gap:8px; min-height:42px; padding:9px 16px; border:1px solid transparent; border-radius:14px; color:var(--text); background:linear-gradient(var(--surface-high),var(--surface-high)) padding-box,linear-gradient(145deg,var(--white-glint),var(--line-strong)) border-box; box-shadow:0 6px 18px rgba(15,25,42,.08),inset 0 1px 0 var(--white-glint); font-size:13.5px; font-weight:700; letter-spacing:-.01em; transition:transform .28s var(--ease-spring),box-shadow .28s,border-color .28s,filter .28s; overflow:hidden; }
.btn::after { content:""; position:absolute; z-index:-1; inset:0; background:linear-gradient(110deg,transparent 20%,rgba(255,255,255,.28) 45%,transparent 70%); translate:-140% 0; transition:translate .7s var(--ease-out); }
.btn:hover { transform:translateY(-2px); box-shadow:0 12px 28px rgba(15,25,42,.14),inset 0 1px 0 var(--white-glint); }
.btn:hover::after { translate:140% 0; }
.btn:active { transform:translateY(0) scale(.985); transition-duration:.08s; }
.btn svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.btn-primary { color:var(--accent-ink); background:linear-gradient(145deg,var(--accent-bright),var(--accent)); border-color:color-mix(in srgb,var(--accent) 70%,white); box-shadow:0 12px 28px color-mix(in srgb,var(--accent) 28%,transparent),inset 0 1px 1px rgba(255,255,255,.62),inset 0 -1px 0 rgba(0,0,0,.12); }
.btn-primary:hover { filter:saturate(1.08) brightness(1.03); box-shadow:0 16px 36px color-mix(in srgb,var(--accent) 36%,transparent),inset 0 1px 1px rgba(255,255,255,.7); }
.btn-glass { background:linear-gradient(color-mix(in srgb,var(--surface-high) 68%,transparent),color-mix(in srgb,var(--surface-low) 84%,transparent)) padding-box,linear-gradient(145deg,var(--white-glint),var(--line-strong)) border-box; }
.btn-ghost { background:transparent; border-color:var(--line); box-shadow:none; }
.btn-sm { min-height:34px; padding:6px 12px; border-radius:11px; font-size:12px; }
.link-btn { padding:0; color:var(--info); border:0; background:none; font-size:inherit; text-align:left; }
.link-btn:hover { text-decoration:underline; }
.icon-btn, .loc-pill, .signal-chip { display:inline-flex; align-items:center; justify-content:center; min-height:38px; border:1px solid transparent; color:var(--text-soft); background:linear-gradient(color-mix(in srgb,var(--surface-high) 74%,transparent),color-mix(in srgb,var(--surface-low) 72%,transparent)) padding-box,linear-gradient(145deg,var(--white-glint),var(--line-strong)) border-box; box-shadow:inset 0 1px 0 var(--white-glint),0 5px 15px rgba(8,16,30,.08); transition:transform .25s var(--ease-spring),color .2s,box-shadow .2s; }
.icon-btn { width:38px; border-radius:12px; }
.icon-btn:hover, .loc-pill:hover, .signal-chip:hover { color:var(--text); transform:translateY(-1px); box-shadow:inset 0 1px 0 var(--white-glint),0 10px 24px rgba(8,16,30,.13); }
.loc-pill { gap:7px; padding:7px 12px; border-radius:var(--radius-pill); font-size:12px; font-weight:700; }
.loc-pin { display:inline-flex; color:var(--signal); }
.signal-chip { gap:8px; padding:7px 12px; border-radius:var(--radius-pill); font-size:11px; font-weight:800; letter-spacing:.04em; }
.signal-chip-dot, .live-dot { width:7px; height:7px; border-radius:50%; background:var(--signal); box-shadow:0 0 0 4px rgba(var(--signal-rgb),.11),0 0 14px rgba(var(--signal-rgb),.5); }
html[data-network='offline'] .live-dot { background:var(--faint); box-shadow:none; }
.chip { display:inline-flex; align-items:center; gap:5px; padding:4px 9px; border:1px solid var(--line); border-radius:var(--radius-pill); font-size:10px; font-weight:800; letter-spacing:.07em; text-transform:uppercase; white-space:nowrap; }
.sev-0 { color:var(--muted); background:color-mix(in srgb,var(--muted) 9%,transparent); border-color:var(--line); }
.sev-1 { color:light-dark(#896600,#ffe071); background:color-mix(in srgb,#eab308 12%,transparent); border-color:color-mix(in srgb,#eab308 35%,transparent); }
.sev-2 { color:var(--warn); background:color-mix(in srgb,var(--warn) 12%,transparent); border-color:color-mix(in srgb,var(--warn) 38%,transparent); }
.sev-3 { color:var(--bad); background:color-mix(in srgb,var(--bad) 12%,transparent); border-color:color-mix(in srgb,var(--bad) 38%,transparent); }
.sev-4 { color:var(--extreme); background:color-mix(in srgb,var(--extreme) 12%,transparent); border-color:color-mix(in srgb,var(--extreme) 38%,transparent); }
.cat-chip { color:var(--muted); background:var(--surface-low); }
.cat-chip.on { color:var(--text); border-color:var(--accent); }

/* ---------- universal glass shell ---------- */
.app-shell { position:relative; z-index:1; min-height:100vh; display:grid; grid-template-columns:108px minmax(0,1fr); }
.app-main { grid-column:2; min-width:0; }
.app-rail { position:fixed; z-index:60; top:16px; bottom:16px; left:16px; width:76px; display:flex; flex-direction:column; align-items:center; padding:13px 9px; border:1px solid transparent; border-radius:27px; background:linear-gradient(color-mix(in srgb,var(--surface-high) 78%,transparent),color-mix(in srgb,var(--surface-low) 75%,transparent)) padding-box,linear-gradient(145deg,var(--white-glint),var(--line-strong) 42%,transparent) border-box; box-shadow:var(--shadow-2),inset 0 1px 0 var(--white-glint); backdrop-filter:blur(var(--glass-blur)) saturate(155%); -webkit-backdrop-filter:blur(var(--glass-blur)) saturate(155%); }
.rail-brand { position:relative; width:50px; height:50px; display:grid; place-items:center; border-radius:17px; color:#271304; background:linear-gradient(145deg,var(--accent-bright),var(--accent)); box-shadow:0 13px 30px color-mix(in srgb,var(--accent) 34%,transparent),inset 0 1px 1px rgba(255,255,255,.7); transition:transform .35s var(--ease-spring),box-shadow .35s; }
.rail-brand::after { content:""; position:absolute; inset:3px; border:1px solid rgba(255,255,255,.36); border-radius:14px; pointer-events:none; }
.rail-brand:hover { transform:translateY(-2px) rotate(-2deg) scale(1.03); box-shadow:0 18px 38px color-mix(in srgb,var(--accent) 42%,transparent); }
.rail-brand svg { filter:drop-shadow(0 1px 0 rgba(255,255,255,.25)); }
.rail-nav { width:100%; display:flex; flex-direction:column; gap:5px; margin-top:26px; }
.rail-link { position:relative; min-height:53px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:3px; padding:7px 3px; border:1px solid transparent; border-radius:15px; color:var(--muted); font-size:10px; font-weight:750; letter-spacing:.01em; transition:color .22s,background .22s,transform .28s var(--ease-spring); }
.rail-link svg { width:20px; height:20px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.rail-link:hover { color:var(--text); transform:translateY(-1px); background:color-mix(in srgb,var(--surface-high) 55%,transparent); }
.rail-link.active { color:var(--accent); background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 17%,transparent),color-mix(in srgb,var(--surface-high) 52%,transparent)); border-color:color-mix(in srgb,var(--accent) 24%,transparent); box-shadow:inset 0 1px 0 var(--white-glint),0 8px 18px color-mix(in srgb,var(--accent) 8%,transparent); }
.rail-link.active::before { content:""; position:absolute; left:-10px; width:3px; height:22px; border-radius:0 4px 4px 0; background:var(--accent); box-shadow:0 0 16px color-mix(in srgb,var(--accent) 65%,transparent); }
.rail-privacy { width:100%; margin-top:auto; }

.app-topbar { position:sticky; z-index:50; top:14px; height:68px; margin:14px 18px 0 0; display:grid; grid-template-columns:minmax(190px,1fr) minmax(300px,520px) minmax(250px,1fr); align-items:center; gap:18px; padding:0 16px 0 20px; border:1px solid transparent; border-radius:22px; background:linear-gradient(color-mix(in srgb,var(--surface-high) 78%,transparent),color-mix(in srgb,var(--surface-low) 74%,transparent)) padding-box,linear-gradient(130deg,var(--white-glint),var(--line-strong) 50%,transparent) border-box; box-shadow:0 14px 45px rgba(9,18,33,.13),inset 0 1px 0 var(--white-glint); backdrop-filter:blur(30px) saturate(165%); -webkit-backdrop-filter:blur(30px) saturate(165%); }
.app-title { min-width:0; display:flex; align-items:center; gap:10px; color:var(--text); }
.app-title:hover { color:var(--text); }
.app-title-mark { width:33px; height:33px; display:grid; place-items:center; border-radius:11px; color:var(--accent); background:color-mix(in srgb,var(--accent) 11%,var(--surface-low)); border:1px solid color-mix(in srgb,var(--accent) 20%,var(--line)); }
.app-title-mark svg { width:22px; height:22px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.app-title-copy { min-width:0; display:flex; flex-direction:column; line-height:1.15; }
.app-title strong { font-size:15px; letter-spacing:-.02em; }
.app-title > span:not(.app-title-mark):not(.app-title-copy) { font-size:11px; color:var(--muted); }
.app-title-copy strong { color:var(--text); }
.app-title-copy small { display:flex; align-items:center; gap:6px; margin-top:3px; color:var(--muted); font-size:9px; font-weight:700; letter-spacing:.04em; }
.topbar-search { position:relative; display:flex; align-items:center; gap:10px; height:42px; padding:0 11px; color:var(--muted); border:1px solid transparent; border-radius:14px; background:linear-gradient(color-mix(in srgb,var(--bg-1) 56%,transparent),color-mix(in srgb,var(--surface-low) 88%,transparent)) padding-box,linear-gradient(145deg,var(--white-glint),var(--line-strong)) border-box; box-shadow:inset 0 1px 2px rgba(5,13,26,.06),0 5px 14px rgba(12,23,41,.05); transition:box-shadow .25s,border-color .25s; }
.topbar-search:focus-within { box-shadow:0 0 0 4px rgba(var(--signal-rgb),.1),inset 0 1px 2px rgba(5,13,26,.06); }
.topbar-search svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.9; stroke-linecap:round; }
.topbar-search input { min-width:0; width:100%; border:0; outline:0; color:var(--text); background:transparent; font-size:12.5px; }
.topbar-search input::placeholder { color:var(--faint); }
.topbar-search kbd { flex:none; padding:2px 7px; border:1px solid var(--line); border-radius:6px; color:var(--faint); background:var(--surface-low); font:9px var(--mono); box-shadow:inset 0 -1px 0 var(--line-strong); }
.header-actions { justify-self:end; min-width:0; display:flex; align-items:center; gap:7px; }

/* ---------- shared page content ---------- */
.app-content { position:relative; width:min(100%,1510px); margin:0 auto; padding:32px 30px 80px 18px; }
.app-content.narrow { max-width:1020px; }
.eyebrow { color:var(--muted); font-size:10px; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.content-hero { position:relative; padding:64px 0 42px; }
.content-hero::before { content:""; position:absolute; width:180px; height:3px; top:36px; left:0; border-radius:99px; background:linear-gradient(90deg,var(--signal),var(--signal-2),transparent); box-shadow:0 0 22px rgba(var(--signal-rgb),.28); }
.content-hero::after { content:""; position:absolute; z-index:-1; right:2%; top:32px; width:min(28vw,360px); aspect-ratio:1; border-radius:50%; opacity:.2; background:conic-gradient(from 30deg,var(--signal),transparent 22%,var(--signal-2) 48%,transparent 68%,var(--signal-3)); mask-image:radial-gradient(circle,transparent 0 48%,black 49% 51%,transparent 52% 61%,black 62% 63%,transparent 64%); animation:orbit-spin 30s linear infinite; }
.content-hero h1 { max-width:980px; margin:10px 0 18px; font-size:clamp(42px,6vw,74px); letter-spacing:-.06em; line-height:.98; }
.content-hero .lead { max-width:820px; margin:0 0 10px; color:var(--text-soft); font-size:clamp(17px,2vw,21px); line-height:1.5; }
.content-hero .sub { max-width:740px; margin:0; color:var(--muted); }
.content-hero .actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:28px; }
.content-section { padding:32px 0 8px; }
.content-section h2 { margin-bottom:10px; font-size:clamp(25px,3vw,36px); letter-spacing:-.04em; }
.content-section .lede { max-width:780px; margin:0 0 22px; color:var(--muted); }
.glass, .glass-panel { position:relative; isolation:isolate; border:1px solid transparent; background:linear-gradient(145deg,color-mix(in srgb,var(--surface-high) 88%,transparent),color-mix(in srgb,var(--surface-low) 88%,transparent)) padding-box,linear-gradient(135deg,var(--white-glint),var(--line-strong) 48%,color-mix(in srgb,var(--signal) 18%,transparent)) border-box; box-shadow:var(--shadow-2),inset 0 1px 0 var(--white-glint); }
.glass { border-radius:var(--radius-lg); }
.glass::before, .glass-panel::before { content:""; position:absolute; z-index:-1; inset:0; border-radius:inherit; pointer-events:none; background:radial-gradient(520px circle at 0 0,color-mix(in srgb,var(--signal) 8%,transparent),transparent 55%); }
.grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(270px,100%),1fr)); gap:15px; }
.card { min-width:0; padding:24px; }
.card .tag { display:inline-flex; margin-bottom:12px; color:var(--accent); font-size:10px; font-weight:850; letter-spacing:.13em; text-transform:uppercase; }
.card h3 { margin-bottom:7px; font-size:19px; }
.card p { margin:0; color:var(--muted); font-size:14px; }
.grid > .card { transition:transform .38s var(--ease-spring),box-shadow .38s; }
.grid > .card:hover { transform:translateY(-5px); box-shadow:var(--shadow-3),inset 0 1px 0 var(--white-glint); }
.steps { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(250px,100%),1fr)); gap:15px; counter-reset:step; }
.step { min-height:150px; padding:24px 24px 24px 80px; }
.step::after { counter-increment:step; content:"0" counter(step); position:absolute; left:22px; top:24px; width:42px; height:42px; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--accent) 25%,var(--line)); border-radius:14px; color:var(--accent); background:color-mix(in srgb,var(--accent) 10%,var(--surface-low)); font:800 11px var(--mono); }
.step h3 { font-size:18px; }
.step p { margin:0; color:var(--muted); font-size:13.5px; }
.cta-band { overflow:hidden; padding:50px; text-align:center; background:linear-gradient(130deg,color-mix(in srgb,var(--signal) 12%,var(--surface-high)),color-mix(in srgb,var(--signal-2) 10%,var(--surface-low))) padding-box,linear-gradient(135deg,var(--white-glint),color-mix(in srgb,var(--signal) 30%,var(--line))) border-box; }
.cta-band h2 { font-size:clamp(28px,4vw,44px); }
.cta-band p { max-width:650px; margin:0 auto 24px; color:var(--muted); }
table { width:100%; margin:4px 0; border-collapse:separate; border-spacing:0; font-size:13.5px; overflow:hidden; }
th, td { padding:13px 14px; border-bottom:1px solid var(--line); text-align:left; vertical-align:top; }
th { color:var(--muted); background:color-mix(in srgb,var(--surface-low) 75%,transparent); font-size:10px; letter-spacing:.09em; text-transform:uppercase; }
tr:last-child td { border-bottom:0; }
tbody tr { transition:background .2s; }
tbody tr:hover { background:color-mix(in srgb,var(--signal) 5%,transparent); }
.muted { color:var(--muted); }
.mono { font-family:var(--mono); }
.row { display:flex; flex-wrap:wrap; align-items:center; gap:10px; }
.prose { color:var(--text-soft); }
.prose strong { color:var(--text); }
.prose li { margin:9px 0; }
.prose code { padding:2px 6px; border:1px solid var(--line); border-radius:6px; background:var(--surface-low); font:12px var(--mono); }
.badge { display:inline-flex; align-items:center; padding:3px 9px; border:1px solid var(--line-strong); border-radius:var(--radius-pill); font-size:10px; font-weight:800; }
.badge.ok { color:var(--ok); border-color:color-mix(in srgb,var(--ok) 42%,var(--line)); }
.badge.warn { color:var(--warn); border-color:color-mix(in srgb,var(--warn) 42%,var(--line)); }
.badge.bad { color:var(--bad); border-color:color-mix(in srgb,var(--bad) 42%,var(--line)); }
.badge.idle { color:var(--muted); }

/* ---------- dashboard hero ---------- */
.app-overview { scroll-margin-top:96px; }
.signal-stage { position:relative; isolation:isolate; overflow:hidden; min-height:330px; display:grid; grid-template-columns:minmax(0,1.55fr) minmax(280px,.72fr); align-items:center; gap:28px; padding:34px 38px; border:1px solid transparent; border-radius:var(--radius-xl); background:linear-gradient(135deg,color-mix(in srgb,var(--surface-high) 83%,transparent),color-mix(in srgb,var(--surface-low) 80%,transparent)) padding-box,linear-gradient(130deg,var(--white-glint),color-mix(in srgb,var(--signal) 30%,var(--line-strong)),transparent) border-box; box-shadow:var(--shadow-3),inset 0 1px 0 var(--white-glint); }
.signal-stage::before { content:""; position:absolute; z-index:-2; width:720px; aspect-ratio:1; right:-280px; top:-360px; border-radius:50%; background:conic-gradient(from 190deg,transparent,var(--signal),var(--signal-2),transparent 62%); filter:blur(48px); opacity:.2; transition:background 1s; }
.signal-stage::after { content:""; position:absolute; z-index:-1; inset:0; background:radial-gradient(480px circle at var(--pointer-x) var(--pointer-y),rgba(255,255,255,.09),transparent 70%),linear-gradient(90deg,transparent 49.8%,color-mix(in srgb,var(--line) 45%,transparent) 50%,transparent 50.2%); background-size:auto,64px 64px; mask-image:linear-gradient(90deg,transparent 4%,black 45%,black); pointer-events:none; }
.welcome-copy { position:relative; z-index:2; max-width:820px; }
.hero-kicker { display:flex; align-items:center; gap:10px; margin-bottom:13px; color:var(--muted); font:750 9.5px var(--mono); letter-spacing:.06em; text-transform:uppercase; }
.live-badge { display:inline-flex; align-items:center; gap:6px; padding:4px 8px; border:1px solid color-mix(in srgb,var(--signal) 35%,var(--line)); border-radius:var(--radius-pill); color:var(--signal); background:color-mix(in srgb,var(--signal) 9%,transparent); }
.live-badge i { width:6px; height:6px; border-radius:50%; background:var(--signal); box-shadow:0 0 10px rgba(var(--signal-rgb),.6); }
.welcome-row h1 { max-width:830px; margin:0 0 14px; font-size:clamp(38px,4.6vw,64px); line-height:.98; letter-spacing:-.065em; }
.spectrum-text { color:transparent; background:linear-gradient(100deg,var(--signal),var(--signal-2) 48%,var(--signal-3)); -webkit-background-clip:text; background-clip:text; filter:drop-shadow(0 8px 26px rgba(var(--signal-rgb),.12)); }
.welcome-row p { max-width:670px; margin:0; color:var(--text-soft); font-size:15px; }
.hero-actions { display:flex; flex-wrap:wrap; gap:10px; margin-top:23px; }
.hero-locate { border-radius:var(--radius-pill); padding-inline:19px; }
.trust-row { display:flex; flex-wrap:wrap; align-items:center; gap:14px; margin-top:22px; color:var(--muted); font-size:10px; font-weight:700; }
.trust-row span { display:flex; align-items:center; gap:5px; }
.trust-row svg { width:13px; height:13px; fill:none; stroke:var(--signal); stroke-width:1.9; stroke-linecap:round; stroke-linejoin:round; }
.signal-orbit { position:relative; justify-self:center; width:270px; aspect-ratio:1; display:grid; place-items:center; }
.orbit-ring { position:absolute; border-radius:50%; border:1px solid rgba(var(--signal-rgb),.23); box-shadow:inset 0 0 40px rgba(var(--signal-rgb),.04),0 0 40px rgba(var(--signal-rgb),.04); }
.orbit-ring-a { inset:10px; border-style:dashed; animation:orbit-spin 34s linear infinite; }
.orbit-ring-b { inset:42px; border-color:rgba(var(--signal-rgb),.35); animation:orbit-spin-reverse 22s linear infinite; }
.orbit-ring-b::before, .orbit-ring-b::after { content:""; position:absolute; width:7px; height:7px; border-radius:50%; background:var(--signal); box-shadow:0 0 15px rgba(var(--signal-rgb),.8); }
.orbit-ring-b::before { left:12%; top:12%; }
.orbit-ring-b::after { right:8%; bottom:18%; background:var(--signal-2); }
.orbit-sweep { position:absolute; inset:22px; border-radius:50%; background:conic-gradient(from 0deg,rgba(var(--signal-rgb),.34),transparent 22%,transparent); mask-image:radial-gradient(circle,transparent 0 58%,black 59% 61%,transparent 62%); animation:orbit-spin 7s linear infinite; }
.signal-core { position:relative; z-index:2; width:130px; aspect-ratio:1; display:flex; flex-direction:column; align-items:center; justify-content:center; border:1px solid rgba(var(--signal-rgb),.42); border-radius:50%; background:radial-gradient(circle at 32% 24%,rgba(255,255,255,.18),transparent 33%),linear-gradient(145deg,rgba(var(--signal-rgb),.2),color-mix(in srgb,var(--surface-high) 70%,transparent)); box-shadow:0 0 60px rgba(var(--signal-rgb),.16),inset 0 1px 1px rgba(255,255,255,.35); backdrop-filter:blur(14px); }
.signal-core::after { content:""; position:absolute; inset:8px; border:1px solid rgba(var(--signal-rgb),.14); border-radius:50%; }
.signal-core > span { font:800 46px/1 var(--font); letter-spacing:-.08em; }
.signal-core > small { max-width:88px; margin-top:7px; color:var(--signal); font-size:9px; font-weight:850; letter-spacing:.08em; line-height:1.15; text-align:center; text-transform:uppercase; }
.orbit-node { position:absolute; width:5px; height:5px; border-radius:50%; background:var(--signal); box-shadow:0 0 14px rgba(var(--signal-rgb),.8); }
.orbit-node-a { top:28px; left:62px; }.orbit-node-b { right:26px; top:111px; }.orbit-node-c { left:39px; bottom:49px; background:var(--signal-3); }
.signal-orbit-caption { position:absolute; bottom:-2px; display:flex; align-items:center; gap:7px; padding:6px 10px; border:1px solid var(--line); border-radius:var(--radius-pill); color:var(--muted); background:color-mix(in srgb,var(--surface-high) 72%,transparent); box-shadow:0 8px 24px rgba(0,0,0,.08); font-size:9.5px; font-weight:700; white-space:nowrap; }
.signal-orbit-caption i { width:6px; height:6px; border-radius:50%; background:var(--signal); box-shadow:0 0 10px rgba(var(--signal-rgb),.6); }
@keyframes orbit-spin { to { transform:rotate(360deg); } }
@keyframes orbit-spin-reverse { to { transform:rotate(-360deg); } }
html[data-threat='warning'] .signal-core, html[data-threat='critical'] .signal-core { animation:signal-breathe 2.5s ease-in-out infinite; }
html[data-threat='critical'] .orbit-sweep { animation-duration:3.8s; }
@keyframes signal-breathe { 50% { box-shadow:0 0 78px rgba(var(--signal-rgb),.34),0 0 0 10px rgba(var(--signal-rgb),.045),inset 0 1px 1px rgba(255,255,255,.4); } }

/* ---------- centered live risk barometer ---------- */
.risk-barometer { position:relative; display:flex; flex-direction:column; align-items:center; gap:7px; margin:18px auto 0; padding:22px 20px 18px; text-align:center; border:1px solid color-mix(in srgb,var(--signal) 24%,var(--line)); border-radius:var(--radius-lg); background:linear-gradient(145deg,color-mix(in srgb,var(--surface-high) 82%,transparent),color-mix(in srgb,var(--surface-low) 78%,transparent)); box-shadow:var(--shadow-2),inset 0 1px 0 var(--white-glint); overflow:hidden; }
.risk-barometer-heading .eyebrow { color:var(--signal); }
.risk-barometer-heading h2 { margin:5px 0 3px; font-size:clamp(20px,3vw,28px); letter-spacing:-.04em; }
.risk-barometer-heading p { max-width:480px; margin:0; color:var(--text-soft); font-size:12px; line-height:1.45; }
.risk-barometer-orbit { position:relative; display:grid; place-items:center; width:178px; aspect-ratio:1; margin:4px 0 0; filter:drop-shadow(0 16px 25px color-mix(in srgb,var(--signal) 15%,transparent)); }
.risk-barometer-orbit .risk-gauge { inset:2px; }
.risk-barometer-orbit .orbit-ring-a { inset:10px; }
.risk-barometer-orbit .orbit-ring-b { inset:29px; }
.risk-barometer-orbit .orbit-sweep { inset:16px; }
.risk-barometer-orbit .signal-core { width:100px; }
.risk-barometer-orbit .signal-core > span { font-size:34px; }
.risk-barometer-orbit .signal-core > small { font-size:8px; }
.risk-barometer-note { margin:0; color:var(--muted); font:700 10px var(--mono); letter-spacing:.02em; }

/* ---------- summary instruments ---------- */
.app-summary-grid { display:grid; grid-template-columns:1.35fr 1fr .76fr; gap:14px; margin-top:15px; }
.area-card, .today-check, .streak-card { min-width:0; min-height:218px; display:flex; flex-direction:column; padding:21px; border-radius:var(--radius-lg); overflow:hidden; }
.area-card { background:linear-gradient(145deg,color-mix(in srgb,var(--signal) 10%,var(--surface-high)),color-mix(in srgb,var(--surface-low) 90%,transparent)) padding-box,linear-gradient(135deg,var(--white-glint),color-mix(in srgb,var(--signal) 28%,var(--line-strong))) border-box; }
.today-check { background:linear-gradient(145deg,color-mix(in srgb,var(--accent) 10%,var(--surface-high)),color-mix(in srgb,var(--surface-low) 90%,transparent)) padding-box,linear-gradient(135deg,var(--white-glint),color-mix(in srgb,var(--accent) 25%,var(--line-strong))) border-box; }
.panel-top { display:flex; align-items:center; justify-content:space-between; gap:10px; }
.panel-icon { width:31px; height:31px; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--signal) 22%,var(--line)); border-radius:10px; color:var(--signal); background:color-mix(in srgb,var(--signal) 8%,transparent); }
.panel-icon svg { width:16px; height:16px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.panel-step { color:var(--accent); font:800 9px var(--mono); letter-spacing:.08em; }
.area-card h2 { max-width:100%; margin:20px 0 6px; overflow:hidden; font-size:24px; text-overflow:ellipsis; white-space:nowrap; }
.area-card p, .today-check p { margin:0; color:var(--muted); font-size:12.5px; }
.signal-spectrum { display:grid; grid-template-columns:repeat(5,1fr); gap:4px; height:5px; margin:auto 0 13px; opacity:.8; }
.signal-spectrum i { border-radius:99px; background:color-mix(in srgb,var(--signal) 16%,var(--line)); }
.signal-spectrum i:nth-child(1) { background:var(--ok); }.signal-spectrum i:nth-child(2) { background:#d6c94b; }.signal-spectrum i:nth-child(3) { background:var(--warn); }.signal-spectrum i:nth-child(4) { background:var(--bad); }.signal-spectrum i:nth-child(5) { background:var(--extreme); }
.status-pill { display:inline-flex; align-items:center; align-self:flex-start; gap:8px; max-width:100%; padding:6px 10px; border:1px solid var(--line); border-radius:var(--radius-pill); color:var(--muted); background:color-mix(in srgb,var(--surface-low) 74%,transparent); font-size:10.5px; font-weight:750; }
.status-pill > span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
.status-dot { width:6px; height:6px; flex:none; border-radius:50%; background:currentColor; box-shadow:0 0 9px currentColor; }
.status-idle { color:var(--muted); }.status-loading { color:var(--info); }.status-ok { color:var(--ok); border-color:color-mix(in srgb,var(--ok) 34%,var(--line)); }.status-warn { color:var(--warn); border-color:color-mix(in srgb,var(--warn) 40%,var(--line)); }.status-bad { color:var(--bad); border-color:color-mix(in srgb,var(--bad) 42%,var(--line)); }.status-critical { color:var(--extreme); border-color:color-mix(in srgb,var(--extreme) 46%,var(--line)); }
.status-loading .status-dot { animation:status-pulse 1.4s ease-in-out infinite; }
@keyframes status-pulse { 50% { opacity:.32; transform:scale(.75); } }
.today-check h2 { margin:18px 0 6px; font-size:20px; }
.quest-progress { position:relative; height:7px; margin:auto 0 14px; overflow:hidden; border:1px solid var(--line); border-radius:99px; background:color-mix(in srgb,var(--bg-1) 54%,transparent); box-shadow:inset 0 1px 3px rgba(0,0,0,.11); }
.quest-progress i { position:relative; z-index:2; display:block; width:25%; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--accent),var(--signal)); box-shadow:0 0 14px color-mix(in srgb,var(--accent) 44%,transparent); transition:width .7s var(--ease-out); }
.quest-progress span { position:absolute; inset:0; opacity:.2; background:linear-gradient(90deg,transparent 45%,white 50%,transparent 55%); animation:progress-shine 2.8s linear infinite; }
@keyframes progress-shine { to { translate:200% 0; } }
.today-check .btn { align-self:flex-start; min-height:36px; padding:7px 13px; font-size:12px; }
.streak-card { align-items:stretch; text-align:left; }
.streak-card .panel-icon { color:var(--accent); border-color:color-mix(in srgb,var(--accent) 22%,var(--line)); background:color-mix(in srgb,var(--accent) 8%,transparent); }
.streak-value { display:flex; align-items:flex-end; gap:9px; margin:17px 0 11px; }
.streak-value strong { color:var(--accent); font-size:54px; line-height:.85; letter-spacing:-.07em; }
.streak-value span { color:var(--muted); font-size:9px; font-weight:800; line-height:1.15; letter-spacing:.06em; text-transform:uppercase; }
.streak-card small { margin-top:auto; color:var(--muted); font-size:10px; line-height:1.35; }
.week-dots { display:grid; grid-template-columns:repeat(7,1fr); gap:4px; margin:5px 0 13px; }
.week-dots i { height:5px; border-radius:99px; background:var(--line-strong); }
.week-dots i.done { background:linear-gradient(90deg,var(--accent),var(--signal)); box-shadow:0 0 9px color-mix(in srgb,var(--accent) 34%,transparent); }

.quick-launch { display:grid; grid-template-columns:repeat(4,1fr); gap:11px; margin:14px 0 38px; }
.quick-launch button { min-width:0; display:flex; align-items:center; gap:11px; padding:12px; border:1px solid transparent; border-radius:18px; color:var(--text); text-align:left; background:linear-gradient(color-mix(in srgb,var(--surface-high) 76%,transparent),color-mix(in srgb,var(--surface-low) 76%,transparent)) padding-box,linear-gradient(145deg,var(--white-glint),var(--line-strong)) border-box; box-shadow:0 8px 24px rgba(13,24,43,.08),inset 0 1px 0 var(--white-glint); transition:transform .35s var(--ease-spring),box-shadow .35s; }
.quick-launch button:hover { transform:translateY(-4px); box-shadow:0 20px 45px rgba(12,24,44,.14),inset 0 1px 0 var(--white-glint); }
.quick-launch button:nth-child(2) { --quick-color:#58b6ff; }.quick-launch button:nth-child(3) { --quick-color:#a98aff; }.quick-launch button:nth-child(4) { --quick-color:var(--bad); }
.quick-icon { width:40px; height:40px; flex:none; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--quick-color,var(--accent)) 24%,var(--line)); border-radius:13px; color:var(--quick-color,var(--accent)); background:linear-gradient(145deg,color-mix(in srgb,var(--quick-color,var(--accent)) 16%,rgba(255,255,255,.2)),color-mix(in srgb,var(--quick-color,var(--accent)) 5%,transparent)); box-shadow:inset 0 1px 0 var(--white-glint); }
.quick-launch svg { width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }
.quick-launch button > span:nth-child(2) { min-width:0; display:flex; flex:1; flex-direction:column; }
.quick-launch strong { overflow:hidden; font-size:11.5px; text-overflow:ellipsis; white-space:nowrap; }
.quick-launch small { overflow:hidden; margin-top:2px; color:var(--muted); font-size:9.5px; text-overflow:ellipsis; white-space:nowrap; }
.quick-arrow { width:14px !important; color:var(--faint); transition:transform .25s; }
.quick-launch button:hover .quick-arrow { transform:translateX(3px); color:var(--text); }

/* ---------- signal deck ---------- */
.dashboard-section { padding-top:4px; scroll-margin-top:96px; }
.dashboard-heading { display:flex; align-items:flex-end; justify-content:space-between; gap:20px; margin-bottom:15px; }
.dashboard-heading h2 { margin:4px 0 3px; font-size:28px; letter-spacing:-.04em; }
.channel-count { margin:0; color:var(--muted); font-size:10.5px; }
.dashboard-filters { display:flex; gap:4px; padding:4px; border:1px solid transparent; border-radius:15px; background:linear-gradient(color-mix(in srgb,var(--surface-high) 64%,transparent),color-mix(in srgb,var(--surface-low) 72%,transparent)) padding-box,linear-gradient(145deg,var(--white-glint),var(--line-strong)) border-box; box-shadow:inset 0 1px 0 var(--white-glint),0 7px 18px rgba(9,18,31,.06); }
.dashboard-filters button { min-height:31px; padding:6px 11px; border:0; border-radius:11px; color:var(--muted); background:transparent; font-size:10.5px; font-weight:750; transition:color .2s,background .2s,box-shadow .2s; }
.dashboard-filters button.on { color:var(--text); background:var(--surface-high); box-shadow:0 5px 15px rgba(8,16,30,.11),inset 0 1px 0 var(--white-glint); }
#dashboard-grid { position:relative; display:grid; grid-template-columns:repeat(12,minmax(0,1fr)); align-items:start; gap:14px; }
#dashboard-grid[data-empty='true']::after { content:"No channels match this view. Try another filter or clear the search."; grid-column:1/-1; padding:56px 20px; border:1px dashed var(--line-strong); border-radius:var(--radius-lg); color:var(--muted); text-align:center; background:var(--surface-low); }
.w-card { --module:var(--accent); position:relative; isolation:isolate; grid-column:span 6; min-width:0; min-height:205px; overflow:hidden; display:flex; flex-direction:column; border:1px solid transparent; border-radius:var(--radius-lg); background:linear-gradient(145deg,color-mix(in srgb,var(--surface-high) 86%,transparent),color-mix(in srgb,var(--surface-low) 88%,transparent)) padding-box,linear-gradient(135deg,var(--white-glint),var(--line-strong) 52%,color-mix(in srgb,var(--module) 22%,transparent)) border-box; box-shadow:var(--shadow-2),inset 0 1px 0 var(--white-glint); contain:layout paint; content-visibility:auto; contain-intrinsic-size:auto 320px; scroll-margin-top:96px; animation:card-arrive .72s var(--ease-out) both; animation-delay:min(calc(var(--card-index,0) * 45ms),450ms); transition:transform .4s var(--ease-spring),box-shadow .4s,border-color .4s; }
.w-card::before { content:""; position:absolute; z-index:0; width:340px; height:240px; right:-180px; top:-155px; border-radius:50%; background:var(--module); filter:blur(65px); opacity:.075; pointer-events:none; transition:opacity .35s,transform .5s var(--ease-out); }
.w-card::after { content:""; position:absolute; z-index:0; left:18px; right:18px; top:0; height:1px; background:linear-gradient(90deg,transparent,var(--white-glint),transparent); opacity:.75; }
.w-card:hover { transform:translateY(-5px) scale(1.002); box-shadow:0 30px 78px rgba(10,21,39,.18),inset 0 1px 0 var(--white-glint); }
.w-card:hover::before { opacity:.14; transform:scale(1.1); }
.w-card[hidden] { display:none !important; }
.w-card[data-span='full'] { grid-column:1/-1; }
.w-card[data-widget='weather'] { --module:#5eb8ff; grid-column:span 4; }.w-card[data-widget='alerts'] { --module:var(--bad); grid-column:span 4; }.w-card[data-widget='scam'] { --module:#a98aff; grid-column:span 4; }.w-card[data-widget='forecast'] { --module:#63c7ff; }.w-card[data-widget='health'] { --module:#58d59b; }.w-card[data-widget='map'] { --module:#4c9fff; }.w-card[data-widget='scan'] { --module:#a98aff; }.w-card[data-widget='feed'] { --module:#ff9f43; }.w-card[data-widget='recalls'] { --module:#ffb34d; }.w-card[data-widget='disasters'] { --module:#ff6c68; }.w-card[data-widget='crime'] { --module:#8d89ff; }.w-card[data-widget='news'] { --module:#61a8ff; }.w-card[data-widget='nearby'] { --module:#22d3ee; }.w-card[data-widget='location'] { --module:#53d6ae; }
@keyframes card-arrive { from { opacity:0; transform:translateY(22px) scale(.985); } to { opacity:1; transform:none; } }
.w-card-head { position:relative; z-index:2; display:flex; align-items:center; gap:8px; padding:17px 18px 0; }
.w-card-title { display:flex; align-items:center; gap:8px; margin:0; color:var(--muted); font-size:10px; font-weight:850; letter-spacing:.16em; text-transform:uppercase; }
.w-card-icon { width:28px; height:28px; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--module) 22%,var(--line)); border-radius:9px; color:var(--module); background:color-mix(in srgb,var(--module) 8%,transparent); }
.w-card-actions { margin-left:auto; display:flex; gap:3px; }
.w-btn { width:29px; height:29px; display:inline-grid; place-items:center; padding:0; border:1px solid transparent; border-radius:9px; color:var(--faint); background:transparent; transition:color .2s,background .2s,transform .25s; }
.w-btn:hover { color:var(--text); background:var(--surface-low); border-color:var(--line); transform:translateY(-1px); }
.w-btn:first-child:hover svg { transform:rotate(45deg); transition:transform .35s; }
.w-card-body { position:relative; z-index:1; flex:1; display:flex; flex-direction:column; gap:10px; padding:15px 18px 19px; }
.w-error { min-height:130px; display:flex; flex-direction:column; align-items:center; justify-content:center; gap:12px; padding:18px 0; color:var(--muted); text-align:center; }
.skel { height:12px; border-radius:7px; background:linear-gradient(100deg,color-mix(in srgb,var(--surface-low) 88%,transparent) 20%,color-mix(in srgb,var(--module) 17%,var(--line)) 44%,color-mix(in srgb,var(--surface-high) 90%,transparent) 55%,color-mix(in srgb,var(--surface-low) 88%,transparent) 78%); background-size:220% 100%; animation:skel 1.55s linear infinite; }
.skel-short { width:58%; }
@keyframes skel { to { background-position:-220% 0; } }

/* ---------- shared widget primitives ---------- */
.feed { display:flex; flex-direction:column; gap:8px; }
.feed-item { display:flex; gap:11px; padding:11px 12px; border:1px solid var(--line); border-radius:13px; background:color-mix(in srgb,var(--surface-low) 82%,transparent); transition:background .2s,transform .25s,border-color .2s; }
.feed-item:hover { transform:translateX(2px); background:color-mix(in srgb,var(--surface-high) 62%,transparent); border-color:var(--line-strong); }
.feed-item.alert { border-left:3px solid var(--bad); }.feed-item.warn { border-left:3px solid var(--warn); }.feed-item.ok { border-left:3px solid var(--ok); }
.feed-ico { display:inline-flex; align-items:flex-start; padding-top:2px; color:var(--module); }
.feed-main { min-width:0; flex:1; }.feed-title { font-size:13px; font-weight:700; line-height:1.35; }.feed-title a { color:var(--text); }.feed-title a:hover { color:var(--module); }.feed-sub { margin-top:3px; color:var(--muted); font-size:11.5px; }.feed-tags { display:flex; flex-wrap:wrap; gap:5px; margin-top:7px; }
.empty-state { min-height:120px; display:flex; flex-direction:column; align-items:center; justify-content:center; padding:18px 10px; color:var(--muted); font-size:13px; text-align:center; }
.empty-state .big { display:grid; place-items:center; width:44px; height:44px; margin-bottom:9px; border:1px solid var(--line); border-radius:15px; color:var(--module); background:color-mix(in srgb,var(--module) 7%,transparent); }
.stats { display:grid; grid-template-columns:repeat(auto-fit,minmax(96px,1fr)); gap:8px; }.stat { padding:9px 10px; border:1px solid var(--line); border-radius:12px; background:color-mix(in srgb,var(--surface-low) 80%,transparent); }.stat b { display:block; font:700 15px var(--mono); font-variant-numeric:tabular-nums; }.stat span { color:var(--muted); font-size:9px; letter-spacing:.09em; text-transform:uppercase; }
.small { font-size:12px; }.row-util { display:flex; flex-wrap:wrap; align-items:center; gap:8px; }
.gauge { height:8px; overflow:hidden; border:1px solid var(--line); border-radius:99px; background:var(--bg-1); }.gauge > i { display:block; height:100%; border-radius:inherit; box-shadow:0 0 10px currentColor; }
.bar-row { display:grid; grid-template-columns:110px 1fr 52px; align-items:center; gap:8px; font-size:12px; }.bar-row b { color:var(--text); font-weight:700; }.bar-row .muted { font-family:var(--mono); text-align:right; }
.kind-tag { padding:2px 7px; border:1px solid var(--line); border-radius:var(--radius-pill); color:var(--muted); font-size:9px; letter-spacing:.06em; text-transform:uppercase; }
.tabs { display:flex; flex-wrap:wrap; gap:5px; }.tab { min-height:31px; padding:5px 10px; border:1px solid var(--line); border-radius:10px; color:var(--muted); background:var(--surface-low); font-size:11px; font-weight:700; }.tab.on { color:var(--text); border-color:color-mix(in srgb,var(--module) 48%,var(--line)); background:color-mix(in srgb,var(--module) 9%,var(--surface-low)); }.tab .count { margin-left:3px; opacity:.75; font-family:var(--mono); }
.w-card .al-item, .w-card .nw-item, .w-card .cm-item, .w-card .sc-product-row, .w-card .sc-history-item, .w-card .sm-choice { border-radius:13px; background:color-mix(in srgb,var(--surface-low) 84%,transparent); border-color:var(--line); }
.w-card .al-item { padding:11px 12px; }.w-card .al-expand { color:var(--module); }.w-card .h-pollen-item { background:var(--surface-low); }.w-card .sm-shield { color:var(--module); border-color:color-mix(in srgb,var(--module) 36%,var(--line)); background:color-mix(in srgb,var(--module) 8%,transparent); }.w-card .sm-kicker, .w-card .sm-progress { color:var(--module); }.w-card .sc-intro { border-radius:16px; border-color:color-mix(in srgb,var(--module) 34%,var(--line)); background:linear-gradient(135deg,color-mix(in srgb,var(--module) 10%,var(--surface-low)),var(--surface-low)); }.w-card .sc-input { min-height:42px; border-radius:11px; background:var(--bg-1); }.w-card .sc-verdict { border-radius:14px; }.w-card .mp-map, .w-card .slippy { border-radius:18px; }

/* ---------- consent and dialogs ---------- */
#consent-banner { position:fixed; z-index:90; left:50%; bottom:22px; width:min(820px,calc(100vw - 32px)); translate:-50% 0; padding:14px; border:1px solid transparent; border-radius:24px; color:var(--text); background:linear-gradient(color-mix(in srgb,var(--surface-high) 88%,transparent),color-mix(in srgb,var(--surface-low) 88%,transparent)) padding-box,linear-gradient(135deg,var(--white-glint),color-mix(in srgb,var(--signal) 28%,var(--line-strong))) border-box; box-shadow:var(--shadow-3),inset 0 1px 0 var(--white-glint); backdrop-filter:blur(34px) saturate(170%); -webkit-backdrop-filter:blur(34px) saturate(170%); animation:consent-in .6s var(--ease-out) both; }
@keyframes consent-in { from { opacity:0; translate:-50% 25px; scale:.97; } }
.banner-inner { display:flex; align-items:center; gap:13px; }
.banner-icon { width:47px; height:47px; flex:none; display:grid; place-items:center; border:1px solid color-mix(in srgb,var(--signal) 28%,var(--line)); border-radius:15px; color:var(--signal); background:color-mix(in srgb,var(--signal) 9%,transparent); box-shadow:inset 0 1px 0 var(--white-glint); }
.banner-icon svg { width:23px; height:23px; fill:none; stroke:currentColor; stroke-width:1.7; stroke-linecap:round; stroke-linejoin:round; }
.banner-text { min-width:0; flex:1; display:flex; flex-direction:column; gap:2px; color:var(--muted); font-size:11.5px; }
.banner-kicker { color:var(--signal); font:800 8.5px var(--mono); letter-spacing:.12em; }
.banner-text strong { color:var(--text); font-size:14px; }
.banner-actions { display:flex; flex:none; gap:7px; }
.loc-dialog, .pers-dialog { width:min(600px,calc(100vw - 28px)); max-height:min(820px,calc(100dvh - 28px)); overflow:auto; padding:0; border:1px solid transparent; border-radius:28px; color:var(--text); background:linear-gradient(color-mix(in srgb,var(--surface-high) 94%,transparent),color-mix(in srgb,var(--surface-low) 92%,transparent)) padding-box,linear-gradient(135deg,var(--white-glint),color-mix(in srgb,var(--signal) 26%,var(--line-strong))) border-box; box-shadow:0 40px 130px rgba(0,0,0,.48),inset 0 1px 0 var(--white-glint); backdrop-filter:blur(38px) saturate(170%); -webkit-backdrop-filter:blur(38px) saturate(170%); }
.pers-dialog { width:min(660px,calc(100vw - 28px)); }
.loc-dialog::backdrop, .pers-dialog::backdrop { background:rgba(3,7,14,.58); backdrop-filter:blur(8px); }
.dialog-head { position:sticky; z-index:2; top:0; display:flex; align-items:center; justify-content:space-between; padding:18px 20px 10px; background:linear-gradient(var(--surface-high),color-mix(in srgb,var(--surface-high) 88%,transparent)); backdrop-filter:blur(20px); }
.dialog-head h2 { font-size:19px; }.dialog-body { padding:5px 20px 21px; }.dialog-lead { margin:7px 0 15px; color:var(--muted); font-size:12.5px; }.loc-options { display:flex; flex-direction:column; gap:8px; }
.loc-option { display:flex; align-items:flex-start; gap:12px; width:100%; padding:12px; border:1px solid var(--line); border-radius:14px; color:var(--text); background:color-mix(in srgb,var(--surface-low) 82%,transparent); text-align:left; transition:transform .25s var(--ease-spring),border-color .2s,background .2s; }.loc-option:hover { transform:translateX(3px); border-color:color-mix(in srgb,var(--signal) 55%,var(--line)); background:color-mix(in srgb,var(--signal) 6%,var(--surface-low)); }.loc-option-icon { width:38px; height:38px; flex:none; display:grid; place-items:center; border-radius:12px; color:var(--signal); background:color-mix(in srgb,var(--signal) 9%,transparent); }.loc-option strong { display:block; font-size:13px; }.loc-option small { display:block; margin-top:2px; color:var(--muted); font-size:11.5px; }
.manual-search { margin-top:12px; } #manual-input { width:100%; padding:11px 13px; border:1px solid var(--line); border-radius:12px; color:var(--text); background:var(--bg-1); outline:0; } #manual-input:focus { border-color:var(--signal); box-shadow:0 0 0 4px rgba(var(--signal-rgb),.1); }.manual-results { max-height:220px; overflow-y:auto; display:flex; flex-direction:column; gap:5px; margin:8px 0 0; padding:0; list-style:none; }.manual-item { width:100%; display:flex; justify-content:space-between; gap:10px; padding:9px 11px; border:1px solid var(--line); border-radius:10px; background:var(--surface-low); text-align:left; }.manual-item:hover { border-color:var(--signal); }.manual-item-name { font-size:13px; font-weight:700; }.manual-item-meta,.manual-empty { color:var(--muted); font-size:11.5px; }.dialog-status { min-height:1.2em; margin:10px 0 2px; color:var(--info); font-size:12.5px; }.dialog-legal { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:10px; color:var(--muted); font-size:11.5px; }
.pers-body { display:flex; flex-direction:column; gap:14px; }.pers-sec { display:flex; flex-direction:column; gap:8px; }.pers-sec-title { color:var(--muted); font-size:9.5px; font-weight:800; letter-spacing:.1em; text-transform:uppercase; }.pers-row { display:flex; flex-wrap:wrap; align-items:center; gap:7px; }.pers-swatch { width:31px; height:31px; display:inline-flex; align-items:center; justify-content:center; border:2px solid transparent; border-radius:50%; color:#fff; }.pers-swatch.on { border-color:var(--text); box-shadow:0 0 0 3px var(--surface-high); }.pers-widgets { overflow:hidden; display:flex; flex-direction:column; border:1px solid var(--line); border-radius:14px; }.pers-wrow { display:flex; align-items:center; gap:9px; padding:9px 10px; border-bottom:1px solid var(--line); background:var(--surface-low); }.pers-wrow:last-child { border-bottom:0; }.pers-wrow.off { opacity:.5; }.pers-wicon { display:inline-flex; color:var(--accent); }.pers-wtitle { flex:1; font-size:12.5px; font-weight:650; }.pers-wmove { display:flex; gap:4px; }.pers-wvis { width:29px; height:29px; display:inline-flex; align-items:center; justify-content:center; border:1px solid var(--line); border-radius:8px; color:var(--muted); background:transparent; }.pers-wvis.on { color:var(--ok); border-color:color-mix(in srgb,var(--ok) 42%,var(--line)); }.pers-foot { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:8px; padding:12px 20px 16px; border-top:1px solid var(--line); background:var(--surface-high); }

/* ---------- map and footers ---------- */
.slippy { position:relative; width:100%; height:380px; overflow:hidden; border:1px solid var(--line); border-radius:18px; background:#0b1220; box-shadow:inset 0 0 50px rgba(0,0,0,.28); }.slippy-layer { position:absolute; inset:0; }.slippy-radar { pointer-events:none; }.slippy-tile { position:absolute; left:0; top:0; }.slippy-markers { pointer-events:none; }.slippy-marker { position:absolute; left:0; top:0; width:13px; height:13px; border:2px solid #fff; border-radius:50% 50% 50% 0; background:var(--bad); box-shadow:0 2px 10px rgba(0,0,0,.55); transform-origin:bottom; }.slippy-marker.pulse::after { content:""; position:absolute; inset:-6px; border:2px solid currentColor; border-radius:50%; color:var(--bad); animation:map-pulse 1.9s ease-out infinite; }.slippy-attr { position:absolute; z-index:5; right:7px; bottom:6px; padding:2px 7px; border-radius:6px; color:#dbe6f5; background:rgba(6,12,23,.72); font-size:9px; }.slippy-attr a { color:#9cc9ff; }.map-controls { display:flex; flex-wrap:wrap; align-items:center; gap:8px; padding:8px 2px 0; }@keyframes map-pulse { from { transform:scale(.5); opacity:.9; } to { transform:scale(1.7); opacity:0; } }
.page-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:18px; margin-top:54px; padding:24px 0 4px; border-top:1px solid var(--line); color:var(--muted); font-size:11.5px; }.page-footer > span { max-width:720px; }.page-footer nav { display:flex; flex-wrap:wrap; gap:15px; }.page-footer a { color:var(--muted); }.page-footer a:hover { color:var(--text); }
.site-footer { position:relative; z-index:1; margin-left:108px; padding:40px 32px 22px; border-top:1px solid var(--line); color:var(--muted); background:color-mix(in srgb,var(--bg-1) 74%,transparent); }.site-footer .wrap { max-width:1420px; margin:0 auto; display:grid; grid-template-columns:1.1fr 1.2fr .9fr; gap:32px; }.footer-col { min-width:0; display:flex; flex-direction:column; align-items:flex-start; gap:8px; font-size:11px; }.footer-col > strong { color:var(--text); font-size:13px; }.footer-small { color:var(--faint); }.footer-sources,.footer-links { margin:0; padding:0; list-style:none; }.footer-sources li,.footer-links li { margin:4px 0; }.footer-bottom { max-width:1420px; margin:28px auto 0; padding-top:15px; border-top:1px solid var(--line); color:var(--faint); font-size:10px; }

/* ---------- release polish: luxury welcome layer ---------- */
:root {
  --luxury-gold: #d8ad67;
  --luxury-ink: #182235;
  --luxury-sheen: linear-gradient(115deg, transparent 18%, rgba(255,255,255,.18) 44%, transparent 62%);
}
body::before { content:""; position:fixed; inset:0; z-index:-2; pointer-events:none; opacity:.55; background:radial-gradient(700px 340px at 50% -7%, color-mix(in srgb,var(--luxury-gold) 8%,transparent), transparent 75%); }
.app-topbar { min-height:76px; border-bottom-color:color-mix(in srgb,var(--line) 72%,var(--luxury-gold)); background:color-mix(in srgb,var(--surface-low) 72%,transparent); backdrop-filter:blur(24px) saturate(145%); }
.app-title-copy strong { letter-spacing:-.045em; }
.welcome-row { position:relative; overflow:hidden; border:1px solid color-mix(in srgb,var(--luxury-gold) 19%,var(--line)); border-radius:32px; padding:clamp(26px,5vw,58px); background:linear-gradient(135deg,color-mix(in srgb,var(--surface-high) 88%,transparent),color-mix(in srgb,var(--surface-low) 74%,transparent)); box-shadow:0 32px 90px color-mix(in srgb,var(--black-shadow) 74%,transparent),inset 0 1px 0 var(--white-glint); }
.welcome-row::before { content:""; position:absolute; inset:0; pointer-events:none; background:var(--luxury-sheen); opacity:.5; transform:translateX(-100%); transition:transform 1.2s var(--ease-out); }
.welcome-row:hover::before { transform:translateX(100%); }
.welcome-copy h1 { max-width:760px; font-size:clamp(38px,6vw,74px); letter-spacing:-.075em; }
.welcome-copy > p { max-width:590px; font-size:clamp(15px,1.6vw,18px); color:var(--text-soft); }
.spectrum-text { background:linear-gradient(105deg,var(--text),var(--luxury-gold) 48%,var(--signal)); -webkit-background-clip:text; background-clip:text; color:transparent; }
.signal-orbit { filter:drop-shadow(0 20px 35px color-mix(in srgb,var(--signal) 15%,transparent)); }
.app-summary-grid { gap:18px; margin-top:20px; }
.area-card, .today-check, .streak-card { min-height:240px; border-color:color-mix(in srgb,var(--luxury-gold) 12%,var(--line)); box-shadow:0 18px 48px color-mix(in srgb,var(--black-shadow) 55%,transparent),inset 0 1px 0 var(--white-glint); }
.quick-launch { gap:14px; margin-top:18px; }
.quick-launch button { min-height:78px; padding:15px; border-radius:20px; }
.dashboard-section { padding-top:14px; }
.dashboard-heading { padding:0 4px; }
.dashboard-heading h2 { font-size:clamp(28px,3vw,38px); }
.w-card { border-radius:22px; }
.w-card:hover { transform:translateY(-7px); }
.site-footer { margin-top:70px; border-top-color:color-mix(in srgb,var(--luxury-gold) 17%,var(--line)); }
@media (max-width: 760px) { .welcome-row { border-radius:24px; padding:25px 20px; } .welcome-copy h1 { font-size:41px; } .quick-launch { grid-template-columns:repeat(2,1fr); } .app-summary-grid { grid-template-columns:1fr; } }
@media (prefers-reduced-motion: reduce) { *, *::before, *::after { animation-duration:.001ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.001ms !important; } }

/* ---------- macOS window material system ---------- */
:root { --mac-window: color-mix(in srgb,var(--surface-high) 78%,transparent); --mac-toolbar: color-mix(in srgb,var(--surface-high) 64%,transparent); --mac-inset: color-mix(in srgb,var(--surface-low) 80%,transparent); --mac-separator: color-mix(in srgb,var(--line-strong) 72%,transparent); --mac-highlight: rgba(255,255,255,.5); --mac-shadow: 0 28px 90px rgba(9,18,33,.18); }
body { background:radial-gradient(900px 520px at 50% -15%,color-mix(in srgb,var(--signal-2) 12%,transparent),transparent 68%),linear-gradient(150deg,var(--bg-0),var(--bg-1) 58%,var(--bg-0)); }
.app-shell { max-width:1660px; margin:0 auto; padding:0 18px 36px; }
.app-main { min-width:0; }
.app-rail { top:22px; bottom:22px; left:22px; background:linear-gradient(155deg,color-mix(in srgb,var(--mac-window) 90%,transparent),color-mix(in srgb,var(--surface-low) 78%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),var(--line-strong) 50%,transparent) border-box; box-shadow:var(--mac-shadow),inset 0 1px 0 var(--mac-highlight); }
.app-topbar { margin:22px 0 0; background:linear-gradient(180deg,color-mix(in srgb,var(--mac-toolbar) 94%,transparent),color-mix(in srgb,var(--surface-low) 74%,transparent)) padding-box,linear-gradient(135deg,var(--mac-highlight),var(--mac-separator)) border-box; box-shadow:0 18px 55px rgba(9,18,33,.14),inset 0 1px 0 var(--mac-highlight); }
.app-topbar::before { content:""; position:absolute; left:18px; top:50%; width:30px; height:8px; translate:0 -50%; border-radius:99px; background:radial-gradient(circle at 4px 4px,#ff6259 0 3px,transparent 3.5px),radial-gradient(circle at 15px 4px,#ffbd2e 0 3px,transparent 3.5px),radial-gradient(circle at 26px 4px,#28c840 0 3px,transparent 3.5px); opacity:.9; pointer-events:none; }
.app-topbar { padding-left:58px; }
.app-content { padding-top:39px; }
.welcome-row { border-radius:28px; background:linear-gradient(145deg,color-mix(in srgb,var(--mac-window) 92%,transparent),color-mix(in srgb,var(--surface-low) 84%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),color-mix(in srgb,var(--signal) 19%,var(--mac-separator))) border-box; box-shadow:var(--mac-shadow),inset 0 1px 0 var(--mac-highlight); }
.glass,.glass-panel,.w-card { background:linear-gradient(145deg,color-mix(in srgb,var(--mac-window) 88%,transparent),color-mix(in srgb,var(--mac-inset) 88%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),var(--mac-separator)) border-box; box-shadow:0 17px 48px rgba(9,18,33,.12),inset 0 1px 0 var(--mac-highlight); }
.w-card { border-radius:20px; }
.w-card::after,.glass::after,.glass-panel::after { content:""; position:absolute; inset:1px; border-radius:inherit; border:1px solid rgba(255,255,255,.08); pointer-events:none; }
.quick-launch button,.topbar-search,.dashboard-filters { background:linear-gradient(145deg,color-mix(in srgb,var(--mac-window) 88%,transparent),color-mix(in srgb,var(--mac-inset) 80%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),var(--mac-separator)) border-box; }
.icon-btn,.loc-pill,.signal-chip,.btn { box-shadow:0 7px 20px rgba(9,18,33,.1),inset 0 1px 0 var(--mac-highlight); }
.icon-btn:hover,.loc-pill:hover,.signal-chip:hover,.btn:hover { box-shadow:0 14px 30px rgba(9,18,33,.16),inset 0 1px 0 var(--mac-highlight); }
.loc-dialog,.pers-dialog { background:linear-gradient(145deg,color-mix(in srgb,var(--mac-window) 96%,transparent),color-mix(in srgb,var(--mac-inset) 94%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),color-mix(in srgb,var(--signal) 20%,var(--mac-separator))) border-box; }
.content-hero::before { background:linear-gradient(90deg,var(--signal),var(--luxury-gold),transparent); }
@media (prefers-reduced-transparency: reduce) { .app-rail,.app-topbar,.glass,.glass-panel,.w-card,.welcome-row,.quick-launch button { background:var(--surface-solid); backdrop-filter:none; -webkit-backdrop-filter:none; } }

/* ---------- urgency: threat deck + watch strip ---------- */
.threat-deck { position:relative; z-index:2; margin:20px 0 0; padding:13px 14px; border:1px solid color-mix(in srgb,var(--bad) 26%,var(--line)); border-radius:18px; background:linear-gradient(135deg,color-mix(in srgb,var(--bad) 8%,var(--mac-window)),color-mix(in srgb,var(--surface-low) 82%,transparent)); box-shadow:inset 0 1px 0 var(--mac-highlight),0 16px 42px rgba(9,18,33,.12); }
.threat-deck-head { display:flex; align-items:center; justify-content:space-between; margin-bottom:9px; }
.threat-kicker { color:var(--bad); font:800 9px var(--mono); letter-spacing:.16em; }
.threat-count { min-width:23px; height:23px; padding:0 7px; display:inline-flex; align-items:center; justify-content:center; border-radius:99px; color:#fff; background:linear-gradient(145deg,var(--bad),color-mix(in srgb,var(--bad) 70%,#7f1d1d)); font:800 11px var(--mono); box-shadow:0 0 0 4px color-mix(in srgb,var(--bad) 14%,transparent),0 6px 16px color-mix(in srgb,var(--bad) 34%,transparent); }
.threat-list { display:flex; flex-direction:column; gap:6px; margin:0; padding:0; list-style:none; }
.threat-item { display:flex; align-items:center; gap:10px; min-width:0; padding:9px 11px; border:1px solid var(--line); border-left:3px solid var(--bad); border-radius:11px; background:color-mix(in srgb,var(--surface-low) 84%,transparent); }
.threat-item .threat-tag { flex:none; padding:2px 7px; border:1px solid var(--line); border-radius:99px; color:var(--muted); font:800 8px var(--mono); letter-spacing:.1em; }
.threat-item b { min-width:0; flex:1; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; font-size:12.5px; font-weight:700; }
.threat-item time { flex:none; color:var(--text); font:700 12px var(--mono); font-variant-numeric:tabular-nums; }
.threat-item.lv-0 { border-left-color:var(--ok); }.threat-item.lv-1 { border-left-color:var(--warn); }.threat-item.lv-2 { border-left-color:var(--warn); }.threat-item.lv-3 { border-left-color:var(--bad); }.threat-item.lv-4 { border-left-color:var(--extreme); }
.threat-item.lv-0 .threat-tag { color:var(--ok); border-color:color-mix(in srgb,var(--ok) 34%,var(--line)); }
.threat-item.lv-3 time, .threat-item.lv-4 time { color:var(--bad); }
.watch-strip { display:flex; flex-wrap:wrap; align-items:center; gap:7px; margin-top:18px; padding-top:15px; border-top:1px solid var(--line); }
.watch-label { margin-right:3px; color:var(--muted); font:800 9px var(--mono); letter-spacing:.14em; }
.watch-item { display:inline-flex; align-items:center; gap:7px; padding:6px 11px; border:1px solid var(--line); border-radius:99px; color:var(--text-soft); background:color-mix(in srgb,var(--surface-low) 82%,transparent); font-size:10.5px; font-weight:700; transition:color .2s,border-color .2s,transform .25s var(--ease-spring),box-shadow .25s; }
.watch-item:hover { color:var(--text); border-color:color-mix(in srgb,var(--accent) 55%,var(--line)); transform:translateY(-1px); box-shadow:0 8px 18px rgba(9,18,33,.1); }
.watch-dot { width:6px; height:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent); }

/* ---------- responsive ---------- */
@media (max-width:1200px) {
  .signal-stage { grid-template-columns:minmax(0,1.4fr) 250px; }
  .signal-orbit { width:245px; }
  .app-summary-grid { grid-template-columns:1fr 1fr; }
  .streak-card { grid-column:1/-1; min-height:150px; }
  .streak-value { margin:10px 0; }
  .quick-launch { grid-template-columns:1fr 1fr; }
  .w-card[data-widget='weather'],.w-card[data-widget='alerts'],.w-card[data-widget='scam'] { grid-column:span 6; }
}
@media (max-width:980px) {
  .app-topbar { grid-template-columns:minmax(145px,1fr) minmax(240px,1.35fr) auto; }
  .signal-chip span { display:none; }.signal-chip { width:38px; padding:0; }
  .signal-stage { min-height:315px; padding:30px; }
  .welcome-row h1 { font-size:clamp(38px,6vw,54px); }
  .signal-orbit { width:220px; }.signal-core { width:112px; }.signal-core > span { font-size:40px; }
  .site-footer .wrap { grid-template-columns:1fr 1fr; }
}
@media (max-width:760px) {
  :root { --glass-blur:22px; }
  body { padding-bottom:calc(82px + env(safe-area-inset-bottom)); }
  .ambient-orb { filter:blur(55px); opacity:.24; }.ambient-grid { background-size:54px 54px; opacity:.1; }
  .app-shell { display:block; }.app-main { display:block; }
  .app-rail { top:auto; right:10px; bottom:calc(9px + env(safe-area-inset-bottom)); left:10px; width:auto; height:67px; flex-direction:row; padding:6px 8px; border-radius:22px; }
  .rail-brand,.rail-privacy { display:none; }.rail-nav { flex:1; height:100%; flex-direction:row; justify-content:space-around; gap:2px; margin:0; }.rail-link { flex:1; min-width:0; min-height:52px; padding:5px 2px; border-radius:13px; }.rail-link.active::before { left:50%; top:-7px; width:22px; height:3px; border-radius:0 0 4px 4px; translate:-50% 0; }.rail-link svg { width:19px; height:19px; }
  .app-topbar { top:8px; height:auto; min-height:62px; grid-template-columns:1fr auto; gap:8px; margin:8px 8px 0; padding:9px 10px; border-radius:19px; }.app-topbar::before { display:none; }.app-title-mark { width:34px; height:34px; }.app-title-copy small { font-size:8.5px; }.topbar-search { grid-column:1/-1; grid-row:2; height:40px; }.topbar-search kbd { display:none; }.header-actions { gap:5px; }.signal-chip { display:none; }.loc-pill { max-width:120px; padding-inline:9px; }.loc-label { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
  .app-content { width:100%; padding:18px 12px 46px; }
  .signal-stage { min-height:0; display:block; padding:25px 22px 28px; border-radius:26px; }.signal-stage::before { right:-390px; top:-300px; opacity:.28; }.signal-stage::after { opacity:.5; }.welcome-copy { z-index:3; }.welcome-row h1 { max-width:100%; font-size:clamp(38px,11vw,51px); line-height:1; }.welcome-row p { max-width:92%; font-size:13.5px; }.hero-actions { margin-top:20px; }.trust-row { gap:10px; margin-top:18px; }
  .signal-orbit { position:absolute; z-index:1; right:-77px; top:20px; width:210px; opacity:.32; }.signal-orbit-caption { display:none; }.signal-orbit .signal-core { display:none; }
  .app-summary-grid { grid-template-columns:1fr; }.streak-card { grid-column:auto; }.area-card,.today-check,.streak-card { min-height:205px; border-radius:23px; }
  .quick-launch { grid-template-columns:1fr 1fr; margin-bottom:34px; }.quick-launch button { border-radius:17px; }
  .dashboard-heading { align-items:flex-start; flex-direction:column; }.dashboard-filters { width:100%; overflow-x:auto; }.dashboard-filters button { flex:1; }
  #dashboard-grid { grid-template-columns:1fr; }.w-card,.w-card[data-span='full'],.w-card[data-widget='weather'],.w-card[data-widget='alerts'],.w-card[data-widget='scam'] { grid-column:1; border-radius:22px; }
  .content-hero { padding:48px 2px 28px; }.content-hero h1 { font-size:clamp(39px,13vw,58px); }.content-section { padding-top:26px; }.grid { grid-template-columns:1fr; }.cta-band { padding:34px 20px; } .card { padding:21px; }
  table { display:block; overflow-x:auto; white-space:nowrap; }
  #consent-banner { bottom:calc(84px + env(safe-area-inset-bottom)); width:calc(100vw - 20px); padding:12px; border-radius:21px; background:linear-gradient(var(--surface-solid),var(--surface-solid)) padding-box,linear-gradient(135deg,var(--white-glint),color-mix(in srgb,var(--signal) 34%,var(--line-strong))) border-box; }.banner-inner { display:grid; grid-template-columns:auto 1fr; gap:10px; }.banner-icon { width:40px; height:40px; border-radius:13px; }.banner-text { font-size:10.5px; line-height:1.4; }.banner-actions { grid-column:1/-1; display:grid; grid-template-columns:1fr 1fr; }.banner-actions .btn { min-height:39px; padding:7px 10px; font-size:11.5px; }
  .loc-dialog,.pers-dialog { width:calc(100vw - 16px); max-height:calc(100dvh - 20px); border-radius:25px; }.dialog-body { padding-inline:15px; }.dialog-head { padding-inline:15px; }
  .slippy { height:330px; }.page-footer { flex-direction:column; }
  .site-footer { margin-left:0; padding:34px 16px calc(104px + env(safe-area-inset-bottom)); }.site-footer .wrap { grid-template-columns:1fr; gap:24px; }
}
@media (max-width:520px) {
  .rail-link span { display:none; }.rail-link { min-height:50px; }
  .app-title-mark { display:none; }.app-title { gap:0; }.app-title strong { font-size:16px; }
  .header-actions .icon-btn { width:36px; min-height:36px; }.loc-pill { max-width:105px; }
  .signal-stage { padding:23px 18px 25px; }.hero-kicker { max-width:75%; font-size:8.5px; }.welcome-row h1 { font-size:clamp(36px,11.5vw,47px); letter-spacing:-.045em; }.spectrum-text { word-spacing:.07em; }.welcome-row p { max-width:100%; }.hero-actions { display:grid; grid-template-columns:1fr; }.hero-actions .btn { width:100%; }.trust-row span:last-child { display:none; }.signal-orbit { right:-99px; top:15px; opacity:.22; }
  .quick-launch { grid-template-columns:1fr; }.quick-launch button { min-height:67px; }.quick-launch strong { font-size:12.5px; }.quick-launch small { font-size:10px; }
  .dashboard-heading h2 { font-size:26px; }.dashboard-filters button { padding-inline:8px; }
  .bar-row { grid-template-columns:76px 1fr 42px; }.w-card-body { padding-inline:15px; }.w-card-head { padding-inline:15px; }.w-card-title { letter-spacing:.12em; }
  .content-hero h1 { letter-spacing:-.055em; }.step { padding-left:70px; }.step::after { left:17px; }
  .banner-text > span:not(.banner-kicker) { display:-webkit-box; overflow:hidden; -webkit-box-orient:vertical; -webkit-line-clamp:2; }.banner-text strong { font-size:13px; }
  .dialog-legal { display:block; }.pers-foot { padding-inline:15px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  *,*::before,*::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; scroll-behavior:auto !important; transition-duration:.01ms !important; }
  .ambient-orb { transform:none !important; }
}
@media (prefers-contrast:more) {
  :root { --line:light-dark(rgba(28,45,70,.42),rgba(230,240,255,.35)); --line-strong:light-dark(rgba(20,37,64,.62),rgba(240,246,255,.55)); --muted:light-dark(#445168,#b7c4d8); }
  .glass,.glass-panel,.w-card,.app-topbar,.app-rail { background:var(--surface-solid) padding-box,var(--line-strong) border-box; }
}
@media (forced-colors:active) {
  .ambient-scene { display:none; }.spectrum-text { color:CanvasText; }.btn,.w-card,.glass,.glass-panel,.app-topbar,.app-rail { border:1px solid CanvasText; }.status-dot,.live-dot,.signal-chip-dot { forced-color-adjust:none; }
}
/* ---------- device & cyber intelligence ---------- */
.risk-panel { display:grid; grid-template-columns:minmax(0,300px) minmax(0,1fr); gap:20px; align-items:start; }
.risk-score-card { padding:26px; border:1px solid transparent; border-radius:var(--radius-lg); text-align:center; background:linear-gradient(145deg,color-mix(in srgb,var(--mac-window) 90%,transparent),color-mix(in srgb,var(--mac-inset) 86%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),var(--mac-separator)) border-box; box-shadow:var(--shadow-2),inset 0 1px 0 var(--mac-highlight); }
.risk-score { font:800 clamp(56px,8vw,92px)/.9 var(--mono); letter-spacing:-.06em; font-variant-numeric:tabular-nums; }
.risk-score.rl-low { color:var(--ok); }.risk-score.rl-moderate { color:var(--warn); }.risk-score.rl-elevated { color:var(--bad); }.risk-score.rl-high { color:var(--extreme); }
.risk-label { margin-top:8px; font:800 11px var(--mono); letter-spacing:.16em; text-transform:uppercase; color:var(--text); }
.risk-gauge { height:9px; margin-top:14px; overflow:hidden; border:1px solid var(--line); border-radius:99px; background:var(--bg-1); }
.risk-gauge > i { display:block; height:100%; border-radius:inherit; background:linear-gradient(90deg,var(--ok),var(--warn),var(--bad),var(--extreme)); box-shadow:0 0 12px color-mix(in srgb,var(--bad) 40%,transparent); transition:width .8s var(--ease-out); }
.risk-note { margin:12px 0 0; color:var(--muted); font-size:11px; line-height:1.5; }
.risk-findings { display:flex; flex-direction:column; gap:9px; }
.risk-finding { display:flex; gap:11px; padding:12px 13px; border:1px solid var(--line); border-left:3px solid var(--line-strong); border-radius:13px; background:color-mix(in srgb,var(--surface-low) 82%,transparent); }
.risk-finding .rf-flag { flex:none; align-self:flex-start; padding:2px 8px; border-radius:99px; font:800 8px var(--mono); letter-spacing:.1em; }
.risk-finding b { display:block; font-size:13px; }
.risk-finding p { margin:2px 0 0; color:var(--muted); font-size:11.5px; line-height:1.45; }
.rf-high { border-left-color:var(--extreme); }.rf-high .rf-flag { color:var(--extreme); border:1px solid color-mix(in srgb,var(--extreme) 40%,var(--line)); }
.rf-moderate { border-left-color:var(--bad); }.rf-moderate .rf-flag { color:var(--bad); border:1px solid color-mix(in srgb,var(--bad) 40%,var(--line)); }
.rf-warn { border-left-color:var(--warn); }.rf-warn .rf-flag { color:var(--warn); border:1px solid color-mix(in srgb,var(--warn) 40%,var(--line)); }
.rf-low { border-left-color:var(--ok); }.rf-low .rf-flag { color:var(--ok); border:1px solid color-mix(in srgb,var(--ok) 40%,var(--line)); }
.cat-matrix { display:grid; grid-template-columns:repeat(auto-fill,minmax(230px,1fr)); gap:12px; }
.cat-cell { padding:15px 16px; border:1px solid transparent; border-radius:16px; background:linear-gradient(145deg,color-mix(in srgb,var(--mac-window) 88%,transparent),color-mix(in srgb,var(--mac-inset) 84%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),var(--mac-separator)) border-box; box-shadow:0 12px 32px rgba(9,18,33,.09),inset 0 1px 0 var(--mac-highlight); transition:transform .3s var(--ease-spring),box-shadow .3s; }
.cat-cell:hover { transform:translateY(-3px); box-shadow:0 18px 44px rgba(9,18,33,.14),inset 0 1px 0 var(--mac-highlight); }
.cat-cell .cat-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:6px; }
.cat-cell .cat-dot { width:8px; height:8px; flex:none; border-radius:50%; background:var(--module,var(--accent)); box-shadow:0 0 0 4px color-mix(in srgb,var(--module,var(--accent)) 14%,transparent); }
.cat-cell strong { display:block; font-size:13.5px; }
.cat-cell p { margin:0; color:var(--muted); font-size:11.5px; line-height:1.45; }
.cat-status { font:800 8.5px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.intel-grid { display:grid; grid-template-columns:repeat(auto-fill,minmax(250px,1fr)); gap:12px; }
.intel-card { padding:15px 16px; border:1px solid var(--line); border-radius:16px; background:color-mix(in srgb,var(--surface-low) 84%,transparent); }
.intel-card .intel-top { display:flex; align-items:center; justify-content:space-between; gap:8px; margin-bottom:7px; }
.intel-card .intel-name { font:800 9px var(--mono); letter-spacing:.12em; text-transform:uppercase; color:var(--muted); }
.intel-card .intel-stat { font:700 20px var(--mono); font-variant-numeric:tabular-nums; }
.intel-card .intel-detail { margin-top:4px; color:var(--muted); font-size:11.5px; line-height:1.45; overflow:hidden; display:-webkit-box; -webkit-box-orient:vertical; -webkit-line-clamp:3; }
.badge.info { color:var(--info); border-color:color-mix(in srgb,var(--info) 42%,var(--line)); }
@media (max-width:760px) { .risk-panel { grid-template-columns:1fr; } }
/* ---------- periodic briefing sheet ---------- */
.briefing-sheet { position:fixed; z-index:86; right:20px; bottom:20px; width:min(430px, calc(100vw - 24px)); max-height:min(720px, calc(100dvh - 24px)); overflow:auto; border:1px solid transparent; border-radius:22px; background:linear-gradient(155deg,color-mix(in srgb,var(--mac-window) 94%,transparent),color-mix(in srgb,var(--mac-inset) 90%,transparent)) padding-box,linear-gradient(140deg,var(--mac-highlight),color-mix(in srgb,var(--signal) 22%,var(--mac-separator))) border-box; box-shadow:var(--shadow-3),inset 0 1px 0 var(--mac-highlight); backdrop-filter:blur(30px) saturate(165%); -webkit-backdrop-filter:blur(30px) saturate(165%); animation:brief-in .5s var(--ease-out) both; }
@keyframes brief-in { from { opacity:0; translate:0 22px; scale:.98; } }
.brief-head { position:sticky; top:0; z-index:2; display:flex; align-items:center; justify-content:space-between; gap:10px; padding:15px 16px 11px; background:linear-gradient(var(--mac-window),color-mix(in srgb,var(--mac-window) 86%,transparent)); backdrop-filter:blur(20px); }
.brief-kicker { color:var(--signal); font:800 9px var(--mono); letter-spacing:.16em; }
.brief-close { width:30px; height:30px; display:grid; place-items:center; padding:0; border:1px solid var(--line); border-radius:9px; color:var(--muted); background:var(--surface-low); }
.brief-close:hover { color:var(--text); border-color:var(--line-strong); }
.brief-body { display:flex; flex-direction:column; gap:4px; padding:2px 16px 14px; }
.brief-sec { padding:13px 0; border-bottom:1px solid var(--line); }
.brief-sec:last-child { border-bottom:0; }
.brief-h { margin:0 0 9px; color:var(--muted); font:800 9px var(--mono); letter-spacing:.14em; text-transform:uppercase; }
.brief-area { margin:0 0 6px; font-size:14.5px; font-weight:700; line-height:1.4; }
.brief-meta { margin:3px 0 0; color:var(--text-soft); font-size:12px; line-height:1.5; }
/* ---------- guided reality check ---------- */
.reality-check { right:50%; bottom:50%; translate:50% 50%; width:min(520px,calc(100vw - 24px)); max-height:min(760px,calc(100dvh - 24px)); }
.reality-check .brief-head { padding:18px 20px 13px; }
.reality-check .brief-kicker { font-size:10px; }
.reality-progress { color:var(--muted); font:800 10px var(--mono); letter-spacing:.08em; }
.reality-check .brief-body { padding:12px 22px 18px; }
.reality-intro { margin:0 0 18px; color:var(--text-soft); font-size:13px; line-height:1.55; }
.reality-icon { display:grid; place-items:center; width:58px; height:58px; margin:2px auto 15px; border:1px solid color-mix(in srgb,var(--signal) 42%,var(--line)); border-radius:18px; color:var(--signal); background:color-mix(in srgb,var(--signal) 12%,transparent); font:900 9px var(--mono); letter-spacing:.08em; box-shadow:0 0 34px color-mix(in srgb,var(--signal) 18%,transparent); }
.reality-title { margin:0 auto 9px; text-align:center; font-size:clamp(22px,5vw,30px); letter-spacing:-.045em; }
.reality-copy { max-width:420px; min-height:76px; margin:0 auto 18px; color:var(--text-soft); font-size:14px; line-height:1.6; text-align:center; }
.reality-check .brief-sec { display:none; }
.reality-check .brief-foot { justify-content:space-between; padding:14px 22px 18px; }
@media (max-width:760px) { .reality-check { right:12px; bottom:calc(70px + env(safe-area-inset-bottom)); translate:0 0; width:auto; max-height:calc(100dvh - 92px); } .reality-check .brief-body { padding-inline:18px; } .reality-check .brief-foot { padding-inline:18px; } }

.brief-meta:empty { display:none; }
.brief-risk { display:flex; align-items:center; gap:14px; margin-top:12px; padding:12px 13px; border:1px solid var(--line); border-radius:14px; background:color-mix(in srgb,var(--surface-low) 84%,transparent); }
.brief-risk-score { flex:none; font:800 42px/1 var(--mono); letter-spacing:-.05em; font-variant-numeric:tabular-nums; }
.brief-risk-score.rl-low { color:var(--ok); }.brief-risk-score.rl-moderate { color:var(--warn); }.brief-risk-score.rl-elevated { color:var(--bad); }.brief-risk-score.rl-high { color:var(--extreme); }
.brief-risk-meta { min-width:0; display:flex; flex-direction:column; gap:3px; }
.brief-risk-meta strong { font-size:12.5px; }
.brief-risk-note { color:var(--muted); font:700 10.5px var(--mono); letter-spacing:.02em; }
.brief-list { margin:0; padding:0; list-style:none; display:flex; flex-direction:column; gap:9px; }
.brief-li { display:flex; gap:9px; color:var(--text-soft); font-size:12px; line-height:1.5; }
.brief-dot { flex:none; width:6px; height:6px; margin-top:6px; border-radius:50%; background:var(--accent); box-shadow:0 0 0 3px color-mix(in srgb,var(--accent) 15%,transparent); }
.brief-foot { position:sticky; bottom:0; display:flex; justify-content:flex-end; gap:8px; padding:12px 16px 15px; border-top:1px solid var(--line); background:linear-gradient(var(--mac-window),color-mix(in srgb,var(--mac-window) 90%,transparent)); backdrop-filter:blur(20px); }
@media (max-width:760px) { .briefing-sheet { right:10px; left:10px; bottom:calc(78px + env(safe-area-inset-bottom)); width:auto; border-radius:20px; } }

/* ---------- scope cascade filter ---------- */
.dashboard-filters { gap:6px; padding:5px; border-radius:16px; }
.dashboard-filters button { min-height:38px; padding:7px 14px; font-size:12px; font-weight:800; letter-spacing:.01em; }
.dashboard-filters button.on { color:var(--accent-ink); background:linear-gradient(145deg,var(--accent-bright),var(--accent)); box-shadow:0 8px 20px color-mix(in srgb,var(--accent) 30%,transparent),inset 0 1px 0 rgba(255,255,255,.5); }


/* ---------- first-impression cleanup ---------- */
.risk-barometer { max-width:760px; margin-top:22px; padding-block:25px 20px; }
.risk-barometer-heading h2 { font-size:clamp(24px,3vw,34px); }
.risk-barometer-heading p { font-size:13px; }
.risk-barometer-orbit { width:196px; }
.risk-barometer-note { font-size:11px; }
@media (min-width:761px) { .signal-stage .signal-orbit { width:235px; } .signal-stage .signal-core { width:116px; } .signal-stage .signal-core > span { font-size:40px; } }
@media (prefers-reduced-motion:reduce), (update:slow) { .ambient-scene { display:none; } .signal-orbit, .risk-barometer-orbit { filter:none; } }

/* ---------- live risk meter ---------- */
.signal-core > span { font-variant-numeric:tabular-nums; }
.risk-spark { display:flex; align-items:flex-end; gap:3px; height:36px; margin-top:16px; }
.risk-spark i { flex:1; min-width:3px; border-radius:3px; background:var(--signal); box-shadow:0 0 8px color-mix(in srgb,var(--signal) 45%,transparent); opacity:.85; transition:height .6s var(--ease-out),background .9s; }
@media (max-width:520px) { .risk-spark { height:28px; } }

/* ---------- barometer: present, addictive ---------- */
@property --risk { syntax:"<number>"; inherits:true; initial-value:0; }
.risk-gauge { position:absolute; inset:2px; z-index:1; border-radius:50%; background:conic-gradient(from -90deg, var(--signal) calc(var(--risk,0)*1%), rgba(var(--signal-rgb),.09) 0); -webkit-mask:radial-gradient(circle, transparent 55%, black 56%); mask:radial-gradient(circle, transparent 55%, black 56%); transition:--risk .9s var(--ease-out); pointer-events:none; }
.signal-core > span { animation:risk-num 2.4s ease-in-out infinite; }
@keyframes risk-num { 50% { filter:brightness(1.22); text-shadow:0 0 28px rgba(var(--signal-rgb),.65); } }
@media (min-width:1200px) { .signal-orbit { width:320px; } .signal-core { width:156px; } .signal-core > span { font-size:60px; } }
