:root{color-scheme:dark;color:#f5f7fb;background:#081124;font-family:Inter,ui-sans-serif,system-ui,sans-serif;line-height:1.5;scrollbar-gutter:stable}*{box-sizing:border-box}body{margin:0;background:radial-gradient(circle at 18% 0%,rgba(24,187,156,.22),transparent 28%),radial-gradient(circle at 84% 16%,rgba(255,195,87,.14),transparent 24%),linear-gradient(180deg,#081124,#10131f 48%,#081124)}body.gameplay-active{overscroll-behavior:none;overflow-x:hidden}#app{min-height:100vh;width:100%;padding:24px}.layout{max-width:1180px;margin:0 auto}.competition-layout{display:grid;gap:26px}.header{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;margin-bottom:28px}.brand{font-size:2.2rem;font-weight:700;letter-spacing:0}.subtitle{margin:12px 0 0;color:#9bb2d6;max-width:680px}.grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:18px}.competition-header{display:flex;justify-content:space-between;align-items:flex-start;gap:20px}.competition-pills,.leaderboard-tabs,.card-actions{display:flex;flex-wrap:wrap;gap:10px}.competition-header-actions{display:grid;justify-items:end;gap:12px}.competition-pills span{border:1px solid rgba(255,255,255,.12);border-radius:999px;color:#def7ef;background:#19b9961f;font-size:.82rem;font-weight:800;padding:.46rem .72rem}.player-profile-card{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px;align-items:center;min-width:min(100%,340px);border:1px solid rgba(139,240,210,.18);border-radius:8px;background:#0b1222c7;padding:12px}.player-profile-card strong{display:block;overflow:hidden;color:#f5f7fb;font-size:1.05rem;text-overflow:ellipsis;white-space:nowrap}.player-profile-card small{display:block;color:#9bb2d6;font-size:.76rem;font-weight:700;margin-top:2px}.player-name-modal-backdrop{position:fixed;top:0;right:0;bottom:0;left:0;z-index:1000;display:grid;place-items:center;background:#030710b8;padding:18px}.player-name-modal{width:min(100%,420px);border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#0b1222fa;box-shadow:0 28px 90px #00000075;padding:20px}.player-name-form{display:grid;gap:14px}.player-name-form h2{margin:4px 0 6px;font-size:1.35rem}.player-name-form p{margin:0;color:#b9c8e9}.player-name-field{display:grid;gap:8px;color:#dbe7ff;font-weight:800}.player-name-field input{width:100%;min-height:48px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#ffffff12;color:#f5f7fb;font:inherit;padding:0 12px}.player-name-field input[aria-invalid=true]{border-color:#ff8fb8cc;box-shadow:0 0 0 3px #ff8fb81f}.player-name-help,.player-name-error{font-size:.84rem;font-weight:700}.player-name-error{min-height:1.25em;color:#ffb6cc}.player-name-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px}.achievement-panel,.recent-panel,.leaderboard-hub{border:1px solid rgba(255,255,255,.1);border-radius:8px;background:#0b1222d6}.competition-hub{display:block}.eyebrow{color:#8bf0d2;font-size:.78rem;font-weight:900;letter-spacing:0;text-transform:uppercase}.section-heading h2{margin:0;letter-spacing:0}.section-heading p{color:#b9c8e9;margin:0}.leaderboard-hub{padding:clamp(20px,3vw,34px);background:linear-gradient(135deg,#2bd0a81f,#4d8dff14 44%,#ffdf7e1a),#0b1222eb;box-shadow:0 28px 80px #00000047}.segment-button,.text-button{border:1px solid rgba(255,255,255,.13);color:#dbe7ff;background:#ffffff0e;cursor:pointer;font:inherit;font-weight:800}.segment-button{min-height:42px;border-radius:999px;padding:0 14px}.segment-button.active{color:#06111d;background:#8bf0d2;border-color:#8bf0d2}.leaderboard-topline{display:flex;justify-content:space-between;gap:14px;align-items:center;margin-bottom:16px}.leaderboard-source-note,.local-note{color:#9bb2d6;font-size:.86rem;font-weight:700}.board-tabs{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:6px;padding:6px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#050b18b8}.board-tabs .board-tab{min-height:50px;border-radius:7px;padding:0 16px;color:#aebfea;background:transparent}.board-tabs .board-tab.active{color:#06111d;background:linear-gradient(135deg,#8bf0d2,#ffdf7e);border-color:#ffffff29;box-shadow:0 14px 34px #2bd0a829}.board-summary{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:20px;align-items:end;margin:22px 0 18px}.board-summary h1{font-size:clamp(2.35rem,7vw,5rem);line-height:.95;margin:4px 0 10px}.board-summary p{color:#c8d7f5;max-width:760px;margin:0}.platform-filter{display:inline-flex;flex-wrap:wrap;gap:8px;padding:6px;border:1px solid rgba(255,255,255,.09);border-radius:8px;background:#050b189e}.platform-filter-button{min-width:86px}.featured-players,.ranked-board{display:grid;gap:14px;margin-top:22px}.leaderboard-section-title{display:flex;justify-content:space-between;gap:14px;align-items:end}.leaderboard-section-title h2{margin:0;font-size:1.15rem}.featured-player-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.featured-player-card{position:relative;display:grid;grid-template-columns:auto minmax(0,1fr);gap:14px;min-height:218px;padding:18px;overflow:hidden;border:1px solid rgba(255,255,255,.11);border-radius:8px;background:linear-gradient(160deg,#ffffff14,#ffffff05),#080e1dd1}.featured-player-card.rank-1{border-color:#ffdf7e6b;background:linear-gradient(160deg,#ffdf7e38,#4d8dff14),#0b1222eb;box-shadow:inset 0 1px #ffffff14,0 20px 46px #ffdf7e14}.featured-player-card.rank-2{border-color:#8bf0d242}.featured-player-card.rank-3{border-color:#ff8fb83d}.featured-player-card.empty{border-style:dashed;color:#9bb2d6}.rank-medal{position:absolute;top:14px;right:14px;color:#ffdf7e;font-size:.78rem;font-weight:900}.player-avatar{display:grid;place-items:center;width:58px;height:58px;border-radius:999px;color:#06111d;background:linear-gradient(135deg,#8bf0d2,#4d8dff);font-weight:900;box-shadow:0 16px 34px #2bd0a82e}.player-avatar.empty{color:#9bb2d6;background:#ffffff14;box-shadow:none}.player-avatar.compact{width:42px;height:42px;font-size:.82rem}.featured-player-main{display:grid;align-content:start;gap:4px;min-width:0}.podium-label,.rank-tier{width:fit-content;border:1px solid rgba(255,223,126,.28);border-radius:999px;color:#ffdf7e;background:#ffdf7e14;font-size:.72rem;font-weight:900;padding:.22rem .52rem;text-transform:uppercase}.featured-player-main h3{margin:4px 0 0;overflow:hidden;color:#f5f7fb;font-size:1.15rem;text-overflow:ellipsis;white-space:nowrap}.featured-player-main strong{color:#f5f7fb;font-size:clamp(1.85rem,4vw,3rem);line-height:1}.featured-player-main>span:last-child{color:#aebfea;font-weight:800}.platform-badge{display:inline-flex;align-items:center;justify-content:center;width:fit-content;min-height:26px;border:1px solid rgba(139,240,210,.24);border-radius:999px;color:#def7ef;background:#2bd0a81a;font-size:.74rem;font-weight:900;padding:.16rem .56rem}.platform-badge.mobile{border-color:#ffdf7e47;color:#fff0b8;background:#ffdf7e1a}.platform-badge.unknown{border-color:#aebfea38;color:#c8d7f5;background:#aebfea14}.featured-stat-grid{grid-column:1 / -1;display:flex;flex-wrap:wrap;gap:8px;align-self:end}.featured-stat-grid span{border-radius:999px;color:#dbe7ff;background:#ffffff12;font-size:.78rem;font-weight:800;padding:.36rem .62rem}.ranked-table{display:grid;gap:8px}.ranked-table-header,.ranked-table-row{display:grid;grid-template-columns:70px minmax(0,1.4fr) minmax(120px,.8fr) 92px 116px 96px;gap:12px;align-items:center}.ranked-table-header{color:#8fa7d3;font-size:.76rem;font-weight:900;padding:0 16px;text-transform:uppercase}.ranked-table-body{display:grid;gap:8px;list-style:none;margin:0;padding:0}.ranked-table-row{min-height:76px;border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#ffffff0b;padding:12px 16px}.ranked-table-row:nth-child(2n){background:#fff1}.ranked-table-row.rank-one{border-color:#ffdf7e47;background:linear-gradient(135deg,#ffdf7e1f,#ffffff0b)}.rank-place,.rank-stat strong{color:#f5f7fb;font-weight:900}.rank-place{font-size:1.12rem}.rank-player{display:flex;gap:12px;align-items:center;min-width:0}.rank-player strong{display:block;overflow:hidden;color:#f5f7fb;text-overflow:ellipsis;white-space:nowrap}.rank-player small,.rank-stat small,.rank-date{color:#9bb2d6;font-size:.76rem;font-weight:700}.rank-stat{display:grid;gap:2px}.rank-stat strong{font-size:1.12rem}.rank-platform{justify-self:start}.rank-date{justify-self:end}.ranked-empty-state{display:grid;gap:6px;min-height:132px;place-items:center;border:1px dashed rgba(139,240,210,.22);border-radius:8px;background:#ffffff0b;color:#9bb2d6;padding:22px;text-align:center}.ranked-empty-state strong{color:#f5f7fb;font-size:1.2rem}.section-heading{display:grid;gap:6px}.game-library{display:grid;gap:16px}.card{border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0e172ebd;padding:22px;display:flex;flex-direction:column;gap:16px;min-height:260px}.card-thumbnail{display:block;width:100%;aspect-ratio:16 / 9;object-fit:cover;border-radius:8px;border:1px solid rgba(255,255,255,.16);background:#081124}.card-thumbnail-placeholder{background:linear-gradient(135deg,#18bb9c38,#ffc35724),linear-gradient(180deg,#426aff1f,#0e172ee6);border:1px dashed rgba(255,255,255,.16)}.card-title{font-size:1.15rem;margin:0}.card-description{color:#c7d2ea;flex:1}.card-meta{display:flex;flex-wrap:wrap;gap:8px}.meta-chip{border:1px solid rgba(255,255,255,.1);border-radius:999px;color:#c8d7f5;background:#ffffff0d;font-size:.78rem;font-weight:700;padding:.35rem .6rem}.badge{display:inline-flex;align-items:center;padding:.5rem .8rem;border-radius:999px;font-size:.85rem;font-weight:600;letter-spacing:.01em}.badge.available{background:#26c6f924;color:#9be2ff}.badge.soon{background:#ffb74d29;color:#ffd980}.button,.button-link{border:none;display:inline-flex;align-items:center;justify-content:center;min-height:44px;padding:0 18px;border-radius:8px;cursor:pointer;text-decoration:none;color:#f5f7fb;font-weight:700;background:linear-gradient(135deg,#2bd0a8,#4d8dff);box-shadow:0 18px 45px #2d50aa33;transition:transform .2s ease,filter .2s ease}.button:hover,.button-link:hover{transform:translateY(-1px)}.button:disabled{cursor:not-allowed;filter:saturate(.45);opacity:.65}.footer-note{padding:18px 22px;border-radius:8px;background:#0f182fe0;border:1px solid rgba(255,255,255,.06);color:#b4c1e3}.game-canvas{display:grid;place-items:center;width:100%;max-width:960px;aspect-ratio:800 / 520;margin:0 auto;border-radius:8px;overflow:hidden;background:#00102a;box-shadow:inset 0 0 0 1px #ffffff0a,0 30px 90px #00000040;touch-action:none;overscroll-behavior:contain;user-select:none;-webkit-user-select:none}.game-canvas canvas{display:block;touch-action:none;user-select:none;-webkit-user-select:none}.game-shell{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:start}.portrait-canvas{width:min(100%,510px);max-width:510px;aspect-ratio:480 / 720}.obstacle-rush-canvas{width:min(100%,500px);max-width:500px;aspect-ratio:480 / 760}.leaderboard-panel{border:1px solid rgba(255,255,255,.08);border-radius:8px;background:#0f182fe0;color:#d8e2ff;padding:18px}.leaderboard-header{display:flex;justify-content:space-between;gap:12px;align-items:baseline;margin-bottom:12px}.leaderboard-header h3{font-size:1rem;margin:0}.leaderboard-header span{color:#8acbff;font-size:.85rem;font-weight:700}.leaderboard-list{display:grid;gap:8px;list-style:none;margin:0 0 14px;padding:0}.leaderboard-row{display:grid;grid-template-columns:28px minmax(0,1fr) auto;gap:8px;align-items:center;border-radius:8px;background:#ffffff0b;padding:8px 10px}.leaderboard-rank,.leaderboard-score{color:#f5f7fb;font-weight:800}.leaderboard-name{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.leaderboard-name small,.achievement-row small,.recent-panel small{display:block;color:#9bb2d6;font-size:.76rem;font-weight:600;margin-top:2px}.leaderboard-empty,.leaderboard-note{color:#9bb2d6;font-size:.88rem}.leaderboard-form{display:grid;gap:10px}.leaderboard-name-input{width:100%;min-height:42px;border:1px solid rgba(255,255,255,.12);border-radius:8px;background:#0003;color:#f5f7fb;font:inherit;padding:0 12px}.leaderboard-submit{width:100%}.leaderboard-note{margin:12px 0 0}.text-button{min-height:42px;border-radius:8px;padding:0 12px}.text-button.danger{border-color:#ff6b6b80;color:#ffb8b8}.leaderboard-clear,.leaderboard-clear-confirm{margin-top:10px}.leaderboard-clear-confirm{display:grid;gap:10px;color:#ffd980}.achievements-hub{display:grid;gap:16px}.achievement-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px}.achievement-panel,.recent-panel{padding:18px}.compact-tabs{margin-bottom:14px}.achievement-list,.recent-panel ul{display:grid;gap:10px;list-style:none;margin:0;padding:0}.achievement-row{display:grid;grid-template-columns:88px minmax(0,1fr);gap:12px;align-items:start;border-radius:8px;background:#ffffff0b;padding:10px}.achievement-row.unlocked{background:#2bd0a81f}.achievement-medal{color:#ffd980;font-size:.76rem;font-weight:900;text-transform:uppercase}.recent-panel h3{margin:0 0 12px}.top-bar{display:flex;justify-content:space-between;gap:12px;padding:20px 24px;align-items:center}.top-bar h2{margin:0;font-size:1.4rem}.top-actions{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-end}.stats{display:flex;gap:12px;flex-wrap:wrap}.stat-pill{background:#ffffff0d;padding:.7rem 1rem;border-radius:999px;color:#d8e2ff;font-size:.95rem}.board{padding:24px}.back-link{margin-top:18px;border-radius:8px;display:inline-flex}.top-actions .back-link{margin-top:0}.skyline-canvas{position:relative;min-height:560px;aspect-ratio:16 / 10;background:linear-gradient(180deg,#8dc7ffe6,#6b98dc47),#07111f}.skyline-renderer{display:block;width:100%;height:100%}.skyline-hud{position:absolute;top:14px;left:14px;right:14px;z-index:2;display:flex;flex-wrap:wrap;gap:8px;pointer-events:none}.skyline-hud span,.skyline-feedback{border:1px solid rgba(255,255,255,.13);border-radius:8px;color:#f5f7fb;background:#06111dcc;font-size:.88rem;font-weight:800;padding:.42rem .64rem;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);box-shadow:0 10px 26px #00000029}.skyline-progress{position:absolute;top:62px;left:14px;right:14px;z-index:2;height:9px;overflow:hidden;border-radius:999px;background:#06111d94;pointer-events:none}.skyline-progress span{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#2bd0a8,#ffdf7e);transition:width .12s linear}.skyline-feedback{position:absolute;top:84px;left:50%;z-index:3;min-width:170px;text-align:center;transform:translate(-50%);color:#ffdf7e;pointer-events:none}.skyline-feedback:empty{display:none}.skyline-joystick{position:absolute;left:20px;bottom:20px;z-index:3;width:138px;height:138px;border:2px solid rgba(255,255,255,.2);border-radius:999px;background:#06111d75;box-shadow:inset 0 0 0 18px #ffffff09;touch-action:none;-webkit-user-select:none;user-select:none}.skyline-joystick span{position:absolute;top:50%;left:50%;width:58px;height:58px;border-radius:999px;background:linear-gradient(135deg,#8bf0d2,#4d8dff);box-shadow:0 14px 30px #0000003d;transform:translate(0);translate:-50% -50%}.skyline-action-controls{position:absolute;right:20px;bottom:20px;z-index:3;display:flex;gap:12px}.skyline-action-button{width:86px;height:86px;border:2px solid rgba(255,255,255,.2);border-radius:999px;color:#06111d;background:linear-gradient(135deg,#ffdf7e,#ff8fb8);cursor:pointer;font:inherit;font-size:.92rem;font-weight:900;box-shadow:0 18px 38px #00000042;touch-action:none;-webkit-user-select:none;user-select:none}.skyline-action-button.active{transform:translateY(2px) scale(.96);filter:brightness(1.08)}.skyline-finish-overlay{position:absolute;inset:50% auto auto 50%;z-index:4;width:min(360px,calc(100% - 32px));padding:22px;border:1px solid rgba(255,255,255,.14);border-radius:8px;background:#0b1222f0;color:#f5f7fb;text-align:center;transform:translate(-50%,-50%);box-shadow:0 26px 70px #00000057}.skyline-finish-overlay h3{margin:0 0 8px;font-size:2rem}.skyline-finish-overlay p{margin:0;color:#d8e2ff;font-weight:800}.skyline-finish-overlay small{display:block;margin-top:8px;color:#9bb2d6}.skyline-overlay-actions{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin-top:18px}.hidden{display:none!important}@media (max-width: 720px){#app{padding:16px}.header{flex-direction:column;align-items:stretch}.competition-header,.board-summary,.achievement-layout{grid-template-columns:1fr}.competition-header,.board-summary{flex-direction:column;align-items:stretch}.competition-header-actions{justify-items:stretch}.player-profile-card,.player-name-actions{grid-template-columns:1fr}.competition-hub{padding:0}.leaderboard-hub{padding:16px}.leaderboard-topline{align-items:flex-start;flex-direction:column}.board-tabs{grid-template-columns:1fr 1fr}.board-tabs .board-tab{min-height:52px;padding:0 10px}.board-summary h1{font-size:clamp(2.15rem,15vw,3.45rem)}.board-summary .button{width:100%}.platform-filter{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%}.platform-filter-button{min-width:0}.featured-player-grid{grid-template-columns:1fr}.featured-player-card{min-height:auto}.ranked-table-header{display:none}.ranked-table-row{grid-template-columns:46px minmax(0,1fr);gap:8px 12px;align-items:start}.rank-player,.rank-stat,.rank-platform,.rank-tier,.rank-date{grid-column:2}.rank-stat,.rank-tier,.rank-platform,.rank-date{justify-self:start}.top-bar{flex-direction:column;align-items:stretch;padding:12px 0 18px}.top-actions{justify-content:stretch}.top-actions .button{flex:1}.card{min-height:auto}.game-canvas{max-width:100%}.game-shell{grid-template-columns:1fr}.portrait-canvas{width:100%}.skyline-canvas{min-height:560px;aspect-ratio:auto}.skyline-hud{top:10px;left:10px;right:10px}.skyline-hud span{font-size:.78rem;padding:.36rem .52rem}.skyline-progress{top:92px;left:10px;right:10px}.skyline-feedback{top:112px}.skyline-joystick{left:18px;bottom:18px;width:132px;height:132px}.skyline-action-controls{right:18px;bottom:20px;flex-direction:column;gap:10px}.skyline-action-button{width:78px;height:78px;font-size:.82rem}.skyline-overlay-actions{grid-template-columns:1fr}}
