:root{--bg: #12140f;--bg-soft: #1a1f16;--card: rgba(255, 255, 255, .04);--card-border: rgba(255, 255, 255, .09);--text: #eef3e8;--muted: #9fb094;--brand: #3f8f28;--brand-2: #8bc53f;--accent: #b6ff3c;--ok: #6fdc3c;--warn: #ffcc4d;--danger: #ff5d73;--radius: 18px;--shadow: 0 20px 60px rgba(0, 0, 0, .45);font-family:Segoe UI,system-ui,-apple-system,sans-serif}*{box-sizing:border-box}html,body,#root{margin:0;min-height:100%;height:100%}body{background:radial-gradient(1200px 800px at 80% -10%,#1f3313 0%,var(--bg) 55%);color:var(--text);-webkit-font-smoothing:antialiased}a{color:var(--brand-2);text-decoration:none}button{font:inherit;cursor:pointer;border:none;border-radius:999px;padding:12px 22px;color:#fff;background:linear-gradient(135deg,var(--brand),var(--brand-2));font-weight:700;transition:transform .15s ease,box-shadow .15s ease,opacity .15s;box-shadow:0 10px 24px #8bc53f52}button:hover{transform:translateY(-2px)}button:disabled{opacity:.5;cursor:not-allowed;transform:none}button.ghost{background:transparent;border:1px solid var(--card-border);box-shadow:none;color:var(--text)}button.danger{background:linear-gradient(135deg,#ff5d73,#ff7a59);box-shadow:none}input,textarea,select{width:100%;padding:12px 14px;border-radius:12px;border:1px solid var(--card-border);background:#ffffff08;color:var(--text);font:inherit;outline:none}input:focus,textarea:focus,select:focus{border-color:var(--brand)}label{display:block;font-size:.85rem;color:var(--muted);margin-bottom:6px;font-weight:600}.card{background:var(--card);border:1px solid var(--card-border);border-radius:var(--radius);padding:22px;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px)}.container{max-width:1080px;margin:0 auto;padding:20px}.stack{display:flex;flex-direction:column;gap:14px}.row{display:flex;gap:12px;align-items:center}.grid{display:grid;gap:16px}.muted{color:var(--muted)}.center{text-align:center}.badge{display:inline-block;padding:4px 12px;border-radius:999px;font-size:.75rem;font-weight:700;background:#ffffff14}.badge.ok{background:#6fdc3c2e;color:var(--ok)}.badge.warn{background:#ffcc4d2e;color:var(--warn)}.badge.danger{background:#ff5d732e;color:var(--danger)}.two-col{display:grid;grid-template-columns:1fr 1fr;gap:30px;align-items:center}.sidebar-layout{display:grid;grid-template-columns:260px 1fr;gap:20px}.hero-split{display:grid;grid-template-columns:240px 1fr;gap:20px;align-items:center}@media (max-width: 860px){.two-col,.sidebar-layout,.hero-split{grid-template-columns:1fr;gap:18px}.two-col .order-first{order:-1}.hide-mobile{display:none}.container{padding:14px}h1{font-size:2rem!important}.row.nav-links{gap:4px;font-size:.9rem}}@media (max-width: 480px){button{padding:12px 18px}.row.nav-links{font-size:.82rem}}h1,h2,h3{line-height:1.15}.auth-shell{display:grid;grid-template-columns:1.05fr .95fr;gap:40px;align-items:center;min-height:calc(100vh - 90px);padding:20px 0}.auth-hero{display:flex;flex-direction:column;gap:18px;align-items:center;text-align:center}.auth-mascot{width:100%;max-width:340px;border-radius:22px;overflow:hidden;box-shadow:var(--shadow)}.game-teaser{display:flex;flex-direction:column;gap:8px;align-items:center;text-align:center;padding:16px 20px;border-radius:16px;border:1px solid rgba(139,197,63,.35);background:linear-gradient(180deg,#8bc53f1a,#8bc53f05);max-width:340px;width:100%}.auth-form-wrap{display:flex;justify-content:center}.auth-card{width:100%;max-width:420px;text-align:left}@media (max-width: 860px){.auth-shell{grid-template-columns:1fr;gap:22px;min-height:auto;padding-top:10px}.auth-mascot{max-width:240px}}.speech{position:relative;background:#ffffff12;border:1px solid var(--card-border);border-radius:16px;padding:14px 18px;max-width:320px;margin:0 auto;text-align:left;line-height:1.5;box-shadow:var(--shadow)}.speech:after{content:"";position:absolute;top:-10px;left:50%;transform:translate(-50%);border-width:0 10px 12px 10px;border-style:solid;border-color:transparent transparent rgba(255,255,255,.07) transparent}.caret{display:inline-block;width:2px;height:1.05em;background:var(--brand-2);margin-left:2px;vertical-align:-2px;animation:blink 1s steps(2,start) infinite}@keyframes blink{to{visibility:hidden}}.gradient-text{background:linear-gradient(135deg,var(--brand-2),var(--accent));-webkit-background-clip:text;background-clip:text;color:transparent}
