:root{--blue:#0a4a9c;--red:#c0343c;--card:rgba(11,20,36,.8)}
*{box-sizing:border-box}
body{margin:0;font-family:'Jost',sans-serif;color:#e8ecf4;min-height:100vh;
background:radial-gradient(circle at 0% 0%,rgba(10,74,156,.55),transparent 45%),radial-gradient(circle at 100% 100%,rgba(192,52,60,.45),transparent 45%),radial-gradient(circle at 100% 0%,rgba(192,52,60,.25),transparent 30%),#070d18;background-attachment:fixed}
.banner{background:linear-gradient(90deg,var(--blue),#3a3550,var(--red));border:1px solid rgba(255,255,255,.4)}
.glass{background:var(--card);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(14px);border-radius:28px}
.title{font-weight:800;text-shadow:3px 3px 0 #8a1f2a;line-height:1.1}
.lbl{letter-spacing:.18em;text-transform:uppercase;font-size:.8rem;color:#aab3c5}
.inp{width:100%;background:rgba(3,7,14,.85);border:1px solid rgba(255,255,255,.18);border-radius:14px;padding:16px 20px;font-size:1.4rem;color:#fff;font-family:inherit;outline:none}
.inp:focus{border-color:#c0343c;box-shadow:0 0 0 3px rgba(192,52,60,.25)}
.btn-main{background:linear-gradient(90deg,var(--blue),#3a3550,var(--red));border:2px solid rgba(255,255,255,.7);border-radius:14px;color:#fff;font-weight:600;letter-spacing:.04em;transition:.2s}
.btn-main:hover{box-shadow:0 0 28px rgba(192,52,60,.6),0 0 18px rgba(10,74,156,.6)}
.btn-main:disabled{opacity:.5}
.btn-pastel{background:linear-gradient(90deg,#9dbde8,#eef3fa,#e8999a);border:2px solid #fff;border-radius:14px;color:#0b1424;font-weight:600;transition:.2s}
.btn-pastel:hover{filter:brightness(1.08);transform:translateY(-1px)}
.bar{height:8px;border-radius:99px;background:rgba(255,255,255,.1);overflow:hidden}
.bar>div{height:100%;background:linear-gradient(90deg,#3d7be0,#e8999a,#c0343c);transition:width .1s}
canvas{width:100%;aspect-ratio:16/9;border-radius:16px;background:#000;display:block}
.toast{position:fixed;bottom:24px;left:50%;transform:translateX(-50%);background:#c0343c;padding:12px 22px;border-radius:14px;font-weight:600;animation:pop .3s;z-index:50}
@keyframes pop{from{transform:translate(-50%,30px);opacity:0}}
.rise{animation:rise .6s both}
@keyframes rise{from{opacity:0;transform:translateY(16px)}}
select.inp{appearance:none}