/* Star Games v15 clean update */
:root{--v15-cyan:#70eaff;--v15-purple:#8d68ff;--v15-deep:#030611;--v15-panel:#091126f2}

/* Hub game cards: identical footprint across every game. */
.sg-grid{align-items:stretch!important;grid-auto-rows:160px!important}
.sg-grid .sg-game{height:160px!important;min-height:160px!important;width:100%!important;box-sizing:border-box!important}
.sg-grid .sg-game>img,.sg-grid .sg-game>.placeholderGame{height:160px!important;min-height:160px!important;width:100%!important;object-fit:cover!important}
.sg-grid .sg-game .gameBadge{min-width:94px;text-align:center}

/* Keep Casual Star Clicker visually neutral instead of turning green. */
body.v15-casual [data-game="star_clicker"],body.v15-casual [data-game="star_clicker"].clicker-unlocked{border-color:#2a335a!important;background:#050817!important;box-shadow:none!important;filter:none!important}
body.v15-casual [data-game="star_clicker"] .gameBadge{border-color:#ffffff55!important;color:#fff!important;background:#000c!important}

/* Consistent launcher/loading experience. */
#v15Loader{position:fixed;inset:0;z-index:99990;display:none;place-items:center;background:radial-gradient(circle at 50% 45%,#19285c,#050711 55%,#010205);color:#fff;font-family:system-ui;overflow:hidden}
#v15Loader.show{display:grid}
#v15Loader:before{content:"";position:absolute;inset:-30%;background:conic-gradient(transparent,#70eaff55,transparent,#8d68ff66,transparent,#ffd34d44,transparent);animation:v15Spin 2.5s linear infinite;filter:blur(22px)}
#v15Loader:after{content:"";position:absolute;inset:0;background:repeating-radial-gradient(circle,transparent 0 17px,#ffffff0b 18px 19px);animation:v15Tunnel 1.1s linear infinite}
.v15-loader-card{position:relative;z-index:2;text-align:center;width:min(850px,92vw)}
.v15-loader-logo{font:1000 clamp(46px,10vw,110px)/.78 system-ui;letter-spacing:-.06em;text-shadow:0 0 20px #70eaff,0 0 45px #8d68ff}.v15-loader-logo span{display:block}.v15-loader-game{margin-top:22px;font:1000 clamp(18px,3vw,30px) system-ui;letter-spacing:.2em}.v15-loader-bar{width:min(520px,82vw);height:10px;margin:20px auto;border:1px solid #70eaff88;border-radius:999px;overflow:hidden;background:#ffffff12}.v15-loader-bar i{display:block;width:0;height:100%;background:linear-gradient(90deg,#70eaff,#8d68ff);animation:v15Load 1.15s ease forwards}
@keyframes v15Spin{to{transform:rotate(360deg)}}@keyframes v15Tunnel{to{transform:scale(1.12)}}@keyframes v15Load{to{width:100%}}

/* Mobile blocker. */
#v15MobileBlock{position:fixed;inset:0;z-index:1000000;display:none;place-items:center;padding:24px;background:radial-gradient(circle at 50% 30%,#172760,#040611 60%,#010205);color:#fff;text-align:center;font-family:system-ui}
#v15MobileBlock.show{display:grid}.v15-mobile-card{width:min(620px,94vw);padding:28px;border:1px solid #70eaff88;border-radius:24px;background:#070d20f4;box-shadow:0 30px 100px #000c}.v15-mobile-card h1{font-size:clamp(38px,10vw,74px);margin:0 0 12px}.v15-mobile-card p{font-size:18px;line-height:1.5;opacity:.84}.v15-mobile-actions{display:grid;gap:12px;margin-top:22px}.v15-mobile-actions button{min-height:58px;border-radius:14px;border:1px solid #70eaff88;background:#111c3c;color:#fff;font:1000 16px system-ui;cursor:pointer}.v15-mobile-actions .danger{border-color:#ff5a70;background:#ff315f1f}

/* Story-mode broken door. */
#stellDoor.v15-broken-door{width:98px!important;height:126px!important;filter:drop-shadow(0 0 24px #ff6fb9cc)!important;animation:v15BrokenDoor 2.6s ease-in-out infinite!important}
#stellDoor.v15-broken-door:after{content:"BROKEN";position:absolute;left:50%;bottom:-15px;transform:translateX(-50%);font:1000 9px system-ui;letter-spacing:.15em;color:#ffc1e5;text-shadow:0 0 9px #ff5fb4;white-space:nowrap}
@keyframes v15BrokenDoor{50%{transform:translateY(-5px) rotate(-1.2deg);filter:drop-shadow(0 0 34px #ff6fb9)}}

/* Star Racer */
#starRacer{position:fixed;inset:0;z-index:69000;display:none;background:#01030b;color:#eef5ff;font-family:system-ui;overflow:auto}
#starRacer.show{display:block}#starRacer *{box-sizing:border-box}.sr-shell{width:min(1540px,98vw);min-height:100vh;margin:auto;padding:12px}.sr-top{position:sticky;top:0;z-index:12;display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;padding:11px 14px;border:1px solid #70eaff55;border-radius:16px;background:#050817ef;backdrop-filter:blur(12px);box-shadow:0 16px 50px #0008}.sr-brand{font:1000 clamp(24px,4vw,44px)/1 system-ui;letter-spacing:.09em;text-shadow:0 0 18px #70eaff}.sr-btn{min-height:44px;border:1px solid #6e8cff88;border-radius:11px;padding:9px 13px;background:#121a33e8;color:#fff;font:900 12px system-ui;cursor:pointer}.sr-btn:hover{filter:brightness(1.18);transform:translateY(-1px)}.sr-btn.gold{border-color:#ffd34d;background:#ffd34d20;color:#fff5b6}.sr-btn.danger{border-color:#ff5a70;background:#ff5a701d}.sr-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:10px;margin-top:10px;height:calc(100vh - 90px)}.sr-stage{position:relative;min-height:0;border:1px solid #70eaff44;border-radius:18px;overflow:hidden;background:#01030b;box-shadow:0 22px 70px #0008}.sr-stage canvas{display:block;width:100%;height:100%;border:0;border-radius:0;background:#01030b;cursor:default}.sr-side{height:100%;overflow:auto;padding:14px;border:1px solid #6e8cff44;border-radius:18px;background:linear-gradient(180deg,#071127ee,#040713ee)}.sr-stat{display:flex;justify-content:space-between;gap:10px;padding:10px;border:1px solid #ffffff17;border-radius:11px;background:#ffffff08;margin:8px 0;font-size:12px}.sr-stat b{color:#bff8ff}.sr-overlay{position:absolute;inset:0;display:grid;place-items:center;padding:18px;background:#02040ddd;backdrop-filter:blur(7px);z-index:7}.sr-card{width:min(760px,94%);max-height:90%;overflow:auto;padding:24px;border:1px solid #70eaff77;border-radius:22px;background:linear-gradient(155deg,#0b1434f7,#050817f7);text-align:center;box-shadow:0 30px 100px #000c}.sr-card h1{font-size:clamp(42px,8vw,86px);margin:0;text-shadow:0 0 25px #70eaff}.sr-mode-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:18px 0}.sr-mode{min-height:150px;padding:18px;border:1px solid #70eaff66;border-radius:17px;background:#101a38;color:#fff;text-align:left;cursor:pointer}.sr-mode b{display:block;font-size:22px}.sr-mode span{display:block;margin-top:8px;opacity:.75;line-height:1.45}.sr-map-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(135px,1fr));gap:8px;margin:14px 0}.sr-map{padding:11px;border:1px solid #6e8cff55;border-radius:12px;background:#10172d;color:#fff;cursor:pointer;text-align:left}.sr-map.locked{opacity:.38;cursor:not-allowed}.sr-map.selected{border-color:#ffd34d;box-shadow:0 0 18px #ffd34d22}.sr-map small{display:block;opacity:.7;margin-top:3px}.sr-race-board{display:grid;gap:6px;text-align:left;margin:12px 0}.sr-race-row{display:grid;grid-template-columns:28px 1fr auto;gap:8px;padding:8px 10px;border:1px solid #ffffff16;border-radius:10px;background:#ffffff07}.sr-toast{position:absolute;left:50%;top:18px;z-index:8;transform:translate(-50%,-100px);padding:10px 14px;border:1px solid #53e07a;border-radius:12px;background:#07150ff4;font-weight:900;pointer-events:none}.sr-toast.show{animation:srToast 2.7s ease forwards}@keyframes srToast{12%,82%{transform:translate(-50%,0);opacity:1}100%{transform:translate(-50%,-75px);opacity:0}}

/* Stell final story */
#stellFinalStory{position:fixed;inset:0;z-index:88000;display:none;color:#eef7ff;font-family:"Trebuchet MS",system-ui;background:#02030a;overflow:auto}#stellFinalStory.show{display:block}.sfs-bg{position:fixed;inset:0;background-size:cover;background-position:center;filter:saturate(1.08) brightness(.62);transform:scale(1.03)}.sfs-shade{position:fixed;inset:0;background:radial-gradient(circle at 50% 40%,transparent,#010209d9 78%)}.sfs-shell{position:relative;z-index:2;min-height:100vh;display:grid;grid-template-columns:minmax(240px,34vw) minmax(0,1fr);align-items:end;gap:24px;padding:5vh 6vw}.sfs-stell{width:100%;max-height:78vh;object-fit:contain;object-position:center bottom;filter:drop-shadow(0 0 32px #b77cff)}.sfs-dialogue{align-self:end;margin-bottom:8vh;padding:22px;border:1px solid #70eaff88;border-radius:18px;background:#020713e8;box-shadow:0 20px 70px #000c,0 0 30px #70eaff1f;font-family:"Courier New",monospace}.sfs-kicker{font:1000 11px system-ui;letter-spacing:.24em;color:#70eaff}.sfs-text{min-height:120px;margin:12px 0;font-size:clamp(18px,2.1vw,28px);line-height:1.55;font-weight:800}.sfs-actions{display:flex;gap:10px;flex-wrap:wrap}.sfs-actions button{min-width:180px;min-height:48px;border:1px solid #70eaff88;border-radius:11px;background:#121a33;color:#fff;font:1000 13px system-ui;cursor:pointer}.sfs-actions .danger{border-color:#ff5a70;background:#ff315f1f}.sfs-actions .safe{border-color:#53e07a;background:#53e07a18}.sfs-fight{position:relative;z-index:2;min-height:100vh;display:grid;place-items:center;padding:14px;background:#01030bf1}.sfs-fight-shell{width:min(1180px,98vw)}.sfs-fight-head{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap;margin-bottom:9px}.sfs-health{flex:1;min-width:220px}.sfs-health-line{display:flex;justify-content:space-between;font-weight:1000}.sfs-health-bar{height:14px;border:1px solid #ffffff33;border-radius:999px;background:#ffffff10;overflow:hidden}.sfs-health-bar i{display:block;height:100%;width:100%;background:linear-gradient(90deg,#53e07a,#ffd34d)}.sfs-fight canvas{display:block;width:100%;height:auto;max-height:78vh;border:1px solid #70eaff55;border-radius:16px;background:#02040d}.sfs-rpg{width:min(1020px,96vw);padding:20px;border:1px solid #70eaff66;border-radius:20px;background:#071024f5;box-shadow:0 28px 90px #000d}.sfs-rpg-scene{display:grid;grid-template-columns:1fr 1fr;gap:20px;align-items:end;min-height:280px;padding:18px;border:1px solid #ffffff14;border-radius:15px;background:radial-gradient(circle at 50% 20%,#263b7d,#070b1c 66%)}.sfs-rpg-actor{text-align:center}.sfs-rpg-actor img{max-width:260px;max-height:210px;object-fit:contain;filter:drop-shadow(0 0 24px #8d68ff)}.sfs-rpg-plane{max-width:260px!important}.sfs-rpg-log{min-height:70px;padding:12px;margin:12px 0;border:1px solid #ffffff17;border-radius:12px;background:#02040d;font:800 15px/1.5 monospace}.sfs-attack-grid{display:grid;grid-template-columns:1fr 1fr;gap:9px}.sfs-attack-grid button{min-height:64px;border:1px solid #6e8cff77;border-radius:12px;background:#101936;color:#fff;font:900 13px system-ui;cursor:pointer;text-align:left;padding:10px}.sfs-choice{width:min(760px,96vw);padding:30px;text-align:center;border:1px solid #ff6fb977;border-radius:22px;background:#080719f5;box-shadow:0 30px 100px #000d}.sfs-choice img{max-width:300px;max-height:240px;object-fit:contain;filter:drop-shadow(0 0 30px #b77cff)}

@media(max-width:900px){.sr-layout{grid-template-columns:1fr;height:auto}.sr-stage{height:72vh}.sr-side{height:auto}.sfs-shell{grid-template-columns:1fr;padding:20px}.sfs-stell{max-height:42vh}.sfs-dialogue{margin-bottom:2vh}.sfs-rpg-scene{grid-template-columns:1fr 1fr}.sr-mode-grid{grid-template-columns:1fr}}

/* New-player mode choice: intentionally large, obvious buttons. */
#onboard .mode-picks{grid-template-columns:1fr 1fr!important;gap:14px!important;margin:18px 0!important}
#onboard .mode-pick{min-height:132px!important;padding:20px!important;border-width:2px!important;border-radius:18px!important}
#onboard .mode-pick b{font-size:24px!important;letter-spacing:.04em}
#onboard .mode-pick small{font-size:13px!important;line-height:1.45!important}
@media(max-width:650px){#onboard .mode-picks{grid-template-columns:1fr!important}}
body.v15-casual #stellDoor,body.v15-stell-killed #stellDoor{display:none!important}

/* v17 onboarding mode selector: lives in the base Create Player markup so it cannot miss DOM timing. */
#onboard .mode-picks{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin:14px 0}
#onboard .mode-pick{min-height:112px;padding:15px;border:2px solid #2a335a;border-radius:15px;background:#101936;color:#fff;text-align:left;cursor:pointer;position:relative;transition:transform .18s ease,border-color .18s ease,box-shadow .18s ease}
#onboard .mode-pick:hover{transform:translateY(-2px)}
#onboard .mode-pick.selected{border-color:#4de7ff;background:#4de7ff18;box-shadow:0 0 0 1px #70eaff inset,0 0 28px #70eaff33}
#onboard .mode-pick.selected:after{content:"SELECTED";position:absolute;right:10px;top:10px;font-size:9px;letter-spacing:.12em;color:#bff8ff;font-weight:1000}
#onboard .mode-pick b{display:block;font-size:19px;padding-right:62px}
#onboard .mode-pick small{display:block;opacity:.76;margin-top:6px;line-height:1.4}
#onboard .mode-help{opacity:.75;font-size:12px;margin-top:-4px}
@media(max-width:650px){#onboard .mode-picks{grid-template-columns:1fr}}
