html,body{margin:0;padding:0}body{min-height:100dvh;background:radial-gradient(1100px 620px at 50% -12%,rgba(93,208,197,.12),transparent 60%),radial-gradient(900px 560px at 92% 8%,rgba(139,124,246,.12),transparent 55%),radial-gradient(760px 520px at 4% 18%,rgba(245,200,75,.08),transparent 55%),var(--bg-deep);color:var(--ink);font-family:var(--font);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility;padding:max(var(--safe-t),12px) max(var(--safe-r),12px) max(var(--safe-b),12px) max(var(--safe-l),12px)}.hub-shell{max-width:1040px;margin:0 auto;padding:clamp(1.5rem,5vw,3.5rem) clamp(.5rem,3vw,1.5rem) calc(132px + var(--safe-b))}.tab-panel.hidden{display:none}.tab-title{margin:0 0 .35rem;font-family:var(--font-rounded);font-size:clamp(1.9rem,7vw,2.6rem);font-weight:900;letter-spacing:-.02em}.tab-intro{margin:0 0 1.4rem;color:var(--ink-muted);font-size:.95rem;line-height:1.5}.hub-header{text-align:center;margin-bottom:clamp(1.75rem,6vw,3.25rem)}.hub-mark{display:inline-flex;align-items:center;gap:.6rem;margin-bottom:.85rem}.hub-mark img{width:44px;height:44px;border-radius:12px;box-shadow:var(--shadow-sm)}.hub-wordmark{margin:0;font-family:var(--font-rounded);font-size:clamp(2.6rem,12vw,5rem);font-weight:900;letter-spacing:-.03em;line-height:.9;background:linear-gradient(120deg,var(--accent) 10%,var(--accent-cool) 55%,var(--accent-violet));-webkit-background-clip:text;background-clip:text;color:transparent}.hub-kicker{margin:0 0 .5rem;text-transform:uppercase;letter-spacing:.42em;font-size:.72rem;font-weight:800;color:var(--ink-muted)}.hub-tagline{margin:.9rem auto 0;max-width:40ch;color:var(--ink-muted);font-size:clamp(.95rem,2.6vw,1.1rem);line-height:1.5}.game-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:clamp(.9rem,2.5vw,1.4rem)}.game-card{position:relative;display:flex;flex-direction:column;background:linear-gradient(180deg,var(--panel-2),var(--panel));border-radius:var(--r-lg);overflow:hidden;text-decoration:none;color:inherit;border:1px solid var(--line);box-shadow:var(--shadow-sm);transition:transform var(--dur) var(--ease),border-color var(--dur) var(--ease),box-shadow var(--dur) var(--ease)}@media(hover:hover){.game-card:hover{transform:translateY(-6px);border-color:var(--line-strong);box-shadow:var(--shadow)}}.game-card:focus-visible{outline:none;box-shadow:var(--ring),var(--shadow)}.game-card:active{transform:translateY(-2px) scale(.99)}.game-card.is-soon{opacity:.6;cursor:default}.game-thumb{position:relative;aspect-ratio:16 / 10;display:grid;place-items:center;font-size:3.4rem;font-weight:900;color:#080b118c;background-size:cover;background-position:center;isolation:isolate}.game-thumb:after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;background:linear-gradient(180deg,transparent 55%,rgba(8,11,17,.55))}.game-badge{position:absolute;top:.7rem;right:.7rem;z-index:1;display:inline-flex;align-items:center;gap:.35rem;padding:.3rem .7rem;border-radius:var(--r-pill);font-size:.7rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;background:#080b118c;color:var(--ink);-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px);border:1px solid var(--line-strong)}.game-badge.is-live{background:var(--accent);color:var(--accent-ink);border-color:transparent}.game-badge.is-live:before{content:"";width:6px;height:6px;border-radius:50%;background:var(--accent-ink)}.game-card-body{padding:1rem 1.15rem 1.2rem;display:flex;flex-direction:column;gap:.4rem;flex:1}.game-card-body h2{margin:0;font-size:1.25rem;font-weight:800;letter-spacing:-.01em}.game-card-body p{margin:0;color:var(--ink-muted);font-size:.9rem;line-height:1.45}.game-cta{margin-top:.7rem;align-self:flex-start;font-size:.8rem;font-weight:800;text-transform:uppercase;letter-spacing:.05em;color:var(--accent)}.is-soon .game-cta{color:var(--ink-dim)}.hub-footer{display:flex;flex-direction:column;align-items:center;gap:.9rem;margin-top:clamp(2.25rem,7vw,3.5rem);color:var(--ink-dim);font-size:.8rem}.install-button{display:none;align-items:center;gap:.5rem;padding:.7rem 1.2rem;border:1px solid var(--line);border-radius:var(--r-pill);background:var(--glass-tint);backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));-webkit-backdrop-filter:blur(var(--glass-blur)) saturate(var(--glass-saturate));box-shadow:inset 0 1px 0 var(--glass-rim-light),inset 0 -1px 0 var(--glass-rim-dark),var(--shadow-sm);color:var(--ink);font:inherit;font-weight:800;font-size:.85rem;cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring),border-color var(--dur) var(--ease)}.install-button.is-available{display:inline-flex}.install-button:hover{border-color:var(--accent)}.install-button:active{transform:scale(.97)}.tab-bar{position:fixed;left:50%;bottom:calc(14px + var(--safe-b));transform:translate(-50%);z-index:var(--z-tabbar);display:flex;gap:4px;padding:6px}body.game-open .tab-bar{display:none}.tab-item{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:72px;padding:7px 14px;border:0;border-radius:var(--r-pill);background:transparent;color:var(--ink-muted);font:inherit;font-size:11px;font-weight:700;cursor:pointer;transition:color var(--dur) var(--ease),background var(--dur) var(--ease),transform var(--dur-fast) var(--ease-spring)}.tab-item.is-active{color:var(--accent-ink);background:var(--accent)}.tab-item:active{transform:scale(.94)}.score-group{margin:0 0 clamp(.9rem,2.5vw,1.4rem);padding:1rem 1.15rem 1.15rem;border:1px solid var(--line);border-radius:var(--r-lg);background:linear-gradient(180deg,var(--panel-2),var(--panel));box-shadow:var(--shadow-sm)}.score-group h2{margin:0 0 .75rem;font-size:1.15rem;font-weight:800}.score-list{display:grid;gap:6px;margin:0;padding:0;list-style:none}.score-list li{display:grid;grid-template-columns:26px minmax(0,1fr) auto;align-items:center;gap:10px;padding:7px 10px;border-radius:var(--r-sm);background:#ffffff08;font-size:14px;font-weight:700}.score-list li.is-top{background:#f5c84b1f}.score-list .rank{color:var(--ink-dim);font-variant-numeric:tabular-nums}.score-list .val{color:var(--accent);font-variant-numeric:tabular-nums}.score-empty,.score-status{color:var(--ink-muted);font-size:13px}.score-subhead{margin:.85rem 0 .5rem;color:var(--ink-muted);font-size:11px;font-weight:800;letter-spacing:.06em;text-transform:uppercase}.settings-tab{display:grid;gap:.75rem;max-width:460px}.settings-tab .row-button{display:flex;align-items:center;justify-content:space-between;width:100%;padding:1rem 1.15rem;border:1px solid var(--line);border-radius:var(--r-md);background:var(--panel-2);color:var(--ink);font:inherit;font-weight:700;cursor:pointer;transition:transform var(--dur-fast) var(--ease-spring)}.settings-tab .row-button:active{transform:scale(.98)}.settings-tab .about{margin:.5rem 0 0;color:var(--ink-dim);font-size:13px;line-height:1.5}
