:root{--gold:#e8c26a;--gold-deep:#b8892f;--felt:#0f3d2a;--ink:#f6f1e4;--muted:#f6f1e499;--glass:#0a1c14b8;--line:#e8c26a2e;--win:#7fd69a;--lose:#f08a7c;--radius:18px}*{box-sizing:border-box}html,body{min-height:100%;margin:0}body{color:var(--ink);background:var(--felt);font-family:Inter,system-ui,sans-serif}body:before{content:"";z-index:-2;filter:blur(3px)saturate(1.1);background:url(/background.jpg) 50%/cover no-repeat;position:fixed;inset:-20px}body:after{content:"";z-index:-1;background:radial-gradient(at top,#081e1459,#05120cd9 70%),linear-gradient(#00000026,#0000008c);position:fixed;inset:0}button{font:inherit;cursor:pointer}button:disabled{cursor:not-allowed;opacity:.45}.page{max-width:820px;margin:0 auto;padding:48px 16px 64px}.hero{text-align:center;margin-bottom:28px;position:relative}.kicker{text-transform:uppercase;letter-spacing:.28em;color:var(--gold);opacity:.85;margin:0 0 6px;font-size:12px}.hero h1{text-shadow:0 4px 30px #0009;margin:0;font-family:Playfair Display,Georgia,serif;font-size:clamp(44px,9vw,76px);font-weight:900;line-height:1}.hero h1 span{background:linear-gradient(180deg, #f9e3a6, var(--gold) 55%, var(--gold-deep));color:#0000;-webkit-background-clip:text;background-clip:text}.hero-actions{position:absolute;top:-32px;right:0}.link{color:var(--muted);background:0 0;border:0;padding:4px 0;font-size:13px}.link:hover{color:var(--gold)}.card{background:var(--glass);-webkit-backdrop-filter:blur(14px);border:1px solid var(--line);border-radius:var(--radius);padding:20px;box-shadow:0 20px 60px #00000073}.card-head{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:12px;margin-bottom:14px;display:flex}.segmented{border:1px solid var(--line);background:#00000059;border-radius:999px;padding:4px;display:inline-flex}.segmented button{color:var(--muted);background:0 0;border:0;border-radius:999px;padding:8px 16px;font-size:14px;font-weight:600;transition:all .2s}.segmented button.on{background:linear-gradient(180deg, var(--gold), var(--gold-deep));color:#1d1406}.meta{flex-wrap:wrap;gap:8px;display:flex}.pill{border:1px solid var(--line);color:var(--muted);background:#ffffff0f;border-radius:999px;padding:6px 12px;font-size:13px}.pill b{color:var(--ink)}.pill.warn{border-color:#f08a7c66}.pill.warn b{color:var(--lose)}.table-wrap{overflow-x:auto}.standings{border-collapse:collapse;width:100%}.standings th{text-align:left;text-transform:uppercase;letter-spacing:.12em;color:var(--gold);border-bottom:1px solid var(--line);padding:8px 10px;font-size:11px;font-weight:600}.standings td{font-variant-numeric:tabular-nums;border-bottom:1px solid #ffffff0d;padding:12px 10px}.standings tbody tr{transition:background .15s,opacity .2s}.standings tbody tr:hover{background:#e8c26a0f}.standings tr.dim{opacity:.42}.standings tr.dim:hover{opacity:.7}.num{text-align:right!important}.pos{width:44px}.name{font-weight:600}.tag{border:1px dashed var(--muted);color:var(--muted);white-space:nowrap;border-radius:999px;margin-left:8px;padding:2px 8px;font-size:11px}.rank{width:28px;height:28px;color:var(--muted);border-radius:50%;place-items:center;font-size:13px;font-weight:700;display:inline-grid}.rank.m1{color:#2a1c03;background:linear-gradient(135deg,#fbe7a1,#d4a23a);box-shadow:0 0 18px #e8c26a8c}.rank.m2{color:#222;background:linear-gradient(135deg,#f1f1f1,#a9adb3)}.rank.m3{color:#2a1404;background:linear-gradient(135deg,#f0bf8f,#a8642e)}.avg{text-align:right;flex-direction:column;align-items:stretch;gap:5px;min-width:64px;display:inline-flex}.avg span{font-weight:700}.avg b{background:#ffffff1a;border-radius:2px;height:3px;display:block;overflow:hidden}.avg i{background:linear-gradient(90deg, var(--gold-deep), var(--gold));height:100%;display:block}.empty{text-align:center;color:var(--muted);margin:0;padding:28px 0}.footnote{color:var(--muted);margin:14px 0 0;font-size:12px}.actions{flex-wrap:wrap;justify-content:center;gap:12px;margin:28px 0;display:flex}.primary{letter-spacing:.02em;color:#1d1406;background:linear-gradient(180deg, #f6d98b, var(--gold) 50%, var(--gold-deep));border:0;border-radius:999px;padding:14px 28px;font-weight:700;transition:transform .15s,box-shadow .15s;box-shadow:0 10px 30px #e8c26a40,inset 0 1px #ffffff80}.primary:not(:disabled):hover{transform:translateY(-2px);box-shadow:0 14px 36px #e8c26a66}.primary.block{width:100%;margin-top:8px}.ghost{border:1px solid var(--line);color:var(--ink);background:var(--glass);-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);border-radius:999px;padding:14px 24px;font-weight:600}.ghost:hover{border-color:var(--gold)}.x{color:var(--muted);background:0 0;border:0;padding:0 4px;font-size:22px;line-height:1}.x:hover{color:var(--lose)}.recent h2,.modal h2{margin:0;font-family:Playfair Display,Georgia,serif;font-size:22px}.recent h2{margin-bottom:10px}.recent ul{margin:0;padding:0;list-style:none}.recent li{border-bottom:1px solid #ffffff0d;flex-wrap:wrap;align-items:baseline;gap:8px;padding:10px 0;font-size:14px;display:flex}.recent li:last-child{border-bottom:0}.win{color:var(--win);font-weight:600}.lose{color:var(--lose);font-weight:600}.vs{color:var(--muted);font-size:12px}.recent time{color:var(--muted);margin-left:auto;font-size:12px}.backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:10;background:#0009;place-items:center;padding:16px;animation:.15s ease-out fade;display:grid;position:fixed;inset:0}.modal{border:1px solid var(--line);border-radius:var(--radius);background:linear-gradient(#123b29,#0b271b);width:100%;max-width:480px;max-height:calc(100vh - 32px);padding:20px;animation:.18s ease-out pop;overflow-y:auto;box-shadow:0 30px 80px #0009}.modal-head{justify-content:space-between;align-items:center;margin-bottom:16px;display:flex}.side{margin-bottom:18px}.side h3{text-transform:uppercase;letter-spacing:.14em;margin:0 0 10px;font-size:13px}.side.w h3{color:var(--win)}.side.l h3{color:var(--lose)}.side small{color:var(--muted);margin-left:4px;font-weight:400}.chips{flex-wrap:wrap;gap:8px;display:flex}.chip{color:var(--ink);background:#ffffff0d;border:1px solid #ffffff26;border-radius:999px;padding:8px 14px;font-size:14px;transition:all .15s}.chip:not(:disabled):hover{border-color:var(--gold)}.side.w .chip.on{border-color:var(--win);color:#d8ffe3;background:#7fd69a33}.side.l .chip.on{border-color:var(--lose);color:#ffe0db;background:#f08a7c33}.chip:disabled{opacity:.25}.chip.guest{border-style:dashed;font-style:italic}.hint{color:var(--muted);margin:0 0 12px;font-size:12px}.login{max-width:400px;padding-top:18vh}.login .card{padding:24px}.login h1{white-space:nowrap;font-size:clamp(40px,12vw,58px)}.form{flex-direction:column;gap:12px;display:flex}.form.inline{flex-direction:row}.form.inline input{flex:1;min-width:0}.form input{font:inherit;border:1px solid var(--line);color:var(--ink);background:#0000004d;border-radius:12px;outline:none;padding:12px 14px}.form input:focus{border-color:var(--gold)}.form .primary{padding:12px 20px}.error{color:var(--lose);margin:0;font-size:14px}.player-list{margin:16px 0 0;padding:0;list-style:none}.player-list li{border-bottom:1px solid #ffffff0f;align-items:center;gap:10px;padding:10px 4px;display:flex}.player-list li span{flex:1;font-weight:600}.player-list small{color:var(--muted)}.player-list .empty{justify-content:center;padding:16px}.toast{color:var(--gold);border:1px solid var(--gold-deep);z-index:20;background:#1d1406;border-radius:999px;padding:12px 20px;font-size:14px;font-weight:600;animation:.18s ease-out pop;position:fixed;bottom:24px;left:50%;transform:translate(-50%);box-shadow:0 10px 30px #00000080}.giraffe{z-index:30;pointer-events:none;flex-direction:column;align-items:center;animation:7s linear forwards stroll;display:flex;position:fixed;bottom:-6px;left:0}.giraffe .body{font-size:140px;line-height:1;animation:.5s ease-in-out infinite alternate bob;transform:scaleX(-1)}.giraffe .bubble{background:var(--ink);color:#1d1406;border-radius:999px;margin-bottom:-6px;padding:6px 14px;font-family:Playfair Display,Georgia,serif;font-weight:900;box-shadow:0 6px 20px #0006}@keyframes stroll{0%{transform:translate(-200px)}to{transform:translate(calc(100vw + 40px))}}@keyframes bob{to{translate:0 -8px}}@keyframes fade{0%{opacity:0}}@keyframes pop{0%{opacity:0;transform:translateY(8px)scale(.98)}}.toast{animation-name:fade}@media (width<=560px){.page{padding-top:56px}.kicker{letter-spacing:.16em;font-size:11px}.hide-sm{display:none}.card{padding:14px}.standings th,.standings td{padding:10px 6px}.standings th{letter-spacing:.06em;font-size:10px}.pos{width:34px}.tag{width:fit-content;margin:4px 0 0;display:block}.segmented button{padding:8px 12px;font-size:13px}}
