:root{--bg:#0a0f24;--c1:#7c5cff;--c2:#38f5c8;--t:#e9ecff;--m:#97a0c8;--g:rgba(255,255,255,.05);--b:rgba(255,255,255,.1)}
*{box-sizing:border-box}html{scroll-behavior:smooth}[hidden]{display:none!important}
body{margin:0;background:var(--bg);color:var(--t);font:15px/1.65 'Be Vietnam Pro',sans-serif;min-height:100vh;overflow-x:hidden}
#bg{position:fixed;inset:0;z-index:-1}
.orb{position:fixed;width:46vw;height:46vw;border-radius:50%;filter:blur(110px);opacity:.3;z-index:-2;animation:fl 18s ease-in-out infinite alternate}
.o1{background:var(--c1);top:-12vw;left:-10vw}.o2{background:var(--c2);bottom:-18vw;right:-10vw;animation-delay:-9s;opacity:.18}
@keyframes fl{to{transform:translate(8vw,6vw) scale(1.2)}}
nav{display:flex;justify-content:space-between;align-items:center;padding:14px 5vw;position:sticky;top:0;backdrop-filter:blur(14px);background:rgba(10,15,36,.65);border-bottom:1px solid var(--b);z-index:9}
nav div{display:flex;gap:18px;align-items:center}nav form{margin:0}a{color:var(--t);text-decoration:none}
.logo{font-weight:800;font-size:20px;background:linear-gradient(90deg,var(--c1),var(--c2));-webkit-background-clip:text;background-clip:text;color:transparent}
main{max-width:1100px;margin:auto;padding:40px 20px}
.btn{display:inline-block;padding:11px 22px;border:0;border-radius:12px;color:#fff;font-weight:600;font-size:14px;font-family:inherit;cursor:pointer;background:linear-gradient(120deg,var(--c1),#5b8cff 50%,var(--c2));background-size:220%;transition:.45s}
.btn:hover{background-position:100%;box-shadow:0 0 30px rgba(124,92,255,.55);transform:translateY(-2px)}
.btn:focus-visible,input:focus-visible{outline:2px solid var(--c2);outline-offset:2px}
.ghost{background:var(--g);border:1px solid var(--b)}.sm{padding:6px 12px;font-size:12px}.red{background:#e11d48}
.google{display:flex;justify-content:center;gap:10px;background:#fff;color:#222;margin-top:12px;width:100%}.google:hover{background:#fff}
.card{display:block;background:var(--g);border:1px solid var(--b);border-radius:20px;padding:26px;backdrop-filter:blur(18px);transition:border-color .3s,box-shadow .3s,transform .15s;margin-bottom:20px}
.card:hover{border-color:rgba(124,92,255,.55);box-shadow:0 12px 40px rgba(124,92,255,.18)}
.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(250px,1fr));gap:20px}.grid>.card{margin:0}
.hero{text-align:center;padding:60px 0 40px}.hero h1{font-size:clamp(32px,5.6vw,60px);line-height:1.12;margin:0 auto 18px;font-weight:800;max-width:800px}
.hero p{color:var(--m);max-width:600px;margin:0 auto 28px;font-size:17px}.m{color:var(--m)}
.term{max-width:640px;margin:36px auto 0;text-align:left;border:1px solid var(--b);box-shadow:0 0 60px rgba(56,245,200,.12)}
.term span{display:block;opacity:0;color:var(--c2);animation:sh .5s forwards;animation-delay:calc(var(--d)*.9s + .5s)}.term span:nth-child(even){color:var(--t)}
@keyframes sh{from{opacity:0;transform:translateX(-10px)}to{opacity:1;transform:none}}
.box{max-width:430px;margin:30px auto}
input,select{width:100%;padding:12px 14px;margin:6px 0 14px;background:rgba(0,0,0,.35);border:1px solid var(--b);border-radius:12px;color:var(--t);font:inherit;outline:0;transition:.25s}
input:focus{border-color:var(--c1);box-shadow:0 0 0 4px rgba(124,92,255,.22)}input[type=checkbox]{width:auto;margin:0 8px 0 0}
label{font-size:13px;color:var(--m)}.code{letter-spacing:12px;text-align:center;font-size:26px}
.err,.ok{padding:10px 14px;border-radius:10px;margin-bottom:14px;font-size:14px}.err{background:rgba(244,63,94,.15);color:#fda4af}.ok{background:rgba(34,197,94,.15);color:#86efac}
code,pre,.key{font-family:'JetBrains Mono',monospace;font-size:13px}
pre{background:rgba(0,0,0,.45);padding:16px;border-radius:12px;overflow:auto;max-height:340px;margin:10px 0 0}
table{width:100%;border-collapse:collapse}th,td{padding:10px 8px;text-align:left;border-bottom:1px solid var(--b);font-size:13px;white-space:nowrap}th{color:var(--m);font-weight:600}
.tag{padding:3px 10px;border-radius:99px;font-size:12px;background:var(--g)}.t0{color:#93c5fd}.t1{color:#86efac}.t2{color:#fca5a5}
.tabs{display:flex;gap:8px;margin-bottom:12px;flex-wrap:wrap}
.rv{opacity:0;transform:translateY(26px);transition:opacity .8s,transform .8s}.rv.in{opacity:1;transform:none}
footer{text-align:center;color:var(--m);padding:30px;font-size:13px}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}.rv,.term span{opacity:1;transform:none}}
