:root {
    --orbit-ink: #f8f8ff;
    --orbit-muted: #bac4d9;
    --orbit-gold: #ffd985;
    --orbit-mint: #86efce;
    --orbit-lilac: #b5a5ff;
    --orbit-night: #111628;
}

.fkm-games-launcher {
    position: fixed !important;
    z-index: 8 !important;
    left: max(14px, env(safe-area-inset-left));
    bottom: calc(5.55rem + env(safe-area-inset-bottom));
    display: grid;
    place-items: center;
    width: 70px;
    height: 70px;
    padding: 0;
    overflow: hidden;
    border: 1px solid rgba(255, 237, 190, .64);
    border-radius: 50%;
    color: #1b2440;
    background: linear-gradient(145deg, #fff4c9 0%, #ffd985 42%, #f3a660 100%);
    box-shadow: 0 11px 32px rgba(6, 10, 25, .42), 0 0 0 6px rgba(255, 217, 133, .1), inset 0 2px 1px rgba(255, 255, 255, .8);
    cursor: pointer;
    animation: fkm-games-nudge 10s cubic-bezier(.28,.84,.42,1) infinite;
    -webkit-tap-highlight-color: transparent;
}
.fkm-games-launcher[hidden] { display: none !important; }

.fkm-games-launcher:focus-visible,
.fkm-game-play:focus-visible,
.fkm-orbit-modal button:focus-visible,
.fkm-games-library button:focus-visible,
.fkm-orbit-setup select:focus-visible {
    outline: 3px solid #fff;
    outline-offset: 3px;
}

.fkm-games-launcher:hover { transform: translateY(-3px) scale(1.04); }
.fkm-games-launcher-orbit { position: relative; display: grid; place-items: center; width: 36px; height: 36px; border: 2px solid rgba(33, 43, 74, .82); border-radius: 50%; transform: rotate(-26deg); }
.fkm-games-launcher-orbit::before,
.fkm-games-launcher-orbit::after { position: absolute; content: ""; border: 1px solid rgba(33, 43, 74, .72); border-radius: 50%; }
.fkm-games-launcher-orbit::before { width: 45px; height: 15px; transform: rotate(42deg); }
.fkm-games-launcher-orbit::after { width: 15px; height: 45px; transform: rotate(42deg); }
.fkm-games-launcher-orbit span { position: absolute; z-index: 1; width: 8px; height: 8px; border: 1px solid rgba(33,43,74,.55); border-radius: 50%; background: #fff0b5; }
.fkm-games-launcher-orbit span:nth-child(1) { top: 1px; right: 3px; background: #76dec7; }
.fkm-games-launcher-orbit span:nth-child(2) { bottom: 1px; left: 1px; width: 6px; height: 6px; background: #c2b4ff; }
.fkm-games-launcher-orbit span:nth-child(3) { top: 13px; left: 13px; width: 9px; height: 9px; border: 0; background: #26304d; }
.fkm-games-launcher-label { position: absolute; bottom: 6px; left: 0; right: 0; font: 800 10px/1 'Quicksand', sans-serif; letter-spacing: .06em; text-align: center; text-transform: uppercase; }

@keyframes fkm-games-nudge {
    0%, 88%, 100% { transform: translateY(0) scale(1); }
    91% { transform: translateY(-8px) scale(1.04); }
    94% { transform: translateY(0) scale(.98); }
    97% { transform: translateY(-4px) scale(1.02); }
}

.fkm-games-library .modal-dialog { width: min(100%, 58rem); }
.fkm-games-library-card { display: flex; flex-direction: column; max-height: calc(100dvh - 2rem); border: 1px solid rgba(190, 202, 244, .18); border-radius: 26px; color: var(--orbit-ink); background: linear-gradient(145deg, #202847 0%, #172037 58%, #171b31 100%); box-shadow: 0 28px 80px rgba(3, 6, 17, .55); }
.fkm-games-library-header { display: flex; align-items: flex-start; justify-content: space-between; gap: 1rem; padding: 1.5rem 1.7rem 1.15rem; border-bottom: 1px solid rgba(223, 230, 255, .1); }
.fkm-games-library-header h2 { margin: .25rem 0 .25rem; color: #fff; font: 800 clamp(1.5rem, 3vw, 2rem)/1.1 'Quicksand', sans-serif; }
.fkm-games-library-header p:last-child { margin: 0; color: #bec8dc; font-size: .94rem; }
.fkm-games-kicker,
.fkm-orbit-kicker { margin: 0; color: var(--orbit-gold); font: 800 .68rem/1.3 'Quicksand', sans-serif; letter-spacing: .16em; }
.fkm-games-close,
.fkm-orbit-close,
.fkm-orbit-quiz-close { display: grid; flex: 0 0 auto; place-items: center; width: 42px; height: 42px; padding: 0; border: 1px solid rgba(255,255,255,.18); border-radius: 50%; color: #fff; background: rgba(255,255,255,.08); font: 400 1.7rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-games-library-body { display: grid; min-height: 0; gap: 1rem; padding: 1.3rem 1.7rem 1.6rem; overflow-y: auto; }
.fkm-game-card { display: grid; grid-template-columns: minmax(220px, .88fr) 1.12fr; min-height: 270px; overflow: hidden; border: 1px solid rgba(205, 219, 255, .16); border-radius: 21px; background: linear-gradient(118deg, rgba(93, 105, 174, .16), rgba(255,255,255,.035)); box-shadow: 0 12px 35px rgba(3, 7, 20, .22); }
.fkm-game-card-art { position: relative; min-height: 250px; overflow: hidden; background: radial-gradient(ellipse at 54% 90%, rgba(120, 95, 213, .88), transparent 48%), radial-gradient(ellipse at 20% 28%, rgba(103, 209, 197, .5), transparent 25%), linear-gradient(150deg, #21365d, #20244d 55%, #30224a); }
.fkm-game-card-art::before { position: absolute; inset: 0; background-image: radial-gradient(rgba(255,255,255,.72) .8px, transparent 1px); background-size: 37px 37px; content: ""; opacity: .48; mask-image: linear-gradient(to bottom, black, transparent 78%); }
.fkm-card-horizon { position: absolute; right: -12%; bottom: -36%; left: -16%; height: 74%; border: 1px solid rgba(203, 229, 255, .34); border-radius: 50% 50% 0 0; background: radial-gradient(ellipse at 50% 0%, rgba(119, 221, 200, .28), rgba(53, 75, 139, .72) 56%, #202640 100%); box-shadow: 0 -10px 45px rgba(123, 204, 229, .14); }
.fkm-conquest-card-art { background: radial-gradient(ellipse at 66% 71%, rgba(220, 180, 112, .29), transparent 42%), radial-gradient(ellipse at 13% 16%, rgba(115, 174, 157, .35), transparent 35%), linear-gradient(152deg, #435e60, #203d41 58%, #263448); }
.fkm-conquest-card-kicker { position: absolute; z-index: 2; top: 13%; left: 11%; color: rgba(244,229,194,.83); font: 800 .58rem/1 'Quicksand',sans-serif; letter-spacing: .18em; }
.fkm-conquest-route { position: absolute; top: 27%; left: -12%; width: 127%; height: 60%; border: 7px solid rgba(218,191,145,.76); border-radius: 53% 28% 51% 24% / 28% 49% 33% 61%; background: repeating-linear-gradient(108deg, transparent 0 32px, rgba(204,178,136,.9) 33px 40px, transparent 41px 57px); box-shadow: 0 0 35px rgba(232,202,150,.18), inset 0 0 25px rgba(15,35,36,.55); transform: rotate(-17deg) skewY(4deg); }
.fkm-conquest-route::after { position: absolute; top: 17%; right: 6%; width: 15%; height: 35%; border: 2px solid rgba(251,232,182,.78); border-bottom: 0; border-radius: 50% 50% 0 0; content: ""; transform: rotate(18deg); }
.fkm-conquest-space { position: absolute; z-index: 1; display: grid; place-items: center; width: 31px; height: 31px; border: 1px solid rgba(255,255,255,.72); border-radius: 50%; color: white; font: 800 .72rem/1 'Quicksand',sans-serif; box-shadow: inset 0 3px 7px rgba(255,255,255,.35), 0 7px 17px rgba(0,0,0,.25); }
.fkm-conquest-space-one { top: 30%; left: 19%; background: radial-gradient(circle at 32% 24%, #fff0d1, #b8a7e0 30%, #75679c 78%); }
.fkm-conquest-space-two { top: 55%; left: 51%; background: radial-gradient(circle at 32% 24%, #fff2c8, #c2cb8d 34%, #788052 78%); }
.fkm-conquest-space-three { top: 35%; right: 16%; background: radial-gradient(circle at 32% 24%, #fff2c8, #93b7e0 36%, #527394 78%); }
.fkm-conquest-pawn { position: absolute; z-index: 2; right: 24%; bottom: 19%; width: 24px; height: 45px; border: 2px solid rgba(255,248,226,.85); border-radius: 45% 45% 7px 7px; background: linear-gradient(90deg, #b18a58, #f0d394 52%, #8c6943); box-shadow: 0 6px 17px rgba(0,0,0,.27); transform: rotate(18deg); }
.fkm-conquest-pawn::before { position: absolute; top: -14px; left: 4px; width: 12px; height: 12px; border: 1px solid rgba(255,248,226,.9); border-radius: 50%; background: #e3be82; content: ""; }
.fkm-conquest-die { position: absolute; z-index: 2; right: 11%; bottom: 15%; display: grid; place-items: center; width: 46px; height: 46px; border: 1px solid rgba(255,255,255,.8); border-radius: 10px; color: #5a574a; background: linear-gradient(145deg, #fff5d9, #cfbd95); box-shadow: 7px 9px 0 rgba(52,53,45,.35), 0 13px 24px rgba(0,0,0,.3), inset 0 2px 4px white; font-size: 1.75rem; transform: rotate(14deg) skewY(-3deg); }
.fkm-conquest-card-caption { position: absolute; z-index: 2; bottom: 7%; left: 10%; color: rgba(246,236,214,.79); font: 700 .58rem/1 'Quicksand',sans-serif; letter-spacing: .08em; }
.fkm-card-orb { position: absolute; z-index: 1; display: grid; place-items: center; width: 88px; height: 88px; border: 1px solid rgba(255,255,255,.7); border-radius: 50%; color: white; font: 800 1.7rem/1 'Quicksand', sans-serif; text-shadow: 0 2px 11px rgba(7,14,39,.55); box-shadow: inset -12px -15px 24px rgba(17, 33, 67, .35), inset 10px 9px 17px rgba(255,255,255,.35), 0 14px 30px rgba(7,12,35,.26); }
.fkm-card-orb-one { top: 18%; left: 18%; background: radial-gradient(circle at 30% 24%, #fff9ca 0 4%, #9eedce 15%, #20a7a3 61%, #145d82 100%); transform: rotate(-11deg); }
.fkm-card-orb-two { top: 40%; right: 15%; width: 70px; height: 70px; background: radial-gradient(circle at 28% 24%, #fff8ed 0 4%, #d6b2ff 15%, #8c65dd 61%, #574495 100%); transform: rotate(12deg); }
.fkm-card-orb-three { top: 13%; right: 18%; width: 39px; height: 39px; background: radial-gradient(circle at 28% 20%, #fff9de, #ffcc70 45%, #e98c55 100%); font-size: 1.2rem; }
.fkm-game-card-copy { display: flex; flex-direction: column; align-items: flex-start; justify-content: center; padding: 1.45rem clamp(1.2rem, 3vw, 2rem); }
.fkm-game-card-meta { display: flex; flex-wrap: wrap; justify-content: space-between; width: 100%; gap: .5rem; color: #c7baff; font: 800 .62rem/1.3 'Quicksand', sans-serif; letter-spacing: .13em; }
.fkm-game-card-meta span:last-child { color: #d8dfed; letter-spacing: .02em; }
.fkm-game-card-copy h3 { margin: .35rem 0 .3rem; color: #fff; font: 800 clamp(1.65rem, 3vw, 2.2rem)/1.1 'Quicksand', sans-serif; }
.fkm-game-card-copy > p { max-width: 29rem; margin: 0 0 .8rem; color: #c1c9dd; line-height: 1.5; }
.fkm-game-tags { display: flex; flex-wrap: wrap; gap: .42rem; margin-bottom: 1rem; }
.fkm-game-tags span { padding: .35rem .62rem; border: 1px solid rgba(192, 207, 255, .18); border-radius: 999px; color: #dce5f3; background: rgba(255,255,255,.055); font: 700 .7rem/1 'Quicksand', sans-serif; }
.fkm-game-play { display: inline-flex; align-items: center; justify-content: center; gap: .7rem; min-height: 46px; padding: .72rem 1.1rem; border: 0; border-radius: 999px; color: #1d2746; background: linear-gradient(100deg, #ffe8ac, #ffc781); box-shadow: 0 8px 20px rgba(255, 193, 117, .17); font: 800 .92rem/1 'Quicksand', sans-serif; text-decoration: none; cursor: pointer; }
.fkm-game-play span { font-size: 1.1rem; transition: transform .18s ease; }
.fkm-game-play:hover span { transform: translate(2px, -2px); }
.fkm-games-principles { display: flex; align-items: flex-start; gap: .7rem; padding: .25rem .15rem 0; color: #aebbd0; }
.fkm-games-principles span { color: var(--orbit-gold); font-size: 1.05rem; }
.fkm-games-principles p { margin: 0; font-size: .8rem; line-height: 1.5; }

.fkm-orbit-modal { padding: max(0px, env(safe-area-inset-top)) 0 max(0px, env(safe-area-inset-bottom)); overflow: hidden; }
.fkm-orbit-dialog { width: min(100vw, 1050px); height: min(100dvh, 900px); max-height: 100dvh; margin: auto; }
.fkm-orbit-shell { position: relative; display: flex; flex-direction: column; width: 100%; height: 100%; min-height: 0; border: 1px solid rgba(206, 218, 255, .2); border-radius: 24px; color: var(--orbit-ink); background: linear-gradient(150deg, #1c2440 0%, #151a2e 70%, #171b30 100%); box-shadow: 0 24px 85px rgba(2, 5, 18, .6); }
.fkm-orbit-header { z-index: 2; display: grid; grid-template-columns: 1fr auto 1fr; align-items: center; flex: 0 0 68px; gap: .75rem; padding: .55rem 1rem; border-bottom: 1px solid rgba(226, 232, 255, .1); background: rgba(13, 18, 35, .44); }
.fkm-orbit-back { justify-self: start; display: inline-flex; align-items: center; gap: .4rem; min-height: 42px; padding: .4rem .7rem; border: 1px solid transparent; border-radius: 999px; color: #d7dfef; background: transparent; font: 700 .83rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-back:hover { border-color: rgba(255,255,255,.13); background: rgba(255,255,255,.06); }
.fkm-orbit-brand { display: flex; align-items: center; gap: .62rem; }
.fkm-orbit-brand-mark { display: grid; place-items: center; width: 38px; height: 38px; border: 1px solid rgba(195, 226, 255, .65); border-radius: 50%; color: #fff7d2; background: radial-gradient(circle at 34% 27%, #f5ffed, #64d5be 30%, #3e81a7 64%, #594a9a); box-shadow: inset -6px -7px 10px rgba(11, 24, 49, .45), 0 0 20px rgba(118, 214, 206, .16); font-size: 1.3rem; }
.fkm-orbit-brand p { margin: 0 0 .1rem; color: #9ca9c4; font: 800 .54rem/1.1 'Quicksand', sans-serif; letter-spacing: .14em; }
.fkm-orbit-brand h2 { margin: 0; color: #fff; font: 800 1rem/1.1 'Quicksand', sans-serif; letter-spacing: .01em; }
.fkm-orbit-header-actions { justify-self: end; display: flex; align-items: center; gap: .5rem; }
.fkm-orbit-sound { display: inline-flex; align-items: center; gap: .4rem; min-height: 38px; padding: .35rem .65rem; border: 1px solid rgba(225, 230, 255, .14); border-radius: 999px; color: #e2e9f7; background: rgba(255,255,255,.055); font: 700 .75rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-sound[aria-pressed="false"] { color: #bdc7d8; }
.fkm-orbit-close { width: 38px; height: 38px; font-size: 1.45rem; }
.fkm-orbit-content { flex: 1; min-height: 0; overflow: auto; scrollbar-color: rgba(205, 216, 249, .27) transparent; }
.fkm-orbit-content::-webkit-scrollbar { width: 8px; }
.fkm-orbit-content::-webkit-scrollbar-thumb { border-radius: 10px; background: rgba(205, 216, 249, .25); }
.fkm-orbit-intro { display: grid; grid-template-columns: minmax(0, 1.08fr) minmax(260px, .92fr); gap: 1.2rem 2rem; max-width: 940px; margin: 0 auto; padding: clamp(1.25rem, 3.5vw, 2.5rem); }
.fkm-orbit-intro-copy { align-self: center; padding: .25rem 0 .9rem; }
.fkm-orbit-intro-copy h3 { max-width: 520px; margin: .55rem 0 .65rem; color: #fff; font: 800 clamp(2rem, 5vw, 3.55rem)/.99 'Quicksand', sans-serif; letter-spacing: -.045em; }
.fkm-orbit-intro-copy > p:not(.fkm-orbit-kicker) { max-width: 480px; margin: 0; color: #c4cee0; font-size: clamp(.95rem, 1.55vw, 1.08rem); line-height: 1.58; }
.fkm-orbit-subjects { display: flex; flex-wrap: wrap; gap: .48rem; margin-top: 1.15rem; }
.fkm-orbit-subjects span { padding: .46rem .7rem; border: 1px solid rgba(196, 210, 252, .16); border-radius: 999px; color: #dce5f5; background: rgba(231, 237, 255, .055); font: 700 .75rem/1 'Quicksand', sans-serif; }
.fkm-orbit-setup { align-self: center; padding: 1.1rem; border: 1px solid rgba(222, 229, 255, .15); border-radius: 18px; background: linear-gradient(135deg, rgba(114, 130, 194, .12), rgba(255,255,255,.035)); box-shadow: 0 14px 36px rgba(5, 9, 25, .2); }
.fkm-orbit-setup label { display: block; margin: 0 0 .42rem; color: #e9edfa; font: 700 .82rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-setup select { width: 100%; min-height: 44px; padding: .55rem 2rem .55rem .75rem; border: 1px solid rgba(198, 211, 249, .24); border-radius: 11px; color: #f9fbff; background: #272d49; font: 700 .85rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-setup select option { color: #1b2032; background: #fff; }
.fkm-orbit-setup > p { min-height: 2.3em; margin: .42rem 0 .8rem; color: #aab5cc; font-size: .73rem; line-height: 1.4; }
.fkm-orbit-record { display: grid; grid-template-columns: auto 1fr; align-items: center; column-gap: .6rem; padding: .75rem 0; border-top: 1px solid rgba(226,232,255,.1); border-bottom: 1px solid rgba(226,232,255,.1); }
.fkm-orbit-record span { grid-column: 1; color: #aebad3; font: 800 .57rem/1 'Quicksand', sans-serif; letter-spacing: .12em; }
.fkm-orbit-record strong { grid-column: 2; grid-row: 1 / span 2; justify-self: end; color: #ffe0a0; font: 800 1.55rem/1 'Quicksand', sans-serif; font-variant-numeric: tabular-nums; }
.fkm-orbit-record small { grid-column: 1; margin-top: .3rem; color: #8996b1; font-size: .68rem; }
.fkm-orbit-start { display: inline-flex; align-items: center; justify-content: center; gap: .75rem; width: 100%; min-height: 49px; margin-top: .8rem; padding: .7rem 1rem; border: 0; border-radius: 12px; color: #1e2942; background: linear-gradient(100deg, #ffe6aa, #ffc785); box-shadow: 0 9px 20px rgba(255, 196, 123, .14); font: 800 .95rem/1 'Quicksand', sans-serif; cursor: pointer; transition: transform .16s ease, filter .16s ease; }
.fkm-orbit-start:hover { transform: translateY(-2px); filter: brightness(1.04); }
.fkm-orbit-start:active { transform: translateY(0) scale(.985); }
.fkm-orbit-access-note { margin: .6rem 0 0 !important; color: #919db3 !important; font-size: .67rem !important; text-align: center; }
.fkm-orbit-achievements { grid-column: 1 / -1; padding-top: .4rem; }
.fkm-orbit-achievement-heading { display: flex; align-items: end; justify-content: space-between; gap: 1rem; margin-bottom: .75rem; }
.fkm-orbit-achievement-heading h4 { margin: .2rem 0 0; color: #fff; font: 800 1.08rem/1.1 'Quicksand', sans-serif; }
.fkm-orbit-achievement-heading > span { color: #aab4ca; font: 700 .71rem/1 'Quicksand', sans-serif; }
.fkm-orbit-achievement-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: .6rem; }
.fkm-orbit-achievement { display: grid; grid-template-columns: 38px 1fr; align-items: center; gap: .62rem; min-height: 72px; padding: .68rem; border: 1px solid rgba(196, 210, 250, .13); border-radius: 13px; background: rgba(255,255,255,.034); }
.fkm-orbit-achievement.is-earned { border-color: rgba(255, 218, 142, .4); background: linear-gradient(130deg, rgba(255, 217, 133, .11), rgba(255,255,255,.035)); }
.fkm-orbit-achievement-icon { display: grid; place-items: center; width: 36px; height: 36px; border: 1px solid rgba(193, 205, 243, .17); border-radius: 12px; color: #8d97b2; background: rgba(255,255,255,.05); font-size: 1.06rem; }
.fkm-orbit-achievement.is-earned .fkm-orbit-achievement-icon { border-color: rgba(255, 225, 161, .42); color: #ffe2a1; background: rgba(255, 220, 145, .12); box-shadow: 0 0 22px rgba(255,215,130,.1); }
.fkm-orbit-achievement strong { display: block; color: #f4f6fc; font: 800 .76rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-achievement p { margin: .22rem 0 0; color: #a9b5cd; font-size: .65rem; line-height: 1.35; }
.fkm-orbit-achievement em { display: block; margin-top: .25rem; color: var(--orbit-gold); font: 700 .59rem/1.2 'Quicksand', sans-serif; font-style: normal; }

.fkm-orbit-play { display: grid; grid-template-rows: auto auto minmax(270px, 1fr) auto auto; gap: .72rem; height: 100%; min-height: 630px; max-width: 980px; margin: 0 auto; padding: .9rem clamp(.75rem, 2vw, 1.25rem) 1rem; }
.fkm-orbit-hud { display: grid; grid-template-columns: minmax(65px, 1fr) minmax(76px, .85fr) minmax(115px, 1.4fr) auto auto; align-items: center; gap: .6rem; }
.fkm-orbit-hud-stat { display: grid; gap: .18rem; }
.fkm-orbit-hud-stat span,
.fkm-orbit-streak > span { color: #96a4c1; font: 800 .56rem/1 'Quicksand', sans-serif; letter-spacing: .14em; }
.fkm-orbit-hud-stat strong { overflow: hidden; color: #fff; font: 800 1.2rem/1 'Quicksand', sans-serif; font-variant-numeric: tabular-nums; text-overflow: ellipsis; white-space: nowrap; }
.fkm-orbit-hud-stat:first-child strong { color: #ffe19e; font-size: 1.38rem; }
.fkm-orbit-hud-stat:nth-of-type(3) strong { font-size: .79rem; letter-spacing: .04em; }
.fkm-orbit-streak { display: grid; grid-template-columns: auto auto; align-items: center; column-gap: .38rem; }
.fkm-orbit-streak strong { color: var(--orbit-mint); font: 800 .95rem/1 'Quicksand', sans-serif; }
.fkm-orbit-streak-meter { grid-column: 1 / -1; width: 100%; height: 4px; margin-top: .28rem; overflow: hidden; border-radius: 9px; background: rgba(255,255,255,.12); }
.fkm-orbit-streak-meter i { display: block; width: 0; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #72d8c2, #ffe19e); transition: width .2s ease; }
.fkm-orbit-lives { display: flex; justify-content: center; gap: .22rem; min-width: 60px; }
.fkm-orbit-life { color: #ffd88f; font-size: 1rem; filter: drop-shadow(0 2px 6px rgba(255, 186, 105, .24)); }
.fkm-orbit-life.is-empty { color: #536079; filter: none; }
.fkm-orbit-pause { display: inline-flex; align-items: center; justify-content: center; gap: .4rem; min-height: 39px; padding: .38rem .65rem; border: 1px solid rgba(218, 227, 252, .16); border-radius: 10px; color: #dce3f1; background: rgba(255,255,255,.045); font: 700 .74rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-round-timer { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: .7rem; color: #9eabc4; font: 800 .58rem/1 'Quicksand', sans-serif; letter-spacing: .1em; }
.fkm-orbit-round-timer time { color: #e9eefb; font-size: .69rem; letter-spacing: .03em; font-variant-numeric: tabular-nums; }
.fkm-orbit-round-meter { height: 5px; overflow: hidden; border-radius: 999px; background: rgba(230,235,255,.12); }
.fkm-orbit-round-meter i { display: block; width: 100%; height: 100%; transform-origin: left center; border-radius: inherit; background: linear-gradient(90deg, #77d8c6, #b5acff, #ffd98e); transition: transform .15s linear; }
.fkm-orbit-mission { display: grid; grid-template-columns: auto 1fr; align-items: baseline; gap: .24rem .65rem; padding: .62rem .78rem; border: 1px solid rgba(187, 207, 255, .14); border-radius: 13px; background: linear-gradient(100deg, rgba(77, 102, 159, .25), rgba(70, 67, 129, .22)); }
.fkm-orbit-mission-label { grid-column: 1; color: #bfafea; font: 800 .55rem/1 'Quicksand', sans-serif; letter-spacing: .13em; }
.fkm-orbit-mission strong { grid-column: 2; color: #fff5d5; font: 800 clamp(.9rem, 1.8vw, 1.13rem)/1.15 'Quicksand', sans-serif; }
.fkm-orbit-mission small { grid-column: 2; color: #b4bfd3; font-size: .69rem; line-height: 1.3; }
.fkm-orbit-arena { --orbit-accent: #90e7cb; position: relative; min-height: 270px; overflow: hidden; isolation: isolate; border: 1px solid rgba(209, 224, 255, .2); border-radius: 22px; background: radial-gradient(ellipse at 49% 5%, rgba(154, 239, 218, .28), transparent 35%), radial-gradient(ellipse at 80% 82%, rgba(100, 130, 193, .55), transparent 35%), linear-gradient(155deg, #26485e 0%, #203c58 42%, #24284a 100%); box-shadow: inset 0 1px 0 rgba(255,255,255,.2), inset 0 -22px 40px rgba(8, 14, 35, .33), 0 14px 35px rgba(5, 8, 21, .17); }
.fkm-orbit-arena::before { position: absolute; z-index: -1; inset: -12%; background-image: radial-gradient(rgba(237, 253, 255, .8) .8px, transparent 1.4px), radial-gradient(rgba(206, 230, 255, .55) .65px, transparent 1.25px); background-position: 0 0, 16px 18px; background-size: 42px 42px, 67px 67px; content: ""; opacity: .33; transform: translate(calc(var(--pointer-x, 0) * -7px), calc(var(--pointer-y, 0) * -7px)); transition: transform .5s ease-out; }
.fkm-orbit-arena[data-world="reef"] { --orbit-accent: #90f0df; background: radial-gradient(ellipse at 45% 2%, rgba(154, 253, 226, .29), transparent 32%), radial-gradient(ellipse at 20% 78%, rgba(28, 180, 194, .36), transparent 38%), linear-gradient(158deg, #145064, #1c6878 38%, #1d425d 72%, #252c56); }
.fkm-orbit-arena[data-world="stars"] { --orbit-accent: #c5b2ff; background: radial-gradient(ellipse at 53% 3%, rgba(183, 161, 255, .28), transparent 34%), radial-gradient(ellipse at 88% 42%, rgba(101, 84, 173, .45), transparent 30%), linear-gradient(155deg, #1c2856, #30275f 48%, #482b5d 78%, #192b4b); }
.fkm-orbit-arena[data-world="forest"] { --orbit-accent: #a8efad; background: radial-gradient(ellipse at 49% 0%, rgba(169, 239, 173, .24), transparent 34%), radial-gradient(ellipse at 9% 70%, rgba(54, 158, 124, .44), transparent 38%), linear-gradient(152deg, #23444f, #274e50 38%, #334459 72%, #29304c); }
.fkm-orbit-arena[data-world="reef"]::after { position: absolute; inset: auto 0 0; height: 24%; border-top: 1px solid rgba(141, 242, 228, .23); background: repeating-linear-gradient(170deg, transparent 0 20px, rgba(147, 242, 219, .08) 21px 22px, transparent 23px 39px); content: ""; opacity: .75; }
.fkm-orbit-arena[data-world="stars"]::after { position: absolute; top: 13%; right: 8%; width: 92px; height: 92px; border: 1px solid rgba(225, 217, 255, .24); border-radius: 50%; background: radial-gradient(circle at 31% 28%, #fff3d2 0 2%, #dfb58c 5%, #8f70a3 45%, #443a70 76%); box-shadow: -15px 22px 50px rgba(10, 15, 49, .32), 0 0 45px rgba(206, 179, 255, .1); content: ""; opacity: .7; }
.fkm-orbit-arena[data-world="forest"]::after { position: absolute; inset: auto -4% 0; height: 22%; background: linear-gradient(180deg, transparent, rgba(23, 69, 61, .65)), repeating-linear-gradient(172deg, transparent 0 25px, rgba(184, 236, 191, .07) 26px 27px, transparent 28px 47px); content: ""; }
#orbitCanvas { position: absolute; z-index: 1; inset: 0; display: block; width: 100%; height: 100%; }
.fkm-orbit-bubbles { position: absolute; z-index: 3; inset: 0; pointer-events: none; }
.fkm-orbit-bubble { --bubble-size: 70px; position: absolute; display: grid; place-items: center; width: var(--bubble-size); height: var(--bubble-size); padding: 0; border: 0; border-radius: 50%; color: #fff; background: transparent; font: 800 clamp(.8rem, calc(var(--bubble-size) * .23), 1.22rem)/1 'Quicksand', sans-serif; letter-spacing: .025em; text-align: center; text-shadow: 0 2px 6px rgba(6, 17, 38, .68), 0 0 13px rgba(7, 15, 31, .5); transform: translateZ(0); cursor: pointer; pointer-events: auto; -webkit-tap-highlight-color: transparent; }
.fkm-orbit-bubble span { max-width: 84%; overflow-wrap: anywhere; }
.fkm-orbit-bubble.is-word { font-size: clamp(.63rem, calc(var(--bubble-size) * .145), .95rem); }
.fkm-orbit-bubble:focus-visible { outline: 2px solid #fff4bd; outline-offset: 1px; box-shadow: 0 0 0 6px rgba(255, 231, 153, .19); }
.fkm-orbit-bubble.is-target { animation: orbit-target-breathe 2s ease-in-out infinite; }
.fkm-orbit-bubble .fkm-bubble-hazard { position: absolute; top: 10%; right: 7%; display: grid; place-items: center; width: clamp(14px, calc(var(--bubble-size) * .24), 20px); height: clamp(14px, calc(var(--bubble-size) * .24), 20px); border: 1px solid rgba(255,255,255,.87); border-radius: 50%; color: #41253f; background: #ffdc87; box-shadow: 0 1px 6px rgba(20,10,25,.45); font: 900 .63rem/1 'Quicksand', sans-serif; text-shadow: none; }
@keyframes orbit-target-breathe { 0%, 100% { filter: drop-shadow(0 0 0 rgba(255, 232, 173, 0)); } 50% { filter: drop-shadow(0 0 9px rgba(255, 232, 173, .52)); } }
.fkm-orbit-world-label { position: absolute; z-index: 2; top: 13px; left: 16px; color: rgba(237, 243, 255, .64); font: 800 .57rem/1 'Quicksand', sans-serif; letter-spacing: .16em; pointer-events: none; }
.fkm-orbit-ground { position: absolute; z-index: 2; right: -16%; bottom: -33%; left: -16%; height: 49%; border: 1px solid rgba(194, 230, 235, .3); border-radius: 50% 50% 0 0; background: radial-gradient(ellipse at 50% 0, rgba(157, 225, 201, .34), rgba(66, 124, 137, .28) 28%, rgba(27, 48, 80, .92) 75%, #161d36 100%); box-shadow: 0 -8px 38px rgba(167, 240, 218, .1), inset 0 10px 36px rgba(231, 255, 241, .1); pointer-events: none; }
.fkm-orbit-arena[data-world="reef"] .fkm-orbit-ground { background: radial-gradient(ellipse at 50% 0, rgba(160, 245, 221, .33), rgba(43, 164, 173, .33) 30%, rgba(18, 91, 115, .91) 75%, #15304d 100%); }
.fkm-orbit-arena[data-world="stars"] .fkm-orbit-ground { border-color: rgba(214, 201, 255, .31); background: radial-gradient(ellipse at 50% 0, rgba(188, 164, 255, .32), rgba(102, 94, 174, .3) 30%, rgba(42, 49, 107, .92) 75%, #1a203e 100%); }
.fkm-orbit-arena[data-world="forest"] .fkm-orbit-ground { background: radial-gradient(ellipse at 50% 0, rgba(175, 226, 160, .3), rgba(95, 160, 115, .3) 30%, rgba(43, 92, 88, .92) 75%, #1e2d42 100%); }
.fkm-orbit-effects { position: absolute; z-index: 6; inset: 0; overflow: hidden; pointer-events: none; }
.fkm-orbit-spark { position: absolute; width: 7px; height: 7px; border: 1px solid rgba(255,255,255,.66); border-radius: 50%; background: hsl(var(--spark-hue, 164) 89% 83%); box-shadow: 0 0 14px hsl(var(--spark-hue, 164) 89% 75% / .8); animation: orbit-spark .7s ease-out forwards; }
@keyframes orbit-spark { to { opacity: 0; transform: translate(var(--spark-x), var(--spark-y)) scale(.12); } }
.fkm-orbit-countdown { position: absolute; z-index: 7; inset: 0; display: grid; place-items: center; color: #fff4d0; background: rgba(18, 24, 51, .16); font: 800 clamp(4rem, 14vw, 8rem)/1 'Quicksand', sans-serif; text-shadow: 0 6px 24px rgba(18,20,54,.55); pointer-events: none; }
.fkm-orbit-countdown[hidden] { display: none; }
.fkm-orbit-tools { display: flex; align-items: center; justify-content: space-between; gap: .8rem; padding: .68rem .8rem; border: 1px solid rgba(219, 225, 255, .12); border-radius: 14px; background: rgba(255,255,255,.035); }
.fkm-orbit-tool-copy { display: flex; align-items: center; gap: .6rem; }
.fkm-orbit-scripture-icon { display: grid; flex: 0 0 auto; place-items: center; width: 34px; height: 34px; border: 1px solid rgba(255, 216, 144, .27); border-radius: 11px; color: #ffe2a1; background: rgba(255, 216, 144, .1); }
.fkm-orbit-tool-copy strong { display: block; color: #f1f3fa; font: 800 .75rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-tool-copy small { display: block; margin-top: .12rem; color: #9ba8c0; font-size: .65rem; line-height: 1.3; }
.fkm-orbit-tool-actions { display: flex; align-items: center; gap: .55rem; }
.fkm-orbit-cooldown { color: #9daac1; font: 700 .64rem/1.2 'Quicksand', sans-serif; text-align: right; }
.fkm-orbit-boost { display: inline-flex; align-items: center; justify-content: center; gap: .45rem; min-height: 41px; padding: .55rem .8rem; border: 1px solid rgba(255, 220, 157, .32); border-radius: 11px; color: #ffe7b4; background: linear-gradient(105deg, rgba(137, 102, 174, .36), rgba(196, 128, 104, .22)); font: 800 .73rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-boost:hover:not(:disabled) { border-color: rgba(255, 220, 157, .65); background-color: rgba(255,255,255,.06); }
.fkm-orbit-boost:disabled { opacity: .5; cursor: not-allowed; }
.fkm-orbit-status { min-height: 1em; margin: 0; color: #9ca9c2; font-size: .65rem; line-height: 1.3; text-align: center; }

.fkm-orbit-overlay { position: absolute; z-index: 12; inset: 0; display: grid; place-items: center; overflow-y: auto; padding: 1rem; background: rgba(9, 13, 29, .7); backdrop-filter: blur(8px); }
.fkm-orbit-overlay[hidden] { display: none; }
.fkm-orbit-quiz-card,
.fkm-orbit-result-card { position: relative; width: min(100%, 510px); max-height: 100%; overflow: auto; padding: clamp(1.25rem, 4vw, 2rem); border: 1px solid rgba(218, 226, 255, .2); border-radius: 22px; color: var(--orbit-ink); background: linear-gradient(145deg, #252c4c, #191e36 70%, #242340); box-shadow: 0 22px 70px rgba(0,0,0,.46); }
.fkm-orbit-quiz-close { position: absolute; top: .8rem; right: .8rem; width: 36px; height: 36px; font-size: 1.35rem; }
.fkm-orbit-quiz-card h3,
.fkm-orbit-result-card h3 { max-width: 92%; margin: .35rem 0 .75rem; color: #fff; font: 800 clamp(1.5rem, 5vw, 2.1rem)/1.06 'Quicksand', sans-serif; }
.fkm-orbit-question { margin: 0 0 .7rem; color: #e7ecf8; font: 700 clamp(1rem, 2.3vw, 1.22rem)/1.45 'Quicksand', sans-serif; }
.fkm-orbit-reference-hint { display: block; min-height: 1.1em; margin-bottom: .55rem; color: #a5b1c8; font: 700 .73rem/1.4 'Quicksand', sans-serif; }
.fkm-orbit-answer-grid { display: grid; gap: .55rem; margin-top: .7rem; }
.fkm-orbit-answer-grid button { min-height: 48px; padding: .65rem .8rem; border: 1px solid rgba(199, 212, 248, .2); border-radius: 12px; color: #edf1fc; background: rgba(255,255,255,.055); font: 700 .86rem/1.25 'Quicksand', sans-serif; text-align: left; cursor: pointer; }
.fkm-orbit-answer-grid button:hover:not(:disabled) { border-color: rgba(255, 223, 165, .45); background: rgba(255,255,255,.1); }
.fkm-orbit-answer-grid button:disabled { cursor: default; }
.fkm-orbit-answer-grid button.is-right { border-color: rgba(134, 239, 206, .67); color: #d6fff2; background: rgba(61, 173, 139, .16); }
.fkm-orbit-answer-grid button.is-wrong { border-color: rgba(247, 146, 153, .54); color: #ffd8dc; background: rgba(177, 83, 106, .14); }
.fkm-orbit-quiz-feedback { min-height: 1.3em; margin: .7rem 0 0; color: #b8eddb; font-size: .78rem; line-height: 1.45; }
.fkm-orbit-power-choice { margin-top: .75rem; }
.fkm-orbit-power-choice[hidden] { display: none; }
.fkm-orbit-power-choice > p { margin: 0 0 .48rem; color: #ffe7af; font: 800 .8rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-power-choice > div { display: grid; grid-template-columns: repeat(3, 1fr); gap: .48rem; }
.fkm-orbit-power-choice button { min-height: 88px; padding: .6rem; border: 1px solid rgba(255, 222, 157, .23); border-radius: 12px; color: #f7f4fb; background: rgba(255, 218, 151, .07); text-align: left; cursor: pointer; }
.fkm-orbit-power-choice button:hover { border-color: rgba(255, 222, 157, .61); background: rgba(255, 218, 151, .13); }
.fkm-orbit-power-choice button strong,
.fkm-orbit-power-choice button span { display: block; }
.fkm-orbit-power-choice button strong { color: #ffe8b5; font: 800 .68rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-power-choice button span { margin-top: .33rem; color: #bdc5d5; font-size: .62rem; line-height: 1.35; }
.fkm-orbit-quiz-done { min-height: 43px; margin-top: .75rem; padding: .6rem .95rem; border: 0; border-radius: 11px; color: #1f2941; background: linear-gradient(100deg, #ffe6aa, #ffc785); font: 800 .78rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-quiz-done[hidden] { display: none; }
.fkm-orbit-result-card { width: min(100%, 480px); text-align: center; }
.fkm-orbit-result-card > p:not(.fkm-orbit-kicker) { color: #bec8dc; font-size: .88rem; line-height: 1.5; }
.fkm-orbit-final-score { display: grid; justify-items: center; gap: .12rem; padding: .9rem 1rem; border: 1px solid rgba(255, 221, 157, .2); border-radius: 16px; background: linear-gradient(130deg, rgba(255, 222, 158, .085), rgba(166, 157, 255, .08)); }
.fkm-orbit-final-score span { color: #b8c2d6; font: 800 .6rem/1 'Quicksand', sans-serif; letter-spacing: .15em; }
.fkm-orbit-final-score strong { color: #ffe5aa; font: 800 clamp(2.4rem, 10vw, 3.2rem)/1.08 'Quicksand', sans-serif; font-variant-numeric: tabular-nums; }
.fkm-orbit-final-score small { color: #90edd0; font: 800 .72rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-final-score small[hidden] { display: none; }
.fkm-orbit-result-stats { display: grid; grid-template-columns: repeat(3, 1fr); gap: .45rem; margin: .75rem 0; }
.fkm-orbit-result-stats article { padding: .55rem .3rem; border: 1px solid rgba(205, 216, 249, .12); border-radius: 11px; background: rgba(255,255,255,.035); }
.fkm-orbit-result-stats strong { display: block; color: #f4f6fc; font: 800 1rem/1 'Quicksand', sans-serif; }
.fkm-orbit-result-stats span { display: block; margin-top: .26rem; color: #9eabc2; font: 700 .6rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-unlocks { margin: .6rem 0; padding: .6rem .75rem; border: 1px solid rgba(255, 223, 165, .2); border-radius: 12px; color: #ffe8b3; background: rgba(255, 218, 151, .07); text-align: left; }
.fkm-orbit-unlocks[hidden] { display: none; }
.fkm-orbit-unlocks strong { display: block; margin-bottom: .25rem; font: 800 .72rem/1.2 'Quicksand', sans-serif; }
.fkm-orbit-unlocks span { display: block; margin-top: .2rem; color: #c8d0df; font-size: .65rem; line-height: 1.35; }
.fkm-orbit-quiet-action { min-height: 42px; margin-top: .55rem; padding: .55rem .9rem; border: 1px solid rgba(215, 225, 250, .19); border-radius: 11px; color: #d4dced; background: transparent; font: 700 .75rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-quiet-action:hover { background: rgba(255,255,255,.065); }
.fkm-orbit-result-card .fkm-orbit-start { margin-top: .8rem; }

@media (max-width: 680px) {
    .fkm-games-launcher { left: max(11px, env(safe-area-inset-left)); bottom: calc(5.25rem + env(safe-area-inset-bottom)); width: 62px; height: 62px; }
    .fkm-games-launcher-orbit { transform: scale(.86) rotate(-26deg); }
    .fkm-games-library { padding: .7rem; }
    .fkm-games-library .modal-dialog { margin: auto; }
    .fkm-games-library-card { max-height: calc(100dvh - 1.4rem); }
    .fkm-games-library-header { padding: 1.05rem 1rem .85rem; }
    .fkm-games-library-header p:last-child { max-width: 19rem; font-size: .78rem; }
    .fkm-games-library-body { padding: .85rem 1rem 1rem; }
    .fkm-game-card { grid-template-columns: 1fr; }
    .fkm-game-card-art { min-height: 155px; }
    .fkm-card-orb-one { top: 14%; left: 22%; width: 75px; height: 75px; }
    .fkm-card-orb-two { top: 36%; right: 22%; width: 62px; height: 62px; }
    .fkm-card-orb-three { top: 9%; right: 26%; }
    .fkm-game-card-copy { padding: 1.05rem; }
    .fkm-games-principles p { font-size: .72rem; }
    .fkm-orbit-modal { padding: 0; }
    .fkm-orbit-dialog { width: 100vw; height: 100dvh; max-height: 100dvh; margin: 0; }
    .fkm-orbit-shell { border: 0; border-radius: 0; }
    .fkm-orbit-header { grid-template-columns: auto 1fr auto; flex-basis: 60px; gap: .3rem; padding: .4rem .55rem; }
    .fkm-orbit-back { min-height: 38px; padding: .3rem .4rem; font-size: .7rem; }
    .fkm-orbit-brand { gap: .42rem; }
    .fkm-orbit-brand-mark { width: 32px; height: 32px; font-size: 1.1rem; }
    .fkm-orbit-brand p { font-size: .43rem; }
    .fkm-orbit-brand h2 { font-size: .9rem; }
    .fkm-orbit-header-actions { gap: .35rem; }
    .fkm-orbit-sound { width: 38px; min-width: 38px; min-height: 36px; justify-content: center; padding: .3rem; font-size: .9rem; }
    .fkm-orbit-sound span { display: none; }
    .fkm-orbit-close { width: 36px; height: 36px; }
    .fkm-orbit-intro { grid-template-columns: 1fr; gap: .4rem; padding: 1.2rem 1rem 1.4rem; }
    .fkm-orbit-intro-copy { padding-bottom: .35rem; }
    .fkm-orbit-intro-copy h3 { font-size: clamp(2.2rem, 11vw, 3.1rem); }
    .fkm-orbit-intro-copy > p:not(.fkm-orbit-kicker) { font-size: .92rem; }
    .fkm-orbit-subjects { gap: .36rem; margin-top: .8rem; }
    .fkm-orbit-subjects span { padding: .4rem .55rem; font-size: .68rem; }
    .fkm-orbit-setup { padding: .85rem; }
    .fkm-orbit-setup > p { min-height: auto; }
    .fkm-orbit-achievements { padding-top: .6rem; }
    .fkm-orbit-achievement-grid { grid-template-columns: repeat(2, 1fr); gap: .45rem; }
    .fkm-orbit-achievement { grid-template-columns: 32px 1fr; min-height: 67px; gap: .48rem; padding: .5rem; }
    .fkm-orbit-achievement-icon { width: 31px; height: 31px; border-radius: 10px; font-size: .9rem; }
    .fkm-orbit-achievement strong { font-size: .68rem; }
    .fkm-orbit-achievement p { font-size: .59rem; }
    .fkm-orbit-achievement em { font-size: .54rem; }
    .fkm-orbit-play { grid-template-rows: auto auto minmax(250px, 1fr) auto auto; gap: .55rem; min-height: calc(100dvh - 60px); padding: .62rem .55rem max(.6rem, env(safe-area-inset-bottom)); }
    .fkm-orbit-hud { grid-template-columns: minmax(45px, .75fr) minmax(48px, .62fr) minmax(88px, 1.25fr) auto auto; gap: .37rem; }
    .fkm-orbit-hud-stat span, .fkm-orbit-streak > span { font-size: .49rem; }
    .fkm-orbit-hud-stat strong { font-size: 1rem; }
    .fkm-orbit-hud-stat:first-child strong { font-size: 1.13rem; }
    .fkm-orbit-hud-stat:nth-of-type(3) strong { font-size: .67rem; }
    .fkm-orbit-lives { min-width: 43px; gap: .08rem; }
    .fkm-orbit-life { font-size: .82rem; }
    .fkm-orbit-pause { min-height: 35px; padding: .3rem .42rem; font-size: .72rem; }
    .fkm-orbit-pause span { display: none; }
    .fkm-orbit-round-timer { gap: .42rem; font-size: .51rem; }
    .fkm-orbit-round-timer time { font-size: .62rem; }
    .fkm-orbit-mission { gap: .22rem .4rem; padding: .52rem .62rem; }
    .fkm-orbit-mission-label { font-size: .48rem; }
    .fkm-orbit-mission strong { font-size: .87rem; }
    .fkm-orbit-mission small { font-size: .61rem; }
    .fkm-orbit-arena { min-height: 250px; border-radius: 17px; }
    .fkm-orbit-world-label { top: 10px; left: 11px; font-size: .5rem; }
    .fkm-orbit-ground { height: 42%; }
    .fkm-orbit-tools { align-items: flex-start; flex-direction: column; gap: .45rem; padding: .56rem .62rem; }
    .fkm-orbit-tool-copy { gap: .45rem; }
    .fkm-orbit-scripture-icon { width: 28px; height: 28px; border-radius: 9px; }
    .fkm-orbit-tool-copy strong { font-size: .7rem; }
    .fkm-orbit-tool-copy small { font-size: .59rem; }
    .fkm-orbit-tool-actions { justify-content: space-between; width: 100%; }
    .fkm-orbit-cooldown { font-size: .6rem; }
    .fkm-orbit-boost { min-height: 37px; padding: .48rem .65rem; font-size: .66rem; }
    .fkm-orbit-status { font-size: .59rem; }
    .fkm-orbit-power-choice > div { grid-template-columns: 1fr; }
    .fkm-orbit-power-choice button { min-height: 61px; }
}

/* Keep the game library usable in short landscape windows and on compact phones. */
.fkm-games-library { padding: max(.45rem, env(safe-area-inset-top)) max(.45rem, env(safe-area-inset-right)) max(.45rem, env(safe-area-inset-bottom)) max(.45rem, env(safe-area-inset-left)); overflow: hidden auto; }
.fkm-games-library .modal-dialog { display: flex; width: min(100%, 58rem); max-width: 58rem; max-height: calc(100dvh - 1rem); margin: auto; }
.fkm-games-library-card { width: 100%; min-height: 0; max-height: calc(100dvh - 1rem); overflow: hidden; }
.fkm-games-library-header { flex: 0 0 auto; }
.fkm-games-library-body { flex: 1 1 auto; min-height: 0; align-content: start; overflow-x: hidden; overflow-y: auto; overscroll-behavior: contain; scrollbar-width: thin; scrollbar-color: rgba(225,205,255,.26) transparent; }
.fkm-game-card { min-width: 0; }
.fkm-game-card-copy { min-width: 0; }
.fkm-game-card-copy > p { overflow-wrap: anywhere; }
.fkm-game-play { flex: 0 0 auto; }

@media (max-width: 680px) {
    .fkm-games-library { align-items: flex-start; }
    .fkm-games-library .modal-dialog { width: 100%; max-height: calc(100dvh - .9rem); }
    .fkm-games-library-card { max-height: calc(100dvh - .9rem); border-radius: 20px; }
    .fkm-games-library-header { gap: .65rem; padding: .8rem .85rem .7rem; }
    .fkm-games-library-header h2 { font-size: 1.35rem; }
    .fkm-games-library-header p:last-child { font-size: .72rem; }
    .fkm-games-close { width: 36px; height: 36px; }
    .fkm-games-library-body { gap: .65rem; padding: .7rem .75rem .85rem; }
    .fkm-game-card { grid-template-columns: 78px minmax(0, 1fr); min-height: 0; border-radius: 15px; }
    .fkm-game-card-art { min-height: 0; }
    .fkm-game-card-copy { justify-content: flex-start; padding: .72rem .75rem; }
    .fkm-game-card-meta { gap: .25rem .45rem; font-size: .48rem; letter-spacing: .08em; }
    .fkm-game-card-copy h3 { margin: .26rem 0; font-size: clamp(1.15rem, 5vw, 1.5rem); }
    .fkm-game-card-copy > p { margin-bottom: .45rem; font-size: .7rem; line-height: 1.35; }
    .fkm-game-tags { gap: .25rem; margin-bottom: .5rem; }
    .fkm-game-tags span { padding: .27rem .45rem; font-size: .58rem; }
    .fkm-game-play { min-height: 37px; padding: .55rem .82rem; font-size: .75rem; }
    .fkm-games-principles { padding-top: .05rem; font-size: .7rem; }
}

@media (max-width: 390px) {
    .fkm-games-library { padding: max(.3rem, env(safe-area-inset-top)) max(.3rem, env(safe-area-inset-right)) max(.3rem, env(safe-area-inset-bottom)) max(.3rem, env(safe-area-inset-left)); }
    .fkm-games-library .modal-dialog, .fkm-games-library-card { max-height: calc(100dvh - .6rem); }
    .fkm-games-library-header { padding: .65rem .7rem .58rem; }
    .fkm-games-library-body { gap: .55rem; padding: .55rem .6rem .7rem; }
    .fkm-game-card { grid-template-columns: 62px minmax(0,1fr); }
    .fkm-game-card-copy { padding: .58rem .62rem; }
    .fkm-game-card-meta { font-size: .43rem; }
    .fkm-game-card-copy > p { font-size: .65rem; }
    .fkm-game-tags span { font-size: .54rem; }
    .fkm-game-play { min-height: 35px; }
}

@media (max-height: 650px) {
    .fkm-games-library-header { padding-top: .65rem; padding-bottom: .55rem; }
    .fkm-games-library-body { gap: .55rem; padding-top: .55rem; padding-bottom: .65rem; }
    .fkm-game-card { min-height: 0; }
    .fkm-game-card-art { min-height: 145px; }
    .fkm-game-card-copy { padding-top: .75rem; padding-bottom: .75rem; }
    .fkm-game-card-copy > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
    .fkm-game-tags { margin-bottom: .45rem; }
    .fkm-game-play { min-height: 38px; }
}

@media (max-width: 680px) and (max-height: 650px) {
    .fkm-game-card { grid-template-columns: 58px minmax(0, 1fr); }
    .fkm-game-card-art { min-height: 0; }
    .fkm-game-card-copy > p { -webkit-line-clamp: 2; }
    .fkm-game-tags { margin-bottom: .35rem; }
}

@media (max-height: 730px) and (min-width: 681px) {
    .fkm-orbit-dialog { height: 100dvh; }
    .fkm-orbit-header { flex-basis: 58px; }
    .fkm-orbit-play { min-height: 560px; gap: .5rem; padding-block: .55rem; }
    .fkm-orbit-arena { min-height: 235px; }
    .fkm-orbit-intro { padding-block: 1.1rem; }
}

@media (prefers-reduced-motion: reduce) {
    .fkm-games-launcher,
    .fkm-orbit-bubble.is-target,
    .fkm-orbit-spark { animation: none !important; }
    .fkm-games-launcher,
    .fkm-orbit-start,
    .fkm-orbit-round-meter i,
    .fkm-orbit-streak-meter i { transition: none !important; }
}

/* Larger play field and clearer controls for the 1.8.1 game pass. */
.fkm-orbit-dialog { width: min(100vw, 1280px); }
.fkm-orbit-play { grid-template-rows: auto auto minmax(350px, 1fr) auto auto; max-width: 1180px; }
.fkm-orbit-arena { min-height: 350px; }
.fkm-orbit-sound { border-color: rgba(134, 239, 206, .38); color: #dffff5; background: rgba(74, 178, 147, .12); }
.fkm-orbit-sound[aria-pressed="true"] { border-color: rgba(134, 239, 206, .58); color: #dffff5; background: rgba(74, 178, 147, .18); }
.fkm-orbit-sound[aria-pressed="false"] { border-color: rgba(221, 229, 247, .25); color: #d3dae7; background: rgba(255,255,255,.035); }
.fkm-orbit-sound-icon { font-size: 1.05rem; }
.fkm-orbit-sound-label { min-width: 1.25em; text-align: center; text-transform: uppercase; }
.fkm-orbit-fullscreen { display: grid; place-items: center; width: 38px; height: 38px; padding: 0; border: 1px solid rgba(225, 230, 255, .16); border-radius: 50%; color: #dfe7f7; background: rgba(255,255,255,.055); font: 700 1.2rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-fullscreen:hover { border-color: rgba(255, 222, 157, .55); color: #ffe5ad; background: rgba(255,255,255,.1); }
.fkm-orbit-voice { display: inline-flex; align-items: center; justify-content: center; gap: .42rem; min-height: 39px; padding: .42rem .7rem; border: 1px solid rgba(188, 174, 255, .28); border-radius: 10px; color: #e5deff; background: rgba(133, 117, 208, .11); font: 800 .69rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-voice[aria-pressed="false"] { border-color: rgba(215, 225, 250, .17); color: #aeb9ce; background: rgba(255,255,255,.035); }
.fkm-orbit-voice:disabled { opacity: .56; cursor: not-allowed; }
.fkm-orbit-howto { margin-top: 1rem; overflow: hidden; border: 1px solid rgba(255, 218, 143, .24); border-radius: 15px; background: linear-gradient(130deg, rgba(255, 214, 139, .09), rgba(151, 164, 233, .06)); }
.fkm-orbit-howto summary { padding: .75rem .85rem; color: #ffe4a6; font: 800 .76rem/1.25 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-howto summary::marker { color: #a5efd9; }
.fkm-orbit-howto-content { padding: 0 .9rem .8rem; color: #c4cee0; font-size: .72rem; line-height: 1.48; }
.fkm-orbit-howto-content ol { display: grid; gap: .42rem; margin: 0; padding-left: 1.2rem; }
.fkm-orbit-howto-content strong { color: #f2f5ff; }
.fkm-orbit-howto-content b { color: #ffe19e; }
.fkm-orbit-howto-content p { margin: .55rem 0 0; color: #9ba9c2; }
.fkm-orbit-mission.is-changing { animation: orbit-mission-change .62s ease-out; }
@keyframes orbit-mission-change { 0% { transform: translateY(5px); border-color: rgba(255, 224, 158, .72); box-shadow: 0 0 0 0 rgba(255, 224, 158, .2); } 55% { box-shadow: 0 0 0 6px rgba(255, 224, 158, .08); } 100% { transform: translateY(0); border-color: rgba(187, 207, 255, .14); box-shadow: none; } }
.fkm-orbit-round-timer > span.is-ending { color: #ffe19e; animation: orbit-clock-pulse .65s ease-in-out infinite alternate; }
@keyframes orbit-clock-pulse { to { color: #fff; text-shadow: 0 0 12px rgba(255, 221, 149, .7); } }
.fkm-orbit-status { padding: .12rem .5rem; border: 1px solid transparent; border-radius: 999px; transition: color .2s ease, background .2s ease, border-color .2s ease; }
.fkm-orbit-status.is-celebrating { border-color: rgba(255, 220, 145, .22); color: #ffe6ad; background: linear-gradient(90deg, rgba(255, 221, 150, .09), rgba(139, 238, 214, .08)); font-weight: 800; }
.fkm-orbit-arena::before { animation: orbit-star-drift 36s linear infinite; }
@keyframes orbit-star-drift { to { background-position: 42px 31px, -51px 78px; } }
.fkm-orbit-shell:fullscreen { width: 100vw; height: 100dvh; border: 0; border-radius: 0; }
.fkm-orbit-shell:fullscreen .fkm-orbit-play { grid-template-rows: auto auto minmax(45vh, 1fr) auto auto; max-width: 1480px; }
.fkm-orbit-shell:fullscreen .fkm-orbit-arena { min-height: 45vh; }
.fkm-orbit-modal.is-fullscreen { position: fixed !important; z-index: 100000 !important; inset: 0 !important; display: block !important; width: 100vw !important; height: 100dvh !important; padding: env(safe-area-inset-top) env(safe-area-inset-right) env(safe-area-inset-bottom) env(safe-area-inset-left) !important; overflow: hidden !important; background: #10162b !important; opacity: 1 !important; }
.fkm-orbit-modal.is-fullscreen .fkm-orbit-dialog { width: 100%; height: 100%; max-height: 100%; margin: 0; }
.fkm-orbit-modal.is-fullscreen .fkm-orbit-shell { border: 0; border-radius: 0; }
.fkm-orbit-modal.is-fullscreen .fkm-orbit-play { grid-template-rows: auto auto minmax(45vh, 1fr) auto auto; max-width: 1480px; }
.fkm-orbit-modal.is-fullscreen .fkm-orbit-arena { min-height: 45vh; }

@media (max-width: 680px) {
    .fkm-orbit-dialog { width: 100vw; }
    .fkm-orbit-header { grid-template-columns: auto minmax(0, 1fr) auto; gap: .25rem; padding-inline: .42rem; }
    .fkm-orbit-back { gap: 0; padding-inline: .38rem; }
    .fkm-orbit-back span { display: none; }
    .fkm-orbit-brand { min-width: 0; }
    .fkm-orbit-brand p { display: none; }
    .fkm-orbit-brand h2 { font-size: .82rem; }
    .fkm-orbit-header-actions { gap: .25rem; }
    .fkm-orbit-sound { width: auto; min-width: 56px; height: 36px; padding: .25rem .4rem; gap: .18rem; font-size: .72rem; }
    .fkm-orbit-sound .fkm-orbit-sound-icon,
    .fkm-orbit-sound .fkm-orbit-sound-label { display: inline; }
    .fkm-orbit-fullscreen { display: none; }
    .fkm-orbit-play { grid-template-rows: auto auto minmax(310px, 1fr) auto auto; }
    .fkm-orbit-arena { min-height: 310px; }
    .fkm-orbit-tools { padding: .42rem .5rem; }
    .fkm-orbit-tool-copy { display: none; }
    .fkm-orbit-tool-actions { gap: .35rem; }
    .fkm-orbit-cooldown { display: none; }
    .fkm-orbit-voice { min-height: 37px; padding: .4rem .48rem; font-size: .62rem; }
    .fkm-orbit-boost { min-height: 37px; }
    .fkm-orbit-howto { margin-top: .8rem; }
    .fkm-orbit-howto-content { font-size: .68rem; }
    .fkm-orbit-modal.is-fullscreen .fkm-orbit-play { grid-template-rows: auto auto minmax(42vh, 1fr) auto auto; }
    .fkm-orbit-modal.is-fullscreen .fkm-orbit-arena { min-height: 42vh; }
}

@media (prefers-reduced-motion: reduce) {
    .fkm-orbit-arena::before,
    .fkm-orbit-mission.is-changing,
    .fkm-orbit-round-timer > span.is-ending { animation: none !important; }
}

/* 1.8.2: keep the clue and HUD compact; give the flexible grid row to the arena. */
.fkm-orbit-dialog { height: 100dvh; max-height: 100dvh; }
.fkm-orbit-content { display: flex; flex-direction: column; }
.fkm-orbit-intro[hidden],
.fkm-orbit-play[hidden] { display: none !important; }
.fkm-orbit-play { position: relative; box-sizing: border-box; flex: 1 1 auto; width: 100%; height: 100%; min-height: 0; grid-template-rows: auto auto auto minmax(0, 1fr) auto; max-width: 1280px; gap: .3rem; padding: .35rem clamp(.65rem, 1.8vw, 1.15rem) .38rem; }
.fkm-orbit-arena { min-height: 0; }
.fkm-orbit-shell.is-playing .fkm-orbit-content,
.fkm-orbit-modal.is-fullscreen .fkm-orbit-content { overflow: hidden; }
.fkm-orbit-shell.is-playing .fkm-orbit-header { flex-basis: 48px; padding-block: .25rem; }
.fkm-orbit-shell.is-playing .fkm-orbit-brand-mark { width: 32px; height: 32px; font-size: 1.1rem; }
.fkm-orbit-shell.is-playing .fkm-orbit-play { grid-template-rows: auto auto auto minmax(0, 1fr) auto; max-width: 1480px; }
.fkm-orbit-shell.is-playing .fkm-orbit-tool-copy { display: none; }
.fkm-orbit-shell.is-playing .fkm-orbit-tools { min-height: 38px; padding: .22rem .38rem; }
.fkm-orbit-shell.is-playing .fkm-orbit-mission { padding-block: .45rem; }
.fkm-orbit-shell.is-playing .fkm-orbit-round-meter { height: 4px; }
.fkm-orbit-shell.is-playing .fkm-orbit-status { position: absolute; z-index: 20; right: 50%; bottom: 45px; width: max-content; max-width: min(84%, 620px); padding: .12rem .58rem; transform: translateX(50%); border-color: rgba(211, 222, 255, .1); background: rgba(12, 18, 37, .48); pointer-events: none; }
.fkm-orbit-shell:fullscreen .fkm-orbit-play,
.fkm-orbit-modal.is-fullscreen .fkm-orbit-play { grid-template-rows: auto auto auto minmax(0, 1fr) auto; }
.fkm-orbit-shell:fullscreen .fkm-orbit-arena,
.fkm-orbit-modal.is-fullscreen .fkm-orbit-arena { min-height: 0; }
.fkm-orbit-options { margin: .55rem 0 .7rem; border: 1px solid rgba(196, 210, 250, .16); border-radius: 12px; background: rgba(255,255,255,.035); }
.fkm-orbit-options summary { padding: .68rem .75rem; color: #e9dcff; font: 800 .76rem/1.2 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-options summary::marker { color: #a9f0dc; }
.fkm-orbit-options summary:focus-visible,
.fkm-orbit-option-fields input:focus-visible { outline: 3px solid #fff; outline-offset: 2px; }
.fkm-orbit-option-fields { display: grid; gap: .42rem; padding: 0 .75rem .78rem; }
.fkm-orbit-option-fields label { display: flex; align-items: baseline; justify-content: space-between; gap: .5rem; margin: .15rem 0 0; font-size: .7rem; }
.fkm-orbit-option-fields label output { color: #ffe0a0; font: 800 .68rem/1.1 'Quicksand', sans-serif; white-space: nowrap; }
.fkm-orbit-option-fields select { min-height: 38px; font-size: .78rem; }
.fkm-orbit-option-fields input[type="range"] { width: 100%; margin: -.15rem 0 .12rem; accent-color: #77d8c6; }
.fkm-orbit-option-fields fieldset { display: grid; gap: .25rem; margin: .2rem 0 0; padding: .45rem .6rem .55rem; border: 1px solid rgba(196, 210, 250, .14); border-radius: 10px; }
.fkm-orbit-option-fields fieldset[hidden] { display: none !important; }
.fkm-orbit-option-fields legend { padding: 0 .25rem; color: #a9eedb; font: 800 .64rem/1 'Quicksand', sans-serif; }
.fkm-orbit-option-fields fieldset > small { margin-top: -.18rem; color: #98a7c1; font-size: .62rem; line-height: 1.35; }

@media (max-width: 680px) {
    .fkm-orbit-play { grid-template-rows: auto auto auto minmax(0, 1fr) auto; gap: .26rem; min-height: 0; padding: .3rem .48rem max(.35rem, env(safe-area-inset-bottom)); }
    .fkm-orbit-arena { min-height: 0; }
    .fkm-orbit-shell.is-playing .fkm-orbit-header { flex-basis: 48px; }
    .fkm-orbit-shell.is-playing .fkm-orbit-play { gap: .24rem; }
    .fkm-orbit-shell.is-playing .fkm-orbit-tools { align-items: center; flex-direction: row; min-height: 38px; padding: .28rem .38rem; }
    .fkm-orbit-shell.is-playing .fkm-orbit-tool-actions { gap: .28rem; }
    .fkm-orbit-shell.is-playing .fkm-orbit-voice,
    .fkm-orbit-shell.is-playing .fkm-orbit-boost { min-height: 34px; padding-block: .35rem; }
    .fkm-orbit-shell.is-playing .fkm-orbit-status { font-size: .55rem; }
}

/* 1.8.3 performance mode keeps challenge rules intact while reducing paint cost. */
.fkm-orbit-optimize { display: inline-flex; align-items: center; justify-content: center; gap: .3rem; min-height: 38px; padding: .35rem .58rem; border: 1px solid rgba(225, 230, 255, .16); border-radius: 999px; color: #dfe7f7; background: rgba(255,255,255,.055); font: 700 .69rem/1 'Quicksand', sans-serif; cursor: pointer; }
.fkm-orbit-optimize[aria-pressed="true"] { border-color: rgba(134, 239, 206, .62); color: #dffff5; background: rgba(74, 178, 147, .2); }
.fkm-orbit-optimize:focus-visible { outline: 2px solid #fff4bd; outline-offset: 2px; }
.fkm-orbit-optimize > span:first-child { color: #a4efd9; }
.fkm-orbit-shell.is-optimized .fkm-orbit-arena { box-shadow: inset 0 1px 0 rgba(255,255,255,.16), inset 0 -12px 24px rgba(8, 14, 35, .25); }
.fkm-orbit-shell.is-optimized .fkm-orbit-arena::before { animation: none !important; transition: none; }
.fkm-orbit-shell.is-optimized .fkm-orbit-bubble.is-target { animation: none; }
.fkm-orbit-shell.is-optimized .fkm-orbit-bubble { text-shadow: 0 1px 3px rgba(6, 17, 38, .68); }
@media (pointer: coarse) {
    .fkm-orbit-arena::before { animation: none !important; }
    .fkm-orbit-bubble.is-target { animation: none; filter: none; }
    .fkm-orbit-bubble.is-target::after { position: absolute; inset: 4px; border: 1px solid rgba(255, 238, 175, .55); border-radius: 50%; content: ""; pointer-events: none; }
}
@media (max-width: 680px) {
    .fkm-orbit-optimize { min-height: 36px; gap: .18rem; padding-inline: .4rem; font-size: .59rem; }
}

/* 1.9.0: visible boost timing, focused mastery paths, and two new worlds. */
.fkm-orbit-boost { position: relative; isolation: isolate; min-width: 142px; overflow: hidden; white-space: nowrap; }
.fkm-orbit-boost-progress { position: absolute; z-index: 0; inset: 0; display: block; border-radius: inherit; background: linear-gradient(100deg, rgba(118, 216, 198, .6), rgba(255, 214, 140, .62)); transform: scaleX(1); transform-origin: left center; transition: transform .2s linear; pointer-events: none; }
.fkm-orbit-boost.is-cooling:disabled { opacity: 1; color: #fff3d3; border-color: rgba(255, 225, 165, .4); }
.fkm-orbit-boost-label,
.fkm-orbit-boost > span:last-child { position: relative; z-index: 1; }
.fkm-orbit-boost-label { font-variant-numeric: tabular-nums; }
.fkm-orbit-points-boost { display: inline-block; width: max-content; margin-top: .16rem; padding: .16rem .3rem; border: 1px solid rgba(255, 224, 151, .38); border-radius: 999px; color: #ffe7a9; background: rgba(89, 63, 35, .46); font: 800 .52rem/1 'Quicksand', sans-serif; letter-spacing: .03em; }
.fkm-orbit-points-boost[hidden] { display: none; }
.fkm-orbit-question-clock { display: grid; grid-template-columns: 1fr auto; align-items: center; gap: .42rem .8rem; margin: 0 0 .85rem; padding: .62rem .72rem; border: 1px solid rgba(255, 224, 157, .2); border-radius: 12px; background: rgba(255, 222, 155, .07); }
.fkm-orbit-question-clock[hidden] { display: none; }
.fkm-orbit-question-clock > span { color: #ffe5ac; font: 800 .64rem/1.2 'Quicksand', sans-serif; letter-spacing: .1em; }
.fkm-orbit-question-clock time { color: #fff6dd; font: 800 .88rem/1 'Quicksand', sans-serif; font-variant-numeric: tabular-nums; }
.fkm-orbit-question-clock > div { grid-column: 1 / -1; height: 6px; overflow: hidden; border-radius: 999px; background: rgba(241, 241, 255, .14); }
.fkm-orbit-question-clock i { display: block; width: 100%; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #76dfbe, #ffe19c); transform-origin: left center; transition: transform .1s linear; }
.fkm-orbit-question-clock.is-ending { border-color: rgba(255, 139, 146, .42); background: rgba(255, 112, 131, .1); }
.fkm-orbit-question-clock.is-ending i { background: linear-gradient(90deg, #ffc071, #ff7c90); }
.fkm-orbit-power-choice > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.fkm-orbit-power-choice button { min-height: 76px; }
.fkm-orbit-mastery { grid-column: 1 / -1; padding-top: .6rem; border-top: 1px solid rgba(226, 232, 255, .1); }
.fkm-orbit-mastery-intro { max-width: 760px; margin: -.25rem 0 .7rem; color: #a9b5cd; font-size: .72rem; line-height: 1.45; }
.fkm-orbit-mastery-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: .48rem; }
.fkm-orbit-mastery-card { min-width: 0; padding: .58rem; border: 1px solid rgba(196, 210, 250, .13); border-radius: 12px; background: rgba(255,255,255,.034); }
.fkm-orbit-mastery-card.is-mastered { border-color: rgba(255, 218, 142, .44); background: linear-gradient(130deg, rgba(255, 217, 133, .13), rgba(255,255,255,.04)); }
.fkm-orbit-mastery-card-heading { display: flex; align-items: center; justify-content: space-between; gap: .3rem; }
.fkm-orbit-mastery-card-heading strong { overflow: hidden; color: #f4f6fc; font: 800 .65rem/1.2 'Quicksand', sans-serif; text-overflow: ellipsis; white-space: nowrap; }
.fkm-orbit-mastery-card-heading span { flex: 0 0 auto; color: #adbad0; font: 800 .52rem/1 'Quicksand', sans-serif; }
.fkm-orbit-mastery-card.is-mastered .fkm-orbit-mastery-card-heading span { color: #ffe2a1; }
.fkm-orbit-mastery-meter { height: 4px; margin: .45rem 0 .38rem; overflow: hidden; border-radius: 999px; background: rgba(232, 238, 255, .12); }
.fkm-orbit-mastery-meter i { display: block; height: 100%; border-radius: inherit; background: linear-gradient(90deg, #71d9c0, #ffe0a0); }
.fkm-orbit-mastery-card p { margin: 0; color: #a9b5cd; font-size: .56rem; line-height: 1.35; }
.fkm-orbit-mastery-card small { display: block; margin-top: .18rem; color: #d8c99e; font: 700 .52rem/1.3 'Quicksand', sans-serif; }
.fkm-orbit-arena[data-world="galaxy"] { --orbit-accent: #d2b4ff; background: radial-gradient(ellipse at 76% 20%, rgba(245, 188, 255, .32), transparent 23%), radial-gradient(ellipse at 25% 72%, rgba(75, 106, 232, .45), transparent 38%), linear-gradient(155deg, #111b42, #30245f 48%, #502c69 76%, #162548); }
.fkm-orbit-arena[data-world="galaxy"]::after { position: absolute; top: 13%; right: 10%; width: clamp(66px, 12vw, 118px); aspect-ratio: 1; border: 1px solid rgba(231, 216, 255, .44); border-radius: 50%; background: radial-gradient(circle at 31% 27%, #fff7dc 0 3%, #ffbb88 9%, #e87d8b 39%, #744fba 78%); box-shadow: 0 0 35px rgba(203, 159, 255, .3), 0 0 0 13px rgba(196, 155, 255, .08), 0 0 0 25px rgba(196, 155, 255, .045); content: ""; opacity: .78; pointer-events: none; }
.fkm-orbit-arena[data-world="ocean"] { --orbit-accent: #8ee9f3; background: radial-gradient(ellipse at 50% 2%, rgba(133, 239, 242, .34), transparent 28%), radial-gradient(ellipse at 84% 64%, rgba(52, 171, 210, .4), transparent 35%), linear-gradient(160deg, #0b3854, #126c85 45%, #124b6f 75%, #202f58); }
.fkm-orbit-arena[data-world="ocean"]::after { position: absolute; inset: 12% 0 auto; height: 47%; background: repeating-conic-gradient(from 182deg at 50% -24%, transparent 0 8deg, rgba(139, 243, 235, .08) 9deg 10deg, transparent 11deg 17deg); content: ""; opacity: .8; pointer-events: none; }
.fkm-orbit-arena[data-world="galaxy"] .fkm-orbit-ground { border-color: rgba(218, 190, 255, .34); background: radial-gradient(ellipse at 50% 0, rgba(200, 159, 255, .34), rgba(115, 92, 192, .34) 30%, rgba(47, 46, 114, .93) 75%, #1b2143 100%); }
.fkm-orbit-arena[data-world="ocean"] .fkm-orbit-ground { border-color: rgba(144, 236, 242, .34); background: radial-gradient(ellipse at 50% 0, rgba(148, 244, 236, .37), rgba(45, 158, 183, .34) 30%, rgba(20, 86, 122, .93) 75%, #16314f 100%); }
.fkm-game-details { display: inline-block; margin-top: .65rem; color: #b8eddc; font: 700 .72rem/1.35 'Quicksand', sans-serif; text-decoration: none; }
.fkm-game-details:hover { color: #ffe2a0; text-decoration: underline; }
@media (max-width: 680px) {
    .fkm-orbit-boost { min-width: 122px; }
    .fkm-orbit-boost-label { font-size: .58rem; }
    .fkm-orbit-power-choice > div { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    .fkm-orbit-mastery-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

/* The picker keeps both complete game cards visible on desktop and scrolls on short windows. */
.fkm-games-library .modal-dialog { width: min(100%, 68rem); max-width: 68rem; }
.fkm-games-library-card { width: 100%; min-height: 0; }
.fkm-games-library-body { grid-template-columns: repeat(2, minmax(0, 1fr)); grid-auto-rows: minmax(350px, auto); }
.fkm-game-card { grid-template-columns: minmax(135px, .62fr) minmax(0, 1.38fr); grid-template-rows: minmax(0, 1fr); min-height: 350px; align-self: stretch; }
.fkm-game-card-art { min-height: 0; }
.fkm-game-card-copy { justify-content: flex-start; min-width: 0; padding: 1rem 1.05rem; }
.fkm-game-card-copy h3 { font-size: clamp(1.4rem, 2.2vw, 1.85rem); }
.fkm-game-card-copy > p { display: -webkit-box; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 3; margin-bottom: .55rem; font-size: .86rem; line-height: 1.42; }
.fkm-game-tags { gap: .34rem; margin-bottom: .65rem; }
.fkm-game-tags span { padding: .3rem .48rem; font-size: .62rem; line-height: 1.2; }
.fkm-game-play { min-height: 42px; padding: .65rem .9rem; font-size: .83rem; }
.fkm-game-details { margin-top: .45rem; }
.fkm-games-principles { grid-column: 1 / -1; }
.fkm-game-tags .fkm-heavens-badge { border-color: rgba(239, 207, 133, .55); color: #ffe9b1; background: linear-gradient(110deg, rgba(196, 149, 66, .2), rgba(242, 215, 151, .1)); box-shadow: inset 0 1px rgba(255,255,255,.1), 0 4px 12px rgba(231, 187, 105, .08); }
.fkm-game-tags .fkm-heavens-badge[hidden] { display: none; }

@media (max-width: 820px) {
    .fkm-games-library-body { grid-template-columns: minmax(0, 1fr); }
    .fkm-games-library-body { grid-auto-rows: auto; }
    .fkm-game-card { grid-template-columns: minmax(120px, .38fr) minmax(0, 1.62fr); grid-template-rows: minmax(0, 1fr); min-height: 265px; }
    .fkm-game-card-art { min-height: 0; }
    .fkm-game-card-copy { padding: 1rem 1.1rem; }
    .fkm-games-principles { grid-column: 1; }
}

@media (max-width: 680px) {
    .fkm-game-card { grid-template-columns: 78px minmax(0, 1fr); grid-template-rows: minmax(0, 1fr); min-height: 0; }
    .fkm-game-card-art { min-height: 0; }
    .fkm-game-card-copy { padding: .72rem .75rem; }
    .fkm-game-card-copy > p { -webkit-line-clamp: 3; }
    .fkm-games-principles { grid-column: 1; }
}
