:root { color-scheme: dark; --bg:#0b0f17; --panel:#0f1626; --text:#e9eefc; --muted:#a9b5d1; --line:rgba(255,255,255,.14); --accent:#6ee7ff; }
* { box-sizing:border-box; }
body { margin:0; background:var(--bg); color:var(--text); font:16px/1.5 system-ui,sans-serif; }
a { color:var(--accent); text-underline-offset:3px; transition:color .15s; }
a:not(.button,.brand,.btn-eve,.btn-discord):hover { color:#7aa7ff; text-decoration:underline; }
.site-header { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:1rem; padding:1rem max(1rem,4vw); border-bottom:1px solid var(--line); }
.brand { display:flex; align-items:center; gap:.65rem; font-weight:700; text-decoration:none; }
nav { display:flex; gap:1rem; }
.auth-content { max-width:1100px; margin:auto; padding:2rem 1rem; }
.auth-panel { padding:1.5rem; border:1px solid var(--line); border-radius:12px; background:var(--panel); margin:1rem auto; }
.narrow { max-width:460px; }
h1 { font-size:clamp(1.7rem,4vw,2.5rem); line-height:1.2; }
h2,legend { font-size:1.2rem; font-weight:700; }
h3 { font-size:1rem; margin:0; }
.muted,.scope-description { color:var(--muted); }
.button { --btn:#7aa7ff; display:inline-flex; align-items:center; justify-content:center; padding:.5rem 1rem; border:1px solid var(--btn); border-radius:0; background:transparent; color:var(--btn); font:700 .8rem Orbitron,system-ui,sans-serif; letter-spacing:.07em; text-transform:uppercase; line-height:1.2; text-decoration:none; cursor:pointer; clip-path:polygon(6px 0,100% 0,100% calc(100% - 6px),calc(100% - 6px) 100%,0 100%,0 6px); transition:background .15s,color .15s,box-shadow .15s; }
.button:hover { background:color-mix(in srgb,var(--btn) 15%,transparent); color:var(--text); box-shadow:inset 0 0 14px color-mix(in srgb,var(--btn) 30%,transparent); }
.button:disabled { opacity:.45; cursor:not-allowed; }
.primary { --btn:var(--accent); background:color-mix(in srgb,var(--btn) 14%,transparent); }
.button:focus-visible { outline:2px solid var(--accent); outline-offset:-4px; }

/* Shared atmosphere, matching the React app (frontend/src/styles/theme.css) */
body { font-family:Rajdhani,system-ui,sans-serif; letter-spacing:.01em; }
body::before { content:""; position:fixed; inset:0; background:radial-gradient(1200px 600px at 15% 0%,rgba(122,167,255,.22),transparent 55%),radial-gradient(1000px 700px at 85% 10%,rgba(110,231,255,.18),transparent 55%),radial-gradient(900px 600px at 60% 90%,rgba(124,255,178,.08),transparent 55%); pointer-events:none; z-index:-1; }
body::after { content:""; position:fixed; inset:0; background:repeating-linear-gradient(0deg,transparent,transparent 2px,rgba(122,167,255,.015) 2px,rgba(122,167,255,.015) 4px); pointer-events:none; z-index:1000; }
h1,h2,h3,legend,.brand { font-family:Orbitron,system-ui,sans-serif; text-transform:uppercase; letter-spacing:.06em; }
.brand { font-size:.9rem; font-weight:800; color:var(--text); }
.brand:hover { color:var(--accent); }
.site-header { position:relative; background:linear-gradient(to bottom,rgba(11,15,23,.9),rgba(11,15,23,.75)); backdrop-filter:blur(12px); border-bottom:1px solid rgba(122,167,255,.2); }
.site-header::after { content:""; position:absolute; bottom:-1px; left:0; right:0; height:1px; background:linear-gradient(to right,transparent,#7aa7ff,var(--accent),transparent); opacity:.5; }
.site-header nav a { color:var(--muted); font-weight:600; text-decoration:none; }
.site-header nav a:hover { color:var(--accent); }
.auth-panel { border-radius:0; background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02)),var(--panel); box-shadow:0 18px 50px rgba(0,0,0,.45); clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px); }
input[type=email]:focus,input[type=password]:focus { outline:none; border-color:var(--accent); box-shadow:0 0 0 3px rgba(110,231,255,.2); }
.notice { border-radius:0; border-left-width:3px; background:rgba(110,231,255,.06); }
.notice.error { background:rgba(255,122,122,.06); }
a:focus-visible,button:focus-visible,input:focus-visible { outline:2px solid var(--accent); outline-offset:3px; }
form>label { display:block; margin:1rem 0 .3rem; }
input[type=email],input[type=password] { width:100%; padding:.65rem; color:var(--text); background:var(--bg); border:1px solid var(--line); border-radius:6px; font:inherit; }
.choice,.scope-choice { display:flex; gap:.75rem; align-items:flex-start; }
input[type=checkbox] { margin:.35rem 0 0; flex-shrink:0; accent-color:var(--accent); }
.scope-choice { padding:.8rem 0; border-bottom:1px solid var(--line); cursor:pointer; }
.scope-description { display:block; }
fieldset { border:0; padding:0; margin:1.5rem 0; min-width:0; }
.scope-list { padding-left:1.25rem; }
.scope-list p { margin:.2rem 0 1rem; color:var(--muted); }
.hero { text-align:center; margin:2rem auto; max-width:750px; }
.actions { display:flex; flex-wrap:wrap; justify-content:center; gap:1rem; }
.feature-grid { display:grid; grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr)); gap:1rem; }
.feature-grid .auth-panel { margin:0; }
.sponsor img { max-width:100%; max-height:280px; object-fit:contain; }
.notice { padding:1rem; border:1px solid var(--accent); border-radius:8px; }
.error { border-color:#ff7a7a; }

/* Welcome page */
body:has(.welcome) { background:radial-gradient(1200px 600px at 15% 0%,rgba(122,167,255,.22),transparent 55%),radial-gradient(1000px 700px at 85% 10%,rgba(110,231,255,.18),transparent 55%),radial-gradient(900px 600px at 60% 90%,rgba(124,255,178,.08),transparent 55%),var(--bg) fixed; }
.welcome { --accent2:#7aa7ff; }
.welcome h1,.welcome h2,.welcome h3,.btn-eve,.btn-discord { text-transform:uppercase; letter-spacing:.06em; font-weight:700; }
.welcome .hero { max-width:760px; margin:1rem auto 3rem; }
.welcome .hero img { margin-bottom:1rem; }
.welcome .lead { color:var(--muted); font-size:1.15rem; }
.welcome .actions { margin-top:1.5rem; }
.btn-eve,.btn-discord { display:inline-block; padding:.75rem 1.5rem; border:2px solid var(--accent); background:transparent; color:var(--accent); text-decoration:none; clip-path:polygon(10px 0,100% 0,100% calc(100% - 10px),calc(100% - 10px) 100%,0 100%,0 10px); box-shadow:0 0 20px rgba(110,231,255,.3); transition:background .2s,box-shadow .2s,transform .2s; }
.btn-eve:hover { background:rgba(110,231,255,.15); color:var(--text); box-shadow:0 0 30px rgba(110,231,255,.5); transform:translateY(-1px); }
.btn-discord { display:inline-flex; align-items:center; gap:.6rem; color:#ff6600; border-color:#ff6600; box-shadow:none; }
.btn-discord svg { flex-shrink:0; }
.btn-discord:hover { color:#d27231; border-color:#d27231; }
.welcome .card { position:relative; border:1px solid var(--line); background:linear-gradient(180deg,rgba(255,255,255,.06),rgba(255,255,255,.02)); box-shadow:0 18px 50px rgba(0,0,0,.45); clip-path:polygon(12px 0,100% 0,100% calc(100% - 12px),calc(100% - 12px) 100%,0 100%,0 12px); padding:1.25rem; }
.welcome .card::before { content:""; position:absolute; top:0; left:0; width:3px; height:40px; background:linear-gradient(to bottom,var(--accent2),transparent); }
.welcome .card::after { content:""; position:absolute; bottom:0; right:0; width:40px; height:3px; background:linear-gradient(to left,var(--accent),transparent); }
.welcome-layout { display:grid; grid-template-columns:minmax(0,1fr); gap:1.5rem; margin-bottom:3rem; }
@media (min-width:992px) { .welcome-layout { grid-template-columns:minmax(0,3fr) minmax(0,1fr); } }
.highlight { display:grid; gap:1.5rem; align-items:center; margin-bottom:1.5rem; border-color:var(--accent2); background:linear-gradient(135deg,rgba(13,110,253,.1),rgba(111,66,193,.1)); padding:2rem; }
@media (min-width:768px) { .highlight { grid-template-columns:1fr 1fr; } }
.highlight h2 { color:var(--accent2); margin-top:0; }
.highlight img { max-width:100%; max-height:500px; margin:auto; object-fit:contain; border:1px solid var(--line); border-radius:6px; }
.badge-new { position:absolute; top:1rem; right:1rem; padding:.35rem .9rem; background:var(--accent2); color:#0a0e27; font-weight:700; letter-spacing:.05em; }
.checks { list-style:none; padding:0; margin:0; }
.checks li { margin:.5rem 0; padding-left:1.6rem; position:relative; }
.checks li::before { content:"\2713"; position:absolute; left:0; color:var(--accent2); font-weight:700; }
.welcome .feature { text-align:center; }
.welcome .feature h3 { color:var(--accent); margin-bottom:.5rem; }
.welcome .feature p { margin:0; color:var(--muted); font-size:.9rem; }
.sponsors { align-self:start; display:flex; flex-direction:column; gap:1rem; align-items:center; }
.sponsors h2 { margin:0; color:var(--accent2); }
.sponsor-banner img { display:block; max-width:100%; max-height:600px; object-fit:contain; }
.welcome .cta h2 { color:var(--text); }
.visually-hidden { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }

.legal-footer{text-align:center;font-size:.75rem;opacity:.7;margin:1.5rem 0}.legal-footer a{color:inherit;text-decoration:underline}
