/* Minimal-text layer: icons, pictures and numbers carry the interface. Loaded last. */
.sr-only{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.game-panel svg:not(#flight-coin-icon),.hud svg:not(#flight-coin-icon),.flight-progress svg:not(#flight-coin-icon),.start-overlay svg,.guide-dialog svg,.details svg,.topbar .install-button svg,.menu-feedback svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none;vertical-align:middle}
.icon-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.icon-button svg{width:22px;height:22px}
.icon-only>span:not(.count-pill){position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.primary-button.icon-button svg{width:26px;height:26px;stroke-width:2.2}
/* Hover/focus stay violet: the old light-green hover hid the white icon. */
.primary-button:hover{background:linear-gradient(#ad82ff,#8d5ef4);color:#fff;transform:translateY(-1px)}
.primary-button:focus-visible{outline:3px solid #fff;outline-offset:-5px;background:linear-gradient(#ad82ff,#8d5ef4);color:#fff}
.primary-button:disabled,.primary-button:disabled:hover{background:linear-gradient(#c9b4ff,#b39cf2);color:#fff;transform:none;cursor:default}
.start-button{min-width:88px}
.count-pill{display:inline-flex;align-items:baseline;font-variant-numeric:tabular-nums;white-space:nowrap}
.count-pill b{font-weight:800}.count-pill em{font-style:normal;opacity:.55;margin:0 2px}
.coin-amount{display:inline-flex;align-items:center;gap:3px;font-variant-numeric:tabular-nums}
.coin-amount i{font-style:normal}
.lock-hint{display:inline-flex;align-items:center;gap:5px;font-weight:800}
.lock-hint svg{width:17px;height:17px}.lock-hint img{width:26px;height:26px;border-radius:7px;object-fit:cover}
.lock-hint b{padding:1px 7px;border-radius:999px;background:#ffffff8c;font-size:12px}
.band-chip{display:inline-block;padding:1px 8px;border-radius:999px;background:#e5dcff;color:#3e2b7a;font-size:12px;font-weight:800;letter-spacing:.04em}
/* Bottom dock: icons only, labels stay for screen readers */
.bottom-menu .menu-nav-button .nav-label{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.bottom-menu .menu-nav-button .nav-icon svg{width:27px;height:27px}
.bottom-menu .menu-nav-button{justify-content:center}
.topbar .install-button{padding:8px 10px;min-width:44px;justify-content:center}
.topbar .install-button span{font-size:19px}
/* World map */
.continue-adventure{display:flex;align-items:center;gap:14px}
.continue-art img{width:72px;height:72px;object-fit:contain;flex:none}
.continue-copy{display:flex;flex-direction:column;gap:6px;flex:1;min-width:0}
.continue-copy strong{font-size:22px;line-height:1.1}
.continue-meta{display:flex;align-items:center;gap:10px;font-size:14px}
.continue-meta b{padding:2px 8px;border-radius:999px;background:#ffffff33}
.continue-meta svg{width:20px;height:20px}
.continue-copy .menu-progress{width:100%}
.banner-count{display:flex;align-items:center;gap:8px;font-size:20px}
.banner-count svg{width:22px;height:22px}
.course-gate-note{display:flex;justify-content:center}
.world-progress{display:flex;align-items:center;gap:8px}
.world-progress .menu-progress{flex:1;min-width:60px}
.course-world-copy strong{font-size:17px}
.course-next-band{display:flex;align-items:center;gap:12px;justify-content:space-between}
.course-endless-card>span{display:flex;flex-direction:column;gap:6px}
.world-preview-lock{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center}
.world-preview-lock .lock-hint svg{width:22px;height:22px}.world-preview-lock .lock-hint img{width:40px;height:40px}
.world-preview-count{display:inline-flex;align-items:center;gap:6px;justify-content:center;font-weight:700}
/* Lesson list on the world screen: number, the level's pictures, stars */
.lesson-stop{display:flex;align-items:center;gap:12px}
.lesson-stop>span:last-of-type{display:flex;flex-direction:column;gap:4px;flex:1;min-width:0}
.lesson-thumbs{display:flex;gap:4px;flex-wrap:wrap}
.lesson-thumbs img{width:30px;height:30px;object-fit:contain;border-radius:7px;background:#ffffff8a}
.lesson-stop[disabled] .lesson-thumbs img{filter:grayscale(1) brightness(.4) contrast(.6);opacity:.55}
.lesson-stop .lesson-stars{letter-spacing:.06em}
.boss-map-image img{width:44px;height:44px;object-fit:contain}
.start-footnote{display:inline-flex;align-items:center;gap:6px;justify-content:center}
.start-footnote svg{width:16px;height:16px}
.home-links .icon-button{min-width:52px}
.home-island-button span{font-size:22px;font-weight:800}
/* HUD */
.hud-count{display:inline-flex;align-items:center;gap:5px;font-variant-numeric:tabular-nums}
.hud-icon{width:16px;height:16px}
.move-controls{justify-content:space-between}
.target{gap:0}
/* Panels: tutorial, results, pause, boss */
.panel-row{display:flex;gap:16px;justify-content:center;flex-wrap:wrap;margin:8px 0 12px}
.panel-row>span{display:inline-flex;align-items:center;gap:6px;font-weight:800;font-variant-numeric:tabular-nums}
.panel-row svg{width:20px;height:20px}
.panel-actions{display:flex;flex-direction:column;gap:10px;align-items:stretch}
.panel-actions .primary-button,.panel-actions .secondary-button{display:inline-flex;align-items:center;justify-content:center;gap:8px}
.result-medals span{font-size:30px}
.result-review summary{display:flex;align-items:center;gap:8px;list-style:none;cursor:pointer}
.result-review summary::-webkit-details-marker{display:none}
.review-list button{display:inline-flex;align-items:center;gap:6px}
.tutorial-header{display:flex;align-items:center;justify-content:space-between;gap:8px}
.tutorial-actions{display:flex;align-items:center;justify-content:center;gap:10px}
.tutorial-actions .guide-skip{opacity:.7}
.boss-rules{display:flex;flex-direction:column;gap:8px;align-items:flex-start;margin:6px auto 10px;width:fit-content}
.boss-rules span{display:inline-flex;align-items:center;gap:8px}
.boss-rules i{font-style:normal;opacity:.6}
.heart-gate-hearts{font-size:32px;letter-spacing:.08em}
.heart-gate-hearts .empty{opacity:.25}
.pause-sound[aria-pressed="false"] svg{opacity:.45}
/* Guide */
.guide-heading{display:flex;justify-content:space-between;align-items:center}
.guide-hand svg{width:28px;height:28px;opacity:.7}
.guide-rules.guide-rules-icons{list-style:none;padding:0;margin:14px 0;display:flex;flex-direction:column;gap:10px}
.guide-rules.guide-rules-icons li{display:flex;align-items:center;gap:12px}
.guide-rules.guide-rules-icons li>span{display:inline-flex;align-items:center;width:auto;height:auto;font-size:.9375rem;font-weight:700;background:none;color:inherit;border-radius:0}
.guide-rules.guide-rules-icons li>span.guide-rule-art{gap:6px;min-width:112px;padding:6px 10px;border-radius:12px;background:#eee0ff;color:#9660cc}
.guide-rules.guide-rules-icons li:nth-child(2)>span.guide-rule-art{background:#ffe0eb;color:#d8799a}
.guide-rules.guide-rules-icons li:nth-child(3)>span.guide-rule-art{background:#fff1c2;color:#b58b28}
.guide-rule-art i{font-style:normal;opacity:.55;font-weight:800}
.guide-rule-art b{display:inline-flex}
.guide-heart-lost svg{fill:#e6553f;stroke:#e6553f}
.guide-coin svg{stroke:#c98a00}
.guide-close svg{width:18px;height:18px}
.guide-skip{display:inline-flex;align-items:center;gap:6px}
/* Menu pages */
.menu-heading h1{display:flex;align-items:center;gap:10px}
.menu-heading h1 svg{width:26px;height:26px}
.menu-heading .menu-kicker svg{width:20px;height:20px}
.shop-categories button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.shop-categories button span{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.shop-categories button svg{width:22px;height:22px}
.shop-section-heading{display:flex;align-items:center;justify-content:space-between;gap:10px}
.shop-section-heading h2{display:inline-flex;align-items:center;gap:8px}
.heart-offer-art .empty{opacity:.25}
.heart-offer h2{display:flex;align-items:center;gap:8px}
.shop-hint{display:inline-flex;align-items:center;gap:6px}
.skin-condition{display:inline-flex;align-items:center;gap:6px}
.skin-condition .skin-world{border-radius:6px;object-fit:cover}
.skin-card button{display:inline-flex;align-items:center;justify-content:center;gap:6px}
.wallet-card p{display:inline-flex;align-items:center;gap:4px}
.wallet-card p svg{width:16px;height:16px}
.collection-world{display:flex;flex-direction:column;gap:6px}
.collection-world .menu-progress{width:100%}
.collection-tier-heading h2{display:inline-flex;align-items:center;gap:8px}
.album-word small svg{width:14px;height:14px}
.profile-stats strong em{font-style:normal;font-size:.6em;opacity:.6}
.profile-outfits strong{display:inline-flex;align-items:center;gap:6px}
.profile-links b i{font-style:normal;opacity:.35;margin-left:5px;font-size:12px}
.profile-links b i.on{opacity:1;font-weight:800}
.daily-quests article h2{font-size:15px}
.task-links span{display:inline-flex;align-items:center;gap:4px}
.endless-rules span{display:inline-flex;align-items:center;gap:4px}
.endless-record strong,.endless-record small{display:inline-flex;align-items:center;gap:6px}
.league-personal{align-items:center}
.menu-note{display:flex;align-items:center;gap:8px;justify-content:center}
.menu-note svg{width:18px;height:18px}
@media (prefers-reduced-motion:reduce){.icon-button svg{transition:none}}
/* Interface language picker */
.profile-language{display:block;padding:14px 16px;background:var(--surface,#fff);border-radius:16px}
.profile-language-title{display:flex;align-items:center;gap:12px;min-height:44px;cursor:pointer;list-style:none}
.profile-language-title::-webkit-details-marker{display:none}
.profile-language-title::marker{content:''}
.profile-language-title .language-chevron{display:block;width:9px;height:9px;flex:none;margin-left:auto;margin-right:4px;border-right:2px solid currentColor;border-bottom:2px solid currentColor;transform:rotate(45deg)}
.profile-language[open] .language-chevron{transform:rotate(225deg)}
.profile-language .language-grid{margin-top:12px}
.profile-language:not([open]) .language-grid{display:none}
.profile-language-title svg{width:22px;height:22px}
.profile-language-title span{display:flex;flex-direction:column}
.profile-language-title small{opacity:.7}
.language-grid{display:flex;flex-wrap:wrap;gap:8px}
.language-grid button{min-height:40px;padding:6px 12px;border:1px solid #d9cdf5;border-radius:999px;background:#f6f1ff;color:#3e2b7a;font-weight:700;font-size:14px}
.language-grid button.on{background:#7e4ee8;border-color:#7e4ee8;color:#fff}

.guide-rules.guide-rules-icons li>span:last-child{display:flex;flex-direction:column;align-items:flex-start;gap:3px;min-width:0}.guide-rules.guide-rules-icons small{font-size:.75rem;line-height:1.4;font-weight:500}
.saved-run-card strong,.saved-run-card small{overflow-wrap:anywhere}.saved-run-card>svg:last-child{width:20px}
@media(max-width:380px){.guide-rules.guide-rules-icons li>span.guide-rule-art{min-width:88px}.saved-run-card{gap:10px;padding:14px}.saved-run-card .saved-run-icon{width:42px;height:46px}}
.game-panel .primary-button.icon-button,.game-panel .secondary-button.icon-button{flex-wrap:wrap}.game-panel .primary-button.icon-button>span,.game-panel .secondary-button.icon-button>span{max-width:100%;hyphens:auto}
/* Keep the overlay scroll area inside short landscape viewports. */
@media(max-height:500px){
 body.in-flight .topbar{display:none}body.in-flight main{padding:0}
 body.in-flight .game-frame{min-height:0;height:100dvh;border-radius:0}
 body.panel-open:not(.in-flight) .game-frame{min-height:0;height:calc(100dvh - 86px)}
}
@media(max-width:380px){.saved-run-card .saved-run-icon{display:none}.saved-run-card strong{hyphens:auto}}
.game-panel .panel-row>button.icon-button{width:52px;min-width:52px;flex:0 0 52px;padding:10px}

/* Learning language and interface language are separate settings. */
.learn-language-picker{color:#533880}
.learn-language-picker>summary{display:flex;align-items:center;gap:14px;list-style:none;cursor:pointer;min-height:64px;box-sizing:border-box}
.learn-language-picker>summary::-webkit-details-marker{display:none}
.learn-language-picker>summary>span:first-of-type{display:flex;flex-direction:column;gap:5px;flex:1}
.learn-language-picker svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round;flex:none}
.learn-language-picker[open] .language-chevron{transform:rotate(225deg)}
.learn-language-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;padding-top:12px}
.learn-language-picker:not([open]) .learn-language-options{display:none}
.learn-language-options button{display:flex;align-items:center;justify-content:space-between;gap:10px;min-height:50px;border:2px solid #e4d5f8;background:#fff;border-radius:16px;padding:10px 14px;font:inherit;font-size:16px;font-weight:700;color:inherit;cursor:pointer}
.learn-language-options button[aria-pressed=true]{background:#8250ed;border-color:#8250ed;color:white}
.learn-language-options small{grid-column:1/-1;display:block;font-size:14px;line-height:1.45;margin-top:4px;color:#79648e}
.learn-language-picker :focus-visible{outline:3px solid #b773fa;outline-offset:3px}
.boss-slot.separator{background:transparent!important;border-color:transparent!important;box-shadow:none!important;width:8px!important;min-width:8px!important}
