@import url('https://fonts.googleapis.com/css2?family=Baloo+2:wght@600;700;800&family=Nunito:wght@400;600;700;800;900&display=swap');
/* Shared public theme, loaded after each page's structural stylesheet. */
/* Leave room for a focused field's label and focus ring below the fixed header. */
html { scroll-padding-top:calc(var(--navbar-height,75px) + 48px); }
body:not(.page-home) :is(.download-container,.leaderboard-container,.verify-card,.profile-container) { animation:none; opacity:1; }
.page-info .info-jumps { display:flex; flex-wrap:wrap; justify-content:center; gap:12px; margin-top:25px; }
.info-jumps a { color:#fff3d0; background:#141936d9; border:1px solid #ffcc5050; border-radius:999px; padding:10px 18px; text-decoration:none; font-weight:800; }
.page-info :is(#overview,#features,#crew) { scroll-margin-top:100px; }
body:not(.page-home) :is(.hero-section,.download-header,.leaderboard-header,.stat-card,.leaderboard-table-wrapper,.auth-required-section,.verification-required-section,.platform-card-single,.requirements-card,.guide-step,.release-notes) { opacity:1!important; animation:none!important; transform:none!important; }
.page-store .chapter-card { width:min(100%,580px); flex-basis:auto; max-width:100%; min-width:0; }
.page-auth .password-requirements .req-unmet { color:#b9c3df; }
body { font-family:'Nunito',Arial,sans-serif; background:#090b24; color:#f8f5ee; }
body:not(.page-home) { background:#090b24 url('../images/astro-hero-cartoon.png') center top / 100% auto no-repeat; }
body:not(.page-home) :is(.scene,.download-scene,.verify-section,.terms-section) { background:linear-gradient(180deg,#090b2440,#090b24 780px); min-height:100svh; padding:130px max(24px,5vw) 80px; position:relative; }
body:not(.page-home) :is(.scene,.download-scene,.verify-section)::before { display:none; }
body:not(.page-home) :is(h1,h2,h3,.header-title,.store-header,.section-title,.npc-name,.platform-name) { font-family:'Baloo 2',sans-serif; letter-spacing:-.025em; text-shadow:none; line-height:1.12; }
body:not(.page-home) :is(h1,.header-title,.store-header) { font-size:clamp(2.7rem,5vw,4.8rem); color:#ffcc50; }
body:not(.page-home) h2 { font-size:clamp(1.8rem,3vw,2.6rem); color:#fff9ec; }
body:not(.page-home) :is(button,input,select,textarea,.btn-primary,.btn-secondary,.btn-download,.stat-value,.stat-label,.card-theme,.card-chapter-label) { font-family:'Nunito',Arial,sans-serif; }
body:not(.page-home) p { line-height:1.75; }
body:not(.page-home) :is(.content,.download-container,.leaderboard-container,.profile-container) { width:100%; max-width:1180px; margin-inline:auto; }
.navbar { position:fixed; background:#06081df0; border-bottom:1px solid #ffffff1c; box-shadow:none; backdrop-filter:blur(18px); padding:14px 32px; }
.navbar-logo { width:110px; height:46px; overflow:hidden; display:flex; align-items:center; flex-shrink:0; }
.navbar-logo img { width:125px; height:84px; object-fit:cover; filter:none; }
.navbar-menu { gap:10px; }
.nav-link,.btn-login,.btn-signup { font-family:'Nunito',Arial,sans-serif; font-weight:900; font-size:.74rem; letter-spacing:.08em; text-transform:uppercase; border-radius:999px; }
.nav-link.active { border-radius:999px; color:#ffcc50; border-color:#ffcc5070; box-shadow:none; }
.btn-signup { background:#ffcc50; color:#15132f; border-color:#ffdc80; }
.btn-login { color:#ffcc50; border-color:#ffcc5080; }
.nav-btn-link:is(.btn-login,.btn-signup) { display:inline-flex; align-items:center; justify-content:center; line-height:normal; white-space:nowrap; }
.navbar-right { gap:8px; }
body:not(.page-home) :is(.info-container,.info-card,.npc-card,.stat-card,.leaderboard-table-wrapper,.auth-container,.settings-card,.profile-header,.requirements-card,.platform-card-single,.verification-required-section,.auth-required-section,.release-notes,.verify-card,.terms-container) { background:linear-gradient(140deg,#202552f5,#101433fa); border:1px solid #adb7ff30; border-radius:26px; box-shadow:0 18px 45px #00000030; }
body:not(.page-home) :is(.info-container,.info-card,.npc-card) { opacity:1; transform:none; }
body:not(.page-home) :is(.hero-section,.leaderboard-header,.download-header) { margin-bottom:40px; padding:28px 0; }
body:not(.page-home) :is(.header-subtitle,.section-subtitle,.store-subtext) { color:#e2e4f5; font-size:1.05rem; text-shadow:0 2px 12px #090b24; }
.page-info .info-container { padding:36px; gap:40px; }
.page-info .info-text h1 { font-size:2.5rem; }
.page-info .info-image img { border-radius:22px; border:0; box-shadow:none; }
.page-info .info-card { padding:32px; }
.page-info .npc-section { margin-top:70px; }
.page-info .npc-grid { gap:26px; }
.page-info .npc-card { overflow:hidden; }
.page-info .npc-image-placeholder { background:radial-gradient(ellipse at bottom,#6655ae80,#172040); border-bottom:1px solid #ffffff18; }
.page-info .npc-name { color:#ffcc50; }
.page-info .npc-role { color:#79e3f6; }
.page-info .npc-purpose { background:#ffffff08; border-color:#ffffff18; border-radius:12px; }
.page-store .store-header { text-align:center; margin:25px 0 20px; }
.page-store .store-subtext { max-width:670px; margin:0 auto 32px; }
.page-store .store-unlock-notice { border:1px solid #ffcc5040; background:#151937eb; border-radius:16px; }
.page-store .chapter-cards-row { max-width:1100px; width:100%; margin:36px auto; }
.page-store .chapter-card { border-radius:28px; border:2px solid #ffcc5060; box-shadow:0 22px 60px #0005; }
.page-store .card-price-badge { border-radius:14px; background:#ffcc50; color:#16142b; }
.page-store .checkout-modal { border-radius:24px; }
.page-leaderboard .stats-overview { gap:22px; }
.page-leaderboard .stat-card { padding:28px; }
.page-leaderboard .stat-value { color:#ffcc50; text-shadow:none; font-weight:900; }
.page-leaderboard .stat-label { color:#c2c8e5; letter-spacing:.08em; }
.page-leaderboard .leaderboard-table-wrapper { overflow-x:auto; }
.page-leaderboard .leaderboard-table th { background:#23294e; color:#83e5f6; font-family:'Nunito',sans-serif; letter-spacing:.05em; }
.page-leaderboard .leaderboard-table td { border-color:#ffffff10; }
.page-leaderboard .player-avatar { border-radius:15px; background:#ffffff0c; }
.page-download :is(.platform-card-single,.verification-required-section,.auth-required-section) { padding:36px; max-width:800px; margin-inline:auto; }
.page-download .auth-benefits { background:#ffffff06; border:1px solid #ffffff15; border-radius:16px; }
.page-download .requirements-card { padding:30px; }
.page-download .guide-step { background:#171c3f; border:1px solid #ffffff18; border-radius:18px; }
.page-download .step-number { background:#ffcc50; color:#1b1737; box-shadow:none; }
.page-download .version-badge { background:#141936; border:1px solid #ffffff26; border-radius:999px; }
body:not(.page-home) :is(.sign-in-btn,.btn-primary,.btn-download,.btn-solid) { background:linear-gradient(#ffda72,#ffb735); border:1px solid #ffe49b; color:#20162e; border-radius:14px; box-shadow:0 5px 0 #a76525; font-weight:900; letter-spacing:.04em; }
body:not(.page-home) :is(.btn-secondary,.btn-ghost) { border:1px solid #a4b7f65c; border-radius:14px; color:#e6ebff; background:#ffffff08; }
.page-auth .scene { align-items:center; justify-content:center; padding-inline:max(24px,5vw); }
.page-auth .auth-container { max-width:540px; padding:36px 40px; text-align:left; }
.page-auth .auth-container h1 { font-size:2.8rem; margin-bottom:20px; }
.page-auth .auth-container::before { content:'YOUR NEXT ADVENTURE STARTS HERE'; display:block; font-size:.66rem; letter-spacing:.16em; font-weight:900; color:#80e4f8; margin-bottom:14px; }
.page-auth .auth-tabs { background:#090e29; border:1px solid #ffffff15; border-radius:14px; padding:5px; margin-bottom:24px; }
.page-auth .auth-tab { border-radius:10px; font-size:.9rem; padding:12px; }
.page-auth .auth-tab.active { background:#ffcc50; color:#17132d; }
.page-auth .auth-tab.active::after { display:none; }
body:not(.page-home) .form-group input { background:#090e29; border:1px solid #9ca8e445; border-radius:12px; color:#fff; min-height:50px; }
body:not(.page-home) .form-group input::placeholder { color:#aeb8d7; }
body:not(.page-home) .form-group input:focus { outline:2px solid #7fdcef; outline-offset:2px; box-shadow:none; }
.page-auth :is(.dob-label,.avatar-picker-label,.checkbox-text,.forgot-desc,.dob-hint) { color:#cbd2ea; }
.page-auth .avatar-picker-group { text-align:center; }
.page-auth .avatar-picker-label { text-align:center; }
.page-auth .avatar-picker { display:flex; justify-content:center; align-items:stretch; flex-wrap:wrap; gap:8px; width:100%; margin-inline:auto; }
.page-auth .avatar-option { flex:0 1 82px; min-width:0; padding:10px 4px; border-radius:13px; }
.page-auth .avatar-name { font-size:.6rem; }
.page-auth .password-requirements { border-radius:12px; background:#090e2970; }
.page-auth .show-btn { color:#83e5f6; }
.page-auth :is(.forgot-back a,.forgot-password-link a,.terms-link) { color:#ffda72; }
.page-auth .forgot-container { margin:0; }
.page-auth .forgot-icon { font-size:2.5rem; text-align:center; }
.page-auth .step-indicator { justify-content:center; }
.page-terms .terms-container { color:#d9def1; padding:40px; }
.page-terms .terms-container h2 { color:#ffcc50; font-size:1.6rem; }
.page-profile .settings-tab { font-family:'Nunito',sans-serif; border-radius:12px; }
.page-profile .settings-tab.active { background:#ffcc50; color:#17132d; }
.page-verify .verify-card::before { display:none; }
.site-footer { display:flex; justify-content:space-between; align-items:center; gap:24px; padding:32px max(24px,5vw); background:#07091e; border-top:1px solid #ffffff13; font-size:.8rem; color:#aab2d1; }
.site-footer strong { font-family:'Baloo 2',sans-serif; font-size:1.4rem; color:#ffcc50; }
.site-footer nav { display:flex; flex-wrap:wrap; gap:20px; }
.site-footer a { color:#c8d3f3; text-decoration:none; }
:is(a,button):focus-visible { outline:3px solid #72dfef; outline-offset:4px; }
@media(max-width:1100px) { .navbar-menu { gap:2px; } .nav-link { padding:10px 8px; } .preview-badge { display:none; } .navbar-collapse { margin-left:14px; } }
@media(max-width:900px) {
    .hamburger-btn { display:flex; } .navbar-left { width:100%; justify-content:space-between; }
    .navbar-collapse { display:none; position:absolute; top:100%; left:0; right:0; margin:0; padding:20px; background:#0b0e29; flex-direction:column; align-items:stretch; max-height:calc(100svh - 75px); overflow-y:auto; }
    .navbar-collapse.nav-open { display:flex; } .navbar-menu { flex-direction:column; align-items:stretch; gap:8px; }
    .navbar-menu li,.nav-link { width:100%; } .navbar-right { margin:16px 0 0!important; flex-wrap:wrap; }
    .page-info .info-container { flex-direction:column; } .page-info :is(.info-text,.info-image) { width:100%; }
}
@media(max-width:600px) {
    body:not(.page-home) { background-size:auto 800px; background-position:65% top; }
    body:not(.page-home) :is(.scene,.download-scene,.verify-section,.terms-section) { padding:100px 18px 50px; }
    .navbar { padding:10px 18px; } .page-auth .auth-container { padding:26px 22px; max-width:100%; }
    .page-auth .auth-container h1 { font-size:2.3rem; }
    .page-info :is(.info-container,.info-card),.page-terms .terms-container { padding:24px; }
    .page-info :is(.section-row,.npc-grid) { display:grid; grid-template-columns:1fr; }
    .page-leaderboard .stats-overview { display:grid; grid-template-columns:1fr; gap:12px; }
    .page-leaderboard .stat-card { padding:18px; }
    .page-leaderboard .leaderboard-table { min-width:680px; }
    .page-download :is(.requirements-grid,.guide-steps) { grid-template-columns:1fr; }
    .page-download :is(.platform-card-single,.verification-required-section,.auth-required-section) { padding:24px; }
    .page-download :is(.auth-actions,.verification-actions) { flex-direction:column; gap:18px; }
    .site-footer { flex-direction:column; align-items:flex-start; }
}
@media(prefers-reduced-motion:reduce) { body:not(.page-home) *,body:not(.page-home) *::before { animation:none!important; transition:none!important; } }
