:root{--blue:#2a78d6;--aqua:#1baf7a;--orange:#eb6834;--surface:#fcfcfb;--panel:#fff;--ink:#0b0b0b;--muted:#52514e;--border:#e6e5e1;--radius:12px;--lightningcss-light:initial;--lightningcss-dark: ;color-scheme:light}*{box-sizing:border-box}html,body,#root{min-height:100%;margin:0}html{scroll-behavior:smooth}#about,#work{scroll-margin-top:80px}@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}body{background:var(--surface);color:var(--ink);-webkit-font-smoothing:antialiased;font-family:ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;line-height:1.5}a{color:var(--blue);text-decoration:none}a:hover{text-decoration:underline}.container{max-width:1140px;margin:0 auto;padding:0 24px}.topbar{border-bottom:1px solid var(--border);background:var(--panel);justify-content:space-between;align-items:center;padding:16px 24px;display:flex}.topbar .brand{font-size:18px;font-weight:700}.topbar-right{align-items:center;gap:16px;display:flex}.topbar-right .viewer{font-size:13px}.linkbtn{border:1px solid var(--border);background:var(--panel);color:var(--muted);cursor:pointer;border-radius:8px;padding:6px 12px;font-size:13px;font-weight:600}.linkbtn:hover{color:var(--ink);border-color:var(--muted)}.login-wrap{justify-content:center;align-items:center;min-height:100vh;padding:24px;display:flex}.login-card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);width:100%;max-width:380px;padding:32px 28px;box-shadow:0 8px 40px #0000000d}.login-card h1{letter-spacing:-.02em;margin:0 0 6px;font-size:24px}.login-card>p{margin:0 0 22px;font-size:14px}.login-card label{color:var(--muted);margin-bottom:14px;font-size:13px;font-weight:600;display:block}.login-card input{border:1px solid var(--border);background:var(--surface);width:100%;color:var(--ink);border-radius:8px;margin-top:6px;padding:10px 12px;font-size:15px;display:block}.login-card input:focus{border-color:var(--blue);outline:none}.login-card .btn{width:100%;margin-top:6px;padding:11px;font-size:15px}.login-card .btn:disabled{opacity:.6;cursor:default}.login-err{color:#b4231f;background:#e3494814;border-radius:8px;margin-bottom:14px;padding:9px 12px;font-size:13px}.login-back{text-align:center;margin-top:18px;font-size:13px;display:block}.hero{padding:72px 0 40px}.hero h1{letter-spacing:-.02em;margin:0 0 12px;font-size:40px}.hero p{color:var(--muted);max-width:640px;font-size:18px}.grid{grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:20px;padding:24px 0 72px;display:grid}.card{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:22px;transition:box-shadow .15s,transform .15s}.card:hover{transform:translateY(-2px);box-shadow:0 6px 24px #0000000f}.card h3{margin:0 0 8px;font-size:18px}.card p{color:var(--muted);margin:0 0 14px;font-size:14px}.card .tag{color:var(--blue);background:#2a78d614;border-radius:999px;margin-bottom:12px;padding:3px 10px;font-size:11px;font-weight:600;display:inline-block}.btn{background:var(--blue);color:#fff;cursor:pointer;border:0;border-radius:8px;padding:9px 16px;font-size:14px;font-weight:600;display:inline-block}.btn:hover{filter:brightness(1.05);text-decoration:none}.dash{padding:24px 0 60px}.tabs{border-bottom:1px solid var(--border);flex-wrap:wrap;gap:6px;margin:8px 0 24px;display:flex}.tab{color:var(--muted);cursor:pointer;background:0 0;border:0;border-bottom:2px solid #0000;padding:10px 16px;font-size:14px;font-weight:600}.tab.active{color:var(--ink);border-bottom-color:var(--blue)}.panel{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:20px}.kpis{grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:20px;display:grid}.kpi{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);padding:16px}.kpi .label{color:var(--muted);text-transform:uppercase;letter-spacing:.04em;font-size:12px}.kpi .value{margin-top:4px;font-size:26px;font-weight:700}.kpi .kpi-sub{color:var(--muted);margin-top:2px;font-size:12px}.muted{color:var(--muted)}.coming{color:var(--muted);text-align:center;padding:48px;font-size:15px}.chartcard{border:1px solid var(--border);border-radius:var(--radius);background:var(--panel);margin-bottom:20px;padding:20px 20px 16px}.chart-head{margin-bottom:8px}.chart-head h3{letter-spacing:-.01em;margin:0;font-size:17px}.chart-head p{color:var(--muted);max-width:760px;margin:4px 0 0;font-size:13px}.insight{border-left:3px solid var(--blue);color:var(--muted);background:#2a78d60a;border-radius:0 6px 6px 0;margin:10px 0 0;padding:10px 14px;font-size:13px}.prose{max-width:760px}.prose h4{margin:20px 0 6px;font-size:15px}.prose h4:first-child{margin-top:4px}.prose p{color:var(--muted);margin:0;font-size:14px}.prose strong{color:var(--ink);font-weight:600}.prose .links{flex-wrap:wrap;align-items:center;gap:16px;margin-top:24px;display:flex}.btn-ghost{color:var(--ink);border:1px solid var(--border);background:0 0}.btn-ghost:hover{border-color:var(--muted);filter:none}.landing-nav{z-index:10;-webkit-backdrop-filter:saturate(1.2)blur(6px);backdrop-filter:saturate(1.2)blur(6px);background:color-mix(in srgb, var(--panel) 86%, transparent);position:sticky;top:0}.nav-links{align-items:center;gap:24px;display:flex}.nav-links a{color:var(--muted);font-size:14px;font-weight:600}.nav-links a:hover{color:var(--ink);text-decoration:none}.landing-hero{background:radial-gradient(60% 120% at 12% -10%, color-mix(in srgb, var(--blue) 14%, transparent), transparent 60%), radial-gradient(50% 120% at 100% 0%, color-mix(in srgb, var(--aqua) 12%, transparent), transparent 55%);padding:96px 0 72px}.eyebrow{text-transform:uppercase;letter-spacing:.14em;color:var(--blue);margin:0 0 14px;font-size:12px;font-weight:700}.landing-hero h1{letter-spacing:-.03em;margin:0 0 18px;font-size:clamp(40px,7vw,68px);line-height:1.03}.lede{color:var(--muted);max-width:640px;margin:0;font-size:clamp(17px,2.4vw,21px)}.hero-ctas{flex-wrap:wrap;gap:12px;margin-top:32px;display:flex}.section{padding:64px 0}.section-alt{background:var(--panel);border-top:1px solid var(--border);border-bottom:1px solid var(--border)}.section h2{text-transform:uppercase;letter-spacing:.12em;color:var(--muted);margin:0 0 20px;font-size:13px;font-weight:700}.section-sub{color:var(--muted);margin:-10px 0 28px;font-size:15px}.about{grid-template-columns:180px 1fr;gap:24px;display:grid}.about h2{margin-top:6px}.about-body{max-width:640px}.about-body p{color:var(--ink);margin:0 0 16px;font-size:17px}.about-body p:last-child{margin-bottom:0}.card{flex-direction:column;display:flex}.card .card-foot{margin-top:auto;padding-top:4px}.tag.live{color:var(--aqua);background:color-mix(in srgb, var(--aqua) 12%, transparent)}.tag.ext{color:var(--orange);background:color-mix(in srgb, var(--orange) 12%, transparent)}.tag.soon{color:var(--muted);background:color-mix(in srgb, var(--muted) 10%, transparent)}.status.soon{color:var(--muted);font-size:13px;font-weight:600}.footer{border-top:1px solid var(--border);background:var(--surface);padding:28px 0}.footer-row{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;display:flex}.footer-links{gap:20px;display:flex}.footer-links a{color:var(--muted);font-size:14px;font-weight:600}.footer-links a:hover{color:var(--ink);text-decoration:none}@media (width<=640px){.about{grid-template-columns:1fr}.nav-links{gap:16px}}body{font-family:Inter,ui-sans-serif,system-ui,-apple-system,Segoe UI,Roboto,sans-serif}:root[data-theme^=signal]{--surface:#fff;--panel:#fff;--ink:#0b0e14;--muted:#5b6472;--border:#e6e9ef;--blue:var(--acc-2);--aqua:var(--acc-2);--orange:var(--acc-2)}:root[data-theme^=signal] .landing-hero{color:#eef2f8;border-bottom:1px solid var(--border);background-color:#070a10;background-image:linear-gradient(#ffffff0b 1px,#0000 1px),linear-gradient(90deg,#ffffff0b 1px,#0000 1px);background-position:top;background-size:38px 38px,38px 38px;padding:120px 0 96px;position:relative}:root[data-theme^=signal] .landing-hero:before{content:"";background:radial-gradient(48% 70% at 12% -5%, var(--glow), transparent 60%), radial-gradient(40% 60% at 95% 10%, color-mix(in srgb, var(--acc) 10%, transparent), transparent 55%);pointer-events:none;position:absolute;inset:0}:root[data-theme^=signal] .landing-hero:after{content:"";pointer-events:none;background:linear-gradient(#0000,#070a10);height:55%;position:absolute;bottom:0;left:0;right:0}:root[data-theme^=signal] .landing-hero .container{z-index:1;position:relative}:root[data-theme^=signal] .eyebrow{color:var(--acc);letter-spacing:.22em;font-family:IBM Plex Mono,monospace;font-weight:500}:root[data-theme^=signal] .landing-hero h1{color:#f6f8fc;letter-spacing:-.03em;font-family:Space Grotesk,sans-serif;font-size:clamp(44px,7.5vw,84px);font-weight:600;line-height:1}:root[data-theme^=signal] .lede{color:#a9b4c4;font-size:clamp(17px,2.4vw,22px)}:root[data-theme^=signal] .landing-hero .btn{background:var(--acc);color:#06101d;box-shadow:0 6px 26px color-mix(in srgb, var(--acc) 40%, transparent);font-weight:600}:root[data-theme^=signal] .landing-hero .btn:hover{filter:brightness(1.08)}:root[data-theme^=signal] .landing-hero .btn-ghost{color:#eef2f8;box-shadow:none;background:0 0;border-color:#2a3545}:root[data-theme^=signal] .landing-hero .btn-ghost:hover{border-color:var(--acc);color:#fff}:root[data-theme^=signal] .brand,:root[data-theme^=signal] .card h3{font-family:Space Grotesk,sans-serif;font-weight:600}:root[data-theme^=signal] .card h3{letter-spacing:-.01em;font-size:20px}:root[data-theme^=signal] .section h2{color:var(--acc-2);letter-spacing:.16em;font-family:IBM Plex Mono,monospace}:root[data-theme^=signal] .tag{letter-spacing:.08em;color:var(--acc-2);background:color-mix(in srgb, var(--acc-2) 11%, transparent);border-radius:3px;font-family:IBM Plex Mono,monospace}:root[data-theme^=signal] .card{border-radius:8px;transition:border-color .15s,box-shadow .15s,transform .15s;position:relative;overflow:hidden}:root[data-theme^=signal] .card>*{z-index:1;position:relative}:root[data-theme^=signal] .card:before{content:"";z-index:0;pointer-events:none;opacity:0;background:radial-gradient(200px circle at var(--mx,50%) var(--my,50%), color-mix(in srgb, var(--acc) 18%, transparent), transparent 70%);transition:opacity .25s;position:absolute;inset:0}:root[data-theme^=signal] .card:hover:before{opacity:1}:root[data-theme^=signal] .card:hover{border-color:var(--acc-2);box-shadow:0 10px 34px color-mix(in srgb, var(--acc-2) 16%, transparent);transform:translateY(-2px)}:root[data-theme^=signal] a:not(.btn),:root[data-theme^=signal] .nav-links a:hover{color:var(--acc-2)}.landing-nav,main,.footer,.stylelab{cursor:default}a,button,.btn,.stylelab button{cursor:pointer}:root[data-theme^=signal] .hero-glow{pointer-events:none;z-index:0;mix-blend-mode:screen;background:radial-gradient(circle, color-mix(in srgb, var(--acc) 40%, transparent), transparent 62%);border-radius:50%;width:460px;height:460px;margin:-230px 0 0 -230px;transition:transform .22s ease-out;animation:6s ease-in-out infinite glowpulse;position:absolute;top:0;left:0;transform:translate(22%,8%)}@keyframes glowpulse{0%,to{opacity:.72}50%{opacity:.95}}:root[data-theme^=signal] .hero-gridlight{z-index:0;pointer-events:none;opacity:.65;background-image:linear-gradient(color-mix(in srgb, var(--acc) 60%, transparent) 1px, transparent 1px), linear-gradient(90deg, color-mix(in srgb, var(--acc) 60%, transparent) 1px, transparent 1px);-webkit-mask-image:radial-gradient(160px circle at var(--mx,-999px) var(--my,-999px), #000 0%, transparent 70%);-webkit-mask-image:radial-gradient(160px circle at var(--mx,-999px) var(--my,-999px), #000 0%, transparent 70%);mask-image:radial-gradient(160px circle at var(--mx,-999px) var(--my,-999px), #000 0%, transparent 70%);background-position:top;background-size:38px 38px,38px 38px;position:absolute;inset:0}.scroll-progress{z-index:60;transform-origin:0;background:linear-gradient(90deg, var(--acc,#ff7a45), var(--acc-2,#e24d1b));width:100%;height:3px;position:fixed;top:0;left:0;transform:scaleX(0)}:root[data-theme^=signal] .nav-links a.active{color:var(--acc)}.btn{transition:transform .18s,filter .15s}:root[data-theme=signal-flame]{--acc:#ff7a45;--acc-2:#e24d1b;--glow:#ff7a4538}.reveal{opacity:0;will-change:opacity, transform;transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1);transform:translateY(18px)}.reveal.in{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transition:none;transform:none}:root[data-theme^=signal] .hero-glow{transition:none;animation:none}}
