:root { --codekin-text-scale:1; }
.ck-settings-launcher { position:fixed; z-index:2147482000; left:max(14px,env(safe-area-inset-left)); bottom:max(14px,env(safe-area-inset-bottom)); min-height:48px; padding:0 17px; display:flex; align-items:center; gap:9px; border:1px solid rgba(255,255,255,.34); border-radius:18px; color:#fffbe5; background:linear-gradient(150deg,rgba(34,20,82,.94),rgba(10,34,65,.96)); box-shadow:inset 0 1px rgba(255,255,255,.2),0 5px 0 rgba(5,7,31,.72),0 12px 28px rgba(0,3,22,.35); backdrop-filter:blur(14px); font:900 12px/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; letter-spacing:.01em; cursor:pointer; }
.ck-settings-launcher:hover { transform:translateY(-2px); filter:brightness(1.08); }
.ck-settings-launcher:focus-visible,.ck-settings-dialog button:focus-visible { outline:3px solid #fff5a8; outline-offset:3px; }
.ck-settings-launcher span { width:26px; height:26px; display:grid; place-items:center; border-radius:9px; color:#30205f; background:linear-gradient(#fff4a4,#ffc951); box-shadow:0 3px 0 #a65a22; font-size:16px; }
.ck-settings-dialog { width:min(700px,calc(100% - 24px)); max-height:min(820px,calc(100dvh - 24px)); margin:auto; padding:0; border:0; border-radius:31px; color:#f9fbff; background:transparent; overflow:visible; }
.ck-settings-dialog::backdrop { background:rgba(3,4,25,.78); backdrop-filter:blur(10px); }
.ck-settings-panel { max-height:min(820px,calc(100dvh - 24px)); padding:22px; border:2px solid rgba(190,232,255,.48); border-radius:30px; background:radial-gradient(circle at 88% 0,rgba(93,229,215,.18),transparent 32%),linear-gradient(155deg,#18265a,#110d36 58%,#211147); box-shadow:inset 0 2px rgba(255,255,255,.2),inset 0 -18px 35px rgba(0,2,23,.24),0 13px 0 #090724,0 30px 80px rgba(0,2,20,.65); overflow:auto; font-family:system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; font-size:calc(16px * var(--codekin-text-scale)); }
.ck-settings-panel header { display:grid; grid-template-columns:54px minmax(0,1fr) 44px; align-items:center; gap:13px; }
.ck-settings-panel header small { display:block; color:#7ff4df; font-size:.61em; font-weight:1000; letter-spacing:.14em; }
.ck-settings-panel h2 { margin:3px 0 0; color:#fff8d5; font-size:1.55em; line-height:1; letter-spacing:-.045em; }
.ck-settings-gem { width:52px; height:52px; display:grid; place-items:center; border:2px solid #fff1a8; border-radius:17px; color:#392363; background:linear-gradient(145deg,#fff79a,#ffc14a); box-shadow:0 5px 0 #9b5221,0 9px 19px rgba(0,0,0,.28); font:1000 26px/1 system-ui; }
.ck-settings-close { width:44px; height:44px; border:1px solid rgba(255,255,255,.23); border-radius:14px; color:white; background:rgba(255,255,255,.08); font-size:25px; cursor:pointer; }
.ck-settings-intro { margin:17px 0; color:#bbd8e8; font-size:.83em; font-weight:700; }
.ck-setting-stack { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ck-setting-toggle { min-height:76px; padding:12px; display:grid; grid-template-columns:45px minmax(0,1fr) 44px; align-items:center; gap:10px; border:1px solid rgba(255,255,255,.17); border-radius:18px; color:#f7fbff; background:rgba(255,255,255,.065); text-align:left; cursor:pointer; }
.ck-setting-toggle.is-active { border-color:rgba(102,244,215,.72); background:linear-gradient(135deg,rgba(44,176,164,.26),rgba(255,255,255,.07)); box-shadow:inset 0 1px rgba(255,255,255,.12); }
.ck-setting-icon { width:43px; height:43px; display:grid; place-items:center; border-radius:14px; color:#fff6bc; background:rgba(97,75,168,.56); font-size:17px; }
.ck-setting-toggle span strong,.ck-setting-toggle span small { display:block; }
.ck-setting-toggle span strong { font-size:.88em; }
.ck-setting-toggle span small { margin-top:3px; color:#adcbd8; font-size:.62em; line-height:1.25; }
.ck-setting-toggle > i { width:42px; height:24px; padding:3px; display:flex; align-items:center; border-radius:30px; background:#405071; box-shadow:inset 0 2px 4px rgba(0,0,0,.35); }
.ck-setting-toggle > i b { width:18px; height:18px; border-radius:50%; background:#d9e3e9; transition:transform .2s ease; }
.ck-setting-toggle.is-active > i { background:#55ddba; }
.ck-setting-toggle.is-active > i b { background:white; transform:translateX(18px); }
.ck-settings-panel fieldset { margin:15px 0 0; padding:0; border:0; }
.ck-settings-panel legend { margin:0 0 8px; color:#fff6c7; font-size:.73em; font-weight:1000; letter-spacing:.03em; }
.ck-setting-grid { display:grid; gap:8px; }
.ck-setting-grid--two { grid-template-columns:1fr 1fr; }
.ck-setting-grid--math { grid-template-columns:repeat(4,1fr); }
.ck-setting-choice { min-height:64px; padding:10px; border:1px solid rgba(255,255,255,.15); border-radius:16px; color:#edf8fb; background:rgba(255,255,255,.055); cursor:pointer; }
.ck-setting-choice strong,.ck-setting-choice small { display:block; }
.ck-setting-choice strong { font-size:.79em; }
.ck-setting-choice small { margin-top:4px; color:#9ebfce; font-size:.58em; }
.ck-setting-choice.is-active { border-color:#ffe77d; color:#302255; background:linear-gradient(#fff6a2,#ffc957); box-shadow:inset 0 1px white,0 4px 0 #9f5922; }
.ck-setting-choice.is-active small { color:#6c4e55; }
.ck-settings-panel fieldset > p { margin:8px 3px 0; color:#8fb5c7; font-size:.61em; font-weight:700; }
.ck-visually-hidden { position:absolute!important; width:1px!important; height:1px!important; padding:0!important; margin:-1px!important; overflow:hidden!important; clip:rect(0,0,0,0)!important; white-space:nowrap!important; border:0!important; }
.ck-voice-fieldset { padding:12px!important; border:1px solid rgba(126,238,222,.2)!important; border-radius:18px!important; background:linear-gradient(145deg,rgba(68,216,195,.08),rgba(255,255,255,.035)); }
.ck-voice-fieldset legend { padding:0 5px; }
.ck-voice-picker { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:9px; align-items:stretch; }
.ck-voice-picker label { min-width:0; }
.ck-voice-picker select { width:100%; min-height:50px; padding:0 42px 0 14px; border:1px solid rgba(255,255,255,.25); border-radius:14px; color:#fffbe5; background:#23305f; box-shadow:inset 0 1px rgba(255,255,255,.11),0 5px 13px rgba(1,5,29,.18); font:800 .72em/1.15 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; cursor:pointer; color-scheme:dark; }
.ck-voice-picker select:hover { border-color:rgba(126,238,222,.65); }
.ck-voice-picker select:focus-visible { outline:3px solid #fff5a8; outline-offset:2px; }
.ck-voice-picker select:disabled { cursor:not-allowed; opacity:.58; }
.ck-voice-picker button { min-height:50px; padding:0 15px; border:1px solid #9af4e4; border-radius:14px; color:#102950; background:linear-gradient(#9af8e8,#54d6c0); box-shadow:inset 0 1px white,0 4px 0 #17796f; font:1000 .7em/1 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif; cursor:pointer; }
.ck-voice-picker button:hover { filter:brightness(1.07); transform:translateY(-1px); }
.ck-voice-picker button:active { transform:translateY(2px); box-shadow:inset 0 1px white,0 2px 0 #17796f; }
.ck-voice-picker button:disabled { filter:grayscale(.5); cursor:not-allowed; opacity:.55; transform:none; }
.ck-voice-fieldset [data-codekin-voice-status] { color:#bce9e2; }
.ck-voice-privacy { padding:8px 10px; border-radius:11px; color:#8eb4c4!important; background:rgba(5,13,45,.3); line-height:1.42; }
.ck-voice-privacy b { color:#ffe881; }
.ck-settings-panel footer { margin-top:18px; padding-top:15px; display:flex; align-items:center; justify-content:space-between; gap:14px; border-top:1px solid rgba(255,255,255,.1); }
.ck-settings-panel footer span { color:#9fc7d4; font-size:.68em; font-weight:800; }
.ck-settings-panel footer span b { color:#7bf1df; }
.ck-settings-panel footer button { min-height:46px; padding:0 24px; border:1px solid #fff2a9; border-radius:15px; color:#33235d; background:linear-gradient(#fff39a,#ffc446); box-shadow:0 4px 0 #9f5722; font:1000 .75em/1 inherit; cursor:pointer; }

/* Large text scales the small teaching and decision copy that children actually
   need to read, while leaving game boards, cards, and artwork at their designed
   dimensions. The shared selector lets every world honor the same family choice. */
html[data-codekin-text="large"] :where(
  .welcome-copy > p,
  .player-card > label,
  .name-hint,
  .device-save-note > span:last-child,
  .world-copy > .world-kicker,
  .world-copy > p,
  .world-copy > .world-cta,
  .landing-copy > .lede,
  .hero-bubble,
  .panel-heading > p,
  .character-pick > footer,
  .math-guide > span:last-child,
  .status-bubble,
  .rule-chip,
  .modal > p,
  .device-privacy,
  .setup-intro > p,
  .quest-purpose,
  .goal-card > div,
  .side-current-copy,
  .modal-lead,
  .drawn-card > p,
  .latest-card,
  .feature-chips,
  .visual-choice > span,
  .lesson-message,
  .piece-lesson > div,
  .math-gate > p,
  .history-row,
  .history-empty,
  .game-dialog > p,
  .game-dialog > ul,
  .setup-panel > p,
  .setup-note,
  .coach-message,
  .math-card__top,
  .turn-ready,
  .move-log,
  .end-card > p,
  .food-dialog p,
  .rule-card > span,
  .coach-bubble p,
  .astronomer-name,
  .lesson-card > span:last-child,
  .progress-card > p,
  .save-note > span:last-child,
  .dialog-intro,
  .rules-grid article > div,
  .touch-tip > p,
  .draw-setting > span,
  .math-feedback
) { zoom:var(--codekin-text-scale,1.12); }

html[data-codekin-motion="calm"] *,html[data-codekin-motion="calm"] *::before,html[data-codekin-motion="calm"] *::after { scroll-behavior:auto!important; animation-duration:.001ms!important; animation-iteration-count:1!important; transition-duration:.001ms!important; }
@media (max-width:620px) {
  .ck-settings-launcher { width:50px; padding:0; justify-content:center; border-radius:17px; }
  .ck-settings-launcher b { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .ck-settings-launcher span { width:30px; height:30px; }
  .ck-settings-panel { padding:16px; border-radius:24px; }
  .ck-settings-panel header { grid-template-columns:47px minmax(0,1fr) 44px; gap:9px; }
  .ck-settings-gem { width:45px; height:45px; border-radius:14px; font-size:22px; }
  .ck-settings-panel h2 { font-size:1.2em; }
  .ck-setting-stack { grid-template-columns:1fr; }
  .ck-setting-grid--math { grid-template-columns:1fr 1fr; }
  .ck-voice-picker { grid-template-columns:1fr; }
  .ck-voice-picker button { width:100%; }
}
@media (max-width:760px) {
  .ck-settings-launcher[data-codekin-settings-docked="true"] {
    position:relative;
    inset:auto;
    z-index:2;
    width:48px;
    min-width:48px;
    min-height:48px;
    padding:0;
    flex:0 0 48px;
    justify-content:center;
    border-radius:15px;
    box-shadow:inset 0 1px rgba(255,255,255,.2),0 4px 0 rgba(5,7,31,.72),0 8px 18px rgba(0,3,22,.25);
  }
  .ck-settings-launcher[data-codekin-settings-docked="true"] b { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); }
  .ck-settings-launcher[data-codekin-settings-docked="true"] span { width:30px; height:30px; }
}
@media (prefers-reduced-motion:reduce) {
  .ck-settings-launcher,.ck-setting-toggle > i b { transition:none; }
}
