:root{--bg: #0a0b0e;--bg-1: #101217;--bg-2: #171a21;--bg-3: #0d0f13;--line: rgba(255,255,255,.08);--line-2:rgba(255,255,255,.15);--ink: #eef1f6;--ink-2: #c3c8d2;--muted: #8b92a0;--faint: #5c6370;--gold: #f0b429;--gold-2:#d4971a;--gold-ink:#1a1403;--easy: #34d399;--medium: #f0b429;--hard: #fb923c;--insane: #f43f5e;--info: #60a5fa;--r: 12px;--r-lg:18px;--sh-1: 0 1px 2px rgba(0,0,0,.4);--sh-2: 0 4px 14px rgba(0,0,0,.4),0 1px 3px rgba(0,0,0,.3);--sh-3: 0 16px 40px rgba(0,0,0,.5),0 4px 12px rgba(0,0,0,.4);--mono: "Space Mono", ui-monospace, Menlo, Consolas, monospace;--disp: "Space Grotesk", "Inter", system-ui, sans-serif;--sans: "Inter", system-ui, -apple-system, sans-serif}*{box-sizing:border-box}body{margin:0;font-family:var(--sans);color:var(--ink);background:var(--bg);min-height:100vh;-webkit-font-smoothing:antialiased;letter-spacing:-.01em;overflow-x:hidden}body:before{content:"";position:fixed;inset:0 0 auto 0;height:420px;z-index:-1;pointer-events:none;background:radial-gradient(60% 100% at 50% -20%,rgba(240,180,41,.1),transparent 70%),radial-gradient(40% 80% at 85% -10%,rgba(96,165,250,.06),transparent 70%)}a{color:var(--gold);text-decoration:none}a:hover{color:var(--gold-2)}::selection{background:var(--gold);color:var(--gold-ink)}.container{max-width:1120px;margin:0 auto;padding:32px 20px 90px}.center{text-align:center;padding:56px 0;color:var(--muted)}.muted{color:var(--muted)}.row{display:flex;gap:12px;align-items:center;flex-wrap:wrap}.spread{justify-content:space-between}h1{font-family:var(--disp);font-weight:700;font-size:30px;letter-spacing:-.02em;margin:0 0 4px}h2{font-family:var(--disp);font-weight:600;letter-spacing:-.02em;margin:0}h3{font-family:var(--disp);font-weight:600;letter-spacing:-.01em}.nav{position:sticky;top:0;z-index:20;background:#0a0b0eb8;backdrop-filter:saturate(160%) blur(16px);-webkit-backdrop-filter:saturate(160%) blur(16px);border-bottom:1px solid var(--line)}.nav-inner{max-width:1120px;margin:0 auto;padding:0 20px;height:62px;display:flex;align-items:center;gap:22px}.brand{display:flex;align-items:center;gap:10px;font-family:var(--disp);font-weight:700;font-size:17px;letter-spacing:-.02em;color:var(--ink)}.brand:hover{color:var(--ink)}.brand .egg{color:var(--gold)}.brand .ver{font-family:var(--sans);font-size:10px;color:var(--gold);background:#f0b4291f;border:1px solid rgba(240,180,41,.3);padding:2px 7px;border-radius:999px;font-weight:600;letter-spacing:0}.brand .cursor,.nav-prompt{display:none}.nav-links{display:flex;align-items:center;gap:2px}.navlink{font-family:var(--sans);font-size:14px;color:var(--ink-2);font-weight:500;padding:8px 13px;border-radius:9px;position:relative;text-transform:capitalize;transition:background .15s,color .15s}.navlink:hover{color:var(--ink);background:var(--bg-2)}.navlink.active{color:var(--gold);background:#f0b42914}.user-chip{display:flex;align-items:center;gap:8px;font-size:13px;background:var(--bg-1);border:1px solid var(--line);padding:6px 13px 6px 11px;border-radius:999px;white-space:nowrap;line-height:1}.user-chip .dot{width:7px;height:7px;border-radius:50%;background:var(--easy);box-shadow:0 0 8px #34d399cc}.user-chip .uname{color:var(--muted)}.user-chip .chip-sep{color:var(--faint)}.user-chip .tname{color:var(--ink);font-weight:600}.nav .grow{flex:1}button,.btn{font-family:var(--sans);font-size:14px;font-weight:600;background:linear-gradient(180deg,var(--gold),var(--gold-2));color:var(--gold-ink);border:1px solid transparent;padding:10px 17px;border-radius:11px;cursor:pointer;line-height:1;box-shadow:var(--sh-1),inset 0 1px #ffffff40;transition:transform .12s,box-shadow .15s,filter .15s}button:hover,.btn:hover{filter:brightness(1.05);box-shadow:var(--sh-2),inset 0 1px #ffffff40}button:active{transform:translateY(1px)}button.ghost,.btn.ghost{background:var(--bg-1);color:var(--ink);border:1px solid var(--line-2);box-shadow:var(--sh-1)}button.ghost:hover{background:var(--bg-2);filter:none}button.sm{padding:7px 12px;font-size:13px;border-radius:9px}button:disabled{opacity:.5;cursor:not-allowed}input,select,textarea{font-family:var(--sans);font-size:14px;width:100%;background:var(--bg-3);border:1px solid var(--line-2);color:var(--ink);padding:11px 13px;border-radius:11px;transition:border-color .15s,box-shadow .15s}input::placeholder{color:var(--faint)}input:focus,select:focus,textarea:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px #f0b42924}label{display:block;font-family:var(--sans);font-size:13px;font-weight:500;color:var(--ink-2);margin:14px 0 6px}.card{background:var(--bg-1);border:1px solid var(--line);border-radius:var(--r-lg);padding:20px;box-shadow:var(--sh-1)}.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(290px,1fr));gap:16px}.auth-wrap{max-width:400px;margin:72px auto}.error{color:#fca5a5;font-size:13px;margin-top:10px}.ok{color:var(--easy);font-size:13px;margin-top:10px}.badge{display:inline-flex;align-items:center;font-family:var(--sans);font-weight:600;padding:3px 10px;border-radius:999px;font-size:12px;border:1px solid transparent}.badge.cat{background:var(--bg-2);color:var(--ink-2);border-color:var(--line)}.badge.cat:before{content:"";width:5px;height:5px;border-radius:50%;background:var(--muted);margin-right:7px}.badge.Easy{background:#34d3991f;color:var(--easy);border-color:#34d39947}.badge.Medium{background:#f0b4291f;color:var(--medium);border-color:#f0b4294d}.badge.Hard{background:#fb923c21;color:var(--hard);border-color:#fb923c4d}.badge.Insane{background:#f43f5e24;color:var(--insane);border-color:#f43f5e52}.chal{display:flex;flex-direction:column;gap:12px;cursor:pointer;position:relative;overflow:hidden;transition:transform .16s cubic-bezier(.2,.7,.3,1),box-shadow .16s,border-color .16s}.chal:before{content:"";position:absolute;top:0;left:0;right:0;height:3px;background:var(--line-2);opacity:.9;transition:opacity .16s}.chal.d-Easy:before{background:linear-gradient(90deg,var(--easy),transparent 85%)}.chal.d-Medium:before{background:linear-gradient(90deg,var(--medium),transparent 85%)}.chal.d-Hard:before{background:linear-gradient(90deg,var(--hard),transparent 85%)}.chal.d-Insane:before{background:linear-gradient(90deg,var(--insane),transparent 85%)}.chal:hover{transform:translateY(-3px);box-shadow:var(--sh-3);border-color:var(--line-2)}.chal.solved{border-color:#34d39966}.chal.solved:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;pointer-events:none;background:linear-gradient(180deg,rgba(52,211,153,.05),transparent 40%)}.chal .title{font-family:var(--disp);font-size:17px;font-weight:600;letter-spacing:-.01em;line-height:1.25}.chal .pts{font-family:var(--disp);color:var(--gold);font-weight:700;font-size:15px;white-space:nowrap}.chal .solvetag{font-size:12px;color:var(--easy);font-weight:600;display:inline-flex;align-items:center;gap:5px}.modal-bg{position:fixed;top:0;right:0;bottom:0;left:0;background:#050609b8;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);display:flex;align-items:center;justify-content:center;padding:18px;z-index:50}.modal{width:100%;max-width:560px;max-height:88vh;overflow:auto;box-shadow:var(--sh-3)}.desc{color:var(--ink-2);line-height:1.65;white-space:pre-wrap}.conn{font-family:var(--mono);font-size:13px;color:var(--info);background:var(--bg-3);border:1px solid var(--line);padding:11px 13px;border-radius:10px;word-break:break-all}.conn:before{content:"$ ";color:var(--faint)}.hint{background:var(--bg-2);border:1px solid var(--line);border-radius:10px;padding:11px 13px}.brief{border-left:2px solid var(--gold);background:#f0b4290d;padding:12px 15px;border-radius:0 10px 10px 0;color:#e6d7b4;line-height:1.65;margin-bottom:14px}.debrief{border-left:2px solid var(--easy);background:#34d3990f;padding:12px 15px;border-radius:0 10px 10px 0;color:#bfe9d4;line-height:1.65}.debrief-h{font-family:var(--disp);color:var(--easy);font-weight:600;font-size:13px;margin-bottom:4px}table{width:100%;border-collapse:collapse}th,td{text-align:left;padding:13px 16px;border-bottom:1px solid var(--line);font-size:14px}th{font-family:var(--sans);color:var(--muted);font-size:12px;font-weight:600;letter-spacing:.02em}tbody tr{transition:background .12s}tbody tr:hover{background:#ffffff06}tbody tr:last-child td{border-bottom:0}tr.me{background:#f0b42914}tr.me:hover{background:#f0b4291c}.rank{font-family:var(--disp);font-weight:700;color:var(--muted);width:56px}tbody tr:nth-child(1) .rank{color:var(--gold)}tbody tr:nth-child(2) .rank{color:#cbd5e1}tbody tr:nth-child(3) .rank{color:#d9a066}.tabs{display:flex;gap:8px;margin-bottom:24px;flex-wrap:wrap}.tab{font-family:var(--sans);font-size:13px;font-weight:600;padding:8px 15px;border-radius:999px;border:1px solid var(--line);cursor:pointer;background:var(--bg-1);color:var(--muted);transition:all .14s}.tab:hover{color:var(--ink);border-color:var(--line-2)}.tab.active{color:var(--gold-ink);background:var(--gold);border-color:var(--gold)}.freeze{background:#60a5fa14;border:1px solid rgba(96,165,250,.3);color:#bcd6ff;padding:11px 14px;border-radius:12px;font-size:13px;margin-bottom:18px}.stat{font-family:var(--disp);font-size:34px;font-weight:700;color:var(--gold)}.joincode{font-family:var(--mono);font-size:20px;letter-spacing:4px;font-weight:700;color:var(--gold);background:var(--bg-3);border:1px dashed var(--line-2);padding:10px 16px;border-radius:10px}.wave-head{font-family:var(--disp);font-weight:600;font-size:14px;color:var(--muted);display:flex;align-items:center;gap:12px;margin:0 0 14px;text-transform:capitalize}.wave-head:after{content:"";flex:1;height:1px;background:var(--line)}.brand-logo{height:26px;width:auto;display:block}.auth-logo{height:64px;width:auto;display:block;margin:0 auto 16px}.auth-wrap h2{text-align:center;font-size:22px}.live-dot{font-size:13px;color:var(--easy);font-weight:600;display:inline-flex;align-items:center;gap:7px}.live-dot:before{content:"";width:7px;height:7px;border-radius:50%;background:var(--easy);box-shadow:0 0 8px var(--easy);animation:livepulse 1.8s ease-in-out infinite}@keyframes livepulse{0%,to{opacity:1}50%{opacity:.35}}@media (max-width: 720px){.user-chip .uname,.user-chip .chip-sep,.brand .ver{display:none}.nav-inner{gap:12px;padding:0 14px}.navlink{padding:8px 9px}.brand-word{display:none}h1{font-size:25px}}@media (prefers-reduced-motion: reduce){*{transition:none!important}.live-dot:before{animation:none}}
