/* Art-led arcade shell. Games retain their own worlds and timing engines. */
[hidden] { display: none !important; }
:root { --night:#070b18; --panel:#10182b; --panel-2:#162139; --muted:#b1bed6; --line:rgba(170,193,230,.17); --cyan:#67e6f5; --yellow:#ffd974; }
body { background:radial-gradient(ellipse at 65% 0, #172244 0, #080d1c 55%); line-height:1.5; }
.stars { opacity:.035; }
.app-shell { width:min(1500px,calc(100% - 32px)); border-color:var(--line); border-radius:22px; background:#0a1020; box-shadow:0 24px 90px #0005; }
.topbar { background:#0d1426; min-height:84px; }
.topbar::after, .mission-hero::before, .mission-hero::after { display:none; }
.brand-mark { box-shadow:none; width:46px; height:46px; }
.brand-copy small { font-size:.75rem; letter-spacing:.12em; }
.brand-copy em { color:var(--cyan); text-shadow:none; }
.ticket-wallet small,.profile-copy small { font-size:.75rem; letter-spacing:.025em; }
.ticket-wallet strong,.profile-copy strong { font-size:.9375rem; }
.ticket-icon { box-shadow:none; }
.sidebar { background:#0b1222; }
.nav-button { font-size:.875rem; min-height:50px; }
.nav-button.is-active { color:var(--cyan); background:#183146; border-color:#315163; box-shadow:none; }
.nav-button.is-active>span { color:var(--cyan); }
.nav-count { font-size:.75rem; background:#4f416d; box-shadow:none; }
.level-row span,.level-row strong,.level-card small,.privacy-copy { font-size:.75rem; color:var(--muted); }
.content { padding:28px clamp(20px,3vw,38px) 40px; }
.view-heading h1 { font-family:inherit; text-transform:none; font-size:clamp(1.65rem,3vw,2.25rem); letter-spacing:-.04em; line-height:1.2; }
.view-heading h1 span { color:var(--cyan); }
.view-heading p,.section-heading p,.mission-copy>p,.format-card>p,.prize-heading p,.shop-toolbar p,.profile-note { font-size:1rem; line-height:1.55; }
.section-kicker { font-size:.75rem!important; letter-spacing:.1em; }
.profile-status { display:none; }
.mission-row { grid-template-columns:minmax(0,1fr) 240px; gap:18px; margin-bottom:32px; }
.mission-hero { background:linear-gradient(120deg,#163047,#111b32 80%); border-color:#375168; box-shadow:none; }
.mission-copy { padding:24px; }
.mission-copy h2 { font-family:inherit; text-transform:none; font-size:clamp(1.5rem,2.6vw,2rem); line-height:1.2; margin:10px 0; letter-spacing:-.035em; }
.mission-meta { flex-wrap:wrap; gap:8px; }
.mission-meta span { font-size:.875rem; letter-spacing:.02em; text-transform:none; }
.mission-meta strong { font-size:.75rem; color:var(--muted); background:transparent; border:0; padding:0; letter-spacing:0; text-transform:none; }
.mission-settings { gap:8px 18px; margin:18px 0; }
.mission-settings span { padding:0; min-width:80px; background:none; border:0; }
.mission-settings small,.mission-settings strong { font-size:.875rem; letter-spacing:0; text-transform:none; }
.mission-settings small { color:var(--muted); }
.launch-button,.cabinet-button,.small-launch,.save-profile { font-size:.9375rem; min-height:46px; background:var(--cyan); box-shadow:none; border:0; border-radius:10px; }
.launch-button:hover,.cabinet-button:hover:not(:disabled),.small-launch:hover,.save-profile:hover { box-shadow:none; }
.launch-button span { color:inherit; }
.lobby-avatar { border-color:var(--line); background:radial-gradient(ellipse at 50% 70%,#253954,#111a2e 70%); }
.lobby-avatar-copy small,.lobby-avatar-copy strong,.avatar-shop-link { font-size:.875rem; }
.lobby-avatar-orbit,.avatar-orbit { opacity:.35; }
.section-heading h2,.shop-toolbar h2 { font-size:1.25rem; letter-spacing:-.02em; }
.cabinet-count { font-size:.875rem; color:var(--muted); }
.cabinet-grid { gap:20px; }
.cabinet { border:1px solid var(--line); border-radius:15px; box-shadow:none; background:#111a2c; overflow:hidden; transition:transform .18s,border-color .18s; }
.cabinet-live:hover { transform:translateY(-3px); border-color:#5b8c9d; box-shadow:0 12px 28px #0003; }
.cabinet-screen.cabinet-cover-screen { height:auto; aspect-ratio:3 / 1; margin:0; border:0; border-radius:0; }
.cabinet-screen.cabinet-cover-screen img { width:100%; height:100%; object-fit:contain; display:block; transform:none; }
.cabinet-body { padding:18px; }
.cabinet-title h3 { font-size:1.25rem; font-family:inherit; text-transform:none; line-height:1.25; }
.cabinet-title small { font-size:.75rem; letter-spacing:.02em; line-height:1.5; }
.cabinet-body>p { font-size:1rem; line-height:1.5; color:var(--muted); min-height:4.5em; }
.online-badge { display:none; }
.cabinet-button { width:100%; background:#1d3044; color:#b8f4fa; border:1px solid #35566a; }
.cabinet-button:hover { background:#244459; }
.coming-soon-strip { display:flex; flex-wrap:wrap; gap:12px 24px; margin-top:28px; padding:20px 0 0; border-top:1px solid var(--line); color:var(--muted); font-size:.875rem; }
.coming-soon-strip strong { color:#e8effc; }
.stat-grid article { box-shadow:none; background:#111a2c; }
.stat-grid small,.stat-grid span,.result-row small,.result-ring small,.card-heading small { font-size:.875rem; }
.latest-result,.format-card,.prize-info,.mission-card { background:#111a2c; box-shadow:none; }
.result-ring { border:0; border-radius:50%; background:conic-gradient(var(--cyan) var(--accuracy,0%),#26324a 0); position:relative; isolation:isolate; }
.result-ring::before { content:""; position:absolute; inset:9px; border:0; transform:none; background:#111a2c; border-radius:50%; z-index:-1; }
.growth-history { display:grid; gap:12px; margin:22px 0; }
.growth-row { padding-bottom:12px; border-bottom:1px solid var(--line); display:grid; grid-template-columns:1fr auto; gap:4px 12px; font-size:.875rem; }
.growth-row small { grid-column:1/-1; color:var(--muted); font-size:.75rem; }
.mission-card p,.mission-goal-row,.mission-card-facts span,.mission-state,.mission-reward { font-size:.875rem; }
.mission-card h3 { font-size:1.125rem; }
.shop-filters { display:flex; align-items:end; flex-wrap:wrap; gap:16px; padding:16px; background:#111a2c; border:1px solid var(--line); border-radius:12px; margin:24px 0; }
.shop-filters label { display:grid; gap:6px; font-size:.875rem; min-width:150px; }
.shop-filters select { min-height:44px; color:var(--ink); background:#0c1324; border:1px solid #526078; border-radius:8px; padding:8px 30px 8px 12px; }
.shop-filters p { font-size:.875rem; color:var(--muted); margin:0 0 10px auto; }
.prize-card { background:#111a2c; box-shadow:none; }
.prize-card h3 { font-size:1rem; }
.prize-card p,.prize-card button,.prize-info p,.prize-info small,.prize-status { font-size:.875rem; }
.prize-card button { min-height:44px; }
.avatar-stage-copy { max-width:45%; }
.avatar-stage-copy h2 { font-size:1.4rem; text-transform:none; font-family:inherit; }
.avatar-stage-copy p,.equipped-label,.avatar-nameplate small { font-size:.875rem; }
.field>span,.field>small,.profile-readout small,.profile-readout strong { font-size:.875rem; }
.field input,.field select { font-size:1rem; min-height:48px; }
.dialog-heading p { font-size:1rem; }
.game-launch-dialog { width:min(540px,calc(100% - 32px)); border:1px solid #465c76; background:#111c31; color:var(--ink); border-radius:20px; padding:26px; }
.game-launch-dialog::backdrop { background:#030817cb; backdrop-filter:blur(8px); }
.game-launch-dialog h2 { font-size:1.75rem; margin:10px 0; letter-spacing:-.03em; }
.game-launch-dialog p { color:var(--muted); font-size:1rem; }
.game-launch-dialog img { width:calc(100% + 52px); margin:-26px -26px 18px; aspect-ratio:3/1; object-fit:contain; border-radius:20px 20px 0 0; }
.dialog-actions { display:flex; gap:12px; margin-top:20px; flex-wrap:wrap; }
.dialog-actions button { flex:1; }
.quiet-button { min-height:46px; padding:10px 16px; background:#202f47; color:#ecf3ff; border:1px solid #56637a; border-radius:10px; cursor:pointer; font:inherit; }
.preview-outfit { position:relative; width:240px; height:240px; margin:auto; }
.preview-outfit>img { width:100%; height:100%; object-fit:contain; margin:0; aspect-ratio:auto; border-radius:0; }
.cosmetic-art { display:block; background-image:url('../art/avatar-collectibles.png'); background-size:400% 200%; background-repeat:no-repeat; }
.cosmetic-layer { position:absolute; pointer-events:none; }
.cosmetic-layer .cosmetic-art { width:100%; height:100%; }
.game-launch-dialog button:disabled { opacity:.45; cursor:not-allowed; }
.avatar-composite { position:absolute; width:220px; height:220px; right:0; bottom:0; }
.lobby-avatar .avatar-composite { z-index:2; }
.avatar-composite>img { width:100%; height:100%; object-fit:contain; filter:var(--avatar-filter,none); }
.avatar-stage .avatar-composite { width:280px; height:280px; right:0; bottom:0; }
.item-art { width:90px; height:90px; margin:auto; }
.game-return-bar { display:flex; align-items:center; justify-content:space-between; gap:12px; padding:8px 16px; min-height:54px; background:#101a2c; border-bottom:1px solid #364662; font-size:.875rem; }
.game-return-bar button { min-height:38px; padding:6px 14px; color:#dcfaff; background:#21384d; border:1px solid #47718a; border-radius:8px; cursor:pointer; font:inherit; }
.cabinet-tickets{color:#ffe46b;font-weight:750;font-size:.875rem}.ticket-rules{display:grid;gap:10px;padding-left:20px;color:#d9e6f7;font-size:.875rem}.ticket-rules strong{color:#ffe46b}.ticket-receipts{max-height:36svh;overflow:auto}.ticket-receipt{padding:12px 0;border-top:1px solid #364662}.ticket-receipt>strong{display:flex;justify-content:space-between;gap:16px;font-size:1rem}.ticket-receipt>strong>span{color:#ffe46b;white-space:nowrap}.ticket-receipt p{font-size:.875rem!important;margin:6px 0!important}.game-launch-dialog .ticket-visit-total{color:#ffe46b;font-size:1.25rem;font-weight:750}
.ticket-rules strong{display:inline;margin:0}.prize-info h2{font-size:1.1rem;margin:10px 0 0}
@media(max-width:600px){#cabinetPlaying{display:none}.game-return-bar{gap:8px;padding-inline:8px}.game-return-bar button{padding-inline:8px;font-size:.875rem}.cabinet-tickets{font-size:.875rem}}
.owned-ribbon,.price-tag,.prize-status,.mission-plan-bar small,.mission-card-facts small,.mission-reward small,.mission-plan-reward small,.mission-section-heading small { font-size:.75rem; }
.shop-toolbar>span,.mission-plan-bar strong,.mission-section-heading>span { font-size:.875rem; }
#standaloneGameFrame { height:calc(100% - 55px); }
@media(min-width:1101px) { .cabinet-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(min-width:1450px) { .cabinet-grid { grid-template-columns:repeat(3,minmax(0,1fr)); } }
@media(max-width:780px) {
 .app-shell { width:100%; margin:0; border:0; border-radius:0; }
 .content { padding:22px 18px 35px; }
 .topbar { gap:12px; padding:12px 16px; flex-wrap:wrap; }
 .top-actions { gap:8px; }
 .ticket-wallet { display:flex; padding:6px 9px; min-height:44px; }
 .ticket-wallet small,.ticket-icon { display:none; }
 .ticket-wallet strong::after { content:' tickets'; font-size:.75rem; color:var(--yellow); }
 .brand-copy small { font-size:.75rem; }
 .profile-chip { padding:5px 9px; border-radius:12px; }
 .profile-copy { display:block; min-width:0; max-width:110px; }
 .profile-copy small { display:none; }
 .profile-copy strong { font-size:.75rem; overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
 .nav-button { font-size:.75rem; min-height:58px; }
 .sidebar { padding-bottom:max(8px,env(safe-area-inset-bottom)); }
 .mission-row { grid-template-columns:minmax(0,1fr) 190px; }
 .avatar-composite { width:190px; height:190px; }
 .mission-settings { display:flex; }
 .mission-copy { padding:20px; }
 .cabinet-body>p { min-height:0; }
}
@media(max-width:540px) {
 .mission-row { grid-template-columns:1fr; }
 .lobby-avatar { min-height:185px; }
 .lobby-avatar-copy { max-width:48%; }
 .avatar-composite { width:190px; height:190px; right:8px; bottom:-8px; }
 .avatar-shop-link { right:auto; width:auto; left:16px; }
 .brand-copy strong { font-size:1.4rem; }
 .brand-mark { display:none; }
 .avatar-stage .avatar-composite { width:230px; height:230px; }
 .avatar-stage { min-height:360px; }
 .avatar-stage-copy { max-width:65%; }
 .shop-filters label { flex:1; min-width:120px; }
 .shop-filters p { margin:0; width:100%; }
 .game-return-bar span { overflow:hidden; text-overflow:ellipsis; white-space:nowrap; }
}
