:root{--navy-950:#050a1a;--navy-900:#0a1230;--navy-800:#0f1b46;--navy-700:#16275f;--un-blue:#009edb;--wine:#7b1e3a;--wine-bright:#b3294f;--text:#e8eefc;--muted:#9aa8cf;--line:rgba(255,255,255,.12);--ok:#3ecf8e;--ease:cubic-bezier(.2,.8,.2,1)}
*{box-sizing:border-box;margin:0;padding:0}
body{background:radial-gradient(ellipse at 50% -10%,var(--navy-700),var(--navy-950) 60%) fixed;color:var(--text);font-family:Roboto,system-ui,sans-serif;line-height:1.6;min-height:100vh}
a{color:inherit;text-decoration:none}
h1,h2,h3,h4{font-family:'Playfair Display',Georgia,serif;line-height:1.15}
.mono{font-family:'Roboto Mono',monospace;letter-spacing:.14em;text-transform:uppercase;font-size:.72rem;color:var(--un-blue)}
.wrap{width:min(1100px,100% - 32px);margin-inline:auto}
.grad{background:linear-gradient(100deg,#fff 20%,var(--un-blue) 60%,var(--wine-bright));-webkit-background-clip:text;background-clip:text;color:transparent}
.top{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:16px 0;flex-wrap:wrap}
.logo{font-family:'Playfair Display',serif;font-weight:800;font-size:1.2rem}
.logo b{color:#1f3fae;-webkit-text-stroke:.6px #6f8cff;text-shadow:0 0 10px rgba(60,100,255,.5)}
.card{background:var(--navy-900);border:1px solid var(--line);border-radius:20px;padding:26px}
.btn{display:inline-block;border:0;cursor:pointer;font:inherit;font-weight:500;padding:12px 24px;border-radius:99px;transition:transform .2s,background .2s;color:#fff}
.btn:hover{transform:translateY(-2px)}
.btn.p{background:var(--un-blue);color:#031326}.btn.w{background:var(--wine)}.btn.w:hover{background:var(--wine-bright)}
.btn.g{background:transparent;border:1px solid var(--line)}
.btn.sm{padding:7px 14px;font-size:.85rem}
.btn[disabled]{opacity:.4;cursor:not-allowed;transform:none}
input,select,textarea{width:100%;font:inherit;color:var(--text);background:var(--navy-950);border:1px solid var(--line);border-radius:12px;padding:12px 14px}
input:focus,textarea:focus{outline:2px solid var(--un-blue);border-color:transparent}
label{display:block;font-size:.8rem;color:var(--muted);margin:12px 0 5px}
.msg{margin-top:12px;font-size:.92rem;min-height:1.4em}
.msg.err{color:#ff8fa8}.msg.ok{color:var(--ok)}
dialog{margin:auto;border:1px solid var(--line);background:var(--navy-900);color:var(--text);border-radius:22px;width:min(780px,calc(100% - 24px));max-height:88vh;padding:0;overflow:hidden}
dialog::backdrop{background:rgba(5,10,26,.82);backdrop-filter:blur(8px)}
dialog[open]{animation:pop .35s var(--ease)}
@keyframes pop{from{opacity:0;transform:scale(.94) translateY(24px)}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
