:root {
  --ink: #26362f;
  --muted: #53645b;
  --cream: #fff8e8;
  --paper: #fffdf7;
  --green: #3f7d5a;
  --green-dark: #286044;
  --sun: #ffc94a;
  --coral: #ff816c;
  --blue: #78bde7;
  --lavender: #a899d8;
  --shadow: 0 18px 40px rgba(58, 75, 65, .12);
}

* { box-sizing: border-box; -webkit-tap-highlight-color: rgba(0,0,0,0); }
html, body { margin: 0; min-height: 100%; }
body {
  font-family: "Trebuchet MS", "Segoe UI", sans-serif;
  color: var(--ink);
  background: #e7f2eb;
  overscroll-behavior: none;
}
button { font: inherit; color: inherit; }
button:focus-visible { outline: 4px solid #153d2a; outline-offset: 4px; }
.app-shell,
.app-shell * {
  -webkit-user-select: none;
  user-select: none !important;
  -webkit-touch-callout: none;
}
.app-shell input,
.app-shell textarea {
  -webkit-user-select: text;
  user-select: text !important;
  -webkit-touch-callout: default;
}
button,
.option,
.game-card { touch-action: manipulation; }
img,
button img {
  -webkit-user-drag: none;
  user-drag: none;
  pointer-events: none;
}

.app-shell {
  width: min(100%, 960px);
  min-height: 100dvh;
  margin: 0 auto;
  background:
    radial-gradient(circle at 5% 12%, rgba(255,255,255,.9) 0 4%, transparent 4.2%),
    radial-gradient(circle at 92% 16%, rgba(255,255,255,.7) 0 3%, transparent 3.2%),
    linear-gradient(180deg, #e4f5ed 0%, var(--cream) 42%, #fff5dc 100%);
  position: relative;
  overflow: hidden;
  box-shadow: 0 0 80px rgba(33, 75, 55, .16);
}

.topbar {
  position: relative;
  z-index: 20;
  min-height: 74px;
  padding: max(14px, env(safe-area-inset-top)) 22px 10px;
  display: grid;
  grid-template-columns: 190px 1fr 52px;
  align-items: center;
}
.brand { grid-column:2;display: flex; justify-content: center; align-items: center; gap: 9px; font-weight: 900; font-size: 24px; letter-spacing: -.5px;white-space:nowrap; }
.brand-mark{position:relative;width:33px;height:31px;display:block;flex:0 0 33px}.brand-mark i{position:absolute;display:block;box-shadow:0 4px 7px rgba(55,80,66,.12)}.brand-mark i:first-child{left:1px;top:1px;width:16px;height:16px;border-radius:50%;background:var(--sun)}.brand-mark i:nth-child(2){right:1px;top:2px;width:15px;height:15px;border-radius:5px;background:var(--blue);transform:rotate(9deg)}.brand-mark i:last-child{left:9px;bottom:0;width:17px;height:15px;border-radius:4px;background:var(--coral);clip-path:polygon(50% 0,0 100%,100% 100%)}
.round-button {
  width: 48px; height: 48px; border-radius: 17px; border: 0; background: rgba(255,255,255,.78);
  box-shadow: 0 7px 20px rgba(49,72,60,.1); font-size: 24px; font-weight: 900; cursor: pointer;
}
.top-actions{grid-column:1;display:flex;align-items:center;gap:8px}.top-actions[hidden]{display:none!important}
.home-button,.restart-button{width:91px;display:inline-flex;align-items:center;justify-content:center;gap:6px;padding:0 8px;font-size:13px;font-weight:900;color:var(--green-dark)}
.home-icon,.restart-icon{width:19px;height:19px;fill:none;stroke:currentColor;stroke-width:2.1;stroke-linecap:round;stroke-linejoin:round;flex:0 0 19px}
.sound-button { grid-column: 3; }
.sound-button.muted { color: #a2aaa6; }

.screen { position: relative; min-height: calc(100dvh - 74px); }
.view { display: none; min-height: calc(100dvh - 74px); padding: 22px clamp(22px, 5vw, 54px) 38px; animation: arrive .45s cubic-bezier(.2,.8,.2,1); }
.active-view { display: flex; }
@keyframes arrive { from { opacity: 0; transform: translateY(12px) scale(.99); } to { opacity: 1; transform: none; } }

.welcome { flex-direction: column; align-items: center; justify-content: flex-start; text-align: center; padding-top:28px;padding-bottom:64px; }
.welcome-hero{width:min(100%,850px);display:grid;grid-template-columns:minmax(280px,350px) minmax(0,1fr);align-items:center;gap:clamp(24px,5vw,56px);margin:0 auto 24px}
.welcome-message{text-align:left}.welcome-message h1{max-width:510px;margin-top:6px}.welcome-message .welcome-copy{max-width:520px;margin-bottom:18px}
.discovery-world{position:relative;width:100%;height:310px;border-radius:46% 54% 44% 56% / 48% 42% 58% 52%;background:linear-gradient(145deg,#fff0ad,#ffe0c5 54%,#dff2ff);box-shadow:inset 0 0 0 3px rgba(255,255,255,.55),0 22px 40px rgba(71,85,67,.13);isolation:isolate}
.discovery-world .mascot-wrap{position:absolute;left:50%;top:50%;z-index:3;width:210px;height:200px;transform:translate(-50%,-49%) scale(.86)}
.world-blob{position:absolute;z-index:-1;border-radius:50%;filter:blur(.2px)}.world-blob-one{width:76px;height:76px;left:23px;top:28px;background:#aee0c2}.world-blob-two{width:54px;height:54px;right:29px;bottom:23px;background:#b5dfff}
.discovery-card{position:absolute;z-index:5;display:grid;place-items:center;background:rgba(255,255,255,.92);border:3px solid rgba(255,255,255,.78);box-shadow:0 12px 22px rgba(45,71,57,.14)}
.discovery-animal{left:12px;bottom:21px;width:92px;height:92px;border-radius:28px;transform:rotate(-6deg)}.discovery-animal img{width:90px;height:90px;object-fit:contain}
.discovery-count{right:12px;top:24px;width:106px;height:66px;grid-template-columns:repeat(3,1fr);border-radius:23px;transform:rotate(5deg);font-size:24px;color:var(--green-dark)}.discovery-count b:nth-child(2){color:#e06b58}.discovery-count b:nth-child(3){color:#397eaa}
.discovery-shapes{right:12px;bottom:19px;width:105px;height:82px;border-radius:25px;transform:rotate(-4deg)}.discovery-shapes i,.discovery-shapes b,.discovery-shapes em{position:absolute;display:block}.discovery-shapes i{left:13px;top:25px;width:35px;height:35px;border-radius:50%;background:var(--coral)}.discovery-shapes b{right:13px;top:14px;width:34px;height:34px;border-radius:9px;background:var(--blue);transform:rotate(8deg)}.discovery-shapes em{left:41px;bottom:8px;width:31px;height:28px;background:var(--sun);clip-path:polygon(50% 0,0 100%,100% 100%)}
.discovery-pair{left:-12px;top:19px;width:116px;height:81px;border-radius:23px;transform:rotate(-5deg);grid-template-rows:1fr auto;padding:5px 7px 7px}.discovery-pair span{display:flex;align-items:flex-end;justify-content:center;height:52px}.discovery-pair img{width:51px;height:51px;object-fit:contain;margin:0 -4px}.discovery-pair small,.discovery-size small{color:var(--green-dark);font-size:10px;font-weight:900;line-height:1;white-space:nowrap}
.discovery-size{left:50%;bottom:-25px;width:146px;height:72px;border-radius:23px;transform:translateX(-50%) rotate(2deg);grid-template-rows:1fr auto;padding:7px 8px 8px}.discovery-size span{display:flex;align-items:center;justify-content:center;gap:13px;height:38px}.discovery-size span i{display:block;border-radius:50%;background:var(--blue);box-shadow:inset -5px -6px 0 rgba(40,87,116,.12)}.discovery-size span i:first-child{width:38px;height:38px}.discovery-size span i:last-child{width:21px;height:21px;background:var(--coral)}
.skill-ribbon{display:flex;flex-wrap:wrap;gap:8px}.skill-ribbon span{display:inline-flex;align-items:center;min-height:35px;padding:0 13px;border-radius:13px;background:#fff;color:var(--green-dark);font-size:13px;font-weight:900;box-shadow:0 5px 14px rgba(49,72,60,.08)}.skill-ribbon span:nth-child(2){background:#e4f3ff;color:#326582}.skill-ribbon span:nth-child(3){background:#fff0bd;color:#775810}.skill-ribbon span:nth-child(4){background:#f0eaff;color:#5f4c8a}
.mascot-wrap { width: 230px; height: 220px; position: relative; display: grid; place-items: center; }
.mascot-wrap.compact { width: 200px; height: 180px; }
.mascot {
  position: relative; width: 156px; height: 156px; border-radius: 48% 52% 46% 54%;
  background: linear-gradient(145deg, #68ac82, #3f825f); box-shadow: inset -12px -13px 0 rgba(31,93,61,.15), 0 22px 32px rgba(39,98,66,.22);
}
.mascot::after { content: ""; position: absolute; left: 27px; right: 27px; bottom: 20px; height: 19px; border-radius: 50%; background: rgba(255,255,255,.18); }
.mascot-ear { position: absolute; width: 54px; height: 62px; top: -21px; background: #51966d; border-radius: 70% 25% 60% 30%; z-index: -1; }
.mascot-ear.left { left: 3px; transform: rotate(-26deg); }
.mascot-ear.right { right: 3px; transform: scaleX(-1) rotate(-26deg); }
.mascot-ear::after { content:""; position:absolute; inset: 12px 13px 17px; border-radius: inherit; background:#f2a495; }
.mascot-face { position: absolute; inset: 0; }
.eye { position: absolute; top: 60px; width: 13px; height: 18px; background: #1f3328; border-radius: 50%; }
.eye.left { left: 46px; }.eye.right { right: 46px; }
.eye::after { content:""; position:absolute; width:4px; height:4px; border-radius:50%; background:#fff; left:2px; top:2px; }
.smile { position:absolute; width:40px; height:22px; left:58px; top:88px; border: 5px solid #1f3328; border-top:0; border-left-color:transparent; border-right-color:transparent; border-radius:0 0 50% 50%; }
.mascot-arm { position:absolute; width:62px; height:28px; border-radius:40px; background:#4b8f67; right:-34px; top:78px; transform-origin:left center; animation: wave 1.5s ease-in-out infinite; }
@keyframes wave { 0%,100%{transform:rotate(-14deg)} 50%{transform:rotate(-45deg)} }
.mascot-bounce { animation: bounce 1.25s ease-in-out infinite; }
@keyframes bounce { 0%,100%{transform:translateY(4px) rotate(-2deg)} 50%{transform:translateY(-12px) rotate(2deg)} }
.spark { position:absolute; color:var(--sun); font-size:28px; animation: twinkle 1.8s ease-in-out infinite; }
.spark-a { top:35px; right:8px; }.spark-b { bottom:28px; left:4px; animation-delay:.55s; font-size:20px; }
@keyframes twinkle { 0%,100%{transform:scale(.7) rotate(0);opacity:.5} 50%{transform:scale(1.25) rotate(20deg);opacity:1} }
.sky-decoration { position:absolute; background:rgba(255,255,255,.8); border-radius:80px; width:100px; height:34px; }
.sky-decoration::before,.sky-decoration::after { content:""; position:absolute; background:inherit; border-radius:50%; }
.sky-decoration::before { width:42px;height:42px;left:15px;top:-18px}.sky-decoration::after{width:50px;height:50px;right:10px;top:-23px}
.cloud-one{left:-30px;top:12%}.cloud-two{right:-45px;top:25%;transform:scale(.7)}
.eyebrow { margin: 0 0 8px; color: var(--green-dark); font-size: 14px; font-weight: 900; letter-spacing: 1.3px; text-transform: uppercase; }
h1,h2,p { max-width: 680px; }
h1 { font-size: clamp(42px, 8vw, 68px); letter-spacing: -1.5px; line-height: .98; margin: 5px 0 17px; }
h2 { font-size: clamp(31px, 6vw, 48px); letter-spacing: -1px; line-height: 1.04; margin: 4px 0 12px; }
.welcome-copy { color: var(--muted); font-size: clamp(18px,3vw,22px); line-height: 1.42; margin: 0 0 28px; }
.adult-first-run{width:min(100%,510px);margin:-7px 0 21px;padding:18px 19px;border-radius:18px;background:#fff9e9;text-align:left;box-shadow:0 9px 22px rgba(82,66,37,.09)}.adult-first-run p{margin:0;color:var(--ink);line-height:1.45}.adult-first-run ol{margin:12px 0 14px;padding-left:22px;color:var(--muted);line-height:1.55}.adult-first-run li+li{margin-top:3px}.child-name-field{display:block;margin-top:4px}.child-name-field span{display:block;margin-bottom:6px;font-size:14px;font-weight:900;color:var(--green-dark)}.child-name-field em{font-style:normal;font-weight:700;color:var(--muted)}.child-name-field input{box-sizing:border-box;width:100%;min-height:47px;border:2px solid #cce3d3;border-radius:13px;padding:0 13px;background:#fff;color:var(--ink);font:inherit;font-size:17px;outline:none}.child-name-field input:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,150,109,.16)}.adult-first-run>small{display:block;margin-top:10px;color:var(--muted);font-size:12px;line-height:1.35}
.name-voice-setting{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:10px}.name-voice-setting label{display:flex;align-items:center;gap:8px;color:var(--green-dark);font-size:14px;font-weight:900;cursor:pointer}.name-voice-setting input{width:20px;height:20px;margin:0;accent-color:var(--green)}.name-voice-setting button{min-height:38px;border:0;border-radius:12px;padding:0 14px;background:#e3f2e7;color:var(--green-dark);font:inherit;font-size:13px;font-weight:900;cursor:pointer}.name-voice-setting button:disabled{opacity:.45;cursor:default}#nameVoiceHelp{margin-top:7px}
.primary-button,.secondary-button {
  border:0; border-radius:24px; min-height:68px; padding:0 27px; cursor:pointer; font-size:22px; font-weight:900;
}
.primary-button { min-width:220px; color:white; background:var(--green); box-shadow:0 12px 0 #32714f, 0 19px 25px rgba(49,113,79,.22); display:flex; align-items:center; justify-content:space-between; gap:32px; }
.primary-button:active { transform:translateY(6px); box-shadow:0 6px 0 #32714f,0 10px 17px rgba(49,113,79,.18); }
.primary-button.small { min-width: 170px; margin: 22px auto 2px; justify-content:center; min-height:60px; }
.button-arrow { font-size:31px; }
.secondary-button { background:#fff; color:var(--green-dark); box-shadow:0 7px 20px rgba(49,72,60,.1); margin-top:18px; font-size:17px; }
.primary-button[hidden],.secondary-button[hidden],.card-status[hidden]{display:none}
.welcome-actions{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:12px}.welcome-actions .secondary-button{min-height:58px;margin:0;padding:0 22px}.welcome-actions .primary-button{margin:0}.welcome-games-button{border:2px solid #d8e9dd;box-shadow:0 7px 18px rgba(49,72,60,.08)}
.parent-link { margin-top:28px; border:0; background:transparent; color:var(--muted); text-decoration:underline; text-underline-offset:4px; cursor:pointer; }
.first-time-note { max-width:410px; margin:18px 0 0; color:var(--muted); font-size:14px; line-height:1.4; }
.first-time-note + .parent-link { margin-top:10px; }

.menu { flex-direction:column; max-width:840px; margin:0 auto; width:100%; }
.menu-heading { display:flex; align-items:center; gap:18px; margin:3px 0 24px; }
.menu-heading h2 { margin:0; font-size:clamp(32px,6vw,50px); }
.child-card{display:flex;align-items:center;gap:12px;width:100%;box-sizing:border-box;margin:-6px 0 11px;padding:11px 13px;border-radius:16px;background:#e8f4ec;color:var(--green-dark)}.child-card-mark{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px;border-radius:13px;background:var(--green);color:#fff;font-size:23px;font-weight:900}.child-card b,.child-card small{display:block}.child-card b{font-size:17px}.child-card small{margin-top:2px;color:var(--muted);font-size:12px}.child-card button{margin-left:auto;border:0;background:transparent;color:var(--green-dark);font-size:13px;font-weight:900;text-decoration:underline;text-underline-offset:3px;cursor:pointer}
.approach-note{display:flex;align-items:center;justify-content:space-between;gap:13px;width:100%;box-sizing:border-box;margin:0 0 15px;padding:13px 15px;border-radius:16px;background:#fff4d5;color:var(--ink)}.approach-note b{font-size:15px}.approach-note p{margin:3px 0 0;color:#6f5b2c;font-size:13px;line-height:1.35}.approach-note button{border:0;border-radius:11px;padding:9px 10px;background:#fff;color:var(--green-dark);font-size:12px;font-weight:900;cursor:pointer;box-shadow:0 4px 10px rgba(93,70,26,.1)}
.continue-button{width:100%;min-height:68px;display:flex;align-items:center;gap:12px;padding:13px 19px;margin:0 0 13px;border:0;border-radius:21px;background:var(--green-dark);color:white;text-align:left;cursor:pointer;box-shadow:0 10px 22px rgba(38,96,68,.18)}
.continue-button[hidden]{display:none}.continue-button span:first-child{font-size:14px;opacity:.85}.continue-button b{font-size:21px;line-height:1.15}.continue-button span:last-child{margin-left:auto;font-size:25px;font-weight:900}
.level-shortcuts{display:flex;gap:9px;margin:0 0 24px}.level-shortcuts button{width:46px;height:46px;border:0;border-radius:16px;background:#fff;color:var(--green-dark);font-size:19px;font-weight:900;cursor:pointer;box-shadow:0 5px 13px rgba(45,72,54,.08)}.level-shortcuts button.current{box-shadow:0 0 0 3px rgba(232,174,53,.26),0 8px 18px rgba(166,113,15,.17)}.level-shortcuts button.selected{background:var(--sun);color:var(--ink)}.level-shortcuts button.done:not(.selected){background:#c9ead4}
.game-carousel{width:100%;margin:0 0 10px}
.carousel-summary{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 58px 9px;color:var(--green-dark)}
.carousel-summary b{font-size:16px}.carousel-summary span{font-size:13px;font-weight:900;font-variant-numeric:tabular-nums}
.carousel-window{position:relative;display:block;padding:0 30px}
.carousel-track{display:flex;width:100%;max-width:650px;margin:0 auto;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;overscroll-behavior-x:contain;scrollbar-width:none;touch-action:pan-x}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-track .carousel-card{flex:0 0 100%;width:100%;min-height:330px;margin:0;box-sizing:border-box;scroll-snap-align:center;scroll-snap-stop:always;border-radius:28px;padding:26px 30px;text-align:center;align-items:center;justify-content:flex-end;touch-action:pan-x}
.carousel-track .carousel-card .card-art{width:min(100%,300px);min-height:210px;margin:0 auto}
.carousel-track .carousel-card .card-title{max-width:92%;font-size:30px;line-height:1.05;letter-spacing:-.6px}
.carousel-track .carousel-card .card-subtitle{font-size:16px;line-height:1.25}
.carousel-track .carousel-card::after{right:22px;bottom:20px;width:42px;height:42px;font-size:21px}
.carousel-track .animal-faces{height:205px;width:min(100%,310px)}
.carousel-track .animal-faces img{width:205px;height:205px;clip-path:none}
.carousel-track .animal-faces img:last-child{left:124px;width:174px;height:174px}
.carousel-track .animal-faces.care-faces{height:205px;width:100%}
.carousel-track .animal-faces.care-faces img{height:195px;width:36%}
.carousel-track .shapes-art,.carousel-track .sequence-art,.carousel-track .basket-art,.carousel-track .balls,.carousel-track .combo-card .card-art{width:min(100%,280px);transform:scale(1.35);transform-origin:center}
.carousel-track .fruit-art,.carousel-track .mixed-art,.carousel-track .counting-art{display:grid;place-items:center;font-size:68px;letter-spacing:-12px;transform:none}
.carousel-track .spatial-preview{width:250px;min-height:190px}
.carousel-track .instrument-card-art{min-height:210px}.carousel-track .instrument-sprite{width:176px;height:176px}
.carousel-track .movement-button.carousel-card{display:flex;flex-direction:column;gap:14px;background:#294f40;color:white}
.carousel-track .movement-button.carousel-card .movement-icon{width:124px;height:124px;border-radius:28px;font-size:68px}
.carousel-track .movement-button.carousel-card b{font-size:30px}.carousel-track .movement-button.carousel-card small{font-size:16px}
.carousel-arrow{position:absolute;top:50%;z-index:4;width:50px;height:64px;border:0;border-radius:16px;background:#fff;color:var(--green-dark);display:grid;place-items:center;cursor:pointer;box-shadow:0 7px 18px rgba(45,72,54,.12);touch-action:manipulation;transform:translateY(-50%)}
.carousel-prev{left:0}.carousel-next{right:0}.carousel-arrow:active{transform:translateY(-50%) scale(.94)}.carousel-arrow svg{width:29px;height:29px;fill:none;stroke:currentColor;stroke-width:2.8;stroke-linecap:round;stroke-linejoin:round}
.carousel-position{display:flex;justify-content:center;gap:6px;min-height:8px;margin:12px 0 0}
.carousel-position i{display:block;width:7px;height:7px;border-radius:50%;background:rgba(49,98,73,.2)}.carousel-position i.active{width:22px;border-radius:8px;background:var(--green)}
.carousel-help{margin:8px auto 0;color:var(--muted);font-size:12px;font-weight:700;text-align:center;line-height:1.3}
.menu.carousel-ready .continue-button,.menu.carousel-ready .level-heading,.menu.carousel-ready .level-meter,.menu.carousel-ready>.game-grid,.menu.carousel-ready>.movement-button,.menu.carousel-ready>.new-games-lab{display:none}
.menu.carousel-ready .level-shortcuts{justify-content:center;margin-bottom:12px}
.menu.carousel-ready .parent-guide-button{margin-top:5px}
.mini-mascot { width:72px;height:72px;flex:0 0 72px;border-radius:27px;background:var(--green);position:relative;box-shadow:0 11px 24px rgba(48,104,75,.2); }
.mini-mascot i { position:absolute;top:29px;width:7px;height:10px;border-radius:50%;background:#1f3328}.mini-mascot i:first-child{left:21px}.mini-mascot i:nth-child(2){right:21px}
.mini-mascot b { position:absolute;width:18px;height:10px;border:3px solid #1f3328;border-top:0;left:27px;top:44px;border-radius:0 0 50% 50%; }
.game-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.level-heading { display:flex; align-items:baseline; flex-wrap:wrap; gap:6px 14px; margin:0 0 13px;scroll-margin-top:12px; }
.level-heading.current-level{padding:11px 13px 10px;margin-left:-13px;margin-right:-13px;border-radius:16px;background:#fff4d3;box-shadow:0 7px 18px rgba(142,105,34,.1)}
.level-heading .level-name { font-size:23px; font-weight:900; letter-spacing:-.5px; }
.level-heading small { color:var(--muted); font-size:14px; font-weight:700; }
.level-count{margin-left:auto;padding:5px 10px;border-radius:12px;background:#fff;color:var(--green-dark);font-size:13px;white-space:nowrap}
.level-next-mark{padding:4px 8px;border-radius:9px;background:#edc45a;color:#45320a;font-size:11px;font-weight:900;white-space:nowrap}
.level-meter{height:7px;border-radius:99px;background:rgba(49,98,73,.12);overflow:hidden;margin:-5px 0 17px}
.level-meter span{display:block;width:0;height:100%;border-radius:inherit;background:var(--green);transition:width .45s ease}
.level-two-heading { margin-top:34px; }
.advanced-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.game-card { min-height:210px;border:0;border-radius:30px;padding:22px;text-align:left;display:flex;flex-direction:column;justify-content:flex-end;cursor:pointer;box-shadow:var(--shadow);position:relative;overflow:hidden;transition:transform .2s ease; }
.game-card:active { transform:scale(.97); }
.game-card::after { content:"→";position:absolute;right:18px;bottom:17px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.7);display:grid;place-items:center;font-weight:900; }
.card-status{position:absolute;right:14px;top:12px;padding:7px 10px;border-radius:12px;background:#fff;color:var(--green-dark);font-size:12px;font-weight:900;box-shadow:0 4px 12px rgba(45,72,54,.09)}
.game-card.completed .card-status{background:#d8f0df}
.game-card.is-next,.movement-button.is-next{outline:3px solid #e8ae35;outline-offset:3px}
.color-card{background:#fff0c9}.animal-card{background:#e0f0ff}.size-card{background:#efe8ff}.basket-card{background:#def1e4}
.combo-card{background:#ffe3d9}.new-animal-card{background:#ddf1ef}.counting-card{background:#fff0bf}.spatial-card{background:#f4e6d5}
.shapes-card{background:#fff0cd}.clues-card{background:#e3f1f5}.fruit-card{background:#ffe9dd}.sizecolor-card{background:#ede6ff}.two-step-card{background:#ddf1e4}.voice-challenge-card{background:#e2efff}.three-step-card{background:#fff0c9}.mixed-count-card{background:#f8e8f0}.adventure-card{background:#ddf0e6}
.shapes-art i{position:absolute;left:14px;top:7px;width:82px;height:78px;background:var(--coral);clip-path:polygon(50% 0,0 100%,100% 100%)}.shapes-art b{position:absolute;left:92px;top:23px;width:66px;height:66px;border-radius:17px;background:var(--blue);transform:rotate(9deg);box-shadow:0 8px 12px rgba(0,0,0,.1)}
.fruit-art,.mixed-art{font-size:39px;letter-spacing:-8px;white-space:nowrap;filter:drop-shadow(0 8px 7px rgba(80,55,30,.1))}
.two-tone i:first-child{background:var(--blue)}.two-tone i:last-child{background:var(--coral)}
.sequence-art i,.sequence-art b{position:absolute;display:block;box-shadow:0 7px 10px rgba(0,0,0,.1)}.sequence-art i{left:7px;top:10px;width:56px;height:56px;border-radius:50%;background:var(--coral)}.sequence-art b{left:70px;top:24px;width:52px;height:52px;border-radius:14px;background:var(--blue);transform:rotate(8deg)}.sequence-art em{position:absolute;left:125px;top:0;font-size:64px;font-style:normal;color:var(--sun);text-shadow:0 7px 9px rgba(150,98,0,.14)}
.combo-circle,.combo-square{position:absolute;display:block;box-shadow:0 8px 12px rgba(0,0,0,.1)}
.combo-circle{width:75px;height:75px;left:8px;top:2px;border-radius:50%;background:var(--coral)}
.combo-square{width:69px;height:69px;left:80px;top:24px;border-radius:17px;background:var(--blue);transform:rotate(12deg)}
.counting-art{font-size:47px;letter-spacing:-9px;white-space:nowrap;transform:rotate(-6deg);text-shadow:0 8px 12px rgba(100,50,20,.15)}
.parent-guide-button{align-self:center;border:0;background:transparent;color:var(--green-dark);font-weight:800;font-size:14px;text-decoration:underline;text-underline-offset:4px;line-height:1.35;margin:21px 0 2px;padding:10px;cursor:pointer}
.feedback-link{align-self:center;border:0;border-radius:15px;background:#fff;color:var(--green-dark);font-weight:900;font-size:14px;line-height:1.3;margin:7px 0 2px;padding:12px 16px;cursor:pointer;box-shadow:0 6px 17px rgba(45,72,54,.09)}
.card-art { flex:1;position:relative;display:block;min-height:100px; }
.card-title { font-weight:900;font-size:21px;letter-spacing:-.4px;max-width:85%; }
.card-subtitle { margin-top:5px;font-size:14px;color:var(--muted);font-weight:700; }
.shape-circle,.shape-square { position:absolute;display:block;width:55px;height:55px;box-shadow:0 8px 12px rgba(0,0,0,.1); }
.shape-circle{left:5px;top:12px;border-radius:50%;background:var(--coral)}.shape-square{right:10px;top:19px;border-radius:13px;background:var(--blue);transform:rotate(9deg)}
.shape-star{position:absolute;left:50%;top:-7px;transform:translateX(-50%) rotate(-8deg);font-style:normal;color:var(--sun);font-size:73px;text-shadow:0 8px 10px rgba(173,118,0,.16)}
.animal-faces { position:relative;height:112px;filter:drop-shadow(0 10px 8px rgba(36,71,89,.15)); }
.animal-faces:not(.care-faces) { width:176px;margin-inline:auto; }
.animal-faces img { position:absolute;width:112px;height:112px;object-fit:contain;clip-path:inset(5%); }
.animal-faces img:first-child { left:3px;bottom:-4px;transform:rotate(-5deg); }
.animal-faces img:last-child { left:72px;bottom:2px;width:94px;height:94px;transform:rotate(7deg); }
.animal-faces.care-faces { display:flex;align-items:flex-end;justify-content:center;gap:0; }
.animal-faces.care-faces img { position:relative;left:auto;bottom:auto;transform:none;width:34%;height:106px;min-width:0;object-fit:contain; }
.animal-faces.care-faces img:nth-child(2) { margin-left:-4%; }
.animal-faces.care-faces img:nth-child(3) { margin-left:-4%; }
.spatial-preview,.spatial-scene{display:block;background-image:url('assets/spatial/bear-positions-v1.png');background-repeat:no-repeat;background-size:200% 200%;background-position:0 0}
.spatial-preview{width:min(100%,155px);min-height:108px;margin:0 auto 4px;border-radius:22px;filter:drop-shadow(0 9px 8px rgba(76,55,33,.13))}
.option.spatial-option{padding:8px;background:#fffdf8}
.option.instrument-option{padding:9px;background:#fffdf6}.option.instrument-option .instrument-sprite{width:150px;height:150px;pointer-events:none}.option.instrument-option[data-id="drum"] .instrument-sprite{background-position:0 0}.option.instrument-option[data-id="bell"] .instrument-sprite{background-position:100% 0}
.spatial-scene{width:100%;height:100%;border-radius:25px;pointer-events:none}
.spatial-inside{background-position:0 0}.spatial-on{background-position:100% 0}.spatial-under{background-position:0 100%}.spatial-next{background-position:100% 100%}
.option.queued { outline:4px solid #f5c25f; outline-offset:3px; transform:scale(.96); }
.balls i { position:absolute;border-radius:50%;background:var(--lavender);box-shadow:inset -7px -8px 0 rgba(78,58,136,.12),0 9px 13px rgba(78,58,136,.16)}
.balls i:first-child{width:84px;height:84px;left:8px;top:0}.balls i:last-child{width:42px;height:42px;left:102px;top:48px;background:#c3b7e8}
.basket-art i { font-style:normal;font-size:70px;position:absolute;left:18px;top:-15px;z-index:2}.basket-art b{position:absolute;width:105px;height:65px;left:58px;top:34px;background:#ba8151;border-radius:8px 8px 30px 30px;box-shadow:inset 0 8px 0 rgba(255,255,255,.25);transform:rotate(5deg)}
.shapes-art,.sequence-art,.basket-art,.balls,.combo-card .card-art { width:min(100%,180px);margin-inline:auto; }
.fruit-art,.mixed-art,.counting-art { text-align:center; }
.movement-button { width:100%;border:0;border-radius:26px;background:#294f40;color:white;margin-top:18px;padding:18px 22px;display:grid;grid-template-columns:55px 1fr 30px;text-align:left;align-items:center;gap:14px;cursor:pointer;box-shadow:var(--shadow); }
.movement-button.completed .movement-icon{background:#c7e9d1}
.movement-button b,.movement-button small{display:block}.movement-button b{font-size:18px}.movement-button small{opacity:.84;margin-top:4px}.movement-icon{width:52px;height:52px;border-radius:18px;background:#ffd05d;color:#294f40;display:grid;place-items:center;font-size:30px;font-weight:900}

.new-games-lab{margin-top:38px;padding:22px;border:2px solid #d9d0f4;border-radius:30px;background:linear-gradient(145deg,#f7f2ff,#eaf7f1);scroll-margin-top:12px}.new-games-heading{display:flex;align-items:flex-start;justify-content:space-between;gap:16px;margin-bottom:16px}.new-games-heading h3{margin:3px 0;font-size:27px;letter-spacing:-.5px}.new-games-heading p{margin:0;color:var(--muted);font-size:14px;font-weight:700;line-height:1.35}.lab-kicker{color:#65539b;font-size:11px;font-weight:1000;letter-spacing:1.2px}.lab-badge,.test-chip{display:inline-flex;align-items:center;justify-content:center;border-radius:99px;background:#745fb2;color:#fff;font-size:12px;font-weight:900}.lab-badge{min-width:55px;padding:8px 12px}.turn-taking-card{width:100%;min-height:224px;background:#fff3c9}.test-chip{position:absolute;left:17px;top:15px;padding:6px 10px;z-index:3}.instrument-card-art{display:flex;align-items:center;justify-content:center;gap:12px;min-height:125px}.instrument-sprite{display:block;width:112px;height:112px;background-image:url('assets/instruments/turn-taking-v1.png');background-repeat:no-repeat;background-size:200% 200%;filter:drop-shadow(0 9px 8px rgba(78,55,31,.15))}.instrument-sprite.drum{background-position:0 0}.instrument-sprite.bell{background-position:100% 0}.lab-parent-copy{margin:14px 4px 0;color:var(--muted);font-size:13px;line-height:1.45}.lab-parent-copy b{color:var(--green-dark)}
.new-games-lab>.game-card{width:100%;margin-top:18px}.new-games-lab>.lab-parent-copy+.game-card{margin-top:22px}.friend-pair{display:flex;align-items:flex-end;justify-content:center;gap:6px}.friend-pair img{width:132px;height:132px;object-fit:contain}.home-help-card{background:#fff0d8}.home-help-art{display:flex;align-items:center;justify-content:center;gap:12px;min-height:128px}.home-help-art i,.home-help-art b,.home-help-art em{display:block;position:relative;width:68px;height:68px;border-radius:18px}.home-help-art i{background:#69a8dc;border:12px solid #eaf6ff}.home-help-art i:after{content:'';position:absolute;width:20px;height:26px;border:8px solid #69a8dc;border-left:0;border-radius:0 16px 16px 0;right:-28px;top:9px}.home-help-art b{background:#ffca62;border-radius:50%}.home-help-art em{background:#80b88d;border-radius:18px 18px 30px 30px}.feelings-card{background:#eaf7f1}.feeling-preview{display:flex;align-items:center;justify-content:center;gap:18px;min-height:128px}.feeling-face{display:block;position:relative;width:92px;height:92px;border-radius:50%;background:#ffd36b;box-shadow:0 8px 16px rgba(96,69,26,.14)}.feeling-face:before{content:'';position:absolute;left:24px;top:28px;width:10px;height:13px;border-radius:50%;background:#263e34;box-shadow:34px 0 #263e34}.feeling-face:after{content:'';position:absolute;left:29px;top:57px;width:34px;height:14px;border-bottom:6px solid #263e34;border-radius:0 0 28px 28px}.feeling-face.sad:after{top:64px;border-bottom:0;border-top:6px solid #263e34;border-radius:28px 28px 0 0}.feeling-face.tired:before{height:5px;border-radius:5px}.feeling-face.tired:after{width:24px;height:12px;left:34px;border:5px solid #263e34;border-top:0;border-left-color:transparent;border-right-color:transparent}.option.feeling-option{display:flex;flex-direction:column;gap:10px;align-items:center;justify-content:center}.option.feeling-option b{font-size:20px;color:var(--ink)}.option.feeling-option .feeling-face{width:112px;height:112px}.option.feeling-option .feeling-face:before{left:29px;top:34px;box-shadow:43px 0 #263e34}.option.feeling-option .feeling-face:after{left:36px;top:69px;width:40px}.option.feeling-option .feeling-face.sad:after{top:79px}.option.feeling-option .feeling-face.tired:after{left:41px;width:30px}

.game { flex-direction:column;align-items:center;text-align:center;max-width:820px;margin:0 auto; }
.game-journey{align-self:flex-start;margin:3px 0 8px;color:var(--green-dark);font-size:13px;font-weight:900}
.progress-row { width:100%;display:flex;align-items:center;gap:12px;margin:4px 0 28px; }
.progress-track { flex:1;height:11px;border-radius:99px;background:rgba(49,98,73,.12);overflow:hidden}.progress-track span{display:block;height:100%;width:33%;border-radius:inherit;background:var(--green);transition:width .4s ease}
.progress-count { font-weight:900;color:var(--green-dark);font-size:14px; }
.instruction-wrap{display:flex;align-items:center;justify-content:center;gap:14px;min-height:100px}.instruction-wrap h2{font-size:clamp(30px,5.5vw,48px);margin:0;max-width:620px}
.listen-button{flex:0 0 55px;width:55px;height:55px;border-radius:19px;border:0;background:#fff;color:var(--green-dark);font-size:25px;box-shadow:0 8px 20px rgba(49,72,60,.12);cursor:pointer}
.target-stage{display:flex;align-items:center;justify-content:center;gap:12px;min-height:76px;margin:-8px 0 2px;color:var(--green-dark);font-size:16px;font-weight:900}.target-stage img{width:68px;height:68px;object-fit:contain;filter:drop-shadow(0 7px 7px rgba(36,71,89,.14))}
.target-stage.story-cue{gap:16px;font-size:19px}.target-stage.story-cue img{width:94px;height:94px}
.options{width:100%;min-height:310px;display:flex;align-items:center;justify-content:center;gap:clamp(14px,3vw,28px);flex-wrap:wrap;padding:25px 0 10px}
.option { border:0;background:#fff;border-radius:32px;min-width:150px;width:clamp(145px,25vw,190px);height:190px;display:grid;place-items:center;cursor:pointer;box-shadow:0 14px 32px rgba(50,74,62,.13),inset 0 -8px 0 rgba(51,72,62,.04);font-size:88px;position:relative;transition:transform .18s ease;touch-action:manipulation; }
.option:active{transform:scale(.94)}.option.correct{animation:correct .65s ease;background:#e1f5e7}.option.try-again{animation:shake .42s ease}
@keyframes correct{0%{transform:scale(.95)}55%{transform:scale(1.13) rotate(4deg)}100%{transform:none}}@keyframes shake{0%,100%{transform:none}25%{transform:translateX(-7px)}75%{transform:translateX(7px)}}
.option .paint { width:92px;height:92px;border-radius:28px;box-shadow:inset -8px -10px 0 rgba(0,0,0,.08),0 11px 18px rgba(39,55,48,.14);display:grid;place-items:center;color:rgba(255,255,255,.85);font-size:48px}.option .paint.circle{border-radius:50%}.option .paint.star-shape{background:transparent!important;box-shadow:none;font-size:112px;line-height:1}
.option .paint.triangle-shape{border-radius:0;clip-path:polygon(50% 0,0 100%,100% 100%)}
.option.fruit-option{font-size:85px}
.option .animal-image { width:100%;height:100%;object-fit:contain;padding:2px;filter:drop-shadow(0 10px 8px rgba(36,71,89,.13));pointer-events:none; }
.option.animal-option{overflow:hidden;display:block;padding:0;-webkit-appearance:none;appearance:none}
/* Independent of button/grid intrinsic sizing (notably Safari's anonymous button box). */
.option.animal-option .animal-image{position:absolute;left:4%;top:4%;width:92%;height:92%;max-width:none;max-height:none;display:block;transform:none;padding:0}
.option.animal-option.animal-size-small .animal-image{left:24%;top:24%;width:52%;height:52%;transform:none}
.option.animal-option.animal-size-medium .animal-image{left:12%;top:12%;width:76%;height:76%;transform:none}
.option.animal-option.animal-size-large .animal-image{left:4%;top:4%;width:92%;height:92%;transform:none}
.target-stage[hidden],.game-note[hidden]{display:none}
.asset-problem{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;padding:16px;background:#fff8e8;color:var(--green-dark);font-size:17px;line-height:1.3}
.game-note{width:min(100%,620px);margin:0 auto 8px;font-size:15px;line-height:1.45;color:var(--green-dark)}
.game-note summary{cursor:pointer;padding:12px 0;font-weight:700;min-height:44px}.game-note p{margin:5px 0 12px}
.movement-panel{width:min(100%,560px);text-align:center}.movement-panel p{font-size:18px;line-height:1.4;margin:10px auto;max-width:42ch}
.movement-panel .secondary-button{font-size:16px}.movement-panel .primary-button{margin:12px auto;min-width:0;font-size:18px}
.movement-demo{height:210px;display:flex;align-items:center;justify-content:center;pointer-events:none;margin:10px 0}
.movement-demo .mascot{transform:scale(.9)}.demo-arm{position:absolute;top:85px;width:72px;height:24px;background:#4b8f67;border-radius:25px;transform-origin:12px center;right:-53px}
.demo-arm.left{left:-53px;right:auto;transform-origin:60px center}
.demo-stretch .demo-arm.right{animation:reach-right 2.4s ease-in-out infinite}.demo-stretch .demo-arm.left{animation:reach-left 2.4s ease-in-out infinite}
.demo-wave .demo-arm.right{animation:wave 1.3s ease-in-out infinite}
.demo-clap .demo-arm{z-index:2}.demo-clap .demo-arm.right{animation:clap-right 1.4s ease-in-out infinite}.demo-clap .demo-arm.left{animation:clap-left 1.4s ease-in-out infinite}
@keyframes reach-right{0%,100%{transform:rotate(0)}50%{transform:rotate(-110deg)}}
@keyframes reach-left{0%,100%{transform:rotate(0)}50%{transform:rotate(110deg)}}
@keyframes clap-right{0%,100%{transform:rotate(50deg)}50%{transform:translateX(-82px) rotate(160deg)}}
@keyframes clap-left{0%,100%{transform:rotate(-50deg)}50%{transform:translateX(82px) rotate(-160deg)}}
.puzzle-stage{display:flex;justify-content:center;width:100%;margin:8px auto 18px}
.puzzle-board{width:240px;height:210px;position:relative;display:flex;background:white;border-radius:24px;overflow:hidden}
.puzzle-half{display:block;width:50%;height:100%;position:relative;overflow:hidden}
.puzzle-half img{position:absolute;left:0;top:0;width:240px;height:210px;object-fit:contain;max-width:none}
.puzzle-hole{width:50%;display:grid;place-items:center;background:#deeee4;color:var(--green-dark);font-size:64px;border-left:3px dashed #3f7d5a}
.option.puzzle-option{display:block;overflow:hidden;min-width:120px;width:120px;height:210px;padding:0}
.option.puzzle-option img{position:absolute;right:0;top:0;width:240px;height:210px;max-width:none;object-fit:contain;pointer-events:none}
.puzzle-complete{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:white}
@media(prefers-reduced-motion:reduce){.demo-arm{animation:none!important}.demo-stretch .demo-arm.right{transform:rotate(-110deg)}.demo-stretch .demo-arm.left{transform:rotate(110deg)}}
.option.ball-option span { display:block;border-radius:50%;background:#8daee9;box-shadow:inset -12px -13px 0 rgba(44,73,134,.14),0 13px 20px rgba(44,73,134,.18)}
.option.ball-option.large span{width:124px;height:124px}.option.ball-option.small span{width:64px;height:64px}
.option.count-option{font-size:46px;letter-spacing:-11px;white-space:nowrap;padding-right:10px}
.options.guided-counting{gap:clamp(10px,3vw,22px)}
.option.guided-count-option{width:clamp(105px,20vw,145px);min-width:105px;height:150px;border-radius:26px;font-size:74px;background:#fff6dc;box-shadow:0 12px 25px rgba(116,79,29,.13)}
.option.guided-count-option.counted{background:#e1f5e7;transform:translateY(-8px) scale(.96);pointer-events:none}.option.guided-count-option.counted::after{content:attr(data-count);position:absolute;right:12px;top:10px;width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:#fff;font-size:15px;font-weight:900}
.option.collected { opacity:.18;transform:translateY(25px) scale(.7);pointer-events:none;transition:.35s ease; }
.options.pairing{max-width:660px;min-height:280px;gap:16px;margin:0 auto}.options.pairing .option{width:150px;min-width:150px;height:150px;border-radius:26px}.option.pair-picked{background:#e1f5e7;transform:translateY(-5px) scale(.94);box-shadow:0 9px 20px rgba(49,111,79,.18)}.option.pair-picked::after{content:"✓";position:absolute;right:10px;top:9px;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;background:var(--green);color:white;font-size:18px;font-weight:900}
.hint { color:var(--muted);font-weight:700;font-size:16px;margin:5px 0 0; }

.celebration { flex-direction:column;align-items:center;justify-content:center;text-align:center;padding-bottom:65px; }
.celebration h2{font-size:clamp(36px,7vw,58px);margin:2px 0 8px}.earned-stars{font-size:39px;color:var(--sun);letter-spacing:8px;text-shadow:0 5px 0 #e6a929;margin:12px 0 32px;animation:stars .9s ease both}@keyframes stars{from{transform:scale(.4);opacity:0}70%{transform:scale(1.15)}to{transform:none;opacity:1}}
.celebration-progress{margin:1px 0 0;color:var(--green-dark);font-size:16px;font-weight:900}
.next-game-copy{margin:0 0 17px;color:var(--muted);font-size:17px;line-height:1.35}
.celebration-actions{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:10px;margin-top:17px}
.celebration-actions[hidden]{display:none!important}
.celebration-actions .secondary-button{min-height:54px;margin:0;padding:0 18px;font-size:15px}
.celebration-actions .primary-button{min-height:60px;min-width:180px;margin:0;font-size:17px}
.confetti{position:absolute;inset:0;pointer-events:none;background-image:radial-gradient(circle,#ff846e 0 4px,transparent 5px),radial-gradient(circle,#ffc947 0 4px,transparent 5px),radial-gradient(circle,#6bb58a 0 4px,transparent 5px),radial-gradient(circle,#79bde7 0 4px,transparent 5px);background-size:97px 99px,131px 127px,151px 149px,173px 169px;background-position:10px 30px,30px 0,0 70px,60px 20px;opacity:.32}
.parent-dialog { width:min(90%,560px);max-height:min(86dvh,800px);overflow:auto;border:0;border-radius:32px;padding:34px;color:var(--ink);box-shadow:0 30px 90px rgba(18,38,28,.32);background:#fffdf7}.parent-dialog::backdrop{background:rgba(30,56,43,.52);backdrop-filter:blur(5px)}.parent-dialog h2{font-size:38px;margin:4px 0 15px}.parent-dialog>p:not(.eyebrow){font-size:17px;line-height:1.55;color:var(--muted)}.dialog-close{position:absolute;right:20px;top:18px;min-width:82px;height:44px;border-radius:15px;border:0;background:#eef4ef;color:var(--green-dark);font-size:13px;font-weight:900;cursor:pointer}.parent-tips{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:20px}.parent-tips span{padding:16px;border-radius:18px;background:#edf6f0}.parent-tips b,.parent-tips small{display:block}.parent-tips small{color:var(--muted);margin-top:4px}
.parent-dialog h3{font-size:22px;margin:26px 0 10px}.game-benefits{display:grid;gap:8px}.game-benefits p{margin:0;padding:12px 14px;border-radius:15px;background:#f1f7f1;line-height:1.35}.game-benefits b,.game-benefits span{display:block}.game-benefits span{margin-top:3px;color:var(--muted);font-size:14px}.parent-dialog .parent-reminder{margin-top:20px;font-size:15px!important}
.parent-steps{display:grid;gap:8px}.parent-steps p{margin:0;padding:13px 14px;border-radius:15px;background:#fff5d7;line-height:1.35}.parent-steps b,.parent-steps span{display:block}.parent-steps span{margin-top:3px;color:#6f5b2c;font-size:14px}
.parent-progress{margin-top:19px;padding:14px 15px;border-radius:16px;background:#fff5d7;color:var(--ink)}.parent-progress summary{cursor:pointer;font-weight:900}.parent-progress p{margin:12px 0 7px!important;font-size:15px!important}.parent-progress small{color:var(--muted);line-height:1.35}
.voice-credit{display:block;margin:17px 2px 4px;color:var(--muted);font-size:12px;line-height:1.4}.voice-credit a{color:inherit}
.feedback-dialog h2{max-width:440px}.feedback-field{display:block;margin:17px 0}.feedback-field span{display:block;margin-bottom:7px;color:var(--green-dark);font-size:14px;font-weight:900}.feedback-field select,.feedback-field textarea{width:100%;border:2px solid #cce3d3;border-radius:14px;padding:12px 13px;background:#fff;color:var(--ink);font:inherit;font-size:16px;outline:none;resize:vertical}.feedback-field select:focus,.feedback-field textarea:focus{border-color:var(--green);box-shadow:0 0 0 3px rgba(82,150,109,.16)}.feedback-privacy{display:block;color:var(--muted);line-height:1.4}.feedback-status{min-height:23px;margin:12px 0 0!important;color:var(--green-dark)!important;font-size:14px!important;font-weight:900}.feedback-actions{display:flex;align-items:center;flex-wrap:wrap;gap:10px;margin-top:8px}.feedback-actions .primary-button.small,.feedback-actions .secondary-button{margin:0;min-height:56px;font-size:15px}.feedback-actions .primary-button.small{min-width:210px}.feedback-actions .secondary-button{padding:0 18px}

@media (max-width: 590px) {
  .topbar{min-height:66px;padding-left:12px;padding-right:12px;grid-template-columns:154px 1fr 46px}.screen,.view{min-height:calc(100dvh - 66px)}
  .top-actions{gap:5px}.home-button,.restart-button{width:74px;height:44px;padding:0 4px;gap:4px;font-size:11px}.home-icon,.restart-icon{width:16px;height:16px;flex-basis:16px}.brand{gap:5px;font-size:20px}.brand-mark{width:27px;height:26px;flex-basis:27px}.sound-button{width:44px;height:44px}
  .view{padding-left:16px;padding-right:16px}.welcome{padding-bottom:52px}.mascot-wrap{transform:scale(.84);margin:-18px 0}.adult-first-run{padding:16px;margin:-9px 0 18px}.adult-first-run p{font-size:15px}.adult-first-run ol{font-size:14px}.child-card{margin-top:-8px}.approach-note{padding:12px 13px}.welcome-actions{width:100%;max-width:410px}.welcome-actions .primary-button{flex:1 1 210px}.welcome-actions .secondary-button{flex:1 1 150px}
  .game-grid{gap:11px}.game-card{min-height:186px;border-radius:24px;padding:17px}.card-title{font-size:18px}.card-subtitle{font-size:12px}.game-card::after{display:none}
  .menu.carousel-ready .menu-heading{margin-bottom:12px}.menu.carousel-ready .mini-mascot{display:none}.menu.carousel-ready .menu-heading h2{font-size:30px}.menu.carousel-ready .eyebrow{margin-bottom:2px;font-size:11px}
  .menu.carousel-ready .child-card{margin:0 0 8px;padding:8px 10px}.menu.carousel-ready .child-card-mark{width:32px;height:32px;flex-basis:32px}.menu.carousel-ready .child-card small{display:none}
  .menu.carousel-ready .approach-note{margin-bottom:9px;padding:9px 11px}.menu.carousel-ready .approach-note p{display:none}
  .carousel-summary{margin:0 44px 7px}.carousel-window{padding:0 18px}.carousel-arrow{width:44px;height:58px;border-radius:14px}.carousel-arrow svg{width:25px;height:25px}
  .carousel-track .carousel-card{min-height:300px;border-radius:24px;padding:20px 20px}.carousel-track .carousel-card .card-art{min-height:190px}.carousel-track .carousel-card .card-title{font-size:27px}.carousel-track .carousel-card .card-subtitle{font-size:14px}.carousel-track .carousel-card::after{display:grid}
  .carousel-track .animal-faces{height:190px}.carousel-track .animal-faces img{width:190px;height:190px}.carousel-track .animal-faces img:last-child{left:112px;width:160px;height:160px}.carousel-track .animal-faces.care-faces{height:190px}.carousel-track .animal-faces.care-faces img{height:180px}
  .carousel-track .movement-button.carousel-card .movement-icon{width:112px;height:112px}.carousel-track .movement-button.carousel-card b{font-size:27px}
  .carousel-help{font-size:11px}.carousel-position{margin-top:9px}
  .advanced-grid{grid-template-columns:1fr 1fr}.continue-button{min-height:61px;flex-wrap:wrap;gap:4px 10px}.continue-button span:first-child{font-size:12px}.continue-button b{font-size:18px}.level-shortcuts{margin-bottom:18px}.level-shortcuts button{width:44px;height:44px}.fruit-art,.mixed-art{font-size:32px;letter-spacing:-8px}.shapes-art i{width:60px;height:57px}.shapes-art b{left:66px;width:51px;height:51px}.sequence-art i{width:45px;height:45px}.sequence-art b{left:51px;width:42px;height:42px}.sequence-art em{left:93px;font-size:50px}
  .level-heading .level-name{font-size:21px}.level-heading small{font-size:12px}.level-count{font-size:11px;padding:4px 7px}.level-two-heading{margin-top:26px}.counting-art{font-size:36px;letter-spacing:-8px}.combo-circle{width:59px;height:59px}.combo-square{left:59px;width:53px;height:53px}
  .option{min-width:128px;width:43vw;max-width:165px;height:165px;font-size:75px;border-radius:26px}.options{gap:12px;min-height:275px;padding-top:18px}
  .option.count-option{font-size:36px;letter-spacing:-9px}
  .option.guided-count-option{width:28vw;min-width:86px;height:132px;font-size:63px;border-radius:22px}
  .target-stage{min-height:61px;margin:-5px 0 0;font-size:14px}.target-stage img{width:55px;height:55px}.options.pairing{min-height:250px;gap:12px}.options.pairing .option{width:calc(42vw - 8px);min-width:124px;max-width:150px;height:138px}
  .target-stage.story-cue{font-size:16px;gap:10px}.target-stage.story-cue img{width:78px;height:78px}
  .option.fruit-option{font-size:70px}
  .option.spatial-option{width:43vw;height:165px}.spatial-scene{border-radius:21px}.spatial-preview{min-height:88px}
  .instruction-wrap{align-items:flex-start}.listen-button{width:50px;height:50px;flex-basis:50px;border-radius:17px}.instruction-wrap h2{font-size:29px;text-align:left}
  .new-games-lab{margin-top:30px;padding:16px;border-radius:24px}.new-games-heading h3{font-size:23px}.turn-taking-card{min-height:208px}.instrument-card-art{min-height:112px;gap:3px}.instrument-sprite{width:94px;height:94px}.option.instrument-option .instrument-sprite{width:128px;height:128px}
}

/* Планшет в портретной ориентации: без тесных трёхколоночных карточек. */
@media (min-width: 591px) and (max-width: 860px) and (orientation: portrait) {
  .view { padding-right:clamp(26px,5vw,42px);padding-left:clamp(26px,5vw,42px); }
  .advanced-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .advanced-grid .game-card { min-height:205px; }
  .options { max-width:650px;margin-inline:auto; }
  .parent-dialog { width:min(92%,620px); }
}
@media (max-width: 370px){.game-card{min-height:170px}.card-art{min-height:82px}.card-title{font-size:16px}.animal-faces{font-size:60px}.movement-button{padding:15px}}

/* Короткие горизонтальные экраны: задание помещается, меню уровней прокручивается. */
@media (orientation: landscape) and (max-height: 700px) {
  .app-shell { min-height: 100dvh; }
  .topbar {
    min-height: 52px;
    padding-top: max(4px, env(safe-area-inset-top));
    padding-right: max(16px, env(safe-area-inset-right));
    padding-bottom: 4px;
    padding-left: max(16px, env(safe-area-inset-left));
    grid-template-columns: 174px 1fr 44px;
  }
  .round-button { width:44px; height:44px; border-radius:15px; font-size:21px; }.top-actions{gap:6px}.home-button,.restart-button{width:84px;padding:0 6px;gap:4px;font-size:11px}.home-icon,.restart-icon{width:17px;height:17px;flex-basis:17px}
  .brand { gap:7px; font-size:20px; }
  .brand-mark { font-size:24px; }
  .screen, .view { min-height:calc(100dvh - 52px); }
  .view {
    padding-top: 3px;
    padding-right: max(22px, env(safe-area-inset-right));
    padding-bottom: max(7px, env(safe-area-inset-bottom));
    padding-left: max(22px, env(safe-area-inset-left));
  }

  .welcome { justify-content:flex-start; padding-bottom:8px; }
  .welcome .mascot-wrap { width:120px; height:82px; transform:scale(.5); margin:-20px 0 -8px; }
  .welcome .eyebrow { margin-bottom:2px; font-size:11px; }
  .welcome h1 { font-size:36px; line-height:1; margin:1px 0 5px; }
  .welcome-copy { font-size:15px; line-height:1.25; margin:0 0 9px; }
  .adult-first-run{padding:9px 13px;margin:0 0 8px}.adult-first-run p,.adult-first-run ol{font-size:11px;line-height:1.25}.adult-first-run ol{margin:5px 0 7px}.child-name-field span{font-size:11px;margin-bottom:2px}.child-name-field input{min-height:34px;font-size:14px}.name-voice-setting{margin-top:5px}.name-voice-setting label{font-size:11px}.name-voice-setting input{width:17px;height:17px}.name-voice-setting button{min-height:30px;padding:0 10px;font-size:11px}.adult-first-run>small{display:none}.child-card{margin:-3px 0 5px;padding:6px 9px}.child-card-mark{width:28px;height:28px;flex-basis:28px;border-radius:9px;font-size:17px}.child-card b{font-size:14px}.child-card small,.child-card button{font-size:11px}.approach-note{margin-bottom:6px;padding:7px 9px}.approach-note b{font-size:12px}.approach-note p{font-size:11px;margin-top:1px}.approach-note button{padding:6px 7px;font-size:11px}
  .first-time-note {font-size:11px;line-height:1.15;margin-top:7px;max-width:420px}
  .welcome .primary-button { min-height:50px; min-width:190px; border-radius:18px; font-size:18px; }
  .parent-link,.first-time-note + .parent-link { margin-top:5px; }

  .menu { max-width:100%; }
  .menu-heading { gap:7px; margin:0 0 6px; min-height:48px; }
  .menu-heading .mini-mascot { transform:scale(.68); margin:-11px; }
  .menu-heading .eyebrow { margin-bottom:1px; font-size:11px; }
  .menu-heading h2 { font-size:29px; line-height:1; }
  .continue-button{min-height:47px;padding:6px 13px;margin-bottom:6px;border-radius:15px}.continue-button span:first-child{font-size:11px}.continue-button b{font-size:16px}.level-shortcuts{margin-bottom:9px}.level-shortcuts button{width:33px;height:33px;border-radius:11px;font-size:15px}
  .level-heading{margin-bottom:6px}.level-heading .level-name{font-size:17px}.level-heading small{font-size:11px}.level-count{font-size:12px;padding:3px 7px}.level-meter{height:5px;margin:-2px 0 8px}.level-two-heading{margin-top:14px}
  .game-grid { grid-template-columns:repeat(4, minmax(0, 1fr)); gap:10px; }
  .game-card { min-height:168px; border-radius:20px; padding:11px; }
  .level-two-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.level-two-grid .game-card{min-height:150px}
  .advanced-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.advanced-grid .game-card{min-height:150px}.fruit-art,.mixed-art{font-size:27px;letter-spacing:-7px}.shapes-art i{width:48px;height:46px}.shapes-art b{left:55px;top:15px;width:43px;height:43px}.sequence-art i{width:41px;height:41px}.sequence-art b{left:48px;width:40px;height:40px}.sequence-art em{left:95px;font-size:46px}
  .counting-art{font-size:30px;letter-spacing:-7px}.combo-circle{width:50px;height:50px}.combo-square{left:50px;top:12px;width:45px;height:45px}
  .parent-guide-button{font-size:11px;margin-top:6px;padding:5px}
  .feedback-link{font-size:11px;margin-top:4px;padding:7px 10px}
  .game-card::after { display:none; }
  .card-art { min-height:78px; }
  .card-title { max-width:100%; font-size:16px; line-height:1.05; }
  .card-subtitle { margin-top:2px; font-size:12px; line-height:1.1; }
  .animal-faces { height:80px; }
  .animal-faces img { width:80px; height:80px; }
  .animal-faces img:last-child { left:52px; width:68px; height:68px; }
  .animal-faces.care-faces img { height:76px; }
  .movement-button {
    min-height:54px;
    margin-top:8px;
    padding:6px 13px;
    border-radius:18px;
    grid-template-columns:42px 1fr 22px;
    gap:10px;
  }
  .movement-icon { width:42px; height:42px; border-radius:14px; font-size:24px; }
  .movement-button b { font-size:16px; }
  .movement-button small { margin-top:1px; font-size:12px; }

  .game .progress-row { margin:0 0 4px; gap:9px; }
  .game-journey{font-size:11px;margin:0 0 2px}
  .progress-track { height:8px; }
  .progress-count { font-size:12px; }
  .instruction-wrap { min-height:50px; gap:10px; }
  .instruction-wrap h2 { max-width:none; font-size:clamp(24px, 4.2vw, 32px); line-height:1; }
  .listen-button { width:46px; height:46px; flex-basis:46px; border-radius:15px; font-size:22px; }
  .options { min-height:0; flex-wrap:nowrap; gap:12px; padding:7px 0 3px; }
  .option {
    min-width:112px;
    width:clamp(112px, 20vw, 142px);
    height:142px;
    border-radius:23px;
    font-size:62px;
  }
  .option .paint { width:74px; height:74px; }
  .option .paint.star-shape { font-size:88px; }
  .option.fruit-option{font-size:58px}
  .option.ball-option.large span { width:94px; height:94px; }
  .option.ball-option.small span { width:52px; height:52px; }
  .option.count-option{font-size:30px;letter-spacing:-8px}
  .option.instrument-option .instrument-sprite{width:116px;height:116px}
  .hint { margin:1px 0 0; font-size:13px; line-height:1.1; }
  .target-stage{min-height:46px;margin:0;font-size:12px}.target-stage img{width:42px;height:42px}.options.pairing{min-height:0;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;max-width:620px}.options.pairing .option{width:auto;min-width:0;height:116px;border-radius:20px}

  .celebration { justify-content:flex-start; padding-bottom:8px; }
  .celebration .mascot-wrap { width:120px; height:74px; transform:scale(.36); margin:-10px 0 0; }
  .celebration .eyebrow { margin-bottom:1px; font-size:11px; }
  .celebration h2 { font-size:34px; margin:0 0 3px; }
  .celebration-progress{font-size:12px}.earned-stars { font-size:27px; margin:5px 0 9px; }
  .next-game-copy{font-size:13px;margin:0 0 8px}
  .celebration .primary-button { min-height:50px; min-width:190px; border-radius:18px; font-size:18px; }
  .celebration-actions{margin-top:7px}.celebration .secondary-button { min-height:40px; margin-top:0; padding:0 14px; border-radius:15px; font-size:13px; }

  .parent-dialog { max-height:calc(100dvh - 16px); overflow:auto; padding:20px; border-radius:22px; }
  .parent-dialog h2 { font-size:29px; margin:1px 0 8px; }
  .parent-dialog > p:not(.eyebrow) { font-size:14px; line-height:1.35; margin:5px 0; }
  .parent-tips { margin-top:9px; }
  .parent-tips span { padding:10px; }
  .voice-credit { margin-top:8px; }
  .parent-dialog .primary-button.small { min-height:48px; margin-top:10px; }
}

@media (orientation: landscape) and (min-width:700px) and (max-height:820px) {
  .menu.carousel-ready{max-width:820px}
  .menu.carousel-ready .menu-heading{min-height:38px;margin:0 0 5px;gap:8px}
  .menu.carousel-ready .mini-mascot{display:none}
  .menu.carousel-ready .menu-heading h2{font-size:29px;line-height:1}
  .menu.carousel-ready .menu-heading .eyebrow{margin-bottom:1px;font-size:10px}
  .menu.carousel-ready .child-card{margin:0 0 5px;padding:6px 9px}.menu.carousel-ready .child-card-mark{width:30px;height:30px;flex-basis:30px}.menu.carousel-ready .child-card small{display:none}
  .menu.carousel-ready .approach-note{margin-bottom:5px;padding:7px 9px}.menu.carousel-ready .approach-note p{display:none}
  .menu.carousel-ready .level-shortcuts{margin-bottom:5px}.menu.carousel-ready .level-shortcuts button{width:35px;height:35px;border-radius:11px;font-size:15px}
  .carousel-summary{margin:0 56px 4px}.carousel-window{padding:0 28px}
  .carousel-track .carousel-card{min-height:245px;padding:14px 24px;border-radius:22px}
  .carousel-track .carousel-card .card-art{min-height:145px;height:145px}
  .carousel-track .carousel-card .card-title{font-size:24px}.carousel-track .carousel-card .card-subtitle{font-size:13px}
  .carousel-track .animal-faces{height:145px}.carousel-track .animal-faces img{width:145px;height:145px}.carousel-track .animal-faces img:last-child{left:98px;width:125px;height:125px}
  .carousel-track .animal-faces.care-faces{height:145px}.carousel-track .animal-faces.care-faces img{height:140px}
  .carousel-track .fruit-art,.carousel-track .mixed-art,.carousel-track .counting-art{font-size:55px}
  .carousel-track .spatial-preview{width:190px;min-height:140px}
  .carousel-track .instrument-card-art{min-height:145px}.carousel-track .instrument-sprite{width:125px;height:125px}
  .carousel-track .movement-button.carousel-card .movement-icon{width:90px;height:90px;font-size:52px}.carousel-track .movement-button.carousel-card b{font-size:24px}
  .carousel-position{margin-top:6px}.carousel-help{display:none}
  .menu.carousel-ready .parent-guide-button{margin-top:2px;padding:5px}.menu.carousel-ready .feedback-link{margin-top:2px;padding:7px 11px}
}

@media (max-width:700px) {
  .welcome{padding-top:10px}
  .welcome-hero{grid-template-columns:1fr;gap:31px;margin-bottom:18px}
  .discovery-world{width:min(100%,330px);height:215px;margin:0 auto;border-radius:42px}
  .discovery-world .mascot-wrap{width:170px;height:160px;transform:translate(-50%,-48%) scale(.69);margin:0}
  .discovery-animal{left:10px;bottom:13px;width:70px;height:70px;border-radius:22px}.discovery-animal img{width:68px;height:68px}
  .discovery-count{right:10px;top:14px;width:91px;height:52px;border-radius:18px;font-size:20px}
  .discovery-shapes{right:10px;bottom:12px;width:86px;height:64px;border-radius:20px}.discovery-shapes i{left:10px;top:20px;width:28px;height:28px}.discovery-shapes b{right:10px;top:10px;width:28px;height:28px}.discovery-shapes em{left:33px;bottom:6px;width:27px;height:24px}
  .discovery-pair{left:7px;top:8px;width:96px;height:65px;border-radius:18px;padding:3px 5px 5px}.discovery-pair span{height:40px}.discovery-pair img{width:40px;height:40px}.discovery-pair small,.discovery-size small{font-size:9px}
  .discovery-size{bottom:-21px;width:132px;height:59px;border-radius:18px;padding:5px 6px 6px}.discovery-size span{height:30px;gap:9px}.discovery-size span i:first-child{width:30px;height:30px}.discovery-size span i:last-child{width:17px;height:17px}
  .welcome-message{text-align:center}.welcome-message h1{font-size:clamp(38px,11vw,51px);margin:3px auto 10px}.welcome-message .welcome-copy{font-size:17px;line-height:1.35;margin:0 auto 13px}
  .skill-ribbon{justify-content:center;gap:6px}.skill-ribbon span{min-height:31px;padding:0 10px;font-size:12px}
}

@media (orientation:landscape) and (max-height:700px) {
  .welcome-hero{grid-template-columns:250px minmax(0,1fr);gap:24px;margin:0 auto 8px}
  .discovery-world{width:250px;height:172px;border-radius:35px}
  .discovery-world .mascot-wrap{left:50%;top:50%;width:140px;height:126px;margin:0;transform:translate(-50%,-48%) scale(.54)}
  .discovery-animal{left:7px;bottom:9px;width:58px;height:58px;border-radius:18px}.discovery-animal img{width:56px;height:56px}
  .discovery-count{right:7px;top:10px;width:77px;height:43px;border-radius:15px;font-size:17px}
  .discovery-shapes{right:7px;bottom:9px;width:70px;height:52px;border-radius:16px}.discovery-shapes i{left:8px;top:17px;width:22px;height:22px}.discovery-shapes b{right:8px;top:8px;width:22px;height:22px}.discovery-shapes em{left:27px;bottom:5px;width:22px;height:19px}
  .discovery-pair{left:5px;top:6px;width:76px;height:51px;border-radius:14px;padding:2px 4px 4px}.discovery-pair span{height:32px}.discovery-pair img{width:32px;height:32px}.discovery-pair small,.discovery-size small{font-size:8px}
  .discovery-size{bottom:-16px;width:115px;height:50px;border-radius:15px;padding:4px}.discovery-size span{height:26px;gap:8px}.discovery-size span i:first-child{width:25px;height:25px}.discovery-size span i:last-child{width:14px;height:14px}
  .welcome-message{text-align:left}.welcome-message h1{font-size:34px;margin:2px 0 5px}.welcome-message .welcome-copy{font-size:14px;line-height:1.25;margin:0 0 7px}.welcome-message .eyebrow{font-size:10px}
  .skill-ribbon{justify-content:flex-start;gap:5px}.skill-ribbon span{min-height:26px;padding:0 8px;border-radius:9px;font-size:10px}
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  .view, .mascot-arm, .mascot-bounce, .spark, .earned-stars, .option.correct, .option.try-again { animation:none!important; }
  .progress-track span, .option, .game-card, .option.collected { transition:none!important; }
}

/* Compact puzzle geometry also overrides the general mobile story-image rules. */
.puzzle-game{--piece-width:120px;--piece-height:210px}
.puzzle-game .instruction-wrap{min-height:64px;margin-bottom:8px}
.puzzle-game .progress-row,.movement-game .progress-row{margin-bottom:12px}
.puzzle-game .options{min-height:0;padding:8px 0;margin:0}
.puzzle-game .target-stage{margin:0;min-height:0}
.puzzle-game .puzzle-stage{margin:0 auto 10px}
.puzzle-game .puzzle-board{width:calc(var(--piece-width) * 2);height:var(--piece-height)}
.puzzle-game .target-stage .puzzle-half img{width:calc(var(--piece-width) * 2);height:var(--piece-height)}
.puzzle-game .target-stage .puzzle-complete{width:100%;height:100%}
.puzzle-game .option.puzzle-option{width:var(--piece-width);min-width:var(--piece-width);height:var(--piece-height)}
.puzzle-game .option.puzzle-option img{width:calc(var(--piece-width) * 2);height:var(--piece-height)}
.movement-game .options{min-height:0;padding:0}
.movement-game .instruction-wrap{min-height:60px}
.movement-game .hint{font-size:15px;line-height:1.45;margin-top:12px}
@media(max-height:850px){.puzzle-game{--piece-width:100px;--piece-height:170px}.puzzle-game .instruction-wrap h2{font-size:30px}.movement-demo{height:180px}}
@media(orientation:landscape) and (max-height:600px){.puzzle-game{--piece-width:80px;--piece-height:116px}.puzzle-game .game-note summary{min-height:32px;padding:5px}.puzzle-game .instruction-wrap{min-height:44px}.movement-demo{height:130px}.movement-demo .mascot{transform:scale(.65)}}

/* v47: categories keep the route clear without mixing all games in one strip. */
.menu.carousel-ready .level-shortcuts{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:8px;
  width:100%;
  margin:0 0 18px;
}
.menu.carousel-ready .level-shortcuts button{
  width:auto;
  height:auto;
  min-height:66px;
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  justify-content:center;
  gap:3px;
  border:0;
  border-radius:15px;
  padding:10px 13px;
  background:#fff;
  color:var(--green-dark);
  text-align:left;
  box-shadow:none;
}
.menu.carousel-ready .level-shortcuts button b{font-size:15px;line-height:1.1}
.menu.carousel-ready .level-shortcuts button small{color:var(--muted);font-size:11px;font-weight:750;line-height:1.2}
.menu.carousel-ready .level-shortcuts button.selected{background:var(--green-dark);color:#fff}
.menu.carousel-ready .level-shortcuts button.selected small{color:#dceee3}
.menu.carousel-ready .level-shortcuts button.current:not(.selected){outline:3px solid rgba(232,174,53,.35);outline-offset:-3px}
.menu.carousel-ready .level-shortcuts button.done:not(.selected){background:#dcefe2}
.carousel-summary{align-items:flex-end;margin-bottom:11px}
.carousel-summary div{display:flex;flex-direction:column;gap:2px;min-width:0}
.carousel-summary div b{font-size:20px;line-height:1.1}
.carousel-summary div small{color:var(--muted);font-size:12px;font-weight:750;line-height:1.25}
.carousel-track .category-hidden{display:none!important}

@media(max-width:700px){
  .menu.carousel-ready .level-shortcuts{
    display:flex;
    gap:8px;
    overflow-x:auto;
    scroll-snap-type:x proximity;
    overscroll-behavior-x:contain;
    scrollbar-width:none;
    margin-bottom:13px;
    padding:2px 0;
  }
  .menu.carousel-ready .level-shortcuts::-webkit-scrollbar{display:none}
  .menu.carousel-ready .level-shortcuts button{
    flex:0 0 148px;
    min-height:59px;
    scroll-snap-align:start;
    padding:9px 11px;
  }
  .carousel-summary{margin:0 46px 8px;align-items:flex-start}
  .carousel-summary div b{font-size:18px}
  .carousel-summary div small{font-size:11px}
  .carousel-summary>span{padding-top:3px;white-space:nowrap}
}

@media(orientation:landscape) and (max-height:700px){
  .menu.carousel-ready .level-shortcuts{grid-template-columns:repeat(6,minmax(0,1fr));gap:5px;margin-bottom:7px}
  .menu.carousel-ready .level-shortcuts button{min-height:48px;padding:6px 8px}
  .menu.carousel-ready .level-shortcuts button b{font-size:12px}
  .menu.carousel-ready .level-shortcuts button small{display:none}
  .carousel-summary div small{display:none}
}

/* v48: every carousel card reads as one centred picture-and-title unit. */
.carousel-track .carousel-card{
  display:grid;
  grid-template-columns:minmax(0,1fr);
  grid-template-rows:210px auto auto;
  align-content:center;
  justify-content:stretch;
  justify-items:center;
  gap:7px;
  height:clamp(330px,50vh,390px);
  min-height:0;
  padding:24px 30px 28px;
}

.memory-card{background:#e9f4ff}
.memory-card-art{display:flex;align-items:center;justify-content:center;gap:9px}
.memory-card-art img{width:85px;height:85px;object-fit:contain}
.memory-card-art span{font-size:62px;font-weight:900;color:#397693}
.memory-stage{width:100%;margin:8px auto 0}
.memory-pair{display:flex;justify-content:center;align-items:center;gap:clamp(12px,4vw,28px);width:100%}
.memory-tile{display:grid;place-items:center;width:clamp(130px,25vw,190px);height:clamp(130px,25vw,190px);border-radius:28px;background:white;box-shadow:var(--shadow)}
.memory-tile .memory-image,.memory-option .memory-image{width:88%;height:88%;object-fit:contain;padding:0;filter:drop-shadow(0 9px 8px rgba(40,64,59,.12))}
.memory-hidden{background:#e5f0f7;color:#397693;font-size:90px}
.options.memory-choices{min-height:0;padding:20px 0 10px}
.memory-reveal{min-width:245px;margin:4px auto;font-size:20px}
.option.memory-option{overflow:hidden;padding:5px;width:clamp(130px,25vw,190px);min-width:130px;height:clamp(130px,25vw,190px)}
.carousel-track .carousel-card .card-art{
  flex:none;
  align-self:center;
  width:min(100%,300px);
  height:210px;
  min-height:0;
  margin:0 auto;
}
.carousel-track .carousel-card .card-title,
.carousel-track .carousel-card .card-subtitle{
  justify-self:center;
  margin:0;
  text-align:center;
}
.carousel-track .carousel-card .card-title{max-width:min(96%,560px)}
.carousel-track .shapes-art,
.carousel-track .sequence-art,
.carousel-track .basket-art,
.carousel-track .balls,
.carousel-track .combo-card .card-art{
  width:190px;
  height:150px;
  min-height:150px;
  transform:none;
  align-self:center;
}
.carousel-track .shapes-art i,
.carousel-track .shapes-art b,
.carousel-track .shapes-art em{
  top:50%;
  display:block;
  position:absolute;
  box-shadow:0 9px 14px rgba(42,64,53,.12);
}
.carousel-track .shapes-art i{
  left:2px;
  width:74px;
  height:74px;
  border-radius:50%;
  background:var(--sun);
  clip-path:none;
  transform:translateY(-50%);
}
.carousel-track .shapes-art b{
  left:61px;
  width:72px;
  height:72px;
  border-radius:16px;
  background:var(--blue);
  transform:translateY(-50%) rotate(7deg);
}
.carousel-track .shapes-art em{
  left:121px;
  width:72px;
  height:68px;
  background:var(--coral);
  clip-path:polygon(50% 0,0 100%,100% 100%);
  transform:translateY(-50%);
}

@media(max-width:700px){
  .carousel-track .carousel-card{
    grid-template-rows:190px auto auto;
    height:clamp(310px,52vh,360px);
    padding:20px 20px 24px;
  }
  .carousel-track .carousel-card .card-art{height:190px}
  .carousel-track .shapes-art,
  .carousel-track .sequence-art,
  .carousel-track .basket-art,
  .carousel-track .balls,
  .carousel-track .combo-card .card-art{height:142px;min-height:142px}
}

@media(orientation:landscape) and (max-height:700px){
  .carousel-track .carousel-card{
    grid-template-rows:145px auto auto;
    height:245px;
    padding:12px 24px 15px;
    gap:4px;
  }
  .carousel-track .carousel-card .card-art{height:145px;min-height:0}
  .carousel-track .shapes-art,
  .carousel-track .sequence-art,
  .carousel-track .basket-art,
  .carousel-track .balls,
  .carousel-track .combo-card .card-art{height:112px;min-height:112px;transform:scale(.82)}
}
