:root{--bg:#0a0f16;--panel:rgba(255,255,255,.045);--fg:#e8edf6;--muted:#97a6bb;--accent:#6aa6f0;--accent2:#a6cbf8;--line:rgba(255,255,255,.14);--glow:rgba(70,130,230,.24);--mapline:rgba(255,255,255,.05);--chip:rgba(255,255,255,.12)}
:root[data-theme=light]{--bg:#f2f6fb;--panel:rgba(255,255,255,.72);--fg:#101a2b;--muted:#55657a;--accent:#0b5ed7;--accent2:#3b82e0;--line:rgba(10,30,70,.16);--glow:rgba(11,94,215,.14);--mapline:rgba(10,60,60,.07);--chip:rgba(10,40,90,.08)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--fg);font:16px/1.65 Inter,system-ui,-apple-system,"Segoe UI",sans-serif;min-height:100vh;
 background:radial-gradient(900px 520px at 0% 0%,var(--glow),transparent 62%),radial-gradient(700px 400px at 100% 100%,var(--glow),transparent 65%),var(--bg);background-attachment:fixed}
body::before{content:"";position:fixed;inset:0;z-index:-1;pointer-events:none;opacity:1;
 background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='520' height='520' fill='none' stroke='%23888' stroke-width='1' stroke-opacity='.55'%3E%3Cpath d='M0 120 L140 100 L260 150 L420 90 L520 130'/%3E%3Cpath d='M0 300 L90 280 L200 330 L330 270 L520 320'/%3E%3Cpath d='M0 460 L160 430 L300 480 L430 420 L520 450'/%3E%3Cpath d='M140 0 L130 100 L150 220 L120 330 L140 520'/%3E%3Cpath d='M330 0 L340 120 L320 270 L350 400 L330 520'/%3E%3Cpath d='M470 0 L480 130 L460 320 L490 520'/%3E%3C/svg%3E");
 opacity:.5;mask-image:radial-gradient(ellipse at 100% 60%,#000,transparent 70%);-webkit-mask-image:radial-gradient(ellipse at 100% 60%,#000,transparent 70%)}
:root[data-theme=light] body::before{opacity:.35}
header,main,footer{max-width:900px;margin:0 auto;padding:16px}
header{max-width:none;border-bottom:1px solid var(--line);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);position:sticky;top:0;z-index:5;background:color-mix(in srgb,var(--bg) 70%,transparent);padding:8px 16px}
nav{display:flex;flex-wrap:wrap;gap:6px 22px;align-items:center;max-width:900px;margin:0 auto}
nav a{color:var(--muted);text-decoration:none;padding:6px 0;border-bottom:2px solid transparent;transition:color .15s}
nav a:hover{color:var(--fg)}
nav a.on{color:var(--accent);border-bottom-color:var(--accent)}
nav a.brand{border:0;margin-right:auto;padding:0}
nav button{margin-left:auto}
h1{margin:24px 0 8px;line-height:1.2;letter-spacing:-.01em}
h2{letter-spacing:-.005em}
.chip{display:inline-block;background:var(--chip);color:var(--fg);border-radius:999px;padding:2px 12px;font-size:13px;margin:2px 6px 2px 0}
button{background:var(--panel);border:1px solid var(--line);color:var(--fg);border-radius:8px;padding:5px 12px;cursor:pointer;font:inherit;font-size:14px}
button:hover{border-color:var(--accent)}
.grid{display:grid;grid-template-columns:260px 1fr;gap:20px}
@media(max-width:700px){.grid{grid-template-columns:1fr}}
.panel,.card{background:var(--panel);border:1px solid var(--line);border-radius:12px;padding:16px;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px)}
label{display:block;font-size:13px;color:var(--muted);margin-top:10px}
input,textarea{width:100%;padding:7px 9px;background:color-mix(in srgb,var(--bg) 60%,transparent);color:var(--fg);border:1px solid var(--line);border-radius:8px;font:inherit}
input:focus,textarea:focus{outline:2px solid var(--accent);outline-offset:0}
.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:10px;margin-bottom:12px}
.stat b{display:block;font-size:20px}.stat span{font-size:12px;color:var(--muted)}
svg{width:100%;height:auto;background:var(--panel);border:1px solid var(--line);border-radius:12px}
.warn{color:#e0a458;font-size:13px}
main a,footer a{color:var(--accent)}
footer{text-align:center;border-top:1px solid var(--line);margin-top:32px;color:var(--muted);font-size:14px}
footer #subscribe{text-align:left;margin-bottom:12px}

/* home */
.hero{max-width:900px;margin:0 auto;padding:20px 16px 0;text-align:center}
.hero img{max-width:100%;height:auto;margin:0 auto}
.lead{max-width:640px;margin:0 auto;text-align:center;padding:0 16px}
.lead h1{font-size:clamp(28px,5vw,42px);margin:12px 0 10px}
.grad{background:linear-gradient(90deg,var(--accent2),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
.lead p{color:var(--muted);font-size:17px;margin:0 0 18px}
.cta{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin:6px 0 4px}
.btn{display:inline-block;border-radius:10px;padding:9px 18px;text-decoration:none;border:1px solid var(--line);color:var(--fg)!important;background:var(--panel)}
main a.btn,main a.btn:hover{color:var(--fg)}
.btn.primary{background:var(--accent);border-color:var(--accent);color:#06162e!important;font-weight:600}
:root[data-theme=light] .btn.primary{color:#fff!important}
.feat{display:grid;grid-template-columns:repeat(auto-fit,minmax(230px,1fr));gap:14px;margin:26px 0}
.feat h3{margin:0 0 4px;font-size:16px}.feat p{margin:0;color:var(--muted);font-size:14px}
.card.post{display:flex;gap:16px;align-items:center;border-color:color-mix(in srgb,var(--accent) 55%,transparent)}
.card.post p{margin:0}.card.post .thumb{flex:0 0 150px}
@media(max-width:600px){.card.post{flex-direction:column;align-items:flex-start}.card.post .thumb{flex-basis:auto;width:100%}}
.card.post svg{background:transparent;border:0;border-radius:0}

/* logos by theme */
.brand{display:inline-flex;align-items:center}
.brand img{height:44px;width:auto;display:block}
.logo-d,.logo-l{display:none}
.logo-d{display:inline}
:root[data-theme=light] .logo-d{display:none}:root[data-theme=light] .logo-l{display:inline}
.hero img.logo-d{display:block}.hero img.logo-l{display:none}
:root[data-theme=light] .hero img.logo-d{display:none}:root[data-theme=light] .hero img.logo-l{display:block}
.brand img.logo-l{display:none}.brand img.logo-d{display:block}
:root[data-theme=light] .brand img.logo-d{display:none}:root[data-theme=light] .brand img.logo-l{display:block}

/* analysis list */
.plist{display:grid;gap:14px;margin-top:16px}
a.card.post{text-decoration:none;color:inherit;transition:transform .15s,border-color .15s}
a.card.post:hover{transform:translateY(-2px);border-color:var(--accent)}
.card.post .ptitle{display:block;color:var(--accent);font-size:18px;line-height:1.35;margin:2px 0 4px}
.card.post .date{color:var(--muted);font-size:13px}
.card.post p{color:var(--muted);font-size:15px}
.card.post .thumb{flex:0 0 310px}
.card.post .thumb svg{display:block;width:100%}
@media(max-width:600px){.card.post .thumb{width:100%}}

details{margin:10px 0;border:1px solid var(--line);border-radius:12px;background:var(--panel);padding:2px 14px}
summary{cursor:pointer;padding:10px 0;font-weight:600}summary small{color:var(--muted);font-weight:400}
.snaps{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:8px;padding:4px 0 14px}
a.snap{display:block;border:1px solid var(--line);border-radius:10px;padding:8px 12px;text-decoration:none;color:inherit}
a.snap:hover{border-color:var(--accent)}a.snap b{display:block;color:var(--accent)}a.snap span{display:block;font-size:12.5px;color:var(--muted);line-height:1.4}

.btn.buy,main a.btn.buy{background:#ff1f3d;border-color:#ff1f3d;color:#fff!important;font-weight:700;padding:11px 26px;font-size:1.05rem;box-shadow:0 6px 22px rgba(255,31,61,.35)}
.btn.buy:hover,main a.btn.buy:hover{background:#e0112e;border-color:#e0112e;color:#fff!important}
