:root{--bg-0: #0a0a14;--bg-1: #1a1330;--accent: #b69bff;--accent-2: #66ffcc;--text: #f5f5f7;--text-dim: #a8a8b8;--danger: #ff5577;--radius: 14px;--shadow-color: rgba(0, 0, 0, .7);--shadow: 0 6px 24px var(--shadow-color);font-family:system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color-scheme:dark}*{box-sizing:border-box}html,body{margin:0;padding:0;background:radial-gradient(ellipse at top,var(--bg-1),var(--bg-0));background-attachment:fixed;color:var(--text);min-height:100vh}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}.no-fouc{opacity:0}main{max-width:1200px;margin:0 auto;padding:2rem 1rem}h1{font-size:clamp(2rem,5vw,3.5rem);margin:0 0 .5rem}h1,h2{background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent;font-family:Sigmar One,cursive}.logo{max-width:100%;margin-top:3.5rem;margin-bottom:2.5rem}.badge{display:inline-block;font-size:.7rem;font-weight:700;letter-spacing:.05em;padding:.15rem .5rem;border-radius:999px;background:var(--accent);color:var(--bg-0);margin:0 auto}.badge.beta{background:var(--danger);color:#fff}.game-grid{display:grid;gap:1.25rem;grid-template-columns:repeat(auto-fit,minmax(300px,1fr))}.game-card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:var(--radius);padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;transition:transform .15s ease,border-color .15s ease;text-decoration:none;color:inherit;box-shadow:var(--shadow)}.game-card:hover{transform:translateY(-2px);border-color:var(--accent);text-decoration:none}.game-card h2{margin:0;font-size:1.25rem}.game-card p{color:var(--text-dim);font-size:.95rem;margin-top:.5rem;margin-bottom:1.25rem}.game-card__container{background-color:var(--shadow-color);display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:1rem;height:100%;border-radius:var(--radius)}.nick-badge{position:fixed;top:1rem;right:1rem;z-index:50;display:inline-flex;align-items:center;gap:.5rem;padding:.45rem .9rem;border-radius:999px;background:#ffffff0f;border:1px solid rgba(255,255,255,.12);color:var(--text);font-family:inherit;font-size:.85rem;cursor:pointer;backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);transition:border-color .15s ease,background .15s ease}.nick-badge:hover{border-color:var(--accent);background:#ffffff1a}.nick-badge-label{color:var(--text-dim);font-size:.75rem}.nick-badge strong{font-weight:700}.nick-badge-edit{color:var(--accent);font-size:.75rem;margin-left:.25rem}.nick-modal-backdrop{position:fixed;inset:0;background:#0a0a14bf;backdrop-filter:blur(6px);-webkit-backdrop-filter:blur(6px);z-index:100;display:flex;align-items:center;justify-content:center;padding:1rem}.nick-modal{background:var(--bg-1);border:1px solid rgba(255,255,255,.12);border-radius:var(--radius);padding:1.75rem;max-width:440px;width:100%;box-shadow:var(--shadow);display:flex;flex-direction:column;gap:.75rem}.nick-modal h2{margin:0;font-size:1.5rem;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.nick-modal-sub{margin:0 0 .5rem;color:var(--text-dim);font-size:.9rem}.nick-modal-input{padding:.75rem;border-radius:8px;border:1px solid rgba(255,255,255,.2);background:#0006;color:inherit;font-size:1rem;font-family:inherit}.nick-modal-buttons{display:flex;gap:.5rem;margin-top:.5rem}.nick-modal-btn{flex:1;padding:.75rem;border-radius:8px;border:none;font-size:.95rem;font-weight:700;cursor:pointer;font-family:inherit;transition:opacity .15s ease}.nick-modal-btn.primary{background:var(--accent);color:var(--bg-0)}.nick-modal-btn.primary:disabled{opacity:.4;cursor:not-allowed}.nick-modal-btn.secondary{background:#ffffff14;color:var(--text);border:1px solid rgba(255,255,255,.16)}.nick-modal-foot{margin:.25rem 0 0;color:var(--text-dim);font-size:.75rem;text-align:center}.nick-badge-verified{color:var(--accent);font-size:.8rem;margin-left:.1rem}.lb-verified{color:var(--accent);font-size:.75rem}.auth-dropdown{position:absolute;top:calc(100% + .4rem);right:0;background:var(--bg-1);border:1px solid rgba(255,255,255,.15);border-radius:var(--radius);box-shadow:var(--shadow);min-width:130px;overflow:hidden;z-index:51}.auth-dropdown-item{display:block;width:100%;padding:.7rem 1rem;text-align:left;background:none;border:none;border-bottom:1px solid rgba(255,255,255,.06);color:var(--text);font-family:inherit;font-size:.9rem;cursor:pointer;text-decoration:none;transition:background .1s ease;box-sizing:border-box}.auth-dropdown-item:last-child{border-bottom:none}.auth-dropdown-item:hover{background:#ffffff12}.auth-tabs{display:flex;gap:.25rem;border-bottom:1px solid rgba(255,255,255,.1);margin-bottom:.25rem}.auth-tab{padding:.45rem .9rem;background:none;border:none;border-bottom:2px solid transparent;color:var(--text-dim);font-size:.9rem;font-family:inherit;cursor:pointer;transition:color .15s ease,border-color .15s ease;margin-bottom:-1px}.auth-tab:hover{color:var(--text)}.auth-tab.active{color:var(--accent);border-bottom-color:var(--accent)}.auth-form{display:flex;flex-direction:column;gap:.6rem}.auth-error{margin:0;color:var(--danger, #f56565);font-size:.85rem}.auth-pwd-wrap{position:relative;display:block}.auth-pwd-wrap .nick-modal-input{width:100%;box-sizing:border-box;padding-right:2.75rem}.auth-pwd-toggle{position:absolute;top:50%;right:.75rem;transform:translateY(-50%);background:none;border:none;color:var(--text-dim);cursor:pointer;padding:0;display:flex;align-items:center;line-height:1}.auth-pwd-toggle:hover{color:var(--accent)}.auth-input-error{border-color:var(--danger, #f56565)!important}.profile{display:flex;flex-direction:column;gap:1.5rem;padding-top:1rem}.profile-header{display:flex;align-items:center;gap:1rem}.profile-avatar{width:3.5rem;height:3.5rem;border-radius:50%;background:linear-gradient(135deg,var(--accent),var(--accent-2));display:flex;align-items:center;justify-content:center;font-size:1.6rem;font-weight:900;color:var(--bg-0);flex-shrink:0}.profile-username{margin:0;font-size:1.6rem}.profile-verified{color:var(--accent);font-size:1rem}.profile-section-title{margin:0;font-size:1rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.08em;border-bottom:1px solid rgba(255,255,255,.08);padding-bottom:.5rem}.profile-scores-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:.75rem}.profile-score-card{background:var(--bg-1);border:1px solid rgba(255,255,255,.1);border-radius:var(--radius);padding:1rem;display:flex;flex-direction:column;gap:.25rem;text-decoration:none;color:var(--text);transition:border-color .15s ease}.profile-score-card:hover{border-color:var(--accent)}.profile-score-card.skeleton{height:90px;animation:pulse 1.4s ease-in-out infinite}.profile-score-game{font-size:.85rem;color:var(--text-dim)}.profile-score-best{font-size:1.4rem;font-weight:900;background:linear-gradient(135deg,var(--accent),var(--accent-2));-webkit-background-clip:text;background-clip:text;color:transparent}.profile-score-meta{font-size:.75rem;color:var(--text-dim)}.profile-empty{text-align:center;padding:3rem 1rem;color:var(--text-dim)}.profile-empty a{color:var(--accent)}.profile-back{color:var(--text-dim);text-decoration:none;font-size:.9rem;transition:color .15s ease}.profile-back:hover{color:var(--accent)}.game-canvas:fullscreen,.game-canvas:-webkit-full-screen{max-width:none!important;width:100vw!important;height:100vh!important;margin:0!important;padding:0!important;border-radius:0!important;background:#000!important;position:fixed;inset:0}.leaderboard{background:#ffffff0a;border-radius:var(--radius);padding:1rem 1.25rem}.leaderboard table{width:100%;border-collapse:collapse}.leaderboard th,.leaderboard td{text-align:left;padding:.5rem .25rem;border-bottom:1px solid rgba(255,255,255,.06);font-size:.95rem}.leaderboard th{font-weight:600;color:var(--text-dim);font-size:.8rem;text-transform:uppercase;letter-spacing:.05em}.leaderboard td.score{text-align:right;font-variant-numeric:tabular-nums;font-weight:600}.leaderboard .skeleton-row{height:1.5rem;background:#ffffff0a;animation:pulse 1.4s infinite}@keyframes pulse{0%,to{opacity:.4}50%{opacity:.7}}.site-stats{display:flex;flex-wrap:wrap;gap:.5rem .75rem;align-items:center;justify-content:center;margin:1.25rem 0;font-size:.95rem;color:var(--text-dim)}.site-stats .chip{display:inline-flex;align-items:center;gap:.4rem;padding:.3rem .7rem;border-radius:999px;background:#ffffff0a;border:1px solid rgba(255,255,255,.08);font-variant-numeric:tabular-nums}.site-stats .chip strong{color:var(--text);font-weight:600}.site-stats .sep{color:var(--text-dim);opacity:.5}.stats-link{display:block;text-align:center;margin:.25rem 0 1.5rem;color:var(--text-dim);font-size:.9rem;text-decoration:none;opacity:.7;transition:opacity .15s}.stats-link:hover{opacity:1}.stats-page{max-width:900px;margin:0 auto;padding:1.5rem 1rem}.stats-page h1{text-align:center;margin-bottom:1.5rem}.stats-bignums{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem;margin-bottom:2rem}.stats-bignums .card{background:#ffffff0a;border:1px solid rgba(255,255,255,.08);border-radius:12px;padding:1.25rem;text-align:center}.stats-bignums .card .num{font-size:2.2rem;font-weight:700;font-variant-numeric:tabular-nums;color:var(--text);display:block}.stats-bignums .card .lbl{font-size:.85rem;color:var(--text-dim);margin-top:.3rem;display:block}.stats-pergame{margin-bottom:2rem}.stats-pergame h2,.stats-timeline h2{font-size:1rem;color:var(--text-dim);text-transform:uppercase;letter-spacing:.1em;margin-bottom:.75rem}.stats-pergame .row{display:grid;grid-template-columns:12rem 1fr 4rem;gap:.75rem;align-items:center;padding:.4rem 0}.stats-pergame .row .name{color:var(--text);font-weight:600}.stats-pergame .row .bar{height:10px;background:#ffffff0f;border-radius:5px;overflow:hidden}.stats-pergame .row .bar>span{display:block;height:100%;background:linear-gradient(90deg,#6a4cff,#a674ff)}.stats-pergame .row .val{text-align:right;font-variant-numeric:tabular-nums;color:var(--text-dim)}.stats-timeline svg{width:100%;height:auto;display:block}.stats-timeline svg rect{fill:#6a4cff}.stats-timeline svg rect:hover{fill:#a674ff}.stats-timeline .axis{font-size:.7rem;fill:var(--text-dim)}@media(max-width:600px){.stats-bignums{grid-template-columns:1fr}.stats-pergame .row{grid-template-columns:8rem 1fr 3rem}}
