:root{--bg:#07070d;--surface:rgba(255,255,255,.045);--line:rgba(255,255,255,.1);--text:#ecebf5;--muted:#9a98b0;--violet:#8b5cf6;--blue:#3b82f6;--cyan:#22d3ee;--glow:rgba(139,92,246,.25);color-scheme:dark}
[data-theme=light]{--bg:#f6f6fb;--surface:rgba(255,255,255,.8);--line:rgba(20,20,60,.12);--text:#14142b;--muted:#5d5b78;--glow:rgba(139,92,246,.15);color-scheme:light}
*{box-sizing:border-box}[hidden]{display:none!important}
body{margin:0;font:16px/1.65 "Segoe UI",system-ui,-apple-system,Roboto,sans-serif;color:var(--text);background:radial-gradient(900px 500px at 15% -10%,var(--glow),transparent),radial-gradient(700px 400px at 95% 0,rgba(34,211,238,.12),transparent),var(--bg);min-height:100vh;display:flex;flex-direction:column}
main{flex:1}a{color:var(--cyan)}.wrap{max-width:1080px;margin:0 auto;padding:0 20px}.narrow{max-width:760px}
h1{font-size:clamp(2rem,5vw,3.4rem);line-height:1.1;margin:.4em 0;letter-spacing:-.02em}h2{font-size:1.5rem;margin:1.8em 0 .6em}h3{margin:.3em 0}
.lead{font-size:1.15rem;color:var(--muted);max-width:60ch}.muted{color:var(--muted)}.sr{position:absolute;left:-9999px}
.top{position:sticky;top:0;z-index:5;backdrop-filter:blur(14px);background:color-mix(in srgb,var(--bg) 70%,transparent);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;gap:16px;min-height:64px}.logo{display:flex;align-items:center;gap:10px;color:var(--text);text-decoration:none;font-weight:700;font-size:1.15rem}.logo b{background:linear-gradient(90deg,var(--violet),var(--cyan));-webkit-background-clip:text;background-clip:text;color:transparent}
.nav{margin-left:auto;display:flex;align-items:center;gap:16px}.nav a{color:var(--text);text-decoration:none}.nav a:hover{color:var(--cyan)}.nav form{margin:0}
.menu{display:none}
.btn{display:inline-block;border:0;cursor:pointer;color:#fff!important;text-decoration:none;font:inherit;font-weight:600;padding:12px 22px;border-radius:12px;background:linear-gradient(135deg,var(--violet),var(--blue));box-shadow:0 8px 28px -8px var(--violet);transition:transform .15s}
.btn:hover{transform:translateY(-1px)}.btn.small{padding:8px 14px;font-size:.9rem}.btn.ghost{background:transparent;color:var(--text)!important;border:1px solid var(--line);box-shadow:none}
.icon-btn,.link{background:none;border:1px solid var(--line);color:var(--text);border-radius:10px;padding:6px 10px;font:inherit;font-size:.85rem;cursor:pointer}.link{border:0;padding:0;font-size:1rem}
:focus-visible{outline:2px solid var(--cyan);outline-offset:2px}
.hero{padding:72px 0 28px}.search input{width:100%;max-width:560px;padding:16px 18px;border-radius:14px;border:1px solid var(--line);background:var(--surface);color:var(--text);font:inherit;backdrop-filter:blur(10px);margin:8px 0 18px}
.search input:focus{border-color:var(--violet);box-shadow:0 0 0 4px var(--glow);outline:0}
.block{padding-top:24px;padding-bottom:24px}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:16px}.grid.three{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.card{display:block;padding:20px;border-radius:16px;background:var(--surface);border:1px solid var(--line);backdrop-filter:blur(12px);color:var(--text);text-decoration:none}
a.card:hover{border-color:var(--violet);box-shadow:0 10px 40px -16px var(--violet)}.card p{margin:.3em 0 0;color:var(--muted)}
.chip{display:inline-block;font-size:.78rem;padding:2px 10px;border-radius:99px;border:1px solid var(--line);color:var(--cyan)}
.panel{padding:20px;border-radius:16px;background:var(--surface);border:1px solid var(--line);margin:18px 0}
textarea,.form input{width:100%;padding:14px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);font:inherit}[data-theme=light] textarea,[data-theme=light] .form input{background:#fff}
textarea{resize:vertical}.stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:12px;margin:16px 0}.stats div{padding:12px;border-radius:12px;border:1px solid var(--line)}.stats dt{font-size:.8rem;color:var(--muted)}.stats dd{margin:0;font-size:1.6rem;font-weight:700}
.form label{display:block;margin-bottom:14px;font-weight:600}.form input{margin-top:6px;font-weight:400}.alert{padding:12px 14px;border-radius:12px;border:1px solid #f87171;color:#fca5a5}
details{border-bottom:1px solid var(--line);padding:12px 0}summary{cursor:pointer;font-weight:600}.crumbs{font-size:.9rem;color:var(--muted)}.crumbs a{color:var(--muted)}
.foot{border-top:1px solid var(--line);padding:28px 0;margin-top:40px}.foot p{margin:.3em 0}
@media(max-width:700px){.menu{display:block;margin-left:auto}.nav{display:none;position:absolute;top:64px;left:0;right:0;flex-direction:column;align-items:flex-start;padding:16px 20px;background:var(--bg);border-bottom:1px solid var(--line)}.nav.open{display:flex}.hero{padding-top:40px}}
@media(prefers-reduced-motion:reduce){*{transition:none!important}}
.tool label{display:block;margin-bottom:12px;font-weight:600}.tool label.chk{display:flex;gap:8px;align-items:center;font-weight:400}
.tool input:not([type=checkbox]),.tool select,.tool textarea{display:block;width:100%;padding:12px;margin-top:6px;border-radius:12px;border:1px solid var(--line);background:rgba(0,0,0,.25);color:var(--text);font:inherit;font-weight:400}
[data-theme=light] .tool input,[data-theme=light] .tool select,[data-theme=light] .tool textarea{background:#fff}
.out{margin-top:14px;padding:14px;border-radius:12px;border:1px solid var(--line);white-space:pre-wrap;word-break:break-word;min-height:3em}
.out.err{border-color:#f87171;color:#fca5a5}.out dl{margin:0}.out dt{color:var(--muted);font-size:.8rem}.out dd{margin:0 0 10px;font-weight:700}
.tool .btn{margin-right:8px;margin-top:10px}
.out a.btn{margin:8px 8px 0 0}
.flinks{display:flex;flex-wrap:wrap;gap:6px 18px;margin:.7em 0}.flinks a{color:inherit}.hp{position:absolute;left:-9999px}.prose p,.prose li{max-width:70ch}
