:root{--bg:#0b0f1a;--bg2:#111827;--card:#151d2e;--border:#232f47;--text:#e8edf7;--muted:#93a0b8;--accent:#6366f1;--accent2:#818cf8;--green:#22c55e;--red:#ef4444;--amber:#f59e0b;--radius:14px;--shadow:0 8px 30px rgba(0,0,0,.35);}[data-theme="light"]{--bg:#f4f6fb;--bg2:#ffffff;--card:#ffffff;--border:#e2e8f0;--text:#0f172a;--muted:#5b6b85;--accent:#4f46e5;--accent2:#6366f1;--shadow:0 8px 24px rgba(15,23,42,.08);}*{box-sizing:border-box;margin:0;padding:0}body{font-family:-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,Inter,Helvetica,Arial,sans-serif;background:var(--bg);color:var(--text);line-height:1.6;transition:background .25s,color .25s}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}header{position:sticky;top:0;z-index:50;background:color-mix(in srgb,var(--bg) 88%,transparent);backdrop-filter:blur(12px);border-bottom:1px solid var(--border)}.hd{display:flex;align-items:center;gap:14px;padding:14px 0}.logo{display:flex;align-items:center;gap:10px;font-weight:800;font-size:1.15rem;text-decoration:none;color:var(--text)}.logo svg{width:34px;height:34px}nav{display:flex;gap:4px;margin-left:8px}nav button,nav a{background:none;border:0;color:var(--muted);font-size:.92rem;font-weight:600;padding:8px 12px;border-radius:9px;cursor:pointer}nav button:hover,nav button.active,nav a:hover{color:var(--text);background:var(--card)}.theme-btn{margin-left:auto;background:var(--card);border:1px solid var(--border);color:var(--text);width:40px;height:40px;border-radius:12px;cursor:pointer;font-size:1.1rem;display:grid;place-items:center}.hero{text-align:center;padding:56px 0 36px}.hero h1{font-size:clamp(1.9rem,4.5vw,3rem);font-weight:800;letter-spacing:-.02em;line-height:1.15}.hero h1 span{background:linear-gradient(90deg,var(--accent),var(--accent2));-webkit-background-clip:text;background-clip:text;color:transparent}.hero p{color:var(--muted);max-width:640px;margin:14px auto 0;font-size:1.05rem}.badges{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:18px}.badge{font-size:.8rem;font-weight:600;border:1px solid var(--border);background:var(--card);padding:6px 14px;border-radius:999px;color:var(--muted)}.cat{margin:34px 0 14px;display:flex;align-items:center;gap:10px}.cat h2{font-size:1.25rem;font-weight:700}.cat .line{flex:1;height:1px;background:var(--border)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.card{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:24px;box-shadow:var(--shadow);transition:transform .15s,border-color .15s}.card:hover{transform:translateY(-3px);border-color:var(--accent)}.card .ic{width:46px;height:46px;border-radius:12px;display:grid;place-items:center;background:linear-gradient(135deg,var(--accent),var(--accent2));margin-bottom:14px}.card .ic svg{width:24px;height:24px;stroke:#fff}.card h3{font-size:1.08rem;margin-bottom:6px}.card p{color:var(--muted);font-size:.9rem;margin-bottom:16px}.btn{display:inline-flex;align-items:center;gap:8px;background:var(--accent);color:#fff;border:0;font-weight:700;font-size:.92rem;padding:11px 20px;border-radius:10px;cursor:pointer;text-decoration:none;transition:filter .15s}.btn:hover{filter:brightness(1.1)}.btn.ghost{background:var(--bg2);color:var(--text);border:1px solid var(--border)}.tool{display:none}.tool.visible{display:block;animation:fade .25s}@keyframes fade{from{opacity:0;transform:translateY(8px)}to{opacity:1}}.back{background:none;border:0;color:var(--muted);cursor:pointer;font-size:.9rem;font-weight:600;margin:26px 0 10px;display:inline-flex;align-items:center;gap:6px}.back:hover{color:var(--text)}.panel{background:var(--card);border:1px solid var(--border);border-radius:var(--radius);padding:26px;box-shadow:var(--shadow)}.panel h2{font-size:1.4rem;margin-bottom:4px}.panel .sub{color:var(--muted);font-size:.92rem;margin-bottom:20px}label{font-size:.85rem;font-weight:600;color:var(--muted);display:block;margin:14px 0 6px}input[type=number],input[type=text],textarea,select{width:100%;background:var(--bg2);border:1px solid var(--border);color:var(--text);border-radius:10px;padding:11px 14px;font-size:.95rem;font-family:inherit}input:focus,textarea:focus{outline:2px solid var(--accent);border-color:var(--accent)}textarea{min-height:220px;font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;font-size:.85rem;resize:vertical}.row2{display:grid;grid-template-columns:1fr 1fr;gap:14px}.toolbar{display:flex;gap:10px;flex-wrap:wrap;margin:16px 0}.sel{background:var(--card);color:var(--text);border:1px solid var(--border);border-radius:10px;padding:9px 10px;font-size:.85rem;cursor:pointer}.btn.sm{padding:7px 12px;font-size:.8rem}.chk{display:inline-flex;align-items:center;gap:6px;font-size:.82rem;color:var(--muted);cursor:pointer;user-select:none}.chk input{accent-color:var(--accent);width:15px;height:15px}.opt{border:1px solid var(--border);border-radius:12px;margin-top:12px;background:var(--card)}.opt summary{cursor:pointer;padding:12px 16px;font-weight:600;list-style:none;display:flex;gap:10px;align-items:baseline;user-select:none}.opt summary::-webkit-details-marker{display:none}.opt summary span{font-weight:400;font-size:.78rem;color:var(--muted)}.opt summary::after{content:"+";margin-left:auto;color:var(--muted);font-size:1.2rem;line-height:1}.opt[open] summary::after{content:"\2013"}.opt-body{padding:2px 16px 16px}.msg{border-radius:10px;padding:12px 16px;font-size:.9rem;font-weight:600;margin-top:14px;display:none}.msg.ok{display:block;background:rgba(34,197,94,.12);color:var(--green);border:1px solid rgba(34,197,94,.35)}.msg.err{display:block;background:rgba(239,68,68,.1);color:var(--red);border:1px solid rgba(239,68,68,.35);font-family:ui-monospace,monospace;font-size:.82rem;white-space:pre-wrap}.hints{margin-top:10px;background:#fffbeb;border:1px solid #fde68a;border-radius:10px;padding:10px 14px;text-align:left;font-family:system-ui,-apple-system,"Segoe UI",Roboto,sans-serif;font-size:.82rem;font-weight:400;color:#92400e;white-space:normal}.hints ul{margin:6px 0 0;padding-left:18px}.hints li{margin:4px 0}.dark .hints{background:#3a2f0b;border-color:#8a6d1b;color:#fde68a}.stats{display:flex;gap:18px;flex-wrap:wrap;margin-top:12px;color:var(--muted);font-size:.82rem}.stats b{color:var(--text)}.results{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:12px;margin-top:20px}.stat{background:var(--bg2);border:1px solid var(--border);border-radius:12px;padding:16px}.stat .k{font-size:.75rem;color:var(--muted);font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat .v{font-size:1.35rem;font-weight:800;margin-top:4px}.stat .v.pos{color:var(--green)}.stat .v.neg{color:var(--red)}footer{border-top:1px solid var(--border);margin-top:60px;padding:28px 0;color:var(--muted);font-size:.85rem}footer .wrap{display:flex;gap:14px;flex-wrap:wrap;align-items:center;justify-content:space-between}.ad-slot{border:1px dashed var(--border);border-radius:10px;color:var(--muted);font-size:.75rem;text-align:center;padding:10px;margin:18px 0;display:none}@media(max-width:640px){.row2{grid-template-columns:1fr}nav{display:none}.hero{padding:38px 0 24px}}.dropzone{border:2px dashed var(--border);border-radius:var(--radius);padding:44px 20px;text-align:center;cursor:pointer;transition:border-color .2s;background:var(--bg2)}.dropzone:hover,.dropzone.over{border-color:var(--accent)}.dropzone p{color:var(--muted);font-size:.92rem}.dropzone strong{color:var(--text)}input[type=range]{width:100%;accent-color:var(--accent)}.preview{display:none;gap:18px;margin-top:18px;flex-wrap:wrap}.preview.show{display:flex}.preview img{max-width:280px;max-height:220px;border-radius:10px;border:1px solid var(--border)}.dl-btn{display:none;margin-top:14px}.dl-btn.show{display:inline-flex}.article{max-width:760px;margin:0 auto}.article h2{font-size:1.7rem;margin-bottom:6px}.article .meta{color:var(--muted);font-size:.85rem;margin-bottom:20px}.article h3{font-size:1.15rem;margin:24px 0 8px}.article p{margin-bottom:14px;color:var(--text)}.article p,.article li{font-size:.98rem}.article ul{margin:0 0 14px 20px}.article li{margin-bottom:6px}.article .cta-box{background:var(--bg2);border:1px solid var(--accent);border-radius:12px;padding:20px;margin:26px 0;text-align:center}.blog-card{text-align:left;cursor:pointer}.blog-card .tag{font-size:.72rem;font-weight:700;color:var(--accent2);text-transform:uppercase;letter-spacing:.05em}.blog-card h3{margin:8px 0 6px}.article p,.article li{font-size:.98rem}.article a{color:var(--accent2)}nav a{text-decoration:none}.affil-box{margin-top:22px;border:1px solid var(--border);border-left:3px solid var(--amber);border-radius:12px;padding:18px 20px;background:var(--bg2)}.affil-box p{color:var(--muted);font-size:.9rem;margin:6px 0 14px}.affil-note{display:block;margin-top:10px;font-size:.75rem;color:var(--muted)}