/* ============================================================
   English Adventure — DESIGN SYSTEM (v2, international premium)
   Reference bar: Duolingo ABC / Khan Kids tactility, original art.
   Palette: warm cream base + 6 world accents. No default tech hues.
   ============================================================ */

:root{
  --bg:#FFF3E2;
  --bg2:#FFE8CC;
  --surface:#FFFFFF;
  --ink:#33304E;
  --ink-soft:#837DA0;
  --line:#F0E3CE;
  --accent:#FF6B35;  --accent-deep:#D94F1E;  --accent-soft:#FFE3D6;
  --teal:#12B5A5;    --teal-deep:#0A8A7D;    --teal-soft:#D7F5F1;
  --gold:#FFC531;    --gold-deep:#D99E00;    --gold-soft:#FFF3CF;
  --rose:#F0564A;    --rose-deep:#C93A30;    --rose-soft:#FFE0DD;
  --sky:#4FA3E3;     --sky-deep:#2E7CBE;     --sky-soft:#DEEEfA;
  --leaf:#66BB45;    --leaf-deep:#479126;    --leaf-soft:#E3F5DB;
  --violet:#9B7BE0;  --violet-deep:#7556C4;  --violet-soft:#EAE3FA;
  --r:20px; --r-lg:28px;
  --press:0 6px 0;
  --shadow-lg:0 16px 40px rgba(51,48,78,.14);
  --font-d:"Baloo 2",system-ui,sans-serif;
  --font-b:"Nunito",system-ui,sans-serif;
  --font-hand:"Chalkboard SE","Comic Sans MS","Bradley Hand",cursive;
}
*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}
html{
  width:100%;min-height:100%;overflow-x:clip;overflow-y:auto;
  background:linear-gradient(var(--bg),var(--bg2));
}
body{
  font-family:var(--font-b);
  background:
    radial-gradient(1200px 500px at 80% -10%, var(--gold-soft), transparent 60%),
    radial-gradient(900px 420px at -10% 30%, var(--teal-soft), transparent 55%),
    linear-gradient(var(--bg), var(--bg2));
  background-attachment:scroll;
  color:var(--ink);width:100%;max-width:100%;min-height:100vh;min-height:100dvh;
  overflow-x:clip;overflow-y:visible;-webkit-overflow-scrolling:touch;
}
button{font-family:inherit;cursor:pointer;border:none;background:none;color:inherit}
h1,h2,h3{font-family:var(--font-d);font-weight:700;line-height:1.1;letter-spacing:.01em}

.screen{display:none;width:100%;min-height:100vh;min-height:100dvh;flex-direction:column;
  padding:18px clamp(14px,4vw,44px) 48px;max-width:1020px;margin:0 auto;
  animation:fadeUp .35s cubic-bezier(.2,.9,.3,1)}
.screen.active{display:flex}
@keyframes fadeUp{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:none}}
@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}

/* ---------- pressable 3D buttons ---------- */
.btn3d{
  display:inline-flex;align-items:center;justify-content:center;gap:10px;
  min-height:62px;padding:14px 36px;border-radius:999px;
  font-family:var(--font-d);font-size:1.3rem;font-weight:700;color:#fff;
  background:var(--accent);box-shadow:var(--press) var(--accent-deep);
  transition:transform .1s,box-shadow .1s,filter .2s;user-select:none;
}
.btn3d:hover{filter:brightness(1.05)}
.btn3d:active{transform:translateY(5px);box-shadow:0 1px 0 var(--accent-deep)}
.btn3d.ghost{background:var(--surface);color:var(--ink);box-shadow:var(--press) var(--line)}
.btn3d.teal{background:var(--teal);box-shadow:var(--press) var(--teal-deep)}
.btn3d.gold{background:var(--gold);color:#7A5600;box-shadow:var(--press) var(--gold-deep)}

.iconbtn{
  width:56px;height:56px;border-radius:18px;background:var(--surface);
  border:3px solid var(--line);display:grid;place-items:center;font-size:1.5rem;
  box-shadow:0 4px 0 var(--line);transition:transform .1s,box-shadow .1s;
}
.iconbtn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}

.chip{display:inline-flex;align-items:center;gap:8px;padding:10px 18px;border-radius:999px;
  background:var(--surface);border:3px solid var(--line);font-weight:800;color:var(--ink-soft)}

/* ---------- top bar ---------- */
.topbar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.who{display:flex;align-items:center;gap:12px}
.avadot{width:56px;height:56px;border-radius:50%;background:var(--gold-soft);
  border:3px solid var(--gold);display:grid;place-items:center;font-size:1.7rem;
  box-shadow:0 4px 0 var(--gold-deep)}
.who .nm{font-family:var(--font-d);font-weight:800;font-size:1.2rem}
.who .st{font-size:.85rem;font-weight:800;color:var(--ink-soft)}
.starpill{background:linear-gradient(120deg,var(--gold),#FFD968);color:#7A5600;
  padding:6px 14px;border-radius:999px;font-weight:900;box-shadow:0 3px 0 var(--gold-deep)}

/* ---------- brand / profiles ---------- */
.brand{text-align:center;margin:4vh 0 26px;position:relative}
.brand h1{font-size:clamp(2.2rem,6vw,3.2rem);color:var(--accent-deep);
  text-shadow:0 3px 0 rgba(217,79,30,.12)}
.brand .tag{color:var(--ink-soft);font-size:1.1rem;font-weight:700;margin-top:4px}
.brand .made{display:inline-block;margin-top:10px;font-size:.85rem;font-weight:800;
  color:var(--ink-soft);background:var(--surface);border:2px solid var(--line);
  padding:6px 16px;border-radius:999px}
.brand .mascot-holder{display:flex;justify-content:center;margin-bottom:6px}

.profile-grid{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;margin-bottom:28px}
.pcard{
  width:160px;padding:24px 14px;border-radius:var(--r-lg);background:var(--surface);
  border:3px solid var(--line);display:flex;flex-direction:column;align-items:center;gap:10px;
  box-shadow:0 6px 0 var(--line);transition:transform .16s,border-color .16s;
}
.pcard:hover{transform:translateY(-6px) rotate(-1deg);border-color:var(--gold)}
.pcard .ava{font-size:3rem}
.pcard .nm{font-family:var(--font-d);font-size:1.2rem;font-weight:800}
.pcard .ag{font-size:.85rem;color:var(--ink-soft);font-weight:800}
.pcard.add{border-style:dashed;color:var(--ink-soft)}
.pcard .stars{font-size:.8rem;font-weight:900;color:var(--gold-deep)}

/* ---------- card / onboarding ---------- */
.card{background:var(--surface);border-radius:var(--r-lg);border:3px solid var(--line);
  padding:clamp(22px,4vw,40px);box-shadow:var(--shadow-lg);max-width:600px;margin:0 auto;width:100%}
.field{margin-bottom:24px}
.field label{display:block;font-weight:900;margin-bottom:10px;font-size:1.05rem}
.field input[type=text]{width:100%;min-height:60px;padding:12px 20px;border-radius:18px;
  border:3px solid var(--line);font-size:1.2rem;font-family:inherit;font-weight:700;
  background:#FFFDF6;color:var(--ink)}
.field input[type=text]:focus{outline:none;border-color:var(--gold);box-shadow:0 0 0 4px var(--gold-soft)}
.seg{display:flex;gap:10px;flex-wrap:wrap}
.seg button{flex:1;min-width:66px;min-height:66px;border-radius:18px;border:3px solid var(--line);
  background:#FFFDF6;font-family:var(--font-d);font-size:1.35rem;font-weight:800;transition:all .12s}
.seg button.sel{border-color:var(--accent);background:var(--accent-soft);color:var(--accent-deep);
  box-shadow:0 4px 0 var(--accent)}
.seg.small button{font-size:1rem;min-height:58px}
.comfort{display:flex;flex-direction:column;gap:12px}
.comfort button{display:flex;align-items:center;gap:14px;min-height:68px;padding:14px 20px;
  text-align:left;border-radius:18px;border:3px solid var(--line);background:#FFFDF6;
  font-size:1.1rem;font-weight:800;transition:all .12s}
.comfort button.sel{border-color:var(--teal);background:var(--teal-soft);box-shadow:0 4px 0 var(--teal)}
.comfort .emo{font-size:1.9rem}
.pips{display:flex;gap:8px;justify-content:center;margin-top:14px}
.pip{width:12px;height:12px;border-radius:50%;background:var(--line)}
.pip.on{background:var(--accent)}
.plan-chips{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;margin-top:14px}
.plan-chips span{background:var(--violet-soft);color:var(--violet-deep);font-weight:900;
  font-size:.9rem;padding:8px 14px;border-radius:999px}

/* ---------- child home: premium learning landscape ---------- */
#s-home.child-home{max-width:1480px;padding:28px clamp(18px,3vw,48px) 130px;gap:24px;position:relative}
#s-home.child-home::before{content:'';position:fixed;inset:0;pointer-events:none;z-index:-1;background:
  radial-gradient(ellipse at 8% 42%,rgba(153,218,112,.22),transparent 22%),
  radial-gradient(ellipse at 92% 48%,rgba(120,205,102,.2),transparent 25%),
  linear-gradient(180deg,#FFF9E9 0%,#FFF4D7 54%,#E3F7E1 100%)}
.home-header{display:grid;grid-template-columns:minmax(260px,1fr) minmax(360px,1.4fr) auto;align-items:center;gap:22px}
.home-profile,.home-stats,.home-actions button,.home-progress-row>article{background:rgba(255,255,255,.92);border:3px solid #F1E4C8;box-shadow:0 8px 0 rgba(224,196,139,.35),0 16px 34px rgba(91,70,30,.08)}
.home-profile{min-height:112px;border-radius:58px;padding:10px 24px 10px 12px;display:flex;align-items:center;gap:18px;text-align:left;transition:.15s}
.home-profile:hover{transform:translateY(-3px)}
.home-avatar{width:84px;height:84px;border-radius:50%;display:grid;place-items:center;font-size:2.6rem;background:linear-gradient(145deg,#FFE67A,#FFAC31);border:5px solid #fff;box-shadow:0 0 0 4px #F4AA21,0 6px 14px rgba(145,88,0,.22)}
.home-profile-copy{display:flex;flex-direction:column}.home-profile-copy strong{font-family:var(--font-d);font-size:1.75rem;line-height:1}.home-profile-copy small{font-size:1.2rem;font-weight:1000;color:#E67D00;margin-top:10px}
.home-stats{min-height:94px;border-radius:30px;padding:14px 26px;display:flex;align-items:center;justify-content:center;gap:28px}
.home-stats>i{width:2px;height:56px;background:#F0DFC0}.home-stat{display:flex;align-items:center;gap:12px}.home-stat-icon{font-size:2.8rem;filter:drop-shadow(0 4px 2px rgba(80,50,0,.15))}
.home-stat span:last-child{display:flex;flex-direction:column}.home-stat small{text-transform:uppercase;font-size:.72rem;letter-spacing:.06em;color:#8A6E68;font-weight:1000}.home-stat strong{font-size:.92rem;color:#6B5D80}.home-stat strong b{font-family:var(--font-d);font-size:1.65rem;color:#5B3AA2;margin-right:4px}
.home-actions{display:flex;gap:16px}.home-actions button{width:92px;height:104px;border-radius:28px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;position:relative;transition:.12s}.home-actions button:hover{transform:translateY(-4px)}.home-actions button:active{transform:translateY(4px);box-shadow:0 3px 0 rgba(224,196,139,.35)}
.home-actions button>span{font-size:2.45rem}.home-actions button small{font-family:var(--font-d);font-size:.8rem;font-weight:800}.home-actions button b{position:absolute;right:-8px;top:-8px;background:var(--rose);color:#fff;border:3px solid #fff;border-radius:999px;padding:2px 7px;font-size:.62rem}
.home-lead{display:grid;grid-template-columns:minmax(310px,.78fr) minmax(560px,2fr);gap:24px;align-items:stretch}
.home-welcome{padding:30px 10px 18px;position:relative}.welcome-spark{color:var(--gold);font-size:2rem;position:absolute;right:18px;top:18px}.home-welcome h1{font-size:clamp(2.45rem,4vw,4rem);color:#242048;text-wrap:balance}.home-welcome>p{font-size:1.25rem;color:#756D95;font-weight:800;margin:9px 0 28px}.welcome-coach{max-width:300px;display:flex;gap:12px;align-items:center;background:#fff;border:3px solid #F0E3CE;border-radius:22px;padding:14px 18px;box-shadow:0 6px 0 #EADABD}.welcome-coach span{font-size:1.65rem}.welcome-coach b{font-size:.9rem;color:#5D5677}
.home-hero{min-height:300px;border-radius:38px;overflow:hidden;position:relative;text-align:left;padding:34px 42px;color:#fff;box-shadow:0 10px 0 #0876B7,0 20px 36px rgba(8,105,172,.2);background:linear-gradient(90deg,rgba(4,128,221,.98) 0%,rgba(9,165,224,.9) 48%,rgba(14,179,211,.45) 100%),url('../assets/img/puzzles/klcc/thumbnail.png') center/cover;transition:.15s}
.home-hero:hover{transform:translateY(-4px);filter:saturate(1.06)}.home-hero:active{transform:translateY(6px);box-shadow:0 3px 0 #0876B7}.home-hero::after{content:'🧩';position:absolute;right:30%;bottom:22px;font-size:5.6rem;transform:rotate(-9deg);filter:drop-shadow(0 6px 2px rgba(0,0,0,.18));z-index:2}
.hero-copy{position:relative;z-index:4;display:flex;align-items:flex-start;flex-direction:column}.hero-copy small{background:#6641C7;padding:7px 22px;border-radius:999px;font-family:var(--font-d);font-weight:900;box-shadow:0 4px 0 #4B2BA4}.hero-copy strong{font-family:var(--font-d);font-size:clamp(2rem,3.2vw,3.35rem);line-height:1;margin-top:14px;text-shadow:0 4px 0 rgba(0,71,138,.35)}.hero-copy em{font-style:normal;font-size:1.05rem;font-weight:900;margin:7px 0 20px}.hero-copy>b{background:linear-gradient(#FFD651,#FFAA1F);color:#8B4700;padding:12px 20px 12px 26px;border:4px solid #FFE77F;border-radius:999px;font-family:var(--font-d);font-size:1.4rem;box-shadow:0 6px 0 #D87900}.hero-copy>b i{font-style:normal;background:#fff;width:36px;height:36px;display:inline-grid;place-items:center;border-radius:50%;margin-left:10px;color:#F27B00;font-size:.85rem}.hero-flag{position:absolute;right:24px;top:18px;font-size:5rem;z-index:2;filter:drop-shadow(0 5px 2px rgba(0,0,0,.18))}.hero-mascot{position:absolute;right:12%;bottom:-18px;z-index:3;filter:drop-shadow(0 7px 2px rgba(0,75,130,.25));pointer-events:none}
.home-worlds{position:relative;margin-top:4px;padding:34px 16px 12px;border-radius:44px;background:linear-gradient(180deg,rgba(205,245,255,.25),rgba(83,206,229,.45));border-bottom:8px solid rgba(44,165,190,.22)}
.world-path{display:grid;grid-template-columns:repeat(6,minmax(120px,1fr));gap:12px;position:relative;z-index:1}.world-path::before{content:'';position:absolute;left:7%;right:7%;top:92px;border-top:8px dotted rgba(255,255,255,.92);z-index:-1}
.home-world{display:flex;flex-direction:column;align-items:center;gap:8px;min-width:0;transition:.15s}.home-world:hover{transform:translateY(-7px)}.world-island{width:138px;height:114px;border-radius:48% 52% 44% 56%/55% 48% 52% 45%;display:grid;place-items:center;position:relative;background:linear-gradient(150deg,#A7E76E,#54B83D);border:5px solid #E9FFD5;box-shadow:0 10px 0 #368C2A,0 14px 18px rgba(28,96,50,.18)}.world-island::after{content:'';position:absolute;inset:10px;border-radius:inherit;background:rgba(255,255,255,.14)}.world-island i{font-style:normal;font-size:4rem;position:relative;z-index:1;filter:drop-shadow(0 5px 2px rgba(0,0,0,.18))}.world-island>b{position:absolute;right:-10px;bottom:-2px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#fff;border:4px solid #FFD358;color:#F3AA00;font-size:1.35rem;z-index:2}.home-world.current .world-island{animation:bounce 1.7s ease infinite;box-shadow:0 10px 0 #368C2A,0 0 0 7px rgba(255,210,58,.5)}.home-world.writing .world-island{background:linear-gradient(150deg,#C6A0FF,#7D5DDA);box-shadow:0 10px 0 #6246B5}.home-world.words .world-island{background:linear-gradient(150deg,#FFE86D,#F5A92B);box-shadow:0 10px 0 #D88714}.home-world.reading .world-island{background:linear-gradient(150deg,#FFAE8D,#EC625B);box-shadow:0 10px 0 #C74442}.home-world.listening .world-island{background:linear-gradient(150deg,#8CDFF3,#25A9C7);box-shadow:0 10px 0 #18849D}
.world-label{min-width:130px;background:#fff;border:3px solid #F0E3CE;border-radius:18px;padding:7px 10px;display:flex;flex-direction:column;align-items:center;box-shadow:0 5px 0 #E5D4B6}.world-label strong{font-family:var(--font-d);font-size:.86rem;white-space:nowrap}.world-label small{margin-top:3px;background:#65BF45;color:#fff;border-radius:999px;padding:1px 16px;font-weight:1000}.home-world.writing .world-label small{background:#9673E1}.home-world.words .world-label small{background:#F3B01C}.home-world.reading .world-label small{background:#EF6B63}.home-world.listening .world-label small{background:#25A9C7}
.home-progress-row{display:grid;grid-template-columns:.9fr 1.4fr 1fr;gap:22px}.home-progress-row>article{border-radius:30px;min-height:132px;padding:20px 24px;display:flex;align-items:center;gap:16px}.home-progress-row strong{font-family:var(--font-d);font-size:1rem}.home-progress-row small{display:block;color:#726B8B;font-weight:800;font-size:.77rem;margin-top:6px}.cheer-star,.goal-star{font-size:3.5rem;filter:drop-shadow(0 5px 2px rgba(160,100,0,.2))}.home-reward-card{flex-direction:column!important;align-items:stretch!important;text-align:center}.reward-track{--reward-progress:0%;display:flex;justify-content:space-between;position:relative;margin-top:10px}.reward-track::before,.reward-track::after{content:'';position:absolute;left:4%;right:4%;top:22px;height:7px;border-radius:99px;background:#EFE0BD}.reward-track::after{right:auto;width:var(--reward-progress);background:linear-gradient(90deg,#61BF45,#FFD339)}.reward-stop{position:relative;z-index:1;display:flex;flex-direction:column;align-items:center}.reward-stop b{width:46px;height:46px;border-radius:50%;display:grid;place-items:center;background:#FFF8E4;border:4px solid #F2D690;font-size:1.5rem}.reward-stop.earned b{background:#FFF0A2;border-color:#FFC531}.reward-stop small{font-weight:1000;color:#87621B}.home-goal-card>div{flex:1}.goal-icon{font-size:3rem}.goal-bar{height:13px;background:#F0E5D1;border-radius:99px;margin-top:12px;overflow:hidden}.goal-bar i{display:block;height:100%;width:0;background:linear-gradient(90deg,#57B744,#86D56D);border-radius:inherit;transition:width .45s}
.home-bottom-nav{position:fixed;z-index:40;left:50%;bottom:14px;transform:translateX(-50%);width:min(900px,calc(100% - 28px));height:82px;border-radius:28px;padding:9px 18px;display:grid;grid-template-columns:repeat(5,1fr);background:linear-gradient(180deg,#8C78E8,#6E55CD);border:3px solid #B7A8F4;box-shadow:0 8px 0 #5942B2,0 15px 35px rgba(70,46,150,.28)}.home-bottom-nav button{color:#fff;display:flex;align-items:center;justify-content:center;gap:9px;border-radius:20px;font-family:var(--font-d);font-size:1rem}.home-bottom-nav button span{font-size:1.8rem}.home-bottom-nav button.active{background:#fff;color:#493A86;box-shadow:0 4px 0 #CFC4F6}
@media(max-width:1050px){.home-header{grid-template-columns:1fr 1.3fr}.home-actions{grid-column:1/-1;justify-content:flex-end}.home-lead{grid-template-columns:1fr}.home-welcome{padding-bottom:0}.world-path{grid-template-columns:repeat(3,1fr);row-gap:24px}.world-path::before{display:none}.home-progress-row{grid-template-columns:1fr 1fr}.home-reward-card{grid-column:1/-1;grid-row:1}.home-hero{min-height:320px}}
@media(max-width:620px){#s-home.child-home{padding:14px 12px 112px;gap:16px}.home-header{grid-template-columns:1fr}.home-profile{min-height:86px}.home-avatar{width:64px;height:64px;font-size:2rem}.home-profile-copy strong{font-size:1.4rem}.home-stats{min-height:82px;padding:10px 14px;gap:12px}.home-stat-icon{font-size:2rem}.home-stat strong b{font-size:1.3rem}.home-actions{grid-column:auto;justify-content:space-between}.home-actions button{width:30%;height:86px}.home-actions button>span{font-size:2rem}.home-welcome{padding:10px 4px}.home-welcome h1{font-size:2.35rem}.home-welcome>p{font-size:1rem;margin-bottom:14px}.welcome-coach{display:none}.home-hero{min-height:300px;padding:24px 20px}.hero-copy strong{font-size:2rem;max-width:240px}.hero-copy em{font-size:.88rem}.hero-flag{font-size:3.6rem}.hero-mascot{right:-8px;bottom:-22px;transform:scale(.78)}.home-hero::after{font-size:4rem;right:29%;bottom:18px}.home-worlds{padding:24px 8px 12px}.world-path{grid-template-columns:repeat(2,1fr);gap:22px 8px}.world-island{width:122px;height:102px}.world-label{min-width:120px}.home-progress-row{grid-template-columns:1fr}.home-reward-card{grid-column:auto;grid-row:auto}.home-progress-row>article{min-height:112px}.home-bottom-nav{height:72px;padding:7px 8px}.home-bottom-nav button{flex-direction:column;gap:0;font-size:.7rem}.home-bottom-nav button span{font-size:1.45rem}}
@media(max-width:380px){.home-stats{flex-direction:column;align-items:stretch}.home-stats>i{height:1px;width:100%}.world-island{width:112px}.home-bottom-nav button b{display:none}}
@media(max-width:620px){
  #s-home.child-home{padding-bottom:28px}
  .home-header{order:0}.home-lead{order:1}.home-bottom-nav{order:2;position:relative;z-index:4;left:auto;bottom:auto;transform:none;width:100%;align-self:stretch;margin:0}.home-worlds{order:3}.home-progress-row{order:4}
}
@media(max-width:380px){.home-bottom-nav button{min-width:0;font-size:.64rem}.home-bottom-nav button b{display:block}}

/* ---------- game ---------- */
.abc-dashboard,.abc-game-screen{background:linear-gradient(180deg,#EAFBFF 0,#FFF8E6 100%);touch-action:pan-y pinch-zoom}
.abc-dashboard{padding:clamp(14px,3vw,36px) clamp(12px,4vw,56px) 48px}
.abc-dashboard-head{min-height:190px;display:grid;grid-template-columns:auto 1fr minmax(130px,240px);align-items:center;gap:24px;padding:20px 34px;border-radius:36px;background:linear-gradient(135deg,#7049D7,#9A79F0);color:#fff;box-shadow:0 10px 0 #5532B2,0 18px 34px rgba(66,39,145,.18);overflow:hidden}
.abc-dashboard-head>img{width:100%;height:155px;object-fit:contain;filter:drop-shadow(0 10px 8px rgba(42,20,100,.28))}.abc-dashboard-head small,.abc-game-heading small,.abc-mascot-strip small{font-weight:1000;letter-spacing:.12em}.abc-dashboard-head h1{font-family:var(--font-d);font-size:clamp(1.8rem,4vw,3rem);margin:3px 0}.abc-dashboard-head p{font-weight:800;opacity:.92}.abc-back{align-self:start;min-height:48px;padding:10px 15px;border-radius:16px;background:#fff;color:#51329D;font-weight:1000;box-shadow:0 5px 0 #D9CCFF}
.abc-game-picker{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;margin:32px auto 0;max-width:1320px}.abc-pick-card{min-width:0;display:grid;grid-template-rows:210px 1fr auto;gap:16px;padding:20px;border:4px solid #fff;border-radius:32px;background:#fff;box-shadow:0 9px 0 #DDD5C2,0 16px 26px rgba(71,56,33,.12)}.abc-pick-card.hunt{background:linear-gradient(180deg,#DFF9DD,#fff 52%)}.abc-pick-card.match{background:linear-gradient(180deg,#E2F7FF,#fff 52%)}.abc-pick-card.trail{background:linear-gradient(180deg,#FFF0C8,#fff 52%)}.abc-pick-art{display:grid;place-items:center;overflow:hidden;border-radius:22px}.abc-pick-art img{width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 8px 5px rgba(60,44,20,.18))}.abc-pick-card small{font-weight:1000;letter-spacing:.11em;color:#7556C8}.abc-pick-card h2{font-family:var(--font-d);font-size:1.35rem;margin:5px 0}.abc-pick-card p{font-weight:750;color:#6D6681;line-height:1.45}.abc-best{display:block;margin-top:10px;font-size:.8rem;font-weight:900;color:#A06A00}.abc-pick-card>button{min-height:54px;border-radius:18px;background:linear-gradient(180deg,#FFB82E,#F18D18);color:#fff;font-family:var(--font-d);font-size:1.08rem;box-shadow:0 6px 0 #C86F11}.abc-pick-card>button:active{transform:translateY(4px);box-shadow:0 2px 0 #C86F11}

.abc-game-screen{max-width:none;padding:clamp(10px,2vw,24px);min-height:100dvh;background:radial-gradient(circle at 50% 0,#FFFDF4,#FFF3D9 68%,#F7E6BE)}.abc-game-shell{width:min(1560px,100%);min-height:calc(100dvh - 48px);margin:auto;display:grid;grid-template-rows:auto auto minmax(430px,1fr);gap:14px}.abc-game-top{display:grid;grid-template-columns:1fr minmax(300px,720px) 1fr;align-items:center;gap:16px}.abc-game-top-centre{text-align:center}.abc-game-top-centre h1{font-family:var(--font-d);font-size:clamp(1.8rem,4vw,3.2rem);line-height:1;color:#14276D;text-shadow:0 3px 0 #fff}.abc-hud-btn{width:64px;height:60px;border:3px solid #fff;border-radius:20px;background:#fff;color:#273375;font-size:1.7rem;font-weight:1000;box-shadow:0 6px 0 #E3CFAD,0 8px 18px rgba(88,66,26,.12)}.abc-hud-btn img,.abc-mascot-strip button img,.abc-instruction-banner>button img{width:32px;height:32px;object-fit:contain}.abc-hud-btn.reset{color:#F39717;font-size:2.25rem}.abc-hud-btn.back{width:max-content;padding:0 20px;font-size:1.1rem}.abc-game-tools{display:flex;justify-content:flex-end;gap:14px}.abc-round-progress{width:min(380px,90%);height:45px;margin:5px auto 0;padding:5px 12px;display:grid;grid-template-columns:auto auto 1fr;align-items:center;gap:9px;border:3px solid #fff;border-radius:999px;background:#FFF8E9;box-shadow:0 4px 0 #E6CC9C}.abc-round-progress span{font-size:1.45rem}.abc-round-progress strong{font-family:var(--font-d);color:#25316D}.abc-round-progress i{display:block;height:15px;border-radius:999px;background:#E8DEC9;overflow:hidden}.abc-round-progress b{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#F6B315,#FF7E18);transition:width .4s}.abc-game-heading{width:min(1050px,78%);min-height:86px;margin:auto;padding:12px 24px;display:grid;grid-template-columns:62px 1fr auto;align-items:center;gap:16px;text-align:center;border:4px solid #fff;border-radius:30px;background:rgba(255,255,255,.94);box-shadow:0 6px 0 #E3CDA6,0 12px 28px rgba(93,64,20,.12)}.abc-game-heading>button{width:58px;height:58px;border-radius:50%;background:#fff;box-shadow:0 4px 0 #D5C6AA}.abc-game-heading small{display:none;color:#765AC7}.abc-game-heading h2{font-family:var(--font-d);font-size:clamp(1.25rem,3vw,2.15rem);color:#17266D;margin:0}.abc-game-heading>div:last-child{display:none}.abc-game-stage{min-width:0;position:relative;display:grid;place-items:center;padding:0}.abc-mascot-strip{display:none}

.abc-hunt-scene{position:relative;width:100%;height:clamp(500px,66vh,720px);overflow:hidden;border:7px solid #fff;border-radius:42px;box-shadow:0 10px 0 #D8BE8C,0 20px 38px rgba(55,87,28,.18);background:linear-gradient(#82D8FF 0 52%,#8EDD69 52%)}.abc-hunt-scene.scene-0{background-image:linear-gradient(rgba(105,208,255,.08),rgba(126,215,80,.08)),url('../assets/img/writing-castle/pencil-yard/pencil-yard-background.png');background-size:cover;background-position:center}.abc-hunt-scene.scene-1{background:linear-gradient(160deg,#FFE6A9,#FFBFD1 55%,#9ED9F5)}.abc-hunt-scene.scene-2{background:linear-gradient(160deg,#BDE9FF,#FFF0A8 52%,#A8E27F)}.abc-scene-decor{position:absolute;inset:0;pointer-events:none}.abc-scene-decor i{position:absolute;font-style:normal;font-size:clamp(2.2rem,6vw,5rem);left:calc(7% + var(--i)*18%);top:calc(12% + mod(var(--i),2)*55%);filter:drop-shadow(0 5px 2px rgba(61,80,22,.18))}.abc-hidden-letter{position:absolute;left:var(--x);top:var(--y);transform:translate(-50%,-50%);width:clamp(58px,8vw,82px);height:clamp(58px,8vw,82px);border-radius:22px;background:rgba(255,255,255,.88);color:#563AAE;font-family:var(--font-d);font-size:clamp(2rem,5vw,3.2rem);border:4px solid #fff;box-shadow:0 7px 0 rgba(88,62,142,.42);transition:.2s}.abc-hidden-letter.hint{animation:abcGlow .75s infinite alternate}.abc-hidden-letter.found{z-index:5;animation:abcFound .85s both;background:transparent;color:#EF6D19}.gentle-wrong{animation:abcWiggle .45s}.abc-game-stage.hunt{padding-bottom:6px}

.abc-match-board{width:min(100%,880px);min-height:360px;display:grid;grid-template-columns:1fr minmax(90px,.65fr) 1fr;align-items:center;gap:clamp(10px,3vw,32px);padding:24px;border-radius:38px;background:linear-gradient(145deg,#DFF7FF,#F4E9FF);border:5px solid #fff;box-shadow:0 10px 0 #B9A7E9}.abc-match-column{display:grid;gap:18px;align-content:center}.abc-puzzle-piece{position:relative;min-height:82px;border:5px solid #fff;font-family:var(--font-d);font-size:2.4rem;color:#fff;touch-action:none;user-select:none;transition:transform .18s,opacity .18s}.abc-puzzle-piece.upper{border-radius:25px 5px 5px 25px;background:linear-gradient(180deg,#7A60E1,#5539BB);box-shadow:0 7px 0 #402899}.abc-puzzle-piece.upper::after{content:'';position:absolute;z-index:2;right:-20px;top:50%;width:32px;height:32px;transform:translateY(-50%);border:5px solid #fff;border-left:0;border-radius:0 50% 50% 0;background:#674BCF}.abc-puzzle-piece.lower{border-radius:5px 25px 25px 5px;background:linear-gradient(180deg,#24C7C7,#159898);box-shadow:0 7px 0 #0C7474}.abc-puzzle-piece.lower::before{content:'';position:absolute;z-index:2;left:-4px;top:50%;width:20px;height:32px;transform:translateY(-50%);border:5px solid #fff;border-left:0;border-radius:0 50% 50% 0;background:#EAF0FF}.abc-puzzle-piece.selected{outline:7px solid #FFD33D;transform:scale(1.05)}.abc-puzzle-piece.dragging{z-index:10;opacity:.9}.abc-puzzle-piece.matched{opacity:.18;pointer-events:none}.abc-puzzle-piece.returning{animation:abcWiggle .5s}.abc-match-joined{display:grid;gap:12px;place-items:center}.abc-joined-pair{width:100%;min-height:66px;display:grid;place-items:center;border-radius:20px;background:#FFF17D;border:4px solid #FFC52D;color:#5B3DB3;font-family:var(--font-d);font-size:1.65rem;animation:abcPairPop .5s both}

.abc-trail-board{width:min(100%,980px);min-height:390px;display:grid;grid-template-rows:1fr auto;gap:24px;padding:28px;border-radius:38px;background:linear-gradient(180deg,#9DE1FF 0 52%,#9BDA70 52%);border:5px solid #fff;box-shadow:0 10px 0 #65A84E;overflow:hidden}.abc-trail-path{position:relative;display:flex;align-items:center;justify-content:space-around;gap:12px}.abc-trail-path::before{content:'';position:absolute;left:10%;right:10%;top:55%;border-top:10px dotted #FFF8C7}.abc-trail-stone{z-index:2;width:clamp(70px,10vw,108px);height:clamp(58px,8vw,82px);display:grid;place-items:center;border-radius:50%;background:#FFF3C8;border:5px solid #fff;box-shadow:0 8px 0 #B89B63;font-family:var(--font-d);font-size:2.2rem;color:#543F91}.abc-trail-stone.missing{color:#B39E78;background:#FFF}.abc-trail-stone.lit{background:#FFF16B;animation:abcGlow .6s infinite alternate}.abc-traveller{position:absolute;z-index:3;left:2%;bottom:52%;width:75px;height:78px;transition:transform .8s}.abc-traveller img{width:100%;height:100%;object-fit:contain}.abc-traveller.move{transform:translateX(clamp(110px,28vw,340px)) translateY(-16px)}.abc-trail-chest{z-index:2;font-size:3.5rem;filter:drop-shadow(0 6px 2px rgba(93,65,18,.25))}.abc-trail-chest.open{animation:abcPairPop .7s both}.abc-trail-choices{display:flex;justify-content:center;gap:16px}.abc-trail-choices button{width:clamp(68px,11vw,94px);height:clamp(62px,9vw,82px);border-radius:22px;background:#fff;border:4px solid #8C6DDF;box-shadow:0 7px 0 #664BC0;color:#583EAA;font-family:var(--font-d);font-size:2rem}.abc-trail-choices button.correct{background:#FFF170;border-color:#FFBE21}

.abc-pause-layer,.abc-reward-layer{position:fixed;z-index:90;inset:0;display:grid;place-items:center;padding:20px;background:rgba(49,36,91,.55);backdrop-filter:blur(7px)}.abc-pause-layer[hidden],.abc-reward-layer[hidden]{display:none}.abc-pause-layer>div,.abc-reward-card{width:min(440px,100%);padding:30px;border:5px solid #fff;border-radius:34px;text-align:center;background:linear-gradient(180deg,#FFF9DF,#fff);box-shadow:0 12px 0 #6049B5}.abc-pause-layer span{font-size:3rem}.abc-pause-layer h2,.abc-reward-card h2{font-family:var(--font-d);margin:8px 0 22px}.abc-pause-layer button,.abc-reward-actions button{width:100%;min-height:52px;margin-top:12px;border-radius:18px;background:#7658DC;color:#fff;font-weight:1000;box-shadow:0 5px 0 #5337B3}.abc-pause-layer button:last-child,.abc-reward-actions button:last-child{background:#fff;color:#6048AF;box-shadow:0 5px 0 #DCD4F0}.abc-reward-burst{font-size:3.5rem}.abc-reward-stars{font-size:2.5rem;letter-spacing:5px}.abc-reward-sticker{min-height:105px;display:flex;align-items:center;justify-content:center;gap:15px;margin:16px 0;padding:10px;border-radius:22px;background:#FFF4B9}.abc-reward-sticker img,.abc-reward-sticker svg{width:76px;height:76px;object-fit:contain}.abc-reward-sticker small{display:block;font-weight:1000;color:#A06C00}.abc-reward-sticker strong{font-family:var(--font-d)}
@keyframes abcWiggle{25%{transform:translateX(-7px) rotate(-2deg)}50%{transform:translateX(7px) rotate(2deg)}75%{transform:translateX(-3px)}}@keyframes abcGlow{to{box-shadow:0 0 0 10px rgba(255,225,45,.5),0 7px 0 rgba(88,62,142,.42)}}@keyframes abcFound{50%{transform:translate(-50%,-65%) scale(1.35) rotate(8deg)}100%{transform:translate(-50%,-50%) scale(1.15)}}@keyframes abcPairPop{0%{transform:scale(.55);opacity:0}65%{transform:scale(1.13)}100%{transform:scale(1);opacity:1}}
@media(max-width:760px){.abc-dashboard-head{grid-template-columns:auto 1fr;padding:16px;gap:12px}.abc-dashboard-head>img{grid-column:1/-1;height:105px}.abc-dashboard-head p{font-size:.84rem}.abc-game-picker{grid-template-columns:1fr;margin-top:20px}.abc-pick-card{grid-template-columns:112px 1fr;grid-template-rows:auto auto;padding:14px}.abc-pick-art{grid-row:1/3;height:145px}.abc-pick-card>button{grid-column:2}.abc-game-screen{padding:9px}.abc-game-shell{min-height:calc(100dvh - 18px);grid-template-rows:auto auto minmax(300px,1fr) auto}.abc-game-top{grid-template-columns:auto 1fr auto;gap:8px}.abc-hud-btn.back span{display:none}.abc-hud-btn.back{width:50px;padding:0}.abc-round-progress{min-width:0}.abc-hunt-scene{height:clamp(300px,48vh,430px);border-radius:25px}.abc-mascot-strip{grid-template-columns:68px 1fr 46px;min-height:78px;padding:2px 10px}.abc-mascot-strip img{width:68px;height:72px}.abc-mascot-strip button{width:44px;height:44px}.abc-match-board{min-height:310px;padding:14px;grid-template-columns:1fr 75px 1fr}.abc-puzzle-piece{min-height:66px;font-size:1.8rem}.abc-joined-pair{font-size:1.2rem;min-height:55px}.abc-trail-board{min-height:315px;padding:15px}.abc-trail-path{gap:5px}.abc-trail-stone{width:62px;height:55px;font-size:1.6rem}.abc-traveller{width:52px;height:58px}.abc-trail-chest{font-size:2.5rem}}
@media(max-width:390px){.abc-pick-card{grid-template-columns:92px 1fr}.abc-pick-art{height:130px}.abc-pick-card h2{font-size:1.08rem}.abc-pick-card p{font-size:.78rem}.abc-game-heading h1{font-size:1.12rem}.abc-game-heading>div{min-height:38px}.abc-target-letter{font-size:2.7rem}.abc-game-shell{gap:6px}.abc-game-stage{padding:2px}.abc-hunt-scene{height:315px}.abc-hidden-letter{width:58px;height:58px;border-radius:17px}.abc-match-board{gap:7px;padding:9px}.abc-trail-board{padding:10px}.abc-trail-stone{width:55px}.abc-mascot-strip strong{font-size:.8rem}}
@media(orientation:landscape) and (max-height:760px){.abc-game-screen{padding:8px}.abc-game-shell{min-height:calc(100dvh - 16px);grid-template-columns:1fr 240px;grid-template-rows:auto auto 1fr}.abc-game-top,.abc-game-heading{grid-column:1/-1}.abc-game-stage{grid-column:1;min-height:0}.abc-mascot-strip{grid-column:2;grid-row:3;align-self:stretch;grid-template-columns:1fr;grid-template-rows:130px auto 48px;text-align:center}.abc-mascot-strip img{width:100%;height:130px}.abc-mascot-strip button{justify-self:center}.abc-hunt-scene{height:min(54vh,410px)}.abc-match-board,.abc-trail-board{min-height:min(52vh,370px)}}

/* ABC supplied-reference composition */
.abc-dashboard{max-width:none;padding:12px clamp(10px,2vw,28px) 56px;background:radial-gradient(circle at 50% 0,#FFFDF5,#FFF1D6 72%,#F7E1B8)}.abc-dashboard-hero{position:relative;isolation:isolate;width:min(1620px,100%);height:clamp(300px,28vw,420px);margin:auto;overflow:hidden;border:6px solid #fff;border-radius:0 0 56px 56px;background:linear-gradient(rgba(68,188,245,.05),rgba(98,190,80,.08)),url('../assets/img/writing-castle/pencil-yard/pencil-yard-background.png') center/cover;box-shadow:0 9px 0 #DABF8C,0 17px 30px rgba(57,75,26,.18)}.abc-dashboard-hero::after{content:'';position:absolute;z-index:-1;inset:45% 0 0;background:linear-gradient(transparent,rgba(54,155,43,.14))}.abc-dashboard-hero .abc-back{position:absolute;z-index:9;left:18px;top:16px;align-self:auto;color:#19286C;box-shadow:0 5px 0 #D8C29B}.abc-dashboard-stars{position:absolute;z-index:9;right:18px;top:16px;min-width:130px;min-height:56px;padding:8px 18px;display:flex;align-items:center;justify-content:center;gap:10px;border:4px solid #fff;border-radius:999px;background:#FFF4C5;color:#6A4012;font-family:var(--font-d);font-size:1.25rem;box-shadow:0 5px 0 #E0B656}.abc-dashboard-stars span{font-size:1.7rem}.abc-dashboard-title{position:absolute;z-index:7;left:50%;top:15px;width:min(720px,68%);transform:translateX(-50%);text-align:center;color:#14276D}.abc-dashboard-title small{display:inline-block;padding:4px 20px;border-radius:999px;background:#FFD23C;color:#15306E;font-family:var(--font-d);letter-spacing:.06em;box-shadow:0 4px 0 #EAA51A}.abc-dashboard-title h1{margin:9px 0 0;font-family:var(--font-d);font-size:clamp(3rem,6vw,5.3rem);line-height:.92;text-shadow:0 5px 0 #fff}.abc-dashboard-title p{font-family:var(--font-d);font-size:clamp(1rem,2.2vw,1.55rem)}.abc-dashboard-characters{position:absolute;z-index:4;inset:0;pointer-events:none}.abc-dashboard-characters>img{position:absolute;bottom:-2%;object-fit:contain;filter:drop-shadow(0 9px 6px rgba(49,55,26,.25))}.abc-dashboard-characters .owl{left:3%;width:clamp(170px,19vw,310px)}.abc-dashboard-characters .penguin{right:17%;width:clamp(145px,16vw,260px)}.abc-dashboard-characters .tiger{right:1%;width:clamp(155px,17vw,280px)}.abc-hero-letters{position:absolute;left:31%;bottom:4%;display:flex;align-items:end;gap:1vw}.abc-hero-letters b{display:grid;place-items:center;width:clamp(70px,8vw,130px);height:clamp(82px,9vw,145px);border-radius:18px;color:#fff;font-family:var(--font-d);font-size:clamp(3.3rem,7vw,6.7rem);text-shadow:0 5px 0 rgba(39,38,65,.25);box-shadow:0 10px 0 rgba(90,61,26,.35);transform:rotate(-3deg);background:linear-gradient(145deg,#FFD33B,#E59413)}.abc-hero-letters b:nth-child(2){background:linear-gradient(145deg,#35A4F2,#1768C5);transform:rotate(2deg)}.abc-hero-letters b:nth-child(3){background:linear-gradient(145deg,#FF7E96,#CF375B);transform:rotate(-2deg)}.abc-malaysia{position:absolute;right:4%;top:24%;font-size:clamp(2rem,5vw,4.5rem);filter:drop-shadow(0 5px 2px rgba(32,41,46,.2))}.abc-dashboard-progress{position:relative;z-index:10;width:min(430px,82%);min-height:82px;margin:-58px auto 0;padding:10px 24px;display:grid;gap:8px;text-align:center;border:5px solid #fff;border-radius:26px;background:#FFFDF6;box-shadow:0 7px 0 #D8C29C}.abc-dashboard-progress strong{font-family:var(--font-d);font-size:1.35rem;color:#18276D}.abc-dashboard-progress i{height:15px;overflow:hidden;border-radius:999px;background:#E8E0D2}.abc-dashboard-progress b{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#714DDD,#23BFC1);transition:width .4s}.abc-choose-title{margin:22px auto 4px;text-align:center;color:#14276D;font-family:var(--font-d);font-size:clamp(1.6rem,3vw,2.3rem)}.abc-game-picker{width:min(1500px,100%);max-width:none;margin:0 auto;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.abc-pick-card{position:relative;min-width:0;padding:10px;display:grid;grid-template-rows:auto 168px auto;gap:8px;border:3px solid #D9C7A7;border-radius:28px;background:#FFFDF7;box-shadow:0 8px 0 #D9C5A0,0 14px 24px rgba(74,56,26,.12)}.abc-pick-card>header{position:relative;min-height:42px;display:grid;place-items:center;padding:0 48px}.abc-pick-card>header h2{font-family:var(--font-d);font-size:clamp(1.05rem,2vw,1.45rem);color:#17276D;text-align:center}.abc-activity-number{position:absolute;left:0;top:-10px;width:52px;height:52px;display:grid;place-items:center;border:4px solid #fff;border-radius:50%;background:#49AF37;color:#fff;font-family:var(--font-d);font-size:1.55rem;box-shadow:0 4px 0 #24891D}.abc-pick-card.match .abc-activity-number{background:#FF6D18;box-shadow:0 4px 0 #CE4400}.abc-pick-card.trail .abc-activity-number{background:#338DE4;box-shadow:0 4px 0 #1762AF}.abc-pick-art{height:168px;border:3px solid #fff;border-radius:20px;overflow:hidden;background:#EAF8DF}.abc-pick-art img{width:100%;height:100%;object-fit:cover;filter:none}.abc-card-footer{min-height:54px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:8px}.abc-card-progress{min-width:42px;color:#234A9B;font-family:var(--font-d);font-size:.88rem}.abc-card-status{font-family:var(--font-d);font-size:.9rem;color:#73684F;text-align:center}.abc-card-footer button{min-width:105px;min-height:46px;padding:8px 14px;border-radius:16px;background:linear-gradient(#3DA2F2,#2679D7);color:#fff;font-family:var(--font-d);box-shadow:0 5px 0 #1758AA}.abc-pick-card[data-state="completed"]{border-color:#69BE5A}.abc-pick-card[data-state="completed"] .abc-card-status{color:#23942D}.abc-pick-card[data-state="completed"] .abc-card-footer button{background:linear-gradient(#67C95A,#36A83A);box-shadow:0 5px 0 #248127}.abc-pick-card[data-state="current"]{border-color:#FF6D18;box-shadow:0 8px 0 #E94D0D,0 14px 24px rgba(194,68,12,.18)}.abc-pick-card[data-state="current"] .abc-card-status{color:#F05410}.abc-pick-card[data-state="current"] .abc-card-footer button{background:linear-gradient(#FF8B24,#F2570C);box-shadow:0 5px 0 #C63B00}.abc-pick-card[data-state="continue"]{border-color:#358DE4}.abc-dashboard-panels{width:min(1500px,100%);margin:22px auto 0;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.abc-summary-panel{min-width:0;padding:14px;border:3px solid #fff;border-radius:26px;background:#FFFDF7;box-shadow:0 7px 0 #D9C5A0}.abc-summary-panel h2{margin:0 0 11px;text-align:center;color:#17276D;font-family:var(--font-d);font-size:1.15rem}.abc-skills-panel>div,.abc-sticker-shelf,.abc-achievement-list{min-height:100px;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;border:2px solid #F0DFC0;border-radius:18px;background:#FFF9EB}.abc-skills-panel>div>span,.abc-sticker-shelf>span,.abc-achievement-list>span{min-width:0;display:grid;place-items:center;gap:3px;padding:8px;text-align:center;border-right:2px dashed #E7D6B8}.abc-skills-panel>div>span:last-child,.abc-sticker-shelf>span:last-child,.abc-achievement-list>span:last-child{border-right:0}.abc-skills-panel small,.abc-sticker-shelf small,.abc-achievement-list small{font-size:.67rem;font-weight:900;color:#27316C}.abc-skills-panel strong{font-family:var(--font-d);font-size:2rem;color:#2DA33A}.abc-skills-panel span:nth-child(2) strong{color:#F16918}.abc-skills-panel span:nth-child(3) strong{color:#267BD4}.abc-sticker-shelf img{width:58px;height:58px;object-fit:contain}.abc-sticker-shelf b{font-family:var(--font-d);font-size:2.3rem;color:#9385B4;opacity:.65}.abc-achievement-list>span{opacity:.35;filter:grayscale(1)}.abc-achievement-list>span.earned{opacity:1;filter:none}.abc-achievement-list b{font-size:2.6rem}
@media(max-width:900px){.abc-dashboard{padding:8px 8px 44px}.abc-dashboard-hero{height:300px;border-radius:0 0 34px 34px}.abc-dashboard-hero .abc-back{left:9px;top:9px;width:48px;padding:0}.abc-dashboard-hero .abc-back span{display:none}.abc-dashboard-stars{right:9px;top:9px;min-width:92px;min-height:48px;padding:5px 10px;font-size:.9rem}.abc-dashboard-title{top:68px;width:94%}.abc-dashboard-title small{padding:3px 10px;font-size:.58rem}.abc-dashboard-title h1{margin-top:7px;font-size:clamp(1.9rem,9vw,2.8rem)}.abc-dashboard-title p{font-size:.82rem}.abc-dashboard-characters .owl{left:0;width:145px}.abc-dashboard-characters .penguin{right:23%;width:115px}.abc-dashboard-characters .tiger{right:0;width:125px}.abc-hero-letters{left:34%;bottom:8%;gap:5px}.abc-hero-letters b{width:58px;height:69px;font-size:3rem;border-radius:12px}.abc-malaysia{right:3%;top:30%;font-size:2.2rem}.abc-dashboard-progress{min-height:70px;margin:-36px auto 0;padding:8px 15px}.abc-dashboard-progress strong{font-size:1rem}.abc-game-picker,.abc-dashboard-panels{grid-template-columns:1fr;gap:18px}.abc-pick-card{grid-template-columns:1fr;grid-template-rows:auto minmax(145px,36vw) auto}.abc-pick-art{grid-row:auto;height:auto;min-height:145px}.abc-card-footer{grid-template-columns:auto 1fr auto}.abc-dashboard-panels{margin-top:18px}}
@media(max-width:390px){.abc-dashboard-hero{height:270px}.abc-dashboard-characters .owl{width:125px}.abc-dashboard-characters .penguin{right:20%;width:100px}.abc-dashboard-characters .tiger{width:106px}.abc-hero-letters{left:31%}.abc-hero-letters b{width:49px;height:60px;font-size:2.5rem}.abc-pick-card{padding:8px}.abc-card-footer button{min-width:92px;padding:7px 9px}.abc-summary-panel{padding:10px}}

.abc-game-shell{grid-template-columns:1fr}.abc-mascot-strip small{display:block;color:#8065C7;font-size:.65rem;line-height:1.1}.abc-mascot-strip strong{display:block;font-size:clamp(.8rem,2vw,1.05rem);line-height:1.25}.abc-hunt-mascot,.abc-match-mascot,.abc-trail-mascot{position:absolute;z-index:4;pointer-events:none}.abc-hunt-mascot{left:1.5%;bottom:0;width:clamp(150px,17vw,255px)}.abc-hunt-mascot img,.abc-match-mascot img,.abc-trail-mascot img{display:block;width:100%;height:auto;filter:drop-shadow(0 10px 7px rgba(48,57,21,.25))}.abc-hunt-mascot span,.abc-match-mascot span,.abc-trail-mascot em{position:absolute;padding:12px 16px;border:4px solid #fff;border-radius:22px;background:#FFFDF5;color:#18245D;font-family:var(--font-d);font-style:normal;text-align:center;box-shadow:0 5px 0 #DFC99F}.abc-hunt-mascot span{left:0;top:-30px}.abc-scene-hint{position:absolute;z-index:8;right:2%;bottom:2%;min-width:150px;min-height:58px;padding:8px 20px;border:4px solid #fff;border-radius:22px;background:#FFF8E8;color:#1E2C69;font-family:var(--font-d);font-size:1.1rem;box-shadow:0 6px 0 #DFC69C}.abc-hidden-letter{z-index:3;width:clamp(82px,9vw,132px);height:clamp(82px,9vw,132px);border:6px solid #fff;border-radius:26px;background:linear-gradient(155deg,#FFFDF4,#FFE9B7);box-shadow:0 10px 0 #A47A3F,0 16px 22px rgba(65,50,20,.18);font-size:clamp(2.8rem,6vw,5rem)}
.abc-match-world{position:relative;width:100%;height:clamp(500px,63vh,690px);display:grid;place-items:center;overflow:hidden;border:7px solid #fff;border-radius:42px;background:linear-gradient(rgba(255,250,229,.76),rgba(255,242,211,.78)),url('../assets/img/writing-castle/pencil-yard/pencil-yard-background.png') center/cover;box-shadow:0 10px 0 #D8BE8C}.abc-match-board{z-index:2;width:min(76%,980px);min-height:clamp(390px,50vh,570px);margin-left:10%;padding:34px 42px;background:rgba(255,255,255,.92);border-color:#FFF8EA;box-shadow:0 9px 0 #D9C59F}.abc-match-column{position:relative;padding-top:34px}.abc-match-label{position:absolute;top:-10px;left:50%;transform:translateX(-50%);min-width:170px;padding:5px 18px;border-radius:999px;background:#3189EE;color:#fff;font-family:var(--font-d);font-size:.9rem;text-align:center;box-shadow:0 4px 0 #1760B9}.abc-match-column.lowercase .abc-match-label{background:#8655D9;box-shadow:0 4px 0 #6339AE}.abc-match-mascot{left:.5%;bottom:0;width:clamp(135px,15vw,230px)}.abc-match-mascot span{left:0;top:-55px;width:180px}.abc-puzzle-piece.hint,.abc-trail-choices button.hint{animation:abcGlow .7s infinite alternate}.abc-match-world>.abc-scene-hint{right:1.5%;bottom:2%}
.abc-trail-board{position:relative;width:100%;height:clamp(500px,63vh,690px);min-height:0;grid-template-rows:1fr auto;padding:32px 50px 24px;overflow:hidden;border:7px solid #fff;border-radius:42px;background:linear-gradient(rgba(77,186,240,.06),rgba(122,211,76,.12)),url('../assets/img/writing-castle/pencil-yard/pencil-yard-background.png') center/cover;box-shadow:0 10px 0 #D8BE8C}.abc-trail-malaysia{position:absolute;z-index:2;left:3%;top:4%;font-size:clamp(2.5rem,5vw,5rem);filter:drop-shadow(0 5px 2px rgba(48,56,32,.2))}.abc-trail-path{padding-left:20%;align-items:end}.abc-trail-path::before{left:24%;right:9%;top:65%;border-color:#FFF3B2}.abc-trail-stone{width:clamp(105px,12vw,175px);height:clamp(78px,8vw,112px);font-size:clamp(2.4rem,5vw,4rem);background:linear-gradient(160deg,#FFFDF5,#EFD8A9);box-shadow:0 10px 0 #A9834D,0 15px 22px rgba(55,42,17,.2)}.abc-traveller{left:1%;bottom:2%;width:clamp(170px,19vw,290px);height:auto}.abc-trail-mascot em{left:0;top:-35px;width:180px}.abc-trail-chest{font-size:clamp(3.6rem,7vw,6.5rem)}.abc-trail-choices{position:relative;z-index:5}.abc-trail-choices button{width:clamp(130px,20vw,280px);height:clamp(76px,8vw,110px);font-size:clamp(2.2rem,5vw,4rem);border-color:#fff;background:#FFFDF5}.abc-trail-board>.abc-scene-hint{right:1.5%;bottom:2%}
/* Authored Alphabet Trail assets */
.abc-hud-btn.asset{padding:0;border:0;background:transparent;box-shadow:none}.abc-hud-btn.back.asset{width:64px;padding:0}.abc-hud-btn.asset img,.abc-game-heading>button.asset img,.abc-mascot-strip button.asset img{width:100%;height:100%;object-fit:contain}.abc-game-heading>button.asset{padding:0;border:0;background:transparent;box-shadow:none}.abc-round-progress span img{width:30px;height:30px;object-fit:contain}.abc-reward-actions button img{width:28px;height:28px;object-fit:contain;vertical-align:middle}
.abc-trail-board{background:linear-gradient(rgba(61,182,244,.04),rgba(101,196,70,.08)),url('../assets/img/abc-games/alphabet-trail/trail-malaysia-background.png') center/cover}.abc-trail-stone{position:relative;border:0;background:none;box-shadow:none}.abc-trail-stone img{position:absolute;z-index:-1;inset:50% auto auto 50%;width:130%;height:130%;transform:translate(-50%,-50%);object-fit:contain;filter:drop-shadow(0 8px 4px rgba(67,49,17,.22))}.abc-trail-stone span{position:relative;z-index:2}.abc-trail-stone.missing{border:0;background:none;color:#A58B5C}.abc-trail-stone.lit{border:0;background:none;color:#F18712;box-shadow:none;animation:abcPairPop .5s both}.abc-trail-finish,.abc-trail-chest{position:relative;z-index:4;width:clamp(90px,10vw,160px);height:clamp(105px,12vw,180px);object-fit:contain;filter:drop-shadow(0 9px 5px rgba(67,48,19,.25))}.abc-trail-chest{width:clamp(110px,13vw,190px)}.abc-trail-sparkles{position:absolute;z-index:6;right:5%;top:33%;width:clamp(120px,20vw,310px);pointer-events:none;animation:abcPairPop .65s both}.abc-trail-sparkles[hidden]{display:none}.abc-scene-hint img{width:34px;height:34px;object-fit:contain;vertical-align:middle}.abc-correct-feedback{position:absolute;z-index:30;left:50%;top:50%;width:clamp(82px,10vw,140px);height:auto;transform:translate(-50%,-50%);filter:drop-shadow(0 10px 8px rgba(57,84,17,.25));animation:abcPairPop .5s both}
/* Authored Letter Hunt assets */
@media(min-width:761px){.abc-game-heading #abcGameTarget{display:flex!important;align-items:center;gap:8px}}
.abc-hunt-scene,.abc-hunt-scene.scene-0,.abc-hunt-scene.scene-1,.abc-hunt-scene.scene-2{background:linear-gradient(rgba(61,176,238,.02),rgba(70,158,50,.04)),url('../assets/img/abc-games/letter-hunt/playground-malaysia-background.png') center/cover}.abc-game-heading .abc-hunt-target-search{display:grid;place-items:center;width:58px;height:58px}.abc-hunt-target-search img{width:100%;height:100%;object-fit:contain}.abc-game-heading .abc-target-letter{position:relative;display:grid;place-items:center;width:76px;height:76px;padding:0;border:0;background:none;box-shadow:none;color:#633FBC}.abc-target-letter>img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.abc-target-letter>b{position:relative;z-index:2;font-size:2.25rem}.abc-hidden-letter{width:clamp(100px,11vw,155px);height:clamp(76px,8vw,112px);border:0;border-radius:0;background:none;box-shadow:none;color:#6743B5}.abc-hidden-letter:hover{transform:translate(-50%,-50%) scale(1.05)}.abc-hidden-letter .abc-hunt-platform{position:absolute;z-index:0;inset:50% auto auto 50%;width:140%;height:140%;transform:translate(-50%,-50%);object-fit:contain;filter:drop-shadow(0 8px 5px rgba(62,44,15,.25))}.abc-hidden-letter>span{position:relative;z-index:2;font-family:var(--font-d);font-size:clamp(2.3rem,5vw,4.5rem);line-height:1}.abc-hunt-target-ring{position:absolute;z-index:3;inset:50% auto auto 50%;width:150%;height:150%;transform:translate(-50%,-50%);object-fit:contain;opacity:0;pointer-events:none}.abc-hidden-letter.hint .abc-hunt-target-ring{opacity:1;animation:abcGlow .65s infinite alternate}.abc-hunt-found-check{position:absolute;z-index:5;right:-13%;top:-30%;width:48%;height:48%;object-fit:contain;opacity:0;transform:scale(.4)}.abc-hidden-letter.found .abc-hunt-found-check{opacity:1;transform:scale(1);transition:.25s}.abc-hidden-letter.found .abc-hunt-platform{filter:brightness(1.18) drop-shadow(0 0 14px #FFE266)}.abc-hunt-mascot{left:1%;bottom:0;width:clamp(170px,19vw,290px)}.abc-hunt-mascot .abc-hunt-mascot-glow{position:absolute;z-index:0;left:-8%;bottom:-2%;width:116%;height:30%;object-fit:fill;filter:none}.abc-hunt-mascot .abc-hunt-owl{position:relative;z-index:2;width:100%;height:auto}.abc-hunt-mascot .abc-hunt-audio-waves{position:absolute;z-index:3;right:-20%;top:37%;width:45%;height:auto;filter:none;animation:abcGlow .8s infinite alternate}.abc-hunt-magnifier{position:absolute;z-index:3;right:5%;top:8%;width:clamp(75px,9vw,135px);height:auto;filter:drop-shadow(0 8px 5px rgba(37,77,92,.22));transform:rotate(-10deg)}.abc-hunt-feedback{position:absolute;z-index:25;left:50%;top:50%;width:clamp(120px,18vw,260px);height:clamp(120px,18vw,260px);transform:translate(-50%,-50%);pointer-events:none;animation:abcPairPop .5s both}.abc-hunt-feedback img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain}.abc-hunt-feedback img:nth-child(2){left:66%;top:-28%;width:45%;height:45%}.abc-hunt-feedback img:nth-child(3){inset:-35%;width:170%;height:170%}
@media(max-width:760px){.abc-game-shell{min-height:calc(100dvh - 18px);grid-template-columns:1fr;grid-template-rows:auto auto minmax(300px,1fr) auto;gap:7px}.abc-game-top{grid-template-columns:auto minmax(100px,1fr) auto;gap:6px}.abc-game-top-centre h1{font-size:clamp(.9rem,5vw,1.25rem)}.abc-hud-btn,.abc-hud-btn.back{width:44px;height:44px;padding:0;border-radius:14px;font-size:1.1rem}.abc-hud-btn.back span{display:none}.abc-game-tools{gap:4px}.abc-round-progress{width:100%;height:31px;margin-top:2px;padding:2px 7px;gap:4px}.abc-round-progress span{font-size:.9rem}.abc-round-progress strong{font-size:.72rem}.abc-round-progress i{height:9px}.abc-game-heading{width:100%;min-height:62px;padding:6px 10px;grid-template-columns:44px 1fr;border-radius:20px;gap:8px}.abc-game-heading>button{width:44px;height:44px}.abc-game-heading h2{font-size:clamp(.88rem,4vw,1.12rem)}.abc-game-heading small{display:block;font-size:.55rem}.abc-game-heading>div:last-child{display:none}.abc-mascot-strip{display:grid;grid-template-columns:68px 1fr 46px;min-height:78px;padding:2px 10px}.abc-hunt-mascot,.abc-match-mascot,.abc-trail-mascot{display:none}.abc-scene-hint{right:8px!important;bottom:8px!important;min-width:92px;min-height:46px;padding:5px 10px;font-size:.78rem}.abc-hunt-scene{height:clamp(315px,50vh,430px);border-radius:25px}.abc-hidden-letter{width:58px;height:58px;border:4px solid #fff;border-radius:17px;font-size:2rem;box-shadow:0 7px 0 #A47A3F}.abc-match-world{height:clamp(310px,50vh,430px);border-radius:25px;background:linear-gradient(145deg,#DFF7FF,#F4E9FF)}.abc-match-board{width:100%;min-height:310px;margin:0;padding:14px;box-shadow:none;background:transparent}.abc-match-column{padding-top:28px}.abc-match-label{min-width:92px;padding:3px 7px;font-size:.58rem}.abc-trail-board{height:clamp(315px,50vh,430px);padding:12px 10px;border-radius:25px}.abc-trail-malaysia{font-size:1.8rem}.abc-trail-path{padding-left:0;align-items:center}.abc-trail-path::before{left:10%;right:10%;top:55%}.abc-trail-stone{width:55px;height:52px;font-size:1.55rem}.abc-trail-choices button{width:72px;height:60px;font-size:1.7rem}.abc-trail-chest{font-size:2.5rem}}
@media(max-width:760px){.abc-hud-btn.back.asset{width:44px}.abc-trail-board{width:calc(100% - 6px)}.abc-trail-board>.abc-scene-hint{top:8px!important;right:8px!important;bottom:auto!important}.abc-hunt-scene{width:calc(100% - 6px)}.abc-hunt-scene>.abc-scene-hint{top:8px!important;right:8px!important;bottom:auto!important}.abc-hidden-letter{width:68px;height:54px;border:0;border-radius:0;background:none;box-shadow:none}.abc-hidden-letter>span{font-size:1.75rem}.abc-hidden-letter .abc-hunt-platform{width:145%;height:145%}.abc-hunt-magnifier{right:6%;top:22%;width:62px}.abc-hunt-feedback{width:135px;height:135px}}
@media(max-width:360px){.abc-hidden-letter[data-index="4"]{--y:84%!important}.abc-hidden-letter[data-index="5"]{--x:12%!important;--y:47%!important}}
@media(orientation:landscape) and (max-height:760px) and (min-width:761px){.abc-game-shell{grid-template-columns:1fr;grid-template-rows:auto auto minmax(350px,1fr)}.abc-game-top,.abc-game-heading,.abc-game-stage{grid-column:1}.abc-game-top-centre h1{font-size:1.65rem}.abc-game-heading{min-height:65px}.abc-game-heading h2{font-size:1.3rem}.abc-hunt-scene,.abc-match-world,.abc-trail-board{height:min(61vh,470px)}.abc-match-board{min-height:min(48vh,360px);padding:16px 28px}.abc-mascot-strip{display:none}}
.gametop{display:flex;align-items:center;justify-content:space-between;margin-bottom:8px}
.ptrack{flex:1;height:16px;background:var(--line);border-radius:999px;margin:0 16px;overflow:hidden}
.pfill{height:100%;border-radius:999px;transition:width .45s ease;
  background:linear-gradient(90deg,var(--leaf),#8FD96F)}
.gamestage{flex:1;display:flex;flex-direction:column;align-items:center;justify-content:center;
  gap:26px;padding:14px 0 34px}
.mascot-side{position:relative}

.promptrow{display:flex;align-items:center;gap:18px}
.audiobtn{
  width:104px;height:104px;border-radius:50%;background:var(--teal);color:#fff;font-size:2.8rem;
  box-shadow:0 7px 0 var(--teal-deep);display:grid;place-items:center;
  transition:transform .12s;animation:pulse 2.2s ease infinite;
}
.audiobtn:active{transform:scale(.9)}
@keyframes pulse{0%,100%{box-shadow:0 7px 0 var(--teal-deep),0 0 0 0 rgba(18,181,165,.35)}
  55%{box-shadow:0 7px 0 var(--teal-deep),0 0 0 18px rgba(18,181,165,0)}}
.prompttxt{font-family:var(--font-d);font-size:clamp(1.6rem,4.6vw,2.4rem);font-weight:800;text-align:center;letter-spacing:.02em}
.bmhelp{padding:10px 20px;border-radius:999px;background:var(--gold-soft);border:3px solid var(--gold);
  font-weight:900;color:#8A6410;font-size:1rem}
.bmhelp:active{transform:scale(.95)}

/* flashcard choices */
.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:18px;
  width:100%;max-width:680px}
.choice{
  border-radius:var(--r-lg);background:var(--surface);border:4px solid var(--line);
  min-height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;
  font-size:3rem;box-shadow:0 7px 0 var(--line);transition:all .15s;user-select:none;
}
.choice .cl{font-family:var(--font-d);font-size:1.4rem;font-weight:800;letter-spacing:.02em}
.choice:hover{border-color:var(--gold);transform:translateY(-4px)}
.choice.correct{border-color:var(--leaf);background:var(--leaf-soft);
  box-shadow:0 7px 0 var(--leaf-deep);animation:pop .45s cubic-bezier(.3,1.6,.5,1)}
.choice.wrong{border-color:var(--rose);background:var(--rose-soft);
  box-shadow:0 7px 0 var(--rose-deep);animation:shake .35s ease}
.choice:disabled{cursor:default}
@keyframes pop{0%{transform:scale(1)}45%{transform:scale(1.12)}100%{transform:scale(1)}}
@keyframes shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-10px)}75%{transform:translateX(10px)}}

.blendrow{display:flex;gap:14px;align-items:center;justify-content:center;flex-wrap:wrap}
.btile{width:86px;height:98px;border-radius:22px;background:var(--surface);border:4px solid var(--sky);
  display:grid;place-items:center;font-family:var(--font-d);font-size:2.4rem;font-weight:800;
  color:var(--sky-deep);box-shadow:0 7px 0 var(--sky-deep);transition:all .2s}
.btile.lit{background:var(--sky);color:#fff;transform:scale(1.12) rotate(-3deg)}
.wordtarget{font-family:var(--font-d);font-size:clamp(1.4rem,4vw,2rem);font-weight:800;
  padding:18px 34px;background:var(--surface);border-radius:22px;border:4px dashed var(--violet);
  color:var(--violet-deep);cursor:pointer;box-shadow:0 7px 0 var(--violet-soft)}
.wordtarget:active{transform:scale(.97)}

/* trace pad */
.tracepad{position:relative;background:var(--surface);border-radius:var(--r-lg);
  border:4px solid var(--line);box-shadow:0 7px 0 var(--line);touch-action:none}
.tracepad canvas{display:block;border-radius:24px}
.traceghost{position:absolute;inset:0;display:grid;place-items:center;pointer-events:none;
  font-family:var(--font-d);font-size:16rem;font-weight:800;color:rgba(51,48,78,.07);user-select:none}
.traceacts{display:flex;gap:14px}

/* ---------- feedback overlay ---------- */
.fbk{position:fixed;inset:0;display:none;place-items:center;z-index:60;
  background:rgba(51,48,78,.4);backdrop-filter:blur(4px)}
.fbk.show{display:grid;animation:fadeUp .25s ease}
.fbk-card{background:var(--surface);border-radius:36px;padding:36px 44px;text-align:center;
  box-shadow:var(--shadow-lg);max-width:92vw;position:relative;overflow:hidden}
.fbk-card h2{font-size:2.2rem;margin:8px 0 4px;color:var(--accent-deep)}
.fbk-card p{color:var(--ink-soft);font-weight:800;margin-bottom:22px}
.fbk-stars{display:flex;gap:8px;justify-content:center;font-size:3rem}
.fbk-stars span{animation:starpop .5s cubic-bezier(.3,1.8,.5,1) backwards}
.fbk-stars span:nth-child(2){animation-delay:.15s}
.fbk-stars span:nth-child(3){animation-delay:.3s}
@keyframes starpop{from{transform:scale(0) rotate(-40deg);opacity:0}to{transform:scale(1);opacity:1}}
.confetti{position:absolute;width:10px;height:16px;top:-20px;border-radius:3px;
  animation:fall 1.4s ease-in forwards}
@keyframes fall{to{transform:translateY(120vh) rotate(720deg);opacity:0}}

/* ---------- parent dashboard ---------- */
.dashhead{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:14px;margin-bottom:24px}
.dashhead h1{font-size:clamp(1.6rem,4vw,2.1rem)}
.family-panel{margin:0 0 26px;padding:20px;background:linear-gradient(145deg,#FFFDF7,#FFF4DE);border:3px solid #E8D8B8;border-radius:28px;box-shadow:0 6px 0 rgba(107,76,38,.11)}
.family-panel-head{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:16px}
.family-panel-head h2{font-size:clamp(1.25rem,3vw,1.6rem);color:var(--ink)}
.family-panel-head p{margin-top:2px;color:var(--ink-soft);font-size:.9rem;font-weight:800}
.family-add{display:inline-flex;align-items:center;justify-content:center;gap:6px;min-height:48px;padding:10px 18px;border:3px solid var(--teal);border-radius:16px;background:#fff;color:var(--teal-deep);font-weight:900;box-shadow:0 4px 0 rgba(18,181,165,.22);white-space:nowrap}
.family-add:active{transform:translateY(3px);box-shadow:0 1px 0 rgba(18,181,165,.22)}
.family-profiles{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:12px}
.family-child{position:relative;display:grid;grid-template-columns:64px minmax(0,1fr) 24px;align-items:center;gap:12px;min-height:92px;padding:12px;text-align:left;background:#fff;border:3px solid var(--line);border-radius:20px;box-shadow:0 4px 0 var(--line);color:var(--ink)}
.family-child:hover{border-color:#BCA6EC}.family-child:focus-visible{outline:4px solid #3B82F6;outline-offset:3px}
.family-child.active{border-color:var(--violet);box-shadow:0 4px 0 #C9B8EF,0 0 0 3px rgba(123,92,210,.12)}
.family-child>i{display:none;width:24px;height:24px;border-radius:50%;place-items:center;background:var(--violet);color:#fff;font-style:normal;font-weight:900}
.family-child.active>i{display:grid}
.family-avatar{width:64px;height:64px;display:grid;place-items:center;border-radius:50%;overflow:hidden;background:#FFF4CC;border:3px solid #F0DDA8}
.family-avatar img{width:100%;height:100%;object-fit:cover;display:block}.family-avatar>span{font-size:2rem}
.family-child-copy{min-width:0;display:flex;flex-direction:column;line-height:1.2}.family-child-copy b{font-family:var(--font-d);font-size:1.1rem;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.family-child-copy small{margin-top:3px;color:var(--ink-soft);font-weight:900}.family-child-copy em{margin-top:5px;color:var(--violet-deep);font-size:.78rem;font-style:normal;font-weight:900;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.family-active-bar{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-top:15px;padding-top:15px;border-top:2px dashed #DDCBA8;color:var(--ink-soft);font-size:.92rem;font-weight:800}
.family-active-bar button{min-height:48px;padding:10px 16px;border-radius:15px;background:var(--violet);color:#fff;font-weight:900;box-shadow:0 4px 0 var(--violet-deep)}
.family-active-bar button:active{transform:translateY(3px);box-shadow:0 1px 0 var(--violet-deep)}
.family-active-actions{display:flex;align-items:center;gap:10px}.family-active-bar .family-edit-btn{background:#fff;color:var(--violet-deep);border:3px solid #D7C8F5;box-shadow:0 4px 0 #D7C8F5}
.family-active-bar .family-edit-btn{display:inline-flex;align-items:center;justify-content:center;gap:7px}.family-edit-btn img{width:25px;height:25px;object-fit:contain;display:block}

/* ---------- edit child profile ---------- */
.edit-profile-dialog{position:fixed;inset:0;margin:auto;width:min(720px,calc(100% - 28px));max-width:min(720px,calc(100% - 28px));max-height:calc(100dvh - 28px);padding:0;border:0;border-radius:30px;background:transparent;color:var(--ink);box-shadow:0 24px 70px rgba(48,35,107,.28);overflow:hidden}
.edit-profile-dialog::backdrop{background:rgba(40,31,70,.58);backdrop-filter:blur(4px)}
.edit-profile-shell{display:grid;grid-template-rows:auto minmax(0,1fr) auto;max-height:calc(100dvh - 28px);background:linear-gradient(180deg,#FFFDF8,#FFF5E4);border:4px solid #E4D6B8;border-radius:30px;overflow:hidden}
.edit-profile-head{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:18px 22px 15px;border-bottom:2px solid #EADFC8;background:rgba(255,255,255,.72)}
.edit-profile-head small{display:block;color:var(--teal-deep);font-weight:900;text-transform:uppercase;letter-spacing:.08em}.edit-profile-head h2{font-size:1.75rem}.edit-profile-head>button{width:48px;height:48px;border-radius:15px;background:#F4ECDF;color:var(--ink-soft);font-size:1.2rem;font-weight:900}
.edit-profile-body{padding:20px 22px;overflow-y:auto;overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
.edit-profile-field{display:block;margin:0 0 20px;padding:0;border:0}.edit-profile-field>span,.edit-profile-field>legend{display:block;margin-bottom:8px;font-weight:900;color:var(--ink)}
.edit-profile-field>input{width:100%;min-height:52px;padding:11px 15px;border:3px solid #DFD1B5;border-radius:16px;background:#fff;color:var(--ink);font:900 1rem var(--font-b);outline:0}.edit-profile-field>input:focus{border-color:var(--violet);box-shadow:0 0 0 4px rgba(123,92,210,.14)}.edit-profile-field>small[role=alert]{display:block;min-height:20px;margin-top:5px;color:#B42318;font-weight:900}
.edit-age-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.edit-age-options button{min-height:52px;border:3px solid #E2D5BA;border-radius:16px;background:#fff;color:var(--ink-soft);font-family:var(--font-d);font-size:1.25rem;font-weight:900;box-shadow:0 3px 0 #E2D5BA}.edit-age-options button.sel{border-color:var(--accent);background:#FFF0E7;color:#B94719;box-shadow:0 3px 0 #F5B899,0 0 0 3px rgba(255,107,53,.1)}
.edit-photo-row{display:grid;grid-template-columns:112px minmax(0,1fr);align-items:center;gap:16px;margin-bottom:16px;padding:14px;border:3px solid #E5D9C1;border-radius:22px;background:#fff}
.edit-photo-preview{display:grid;place-items:center;width:112px;height:112px;overflow:hidden;border:4px solid #F1DCA9;border-radius:50%;background:#FFF5CF;font-size:3.3rem}.edit-photo-preview img{width:100%;height:100%;object-fit:cover;display:block}
.edit-photo-row>div{display:flex;flex-wrap:wrap;align-items:center;gap:8px;min-width:0}.edit-photo-upload,.edit-photo-remove{min-height:46px;padding:9px 13px;border-radius:14px;font-weight:900}.edit-photo-upload{display:inline-flex;align-items:center;justify-content:center;gap:7px;background:var(--teal);color:#fff;box-shadow:0 3px 0 var(--teal-deep)}.edit-photo-upload img{width:31px;height:28px;object-fit:contain;display:block}.edit-photo-remove{display:none;background:#FFF0EE;color:#A73B32;border:2px solid #F1C7C2}.edit-photo-remove.show{display:inline-flex}.edit-photo-row small{flex-basis:100%;color:var(--ink-soft);font-size:.78rem;font-weight:800}
.edit-avatar-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:10px}.edit-avatar-grid button{position:relative;min-width:0;aspect-ratio:1;border:3px solid #E3D7BF;border-radius:50%;background:#FFF5D5;overflow:visible}.edit-avatar-grid img{width:100%;height:100%;object-fit:contain;border-radius:50%;display:block}.edit-avatar-grid button.sel{border-color:var(--violet);box-shadow:0 0 0 4px rgba(123,92,210,.16)}.edit-avatar-grid i{display:none;position:absolute;right:-4px;top:-4px;width:25px;height:25px;border-radius:50%;place-items:center;background:var(--violet);color:#fff;font-style:normal;font-weight:900}.edit-avatar-grid button.sel i{display:grid}.edit-avatar-grid button:focus-visible{outline:4px solid #3B82F6;outline-offset:4px}
.edit-profile-actions{display:flex;justify-content:flex-end;gap:12px;padding:15px 22px 19px;border-top:2px solid #EADFC8;background:#FFFDF8}.edit-profile-actions button{min-height:50px;padding:11px 22px;border-radius:16px;font-weight:900}.edit-profile-actions #editProfileCancel{background:#F1EADF;color:var(--ink-soft)}.edit-profile-actions #editProfileSave{background:var(--accent);color:#fff;box-shadow:0 4px 0 var(--accent-deep)}.edit-profile-actions #editProfileSave:active{transform:translateY(3px);box-shadow:0 1px 0 var(--accent-deep)}
.langtoggle{display:flex;background:var(--surface);border:3px solid var(--line);border-radius:999px;overflow:hidden}
.langtoggle button{min-height:44px;padding:10px 22px;font-weight:900;font-size:.95rem;color:var(--ink-soft)}
.langtoggle button.sel{background:var(--accent);color:#fff}
.statrow{display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:14px;margin-bottom:24px}
.statcard{background:var(--surface);border-radius:var(--r);border:3px solid var(--line);
  padding:20px;box-shadow:0 5px 0 var(--line)}
.statcard .sv{font-family:var(--font-d);font-size:2.1rem;font-weight:800;color:var(--accent-deep)}
.statcard .sl{font-size:.85rem;font-weight:800;color:var(--ink-soft)}
.skillrow{display:flex;align-items:center;gap:14px;background:var(--surface);border-radius:18px;
  border:3px solid var(--line);padding:16px 20px;margin-bottom:12px}
.skillrow .se{font-size:1.6rem}
.skillrow .sn{font-weight:900;min-width:150px}
.skillbar{flex:1;height:14px;background:var(--line);border-radius:999px;overflow:hidden}
.skillbar i{display:block;height:100%;border-radius:999px;
  background:linear-gradient(90deg,var(--teal),#3FD9C8);transition:width .6s ease}
.bdg{font-size:.8rem;font-weight:900;padding:5px 14px;border-radius:999px;white-space:nowrap}
.bdg.great{background:var(--leaf-soft);color:var(--leaf-deep)}
.bdg.practice{background:var(--gold-soft);color:#8A6410}
.dashnote{color:var(--ink-soft);font-size:.9rem;font-weight:700;margin-top:18px;text-align:center}
.backbtn{display:inline-flex;align-items:center;gap:8px;font-weight:900;color:var(--ink-soft);
  font-size:1rem;padding:12px 18px;border-radius:16px;background:var(--surface);
  border:3px solid var(--line);box-shadow:0 4px 0 var(--line)}
.backbtn:active{transform:translateY(3px);box-shadow:0 1px 0 var(--line)}

.footlang{margin-top:auto;padding-top:34px;text-align:center}
.footlang button{min-height:44px;font-weight:900;color:var(--ink-soft);padding:10px 16px;border-radius:14px;font-size:1rem}
.footlang button.sel{color:var(--accent-deep);background:var(--accent-soft)}

/* ---------- mascot anims ---------- */
.mascot svg{display:block;width:100%;height:auto;overflow:visible}
.mascot .mg-lid{transition:height .12s}
.m-cheer{animation:cheer .7s cubic-bezier(.3,1.6,.5,1)}
@keyframes cheer{0%{transform:scale(1)}35%{transform:scale(1.14) rotate(-4deg)}70%{transform:scale(.96) rotate(2deg)}100%{transform:scale(1)}}
.m-hop{animation:hop .5s ease}
@keyframes hop{0%,100%{transform:translateY(0)}40%{transform:translateY(-14px)}}
.m-think .mg-head{animation:tilt 1.4s ease}
@keyframes tilt{0%,100%{transform:rotate(0)}50%{transform:rotate(8deg)}}

@media(max-width:560px){
  .family-panel{padding:15px 12px;border-radius:22px}.family-panel-head{align-items:flex-start;flex-direction:column}.family-add{width:100%}.family-profiles{grid-template-columns:1fr}.family-child{min-height:88px}.family-active-bar{align-items:stretch;flex-direction:column}.family-active-actions{display:grid;grid-template-columns:1fr}.family-active-bar button{width:100%}
  .edit-profile-dialog{width:calc(100% - 12px);max-width:calc(100% - 12px);max-height:calc(100dvh - 12px);border-radius:22px}.edit-profile-shell{max-height:calc(100dvh - 12px);border-radius:22px}.edit-profile-head{padding:13px 14px 11px}.edit-profile-head h2{font-size:1.45rem}.edit-profile-body{padding:15px 13px}.edit-photo-row{grid-template-columns:86px minmax(0,1fr);gap:11px;padding:11px}.edit-photo-preview{width:86px;height:86px}.edit-photo-upload,.edit-photo-remove{width:100%;justify-content:center}.edit-avatar-grid{grid-template-columns:repeat(3,1fr);gap:12px}.edit-profile-actions{padding:12px 13px 15px}.edit-profile-actions button{flex:1;padding:10px 8px}
  .choices{grid-template-columns:repeat(2,1fr)}
  .choice{min-height:126px;font-size:2.4rem}
  .traceghost{font-size:9rem}
  .map-node .node-btn{width:76px;height:76px;font-size:2rem}
  .skillrow .sn{min-width:100px}
}

/* ============ v3 mechanics ============ */

/* spell */
.slots{display:flex;gap:14px}
.slot{width:82px;height:96px;border-radius:20px;background:var(--surface);border:4px dashed var(--violet);
  display:grid;place-items:center;font-family:var(--font-hand);font-size:2.3rem;font-weight:800;color:var(--violet-deep)}
.spelltiles{display:flex;gap:14px;flex-wrap:wrap;justify-content:center}
.spelltile{width:74px;height:88px;border-radius:18px;background:var(--surface);border:4px solid var(--sky);
  font-family:var(--font-hand);font-size:2.1rem;font-weight:800;color:var(--sky-deep);
  box-shadow:0 6px 0 var(--sky-deep);transition:all .15s;user-select:none}
.spelltile:active{transform:translateY(4px);box-shadow:0 2px 0 var(--sky-deep)}
.spelltile.used{opacity:.25;pointer-events:none;transform:scale(.85)}
.spelltile.wrong{animation:shake .35s ease;border-color:var(--rose);color:var(--rose-deep)}

/* feed */
.feedmouth{display:flex;justify-content:center;margin-bottom:4px}
.feeditem.fed{animation:feedfly .7s ease forwards}
@keyframes feedfly{40%{transform:scale(1.25) translateY(-16px)}100%{transform:scale(0) translateY(-40px);opacity:0}}

/* memory match */
.memgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;width:100%;max-width:560px}
.mcard{aspect-ratio:1;border-radius:20px;background:var(--surface);border:4px solid var(--violet);
  box-shadow:0 6px 0 var(--violet-deep);display:grid;place-items:center;font-size:2.6rem;
  transition:transform .3s;user-select:none}
.mcard:active{transform:scale(.94)}
.mcard .mc-back{display:none;font-size:3rem}
.mcard .mc-face{font-size:2.4rem}
.mcard.flipped{background:var(--violet-soft)}
.mcard.flipped .mc-face{display:none}
.mcard.flipped .mc-back{display:block;animation:pop .35s cubic-bezier(.3,1.6,.5,1)}
.mcard.correct{border-color:var(--leaf);background:var(--leaf-soft);box-shadow:0 6px 0 var(--leaf-deep)}
.mcard.wrong{animation:shake .35s ease}
@media(max-width:560px){.memgrid{grid-template-columns:repeat(2,1fr)}}

/* balloon pop */
.balloons{display:flex;gap:16px;flex-wrap:wrap;justify-content:center;align-items:center}
.balloon{width:112px;height:140px;border-radius:50% 50% 48% 52%/46% 46% 54% 54%;
  display:grid;place-items:center;font-size:2.4rem;box-shadow:0 8px 0 var(--sky-deep);
  background:radial-gradient(circle at 34% 26%, #fff 6%, transparent 7%),linear-gradient(160deg,#7CC0F0,#4FA3E3);
  border:4px solid var(--sky-deep);animation:floaty 3s ease-in-out infinite;user-select:none;
  position:relative;color:#fff;text-shadow:0 2px 0 rgba(0,0,0,.18)}
.balloon::after{content:'';position:absolute;bottom:-16px;left:50%;transform:translateX(-50%);
  border:8px solid transparent;border-top:12px solid var(--sky-deep)}
.balloon:nth-child(2){background:linear-gradient(160deg,#F9B6CF,#FF5D8F);border-color:#D8457A;box-shadow:0 8px 0 #D8457A}
.balloon:nth-child(3){background:linear-gradient(160deg,#FBD77B,#FFC531);border-color:#D99E00;box-shadow:0 8px 0 #D99E00}
.balloon:nth-child(4){background:linear-gradient(160deg,#A6E09A,#66BB45);border-color:#479126;box-shadow:0 8px 0 #479126}
.balloon:nth-child(5){background:linear-gradient(160deg,#CBB8F2,#9B7BE0);border-color:#7556C4;box-shadow:0 8px 0 #7556C4}
.balloon .bl{position:relative;z-index:1}
.balloon.pop{animation:burst .45s ease forwards}
.balloon.wrong{animation:shake .35s ease}
@keyframes floaty{0%,100%{transform:translateY(0)}50%{transform:translateY(-14px)}}
@keyframes burst{30%{transform:scale(1.25)}100%{transform:scale(0);opacity:0}}

/* sort */
.sortcard{width:150px;height:150px;border-radius:var(--r-lg);background:var(--surface);
  border:4px solid var(--line);display:grid;place-items:center;font-size:4.5rem;
  box-shadow:0 6px 0 var(--line);transition:all .2s}
.sortcard.correct{border-color:var(--leaf);background:var(--leaf-soft);animation:pop .4s ease}
.sortcard.wrong{border-color:var(--rose);background:var(--rose-soft);animation:shake .35s ease}
.sortbtns{display:flex;gap:16px}
.sortbtns .btn3d{font-size:1.4rem}

/* sticker album */
.stickergrid{display:grid;grid-template-columns:repeat(auto-fill,minmax(110px,1fr));gap:14px}
.sticker{border-radius:18px;background:var(--surface);border:3px solid var(--line);
  padding:14px 8px;display:flex;flex-direction:column;align-items:center;gap:6px;
  box-shadow:0 4px 0 var(--line);transition:transform .15s}
.sticker.earned{border-color:var(--gold);background:linear-gradient(160deg,#fff,#FFF7E0)}
.sticker.earned:hover{transform:translateY(-4px) rotate(-2deg)}
.sticker.locked{opacity:.5;filter:grayscale(.6)}
.sticker .st-e{font-size:2.4rem}
.sticker .st-n{font-size:.78rem;font-weight:800;color:var(--ink-soft);text-align:center}
.sticker.treasure.earned{border-color:var(--accent);background:linear-gradient(160deg,#fff,#FFE9DB)}

/* reward tag in feedback */
.rewardtag{display:flex;flex-direction:column;align-items:center;gap:4px;margin-bottom:14px;
  background:linear-gradient(160deg,#fff,#FFF7E0);border:3px solid var(--gold);
  border-radius:20px;padding:14px 26px;box-shadow:0 5px 0 var(--gold-deep);animation:pop .5s cubic-bezier(.3,1.6,.5,1)}
.rewardtag .rt-e{font-size:2.8rem}
.rewardtag .rt-t{font-family:var(--font-d);font-weight:800;color:var(--ink)}
.rewardtag .rt-l{font-size:.8rem;font-weight:900;color:var(--gold-deep);text-transform:uppercase;letter-spacing:.05em}

/* streak modal */
.streakmodal{position:fixed;inset:0;display:none;place-items:center;z-index:70;
  background:rgba(51,48,78,.4);backdrop-filter:blur(4px)}
.streakmodal.show{display:grid;animation:fadeUp .3s ease}
.streakcard{background:var(--surface);border-radius:32px;padding:34px 48px;text-align:center;
  box-shadow:var(--shadow-lg);max-width:90vw;animation:cheer .8s cubic-bezier(.3,1.6,.5,1)}
.streakfire{font-size:3.4rem;margin:4px 0}
.streakfire span{font-family:var(--font-d);font-weight:800;color:var(--accent-deep);font-size:3.6rem;margin:0 6px}
.streakcard h2{font-size:2rem;color:var(--accent-deep)}
.streakcard p{color:var(--ink-soft);font-weight:800;margin-top:4px}

/* asset layer */
.art{display:inline-block;border-radius:14px;vertical-align:middle}
.emo-art{font-size:inherit;line-height:1}

/* ============ Malaysia Puzzle Pack ============ */
.puzzle-banner{width:100%;display:flex;align-items:center;gap:18px;text-align:left;
  padding:16px 22px;border-radius:24px;background:linear-gradient(115deg,#0769C9,#12A8D8);
  color:#fff;box-shadow:0 7px 0 #0753A0;margin:2px 0 22px;transition:transform .12s,box-shadow .12s;
  position:relative;overflow:hidden}
.puzzle-banner::after{content:'';position:absolute;width:160px;height:160px;border-radius:50%;
  background:rgba(255,255,255,.12);right:-35px;top:-70px}
.puzzle-banner:active{transform:translateY(5px);box-shadow:0 2px 0 #0753A0}
.pb-art{font-size:2.5rem;white-space:nowrap}.pb-copy{display:flex;flex-direction:column;flex:1;position:relative;z-index:1}
.pb-copy small{font-size:.72rem;font-weight:900;letter-spacing:.09em;color:#FFDF62}
.pb-copy strong{font-family:var(--font-d);font-size:1.45rem;line-height:1.05}.pb-copy em{font-size:.82rem;font-weight:800;opacity:.82;font-style:normal}
.pb-go{width:44px;height:44px;border-radius:50%;background:#fff;color:#0769C9;display:grid;place-items:center;font-size:1rem;position:relative;z-index:1}

/* puzzle selection: Malaysia storybook pack */
#s-puzzle-pack.puzzle-pack-screen{max-width:1440px;padding:20px clamp(18px,3vw,54px) 52px;gap:14px;position:relative}
#s-puzzle-pack.puzzle-pack-screen::before{content:'';position:fixed;inset:0;z-index:-1;pointer-events:none;background:
  radial-gradient(ellipse at 5% 80%,rgba(65,178,72,.28),transparent 23%),
  radial-gradient(ellipse at 95% 82%,rgba(52,170,72,.3),transparent 25%),
  linear-gradient(180deg,#FFF8DC 0%,#FFF5D4 55%,#DDF4C8 100%)}
.puzzle-pack-topbar{min-height:66px;display:flex;align-items:center;justify-content:space-between;position:relative}.puzzle-back{min-height:58px;padding:10px 22px;border:3px solid #F1E2C0;border-radius:20px;background:#fff;color:#7B62D2;font-family:var(--font-d);font-size:1.15rem;font-weight:800;box-shadow:0 6px 0 #E4D2AC;transition:.12s}.puzzle-back:hover{transform:translateY(-3px)}.puzzle-back:active{transform:translateY(4px);box-shadow:0 2px 0 #E4D2AC}.puzzle-complete-pill{min-width:145px;padding:9px 22px;border-radius:999px;background:linear-gradient(#FFE666,#FFC629);border:4px solid #fff;color:#754B00;font-family:var(--font-d);font-size:1.45rem;font-weight:900;text-align:center;box-shadow:0 6px 0 #E6A700}.puzzle-complete-pill::before{content:'☆';font-size:1.7rem;margin-right:9px;color:#fff;text-shadow:0 2px 0 #D88E00}.puzzle-confetti{position:absolute;font-size:1rem}.puzzle-confetti.one{left:28%;color:#FFC531;transform:rotate(35deg)}.puzzle-confetti.two{left:49%;color:#F0568A;top:5px}.puzzle-confetti.three{right:25%;color:#69BE45;transform:rotate(-25deg)}
.puzzle-pack-hero{min-height:278px;border-radius:38px;position:relative;overflow:hidden;color:#fff;padding:30px 48px;background:linear-gradient(90deg,rgba(5,131,232,.98) 0%,rgba(3,148,239,.88) 54%,rgba(9,170,225,.38) 100%),url('../assets/img/puzzles/klcc/thumbnail.png') center/cover;border:5px solid #C9EFFF;box-shadow:0 9px 0 #0871B8,0 18px 36px rgba(12,109,172,.18)}.puzzle-pack-hero::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 55% 20%,rgba(255,255,255,.22),transparent 28%)}.puzzle-hero-copy{position:relative;z-index:4}.puzzle-kicker{display:inline-block;background:#FFE04B;color:#2355A0;padding:7px 22px;border-radius:999px;font-size:.78rem;font-weight:1000;letter-spacing:.07em;box-shadow:0 4px 0 #E3B92B}.puzzle-hero-copy h1{display:flex;flex-direction:column;margin-top:10px;line-height:.9}.puzzle-hero-copy h1 span{font-size:clamp(2.2rem,4vw,4.1rem);color:#fff;text-shadow:0 5px 0 #1762B5,0 8px 8px rgba(0,45,100,.22)}.puzzle-hero-copy h1 strong{font-size:clamp(3rem,5vw,5.2rem);color:#FFD33F;text-shadow:0 5px 0 #D78100,0 8px 8px rgba(0,45,100,.2)}.puzzle-hero-copy p{font-size:1.15rem;font-weight:1000;margin-top:12px;text-shadow:0 2px 0 rgba(0,72,130,.5)}.puzzle-hero-kl{position:absolute;right:31%;bottom:18px;font-size:4rem;z-index:2;filter:drop-shadow(0 5px 2px rgba(0,0,0,.18))}.puzzle-hero-flag{position:absolute;right:2%;top:28px;font-size:6.8rem;z-index:2;filter:drop-shadow(0 7px 3px rgba(0,0,0,.25))}.puzzle-hero-pieces{position:absolute;right:8%;bottom:10px;font-size:6rem;z-index:3;filter:drop-shadow(0 6px 3px rgba(0,0,0,.2))}.puzzle-hero-mascot{position:absolute;right:20%;bottom:-22px;z-index:3;filter:drop-shadow(0 8px 3px rgba(0,63,115,.28))}
.puzzle-picker-panel{background:rgba(255,255,255,.94);border:4px solid #F2E5CC;border-radius:34px;padding:12px 20px 22px;box-shadow:0 8px 0 #E7D4AE,0 18px 40px rgba(99,74,31,.1)}.puzzle-picker-panel>h2{text-align:center;font-size:1.5rem;color:#3D345C;margin:-4px 0 9px}.puzzle-picker-panel>h2 span{font-size:1rem}.puzzle-levels{display:grid;grid-template-columns:repeat(4,1fr);gap:28px;max-width:1100px;margin:0 auto 20px}.puzzle-levels button{min-height:102px;border-radius:24px;border:4px solid #EDE3CB;background:#FFFDF8;display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;place-content:center;column-gap:14px;font-weight:900;box-shadow:0 7px 0 #DFCEAA;position:relative;overflow:hidden;transition:.14s}.puzzle-levels button::before{content:'';position:absolute;left:0;top:0;bottom:0;width:20px;background:#78CE4C}.puzzle-levels button span{grid-row:1/3;font-size:2.1rem;filter:hue-rotate(68deg)}.puzzle-levels button b{font-family:var(--font-d);font-size:2.65rem;line-height:.86;color:#55A52C}.puzzle-levels button small{font-size:.9rem;color:#655D81}.puzzle-levels button:nth-child(2)::before{background:#FFC82F}.puzzle-levels button:nth-child(2) b{color:#E59A00}.puzzle-levels button:nth-child(2) span{filter:hue-rotate(15deg)}.puzzle-levels button:nth-child(3)::before{background:#FF8B23}.puzzle-levels button:nth-child(3) b{color:#EE6E00}.puzzle-levels button:nth-child(3) span{filter:hue-rotate(-15deg)}.puzzle-levels button:nth-child(4)::before{background:#F44883}.puzzle-levels button:nth-child(4) b{color:#E52D70}.puzzle-levels button:nth-child(4) span{filter:hue-rotate(290deg)}.puzzle-levels button:hover{transform:translateY(-4px)}.puzzle-levels button.sel{border-color:#F44883;background:linear-gradient(145deg,#FFF9FC,#FFE6F0);box-shadow:0 7px 0 #CA2E64,0 0 0 5px #FFBBD2}.puzzle-levels button.sel::after{content:'✓';position:absolute;right:-3px;top:-7px;width:42px;height:42px;border-radius:50%;display:grid;place-items:center;background:#F44883;color:#fff;border:4px solid #fff;font-size:1.4rem;box-shadow:0 3px 0 #C92D62}
.puzzle-pack-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.puzzle-card{position:relative;background:#FFFDF8;border:4px solid #F0E2C4;border-radius:24px;overflow:hidden;text-align:left;box-shadow:0 7px 0 #DECAA4;transition:transform .15s,border-color .15s}.puzzle-card:hover{transform:translateY(-6px);border-color:#69AFE9}.puzzle-card:active{transform:translateY(4px);box-shadow:0 2px 0 #DECAA4}.puzzle-card.completed{border-color:#7BCF54;box-shadow:0 7px 0 #4E9B31}.puzzle-card img{display:block;width:100%;aspect-ratio:1.34;object-fit:cover;border-bottom:3px solid #EFE1C6}.puzzle-num{position:absolute;top:7px;left:7px;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;background:linear-gradient(#FF7AA5,#EF3675);color:#fff;font-family:var(--font-d);font-size:1.45rem;font-weight:900;border:4px solid #fff;box-shadow:0 3px 0 #C52963;z-index:2}.puzzle-card:nth-child(3n+2) .puzzle-num{background:linear-gradient(#64C7FF,#2B8FE1);box-shadow:0 3px 0 #176DAE}.puzzle-card:nth-child(3n) .puzzle-num{background:linear-gradient(#FFD44B,#F4A818);box-shadow:0 3px 0 #C77C05}.puzzle-card:nth-child(4n) .puzzle-num{background:linear-gradient(#8CDE5B,#55B834);box-shadow:0 3px 0 #358722}.puzzle-done{position:absolute;right:8px;top:8px;width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#66C744;color:#fff;border:4px solid #fff;font-weight:1000;font-size:1.2rem;box-shadow:0 3px 0 #398C25;z-index:2}.puzzle-card-copy{display:flex;flex-direction:column;padding:8px 12px 10px;text-align:center}.puzzle-card-copy strong{font-family:var(--font-d);font-size:1.05rem;line-height:1}.puzzle-card-copy small{display:flex;justify-content:space-between;gap:8px;align-items:center;margin-top:4px;font-size:.69rem;font-weight:900;color:#77708C}.puzzle-card-copy small span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.puzzle-card-copy small b{color:#A27100;white-space:nowrap}
@media(max-width:1050px){.puzzle-pack-grid{grid-template-columns:repeat(3,1fr)}.puzzle-hero-mascot{right:15%}.puzzle-hero-copy h1 span{font-size:2.8rem}.puzzle-hero-copy h1 strong{font-size:3.6rem}}
@media(max-width:700px){#s-puzzle-pack.puzzle-pack-screen{padding:12px 10px 34px}.puzzle-pack-topbar{min-height:62px}.puzzle-back{min-height:50px;font-size:.92rem;padding:8px 13px}.puzzle-complete-pill{min-width:105px;font-size:1rem;padding:7px 12px}.puzzle-confetti{display:none}.puzzle-pack-hero{min-height:300px;padding:24px 20px}.puzzle-hero-copy h1 span{font-size:2.4rem}.puzzle-hero-copy h1 strong{font-size:3.25rem}.puzzle-hero-copy p{max-width:220px;font-size:.9rem}.puzzle-hero-flag{font-size:4.5rem;right:3%;top:20px}.puzzle-hero-mascot{right:-16px;bottom:-28px;transform:scale(.78)}.puzzle-hero-pieces{font-size:4rem;right:27%;bottom:12px}.puzzle-hero-kl{display:none}.puzzle-picker-panel{padding:12px 10px 18px;border-radius:26px}.puzzle-levels{grid-template-columns:repeat(2,1fr);gap:14px;margin-bottom:18px}.puzzle-levels button{min-height:88px}.puzzle-pack-grid{grid-template-columns:repeat(2,1fr);gap:10px}.puzzle-card{border-radius:18px}.puzzle-num{width:38px;height:38px;font-size:1.1rem}.puzzle-card-copy{padding:7px}.puzzle-card-copy strong{font-size:.86rem}.puzzle-card-copy small{font-size:.58rem}.puzzle-done{width:32px;height:32px}.puzzle-card img{aspect-ratio:1.2}}
@media(max-width:360px){.puzzle-hero-copy h1 strong{font-size:2.8rem}.puzzle-levels{gap:9px}.puzzle-levels button b{font-size:2rem}.puzzle-card-copy small span{display:none}}

.sr-only{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}
.puzzle-game-screen{max-width:1180px;padding:18px clamp(14px,2.6vw,40px) 46px;grid-template-columns:minmax(0,1fr);grid-template-areas:'header' 'tools' 'bm' 'main' 'support' 'prompts';gap:12px;align-items:start;background:linear-gradient(180deg,#FFF8E9,#FFF1D9 68%,#FCE8C9)}
#s-puzzle-game.active{display:grid}.puzzle-game-top{grid-area:header;display:flex;align-items:center;gap:16px;min-width:0}.puzzle-game-back{min-height:54px;padding:9px 18px;border:3px solid #EAD9B9;border-radius:19px;background:#FFFDF8;color:#373255;font-weight:1000;font-size:.95rem;box-shadow:0 5px 0 #DCC7A1;white-space:nowrap}.puzzle-game-back:active{transform:translateY(3px);box-shadow:0 2px 0 #DCC7A1}
.puzzle-title-block{display:flex;flex-direction:column;flex:1;min-width:0}.puzzle-title-block strong{font-family:var(--font-d);font-size:clamp(1.4rem,2.3vw,2rem);line-height:1}.puzzle-title-block small{font-weight:900;color:#69617E;margin-top:4px}.puzzle-stat{display:flex;gap:10px;justify-content:flex-end;align-items:center}.puzzle-stat>span{min-height:46px;padding:7px 14px;border-radius:18px;background:var(--surface);border:2px solid #ECDDBF;font-size:.82rem;font-weight:1000;display:flex;align-items:center;gap:5px;box-shadow:0 3px 0 #DFCBA5;white-space:nowrap}.puzzle-placed-stat{width:150px;flex-direction:column;align-items:stretch!important;gap:4px!important}.puzzle-placed-stat i{display:block;height:7px;background:#E9DFCD;border-radius:9px;overflow:hidden}.puzzle-placed-stat em{display:block;width:0;height:100%;background:#58C23A;border-radius:inherit;transition:width .25s}
.puzzle-tools{grid-area:tools;display:flex;gap:14px;justify-content:center;flex-wrap:wrap;margin:1px 0 5px}.puzzle-tool{min-width:145px;min-height:52px;padding:8px 18px;border-radius:18px;border:3px solid var(--line);background:var(--surface);font-weight:1000;font-size:.93rem;box-shadow:0 5px 0 var(--line);display:flex;align-items:center;justify-content:center;gap:8px}.puzzle-tool img{width:29px;height:29px;object-fit:contain}.puzzle-tool.audio{border-color:var(--teal);background:var(--teal-soft);box-shadow:0 5px 0 var(--teal-deep)}.puzzle-tool.bm{border-color:var(--gold);background:var(--gold-soft);box-shadow:0 5px 0 var(--gold-deep)}.puzzle-tool.help{border-color:#8D6BE8;background:#EEE8FF;box-shadow:0 5px 0 #6544C0}.puzzle-tool.reset{border-color:#F15E56;background:#FFE4E0;box-shadow:0 5px 0 #C53C38}.puzzle-tool:active{transform:translateY(4px);box-shadow:0 1px 0 var(--line)}
.puzzle-bm-text{grid-area:bm;height:0;opacity:0;text-align:center;font-weight:1000;color:#8A6410;transition:.2s;overflow:hidden}.puzzle-bm-text.show{height:30px;opacity:1}
.puzzle-play-area{grid-area:main;min-width:0;width:100%;max-width:700px;justify-self:center;display:grid;grid-template-columns:minmax(0,1fr);gap:10px;align-items:center}.puzzle-board-shell,.puzzle-tray-shell{grid-column:1;position:relative;width:100%;min-width:0;margin:0 auto}.puzzle-board-shell{max-width:700px}
.puzzle-board{--pc:3;--pr:3;display:grid;grid-template-columns:repeat(var(--pc),1fr);grid-template-rows:repeat(var(--pr),1fr);
  width:100%;aspect-ratio:580/540;background:#E7D8C1;border:7px solid var(--surface);outline:3px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-lg);gap:3px;padding:3px}
.puzzle-piece{min-width:0;min-height:0;border:3px solid rgba(255,255,255,.7);background-repeat:no-repeat;position:relative;transition:transform .15s,filter .15s;cursor:pointer}
.puzzle-piece::after{content:'';position:absolute;inset:0;box-shadow:inset 0 0 0 1px rgba(51,48,78,.12)}
.puzzle-piece:hover{filter:brightness(1.07)}.puzzle-piece.selected{z-index:2;transform:scale(.92);outline:6px solid var(--gold);filter:brightness(1.12)}
.puzzle-piece.correct{border-color:rgba(102,187,69,.8)}

/* Real authored jigsaw: masked contours, tray, drag and snap */
.puzzle-board.authored-board{display:block;position:relative;overflow:visible;padding:0;gap:0;background:#F7F0E3;touch-action:none;isolation:isolate}
.puzzle-board.exact-board{background:radial-gradient(circle at 50% 38%,#FFFDF8 0,#F4EEDF 78%,#ECE2CF 100%)}
.jigsaw-piece{position:absolute;z-index:2;pointer-events:none;animation:jigsawSnap .28s cubic-bezier(.2,1.45,.5,1)}
.jigsaw-svg{display:block;width:100%;height:100%;overflow:visible;pointer-events:none;filter:drop-shadow(0 2px 1px rgba(0,0,0,.12))}
.exact-piece-img{display:block;width:100%;height:100%;object-fit:contain;pointer-events:none;user-select:none;-webkit-user-drag:none}
.exact-placed{filter:drop-shadow(0 2px 2px rgba(31,43,61,.22))}
.exact-tray-piece{filter:drop-shadow(0 3px 3px rgba(31,43,61,.22))}
.exact-drag-ghost .exact-piece-img{object-fit:contain}
.puzzle-tray-shell{margin-top:18px;padding:18px 12px 10px;background:linear-gradient(145deg,#EFFAFF,#E3F2FF);border:3px dashed #79AEDD;border-radius:20px}.puzzle-tray-label{position:absolute;z-index:3;left:50%;top:0;transform:translate(-50%,-48%);width:min(215px,46%);height:auto;pointer-events:none}.puzzle-tray{display:none}.puzzle-tray.show{display:grid;grid-template-columns:repeat(auto-fit,minmax(88px,1fr));gap:8px;align-items:center;min-height:106px;padding:6px;background:transparent}.puzzle-tray-arrow{display:none;position:absolute;z-index:5;top:50%;transform:translateY(-50%);width:48px;height:48px}.puzzle-tray-arrow.prev{left:-4px}.puzzle-tray-arrow.next{right:-4px}.puzzle-tray-arrow img{width:100%;height:100%;object-fit:contain}
.tray-piece{position:relative;aspect-ratio:var(--ratio);min-height:76px;max-height:126px;border:0;background:transparent;padding:0;cursor:grab;touch-action:none;transition:transform .18s,filter .18s;overflow:visible}
.tray-piece:hover{transform:translateY(-4px) scale(1.04)}.tray-piece:active{cursor:grabbing}.tray-piece.selected{filter:drop-shadow(0 0 6px #FFC531);transform:scale(1.08)}
.tray-piece.help-pulse{animation:helpPiecePulse .75s ease 2}@keyframes helpPiecePulse{0%,100%{transform:scale(1.08)}50%{transform:translateY(-7px) scale(1.16);filter:drop-shadow(0 0 12px #FFD735)}}
.tray-piece.selected::after{content:'Tap its place';position:absolute;left:50%;bottom:-8px;transform:translateX(-50%);white-space:nowrap;background:#FFC531;color:#49390A;padding:2px 7px;border-radius:99px;font-size:.55rem;font-weight:900;z-index:4}
.tray-piece.wrong-drop{animation:wrongDrop .38s ease}
.jigsaw-drag-ghost{position:fixed;z-index:999;pointer-events:none;transform:scale(1.08);filter:drop-shadow(0 12px 9px rgba(35,43,64,.3));opacity:.96}
.authored-board.try-again{animation:wrongDrop .35s ease}
@keyframes jigsawSnap{0%{transform:scale(1.18);filter:brightness(1.3)}100%{transform:scale(1)}}
@keyframes wrongDrop{20%{transform:translateX(-7px)}45%{transform:translateX(7px)}70%{transform:translateX(-4px)}100%{transform:translateX(0)}}
.puzzle-swipe-prompt{display:none}.puzzle-learning-prompts{grid-area:prompts;width:100%;min-width:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;align-items:center}.puzzle-instruction,.puzzle-listen-prompt{min-width:0;background:transparent}.puzzle-instruction img,.puzzle-listen-prompt img{display:block;width:100%;height:auto;max-width:100%}.puzzle-listen-prompt:active{transform:translateY(2px)}
.puzzle-support{grid-area:support;width:min(920px,100%);justify-self:center;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;align-items:center;min-width:0}.puzzle-coach-card,.puzzle-word-card,.puzzle-reward-card{width:100%;min-width:0}.puzzle-reward-four-art{display:block;width:100%;height:auto}.puzzle-coach-card{min-height:0;padding:0;display:block;border:0;border-radius:0;background:transparent;box-shadow:none}.puzzle-coach-card>img{display:block;width:100%;height:auto;object-fit:contain}.puzzle-coach-card:active{transform:translateY(3px)}
.puzzle-reward-four-art{display:none}.puzzle-word-dynamic{position:relative;padding:12px 10px 10px 58px;border:3px solid #F0DCA8;border-radius:20px;background:#FFFDF5;box-shadow:0 5px 0 #DFC78D}.puzzle-word-coach{position:absolute;left:-10px;top:50%;transform:translateY(-50%);width:62px;height:62px;display:block;border:4px solid #FFD34E;border-radius:50%;background:#E8F6FF;box-shadow:0 4px 0 #D6A82B;object-fit:cover}.puzzle-word-dynamic section{position:relative;padding:6px 40px 6px 8px;border-radius:12px;background:#fff;margin:4px 0;display:flex;flex-direction:column}.puzzle-word-dynamic small{font-weight:900;color:#756D85}.puzzle-word-dynamic strong{font-family:var(--font-d);font-size:1rem;line-height:1}.puzzle-word-dynamic button{position:absolute;right:5px;top:50%;transform:translateY(-50%);width:34px;height:34px}.puzzle-word-dynamic button img{width:100%;height:100%;object-fit:contain}
.puzzle-reward-dynamic{position:relative;min-height:155px;padding:18px 12px 12px 105px;border:3px solid #F0D496;border-radius:22px;background:#FFF9E9;box-shadow:0 5px 0 #D8B66D;display:flex;flex-direction:column;justify-content:center}.puzzle-reward-dynamic>img{position:absolute;left:5px;bottom:4px;width:100px;height:100px;object-fit:contain}.puzzle-reward-dynamic>strong{font-family:var(--font-d);font-size:1.25rem;color:#E64E4E}.puzzle-reward-dynamic>span{display:flex;align-items:center;gap:8px;margin-top:8px}.puzzle-reward-dynamic i{flex:1;height:12px;border-radius:12px;background:#E9DEC8;overflow:hidden}.puzzle-reward-dynamic i em{display:block;width:0;height:100%;background:#67C742;border-radius:inherit;transition:width .25s}.puzzle-reward-dynamic b{font-weight:1000;color:#56942A}.puzzle-reward-card.authored-four .puzzle-reward-four-art{display:block}.puzzle-reward-card.authored-four .puzzle-reward-dynamic{display:none}
@media(min-width:900px){
  .puzzle-game-screen{--puzzle-main:clamp(520px,52vw,640px);--puzzle-side:clamp(230px,22vw,280px);grid-template-columns:minmax(0,var(--puzzle-main)) minmax(220px,var(--puzzle-side));grid-template-areas:'header header' 'tools tools' 'bm bm' 'main support' 'prompts support';justify-content:center;column-gap:18px}
  .puzzle-play-area{max-width:var(--puzzle-main);display:block}
  .puzzle-board-shell{max-width:var(--puzzle-main)}
  .puzzle-tray-shell{margin-top:14px;padding:16px 10px 8px}
  .puzzle-tray.show{grid-template-columns:repeat(5,minmax(0,1fr));min-height:88px;gap:5px;padding:4px}
  .tray-piece{min-height:62px;max-height:88px}
  .puzzle-learning-prompts{max-width:var(--puzzle-main)}
  .puzzle-support{width:100%;display:flex;flex-direction:column;gap:12px;align-self:start}
}
@media(min-width:900px) and (max-height:1000px){
  .puzzle-game-screen{--puzzle-main:clamp(500px,calc(100vh - 350px),620px);--puzzle-side:clamp(240px,24vw,260px);padding-top:10px;padding-bottom:24px;gap:8px;column-gap:16px}
  .puzzle-game-back{min-height:46px;padding:7px 14px}.puzzle-stat>span{min-height:42px;padding:6px 11px}.puzzle-tools{gap:10px;margin:0}.puzzle-tool{min-height:46px;min-width:132px;padding:6px 15px}
  .puzzle-tray-shell{margin-top:11px;padding:14px 8px 6px}.puzzle-tray.show{min-height:72px;gap:4px;padding:3px}.tray-piece{min-height:52px;max-height:clamp(65px,8vh,82px)}
  .puzzle-tray-label{width:min(190px,42%)}.puzzle-learning-prompts{gap:9px}
  .puzzle-coach-card>img{max-height:108px}.puzzle-reward-dynamic{min-height:140px;padding-left:92px}.puzzle-reward-dynamic>img{width:86px;height:86px}.puzzle-support{gap:9px}
}
@media(min-width:900px) and (max-height:720px){
  .puzzle-game-screen{--puzzle-main:460px;--puzzle-side:230px;padding-top:8px;padding-bottom:18px;gap:6px}
  .puzzle-game-back{min-height:44px}.puzzle-tools{gap:8px}.puzzle-tool{min-height:44px;min-width:124px}.puzzle-tool img{width:25px;height:25px}
  .puzzle-tray-shell{margin-top:9px;padding-top:13px}.puzzle-tray.show{min-height:66px}.tray-piece{min-height:48px;max-height:58px}
  .puzzle-coach-card>img{max-height:94px}.puzzle-reward-dynamic{min-height:128px}.puzzle-word-dynamic{padding-top:8px;padding-bottom:7px}.puzzle-support{gap:7px}
}
.puzzle-reset-dialog{position:fixed;inset:0;z-index:110;display:none;place-items:center;padding:18px;background:rgba(51,48,78,.48);backdrop-filter:blur(5px)}.puzzle-reset-dialog.show{display:grid}.puzzle-reset-dialog>div{width:min(440px,94vw);padding:25px;border-radius:28px;background:#FFFDF6;border:4px solid #F0DDB7;box-shadow:0 12px 0 #CDB889;text-align:center}.puzzle-reset-dialog h2{font-size:1.7rem}.puzzle-reset-dialog p{font-weight:800;color:#6D6581;margin:6px 0 18px}.puzzle-reset-dialog>div>span{display:flex;gap:12px;justify-content:center}.puzzle-reset-dialog .btn3d{min-height:52px}
@media(max-width:899px){
  .puzzle-game-screen{max-width:960px;grid-template-columns:1fr;grid-template-areas:'header' 'tools' 'bm' 'main' 'support' 'prompts';padding:15px 18px 42px}.puzzle-play-area{max-width:700px;justify-self:center}.puzzle-support{width:min(700px,100%);justify-self:center;display:grid;grid-template-columns:1fr auto;align-items:center}.puzzle-coach-card{display:none}.puzzle-word-card{min-width:0}.puzzle-word-dynamic{display:grid;grid-template-columns:1fr 1fr;padding:8px 8px 8px 76px}.puzzle-word-dynamic section{margin:0 3px}.puzzle-word-coach{width:70px;height:70px}.puzzle-reward-card{display:none}.puzzle-tray.show{grid-template-columns:repeat(6,1fr)}
}
@media(min-width:701px) and (max-width:899px){
  .puzzle-play-area{max-width:600px;display:block}
  .puzzle-board-shell{max-width:600px}
  .puzzle-tray-shell{margin-top:14px;padding:16px 10px 8px}
  .puzzle-tray.show{min-height:88px;gap:5px;padding:4px}
  .tray-piece{min-height:62px;max-height:92px}
  .puzzle-learning-prompts{width:min(600px,100%);justify-self:center}
  .puzzle-support{width:min(600px,100%);grid-template-columns:minmax(0,1fr) 145px;gap:12px}
  .puzzle-word-card{order:1}.puzzle-coach-card{display:block;order:2;width:145px}.puzzle-reward-card{display:none}
}
@media(min-width:701px) and (max-width:899px) and (orientation:landscape){
  .puzzle-game-screen{--land-main:clamp(420px,calc(100vh - 260px),500px);--land-side:clamp(190px,25vw,220px);grid-template-columns:minmax(0,var(--land-main)) minmax(180px,var(--land-side));grid-template-areas:'header header' 'tools tools' 'bm bm' 'main support' 'prompts support';justify-content:center;column-gap:14px;padding-top:8px;padding-bottom:18px;gap:6px}
  .puzzle-game-back{min-height:44px;padding:6px 12px}.puzzle-stat>span{min-height:40px;padding:5px 9px}.puzzle-tools{gap:8px;margin:0}.puzzle-tool{min-height:44px;min-width:122px;padding:5px 12px}.puzzle-tool img{width:25px;height:25px}
  .puzzle-play-area,.puzzle-board-shell{width:100%;max-width:var(--land-main)}
  .puzzle-tray-shell{margin-top:9px;padding:13px 7px 5px}.puzzle-tray.show{grid-template-columns:repeat(5,minmax(0,1fr));min-height:66px;gap:4px;padding:3px}.tray-piece{min-height:48px;max-height:60px}
  .puzzle-learning-prompts{width:100%;max-width:var(--land-main);gap:8px}
  .puzzle-support{width:100%;display:flex;flex-direction:column;gap:8px;align-self:start}.puzzle-coach-card{order:1;width:100%}.puzzle-coach-card>img{max-height:92px}.puzzle-word-card{order:2;width:100%}.puzzle-word-dynamic{display:block;padding:8px 7px 7px 52px}.puzzle-word-coach{width:58px;height:58px}.puzzle-word-dynamic section{margin:3px 0;padding-top:4px;padding-bottom:4px}.puzzle-reward-card{display:none}
}
@media(max-width:700px){
  .puzzle-game-screen{grid-template-areas:'header' 'main' 'tools' 'bm' 'support' 'prompts';padding:10px 8px 34px;gap:10px}.puzzle-game-top{display:grid;grid-template-columns:auto 1fr;gap:7px 10px}.puzzle-game-back{min-width:48px;width:48px;min-height:48px;padding:6px;font-size:1.35rem}.puzzle-game-back span,.puzzle-title-block small{display:none}.puzzle-title-block strong{text-align:center;font-size:1.5rem;padding-right:48px}.puzzle-stat{grid-column:1/-1;display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.puzzle-stat>span{min-width:0;min-height:42px;padding:6px 5px;justify-content:center;font-size:.7rem;border-radius:14px}.puzzle-placed-stat{width:auto}.puzzle-placed-stat i{width:75%;align-self:center}
  .puzzle-play-area{display:block;width:100%;max-width:none}.puzzle-board{border-width:5px;outline-width:2px;border-radius:16px}.puzzle-tray-shell{margin-top:19px;padding:17px 34px 7px}.puzzle-tray.show{display:grid;grid-auto-flow:column;grid-template-columns:none;grid-auto-columns:minmax(82px,32%);overflow-x:auto;overscroll-behavior-inline:contain;scroll-snap-type:x proximity;scrollbar-width:none;min-height:92px;gap:7px}.puzzle-tray.show::-webkit-scrollbar{display:none}.tray-piece{scroll-snap-align:center;min-height:72px;max-height:100px}.puzzle-tray-arrow{display:block}.puzzle-tray-label{width:min(175px,54%)}.puzzle-swipe-prompt{display:block;width:min(290px,88%);height:auto;margin:7px auto 0}.puzzle-instruction{width:min(315px,96%);margin:7px auto 0}.puzzle-listen-prompt{display:none}
  .puzzle-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px;width:100%;margin:0}.puzzle-tool{min-width:0;min-height:50px;padding:7px 9px}.puzzle-tool img{width:27px;height:27px}.puzzle-bm-text.show{height:28px}
  .puzzle-support{display:block;width:100%}.puzzle-coach-card{display:block;width:min(220px,70%);margin:0 auto}.puzzle-word-card,.puzzle-reward-card{display:none}.puzzle-learning-prompts{display:block}.puzzle-listen-prompt{display:none}.puzzle-instruction{width:min(315px,96%);margin:0 auto}.puzzle-reset-dialog>div>span{flex-direction:column}.puzzle-reset-dialog .btn3d{width:100%}
}

.puzzle-win{position:fixed;inset:0;display:none;place-items:center;background:rgba(51,48,78,.48);backdrop-filter:blur(5px);z-index:90}.puzzle-win.show{display:grid}
.puzzle-win-card{background:var(--surface);border-radius:34px;padding:24px 34px 30px;text-align:center;box-shadow:var(--shadow-lg);max-width:min(92vw,500px);position:relative;overflow:hidden;animation:cheer .75s cubic-bezier(.3,1.6,.5,1)}
.puzzle-win-mascot{display:flex;justify-content:center;height:92px}.puzzle-win-mascot img{display:block;width:auto;height:100%;object-fit:contain}.puzzle-win-stars{font-size:2.8rem;letter-spacing:5px}.puzzle-win-card h2{font-size:2rem;color:var(--accent-deep)}
.puzzle-win-card>p{font-weight:900;color:var(--ink-soft);margin:3px 0 12px}.puzzle-win-word{display:flex;flex-direction:column;background:var(--sky-soft);border:3px solid var(--sky);padding:12px 16px;border-radius:16px;margin-bottom:10px}
.puzzle-win-word strong{font-family:var(--font-d);font-size:1.35rem;color:var(--sky-deep)}.puzzle-win-word span{font-size:.82rem;font-weight:800}
.puzzle-win-reward{display:flex;align-items:center;justify-content:center;gap:9px;font-weight:900;color:var(--gold-deep);min-height:28px;margin-bottom:12px}.puzzle-win-actions{display:flex;gap:12px;justify-content:center}.puzzle-win-actions .btn3d{min-height:52px;font-size:1rem;padding:11px 24px}

@media(max-width:600px){
  .puzzle-levels{grid-template-columns:repeat(2,1fr)}.puzzle-pack-grid{grid-template-columns:repeat(2,1fr)}
  .puzzle-win-card{padding:20px}.pb-copy strong{font-size:1.15rem}
}

/* ============ Supplied home-dashboard artwork ============ */
.home-avatar img{display:block;width:100%;height:100%;object-fit:contain;border-radius:50%}
.welcome-coach-wrap{display:flex;align-items:flex-end;gap:8px;min-height:116px}
.welcome-mascot{display:block;width:112px;flex:0 0 112px;filter:drop-shadow(0 7px 3px rgba(63,49,105,.16))}
.welcome-mascot svg{width:100%;height:auto}
.home-lead>*{min-width:0}
.home-hero.home-hero-supplied{padding:0;min-width:0;max-width:100%;min-height:0;aspect-ratio:3.05/1;background:#0B9EE7;border:4px solid #BFEAFF}
.home-hero.home-hero-supplied::after{content:none}
.home-hero-art{display:block;width:100%;max-width:100%;height:100%;object-fit:cover;object-position:center 25%;pointer-events:none;user-select:none}
.world-island.has-art{width:min(158px,100%);height:132px;border:0;background:transparent;box-shadow:none}
.world-island.has-art::after{content:none}
.world-art{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 9px 2px rgba(53,97,31,.22));position:relative;z-index:1;pointer-events:none}
.home-world.current .world-island.has-art{box-shadow:none;filter:drop-shadow(0 0 8px rgba(255,204,31,.8))}
@media(max-width:700px){
  .home-hero.home-hero-supplied{min-height:0;padding:0;aspect-ratio:16/9}
  .home-hero-art{object-position:center}
  .welcome-coach-wrap{display:none}
  .world-island.has-art{height:116px}
}

/* ============ Supplied dashboard controls and rewards ============ */
.home-stat-icon{width:52px;height:52px;display:grid;place-items:center;flex:0 0 52px}
.home-stat-icon img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 2px rgba(80,50,0,.15))}
.home-actions button>span.home-action-art{width:52px;height:52px;display:grid;place-items:center}
.home-action-art img{display:block;width:100%;height:100%;object-fit:contain}
.home-worlds{background:linear-gradient(180deg,rgba(238,253,255,.38),rgba(89,206,226,.24)),url('../assets/img/home/world-landscape.jpg') center 58%/cover no-repeat;border:4px solid rgba(255,255,255,.72);border-bottom:8px solid rgba(44,165,190,.3)}
.home-cheer-card.home-cheer-supplied{padding:5px 8px;overflow:hidden;background:rgba(255,255,255,.78)}
.home-cheer-art{display:block;width:100%;max-width:100%;height:auto;object-fit:contain}
.goal-star{width:60px;height:60px;display:block;flex:0 0 60px}
.goal-star img{display:block;width:100%;height:100%;object-fit:contain}
.reward-stop b,.reward-stop.earned b{width:56px;height:56px;border:0;background:transparent}
.reward-stop b img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 4px 2px rgba(102,72,10,.18))}
.reward-track::before,.reward-track::after{top:27px}
.home-bottom-nav button span{width:38px;height:38px;display:grid;place-items:center;flex:0 0 38px}
.home-bottom-nav button span img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 3px 1px rgba(48,29,111,.28))}
.world-label{position:relative;z-index:4;margin-top:4px}
@media(max-width:620px){
  .home-stat-icon{width:42px;height:42px;flex-basis:42px}
  .home-actions button>span.home-action-art{width:43px;height:43px}
  .home-bottom-nav button span{width:29px;height:29px;flex-basis:29px}
  .reward-stop b,.reward-stop.earned b{width:48px;height:48px}
  .reward-track::before,.reward-track::after{top:23px}
  .goal-star{width:50px;height:50px;flex-basis:50px}
}

/* ============ Supplied profile/login scene ============ */
#s-profiles.profile-login{max-width:none;min-height:100vh;min-height:100dvh;padding:24px 24px 26px;position:relative;isolation:isolate;align-items:center;overflow:hidden;background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,248,220,.05)),url('../assets/img/login/background.jpg') center/cover no-repeat}
.login-brand{position:relative;z-index:4;text-align:center;color:#30236B;text-shadow:0 3px 0 rgba(255,255,255,.7)}
.login-brand>p{font-family:var(--font-d);font-size:clamp(1.45rem,2.5vw,2rem);font-weight:800;line-height:1}
.login-brand h1{font-size:clamp(3rem,6vw,5rem);line-height:.92;margin:7px 0 12px;letter-spacing:-.025em}
.login-brand h1 span{color:#32246F}.login-brand h1 em{font-style:normal;color:#F06412}
.login-brand>strong{display:block;color:#6F6198;font-size:clamp(1rem,1.8vw,1.35rem)}
.login-made{display:inline-flex;align-items:center;min-height:46px;margin-top:16px;padding:8px 22px;border-radius:999px;background:rgba(255,255,255,.9);border:3px solid #F1E4D0;box-shadow:0 5px 0 rgba(207,182,133,.38);color:#6D6193;font-weight:900;text-shadow:none}
.login-panel{position:relative;z-index:3;width:min(830px,76vw);min-width:620px;margin:18px auto 16px;padding:34px 44px 25px;border-radius:48px;background:rgba(255,251,244,.94);border:6px solid rgba(255,255,255,.9);box-shadow:0 7px 0 rgba(219,194,148,.55),0 24px 54px rgba(65,48,98,.16)}
.profile-login .profile-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,220px));gap:42px;justify-content:center;align-items:stretch;width:100%;margin:0 0 26px}
.profile-login .pcard{width:100%;min-height:278px;padding:22px 16px;border-radius:36px;gap:7px;background:linear-gradient(160deg,#F3FBFF,#E7F7FF);border:4px solid #BDE8F7;box-shadow:0 7px 0 #8CCFE5,0 15px 24px rgba(70,142,176,.14)}
.profile-login .pcard:hover{transform:translateY(-6px);border-color:#FFD24E}
.profile-login .pcard:active{transform:translateY(5px);box-shadow:0 2px 0 #8CCFE5}
.profile-login .pcard .ava{width:126px;height:126px;display:grid;place-items:center;border-radius:50%;font-size:4rem;background:linear-gradient(145deg,#FFE87E,#FFB42B);border:5px solid #fff;box-shadow:0 0 0 4px #F4B42E}
.profile-login .pcard .ava img{display:block;width:100%;height:100%;object-fit:contain;border-radius:50%}
.profile-login .pcard .nm{font-size:1.55rem;color:#30275F}.profile-login .pcard .ag{font-size:1rem;color:#766B99}.profile-login .pcard .stars{display:flex;align-items:center;gap:5px;font-size:1rem;color:#C68000}.profile-login .pcard .stars img{width:27px;height:27px;object-fit:contain}
.profile-login .pcard.add{background:rgba(255,249,255,.78);border:4px dashed #C999E4;box-shadow:none;color:#746099}
.profile-login .pcard.add .ava.add-plus{width:104px;height:104px;border:0;background:linear-gradient(180deg,#A87BE2,#8060CC);box-shadow:0 7px 0 #6245AF;color:#fff;font-size:4.6rem;line-height:1}
.login-parent{min-height:56px;margin:0 auto;padding:10px 28px;display:flex;align-items:center;justify-content:center;gap:10px;border-radius:999px;background:#fff;border:3px solid #F0E3CE;box-shadow:0 5px 0 #DFCEAB;color:#5579D0;font-family:var(--font-d);font-size:1.18rem;font-weight:800;transition:.12s}
.login-parent:hover{transform:translateY(-3px)}.login-parent:active{transform:translateY(4px);box-shadow:0 1px 0 #DFCEAB}
.login-languages{position:relative;z-index:5;margin-top:0;padding-top:10px;display:flex;justify-content:center;gap:18px}
.login-languages button{min-width:220px;min-height:60px;padding:11px 24px;border-radius:999px;background:rgba(255,255,255,.94);border:3px solid #F0E2CB;box-shadow:0 5px 0 rgba(205,178,126,.45);font-family:var(--font-d);font-size:1.12rem;color:#76669B}
.login-languages button.sel{color:#B86200;background:linear-gradient(#FFF1B9,#FFD678);border-color:#FFE69C}
.login-character,.login-sign{position:absolute;z-index:4;pointer-events:none;user-select:none;filter:drop-shadow(0 12px 5px rgba(48,70,45,.18))}
.login-penguin{width:min(23vw,320px);left:0;bottom:58px}.login-tiger{width:min(22vw,300px);right:0;bottom:56px}.login-sign{width:min(13vw,178px);left:5px;bottom:0;z-index:5}
@media(max-width:1100px){
  .login-panel{width:min(760px,82vw);min-width:570px}.login-penguin{left:0}.login-tiger{right:0}.login-sign{display:none}
}
@media(max-width:700px){
  #s-profiles.profile-login{padding:20px 12px 30px;overflow:visible;background-position:58% center}
  .login-brand h1{font-size:clamp(2.45rem,12vw,3.5rem);margin:6px 0 9px}.login-brand>p{font-size:1.3rem}.login-brand>strong{font-size:.95rem}.login-made{min-height:42px;margin-top:12px;padding:7px 15px;font-size:.78rem}
  .login-panel{width:100%;min-width:0;margin:16px 0 14px;padding:22px 12px 19px;border-width:4px;border-radius:32px}
  .profile-login .profile-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px;margin-bottom:20px}
  .profile-login .pcard{min-height:230px;padding:16px 8px;border-radius:26px}
  .profile-login .pcard .ava{width:94px;height:94px;font-size:3rem}.profile-login .pcard.add .ava.add-plus{width:84px;height:84px;font-size:3.7rem}
  .profile-login .pcard .nm{font-size:1.18rem}.profile-login .pcard .ag{font-size:.78rem}.profile-login .pcard .stars{font-size:.82rem}.profile-login .pcard .stars img{width:22px;height:22px}
  .login-parent{min-height:52px;font-size:1rem;padding:9px 22px}
  .login-languages{width:100%;gap:9px}.login-languages button{min-width:0;flex:1;min-height:52px;padding:8px 7px;font-size:.86rem}
  .login-character,.login-sign{display:none}
}
@media(max-width:350px){
  .profile-login .profile-grid{gap:9px}.profile-login .pcard{min-height:218px}.profile-login .pcard .ava{width:82px;height:82px}.profile-login .pcard.add .ava.add-plus{width:76px;height:76px}
}

/* ============ Story-led welcome coach scene ============ */
.home-lead{grid-template-columns:minmax(430px,.95fr) minmax(560px,1.45fr);gap:28px}
.home-welcome{min-height:470px;padding:26px 10px 8px;overflow:visible}
.home-welcome h1{font-size:clamp(3rem,4.6vw,4.7rem);line-height:.96;letter-spacing:-.02em;position:relative;z-index:2}
.home-welcome>p{font-size:clamp(1rem,1.5vw,1.3rem);margin:11px 0 4px;position:relative;z-index:2}
.welcome-spark{color:#FFBE19;text-shadow:0 3px 0 #E79200;pointer-events:none}.welcome-spark-a{right:20px;top:22px;font-size:2.2rem}.welcome-spark-b{left:-1px;top:8px;right:auto;font-size:1.25rem}
.welcome-coach-scene{position:relative;min-height:335px;margin-top:3px}
.welcome-penguin{position:absolute;z-index:2;left:-12px;bottom:-3px;width:min(61%,275px);height:auto;filter:drop-shadow(0 13px 7px rgba(69,55,40,.2));user-select:none;pointer-events:none}
.welcome-coach{position:absolute;z-index:3;right:2px;top:17px;width:min(55%,244px);max-width:none;min-height:112px;padding:20px 35px 17px 22px;display:flex;justify-content:center;text-align:center;border-radius:40px;background:rgba(255,255,255,.96);border:3px solid #F0E1CA;box-shadow:0 7px 0 #E7D6B8,0 13px 22px rgba(97,74,54,.11)}
.welcome-coach::before{content:'';position:absolute;left:-17px;bottom:19px;width:36px;height:31px;background:#fff;border-left:3px solid #F0E1CA;border-bottom:3px solid #F0E1CA;transform:skew(-31deg) rotate(-8deg);border-radius:0 0 0 12px;z-index:-1}
.welcome-coach b{font-family:var(--font-d);font-size:1.15rem;line-height:1.2;color:#292550}.welcome-coach b em{font-style:normal;color:#F07313}.welcome-coach>img{position:absolute;right:-16px;bottom:-10px;width:61px;height:61px;object-fit:contain;filter:drop-shadow(0 5px 2px rgba(167,103,0,.18))}
.welcome-mission{position:absolute;z-index:4;right:0;bottom:12px;width:min(56%,250px);min-height:145px;padding:42px 58px 16px 20px;border-radius:30px;background:linear-gradient(145deg,#FFFDF4,#FFF2C6);border:4px solid #FFE18A;box-shadow:0 7px 0 #E3BE55,0 14px 22px rgba(121,90,25,.15)}
.mission-label{position:absolute;left:18px;top:12px;padding:4px 13px;border-radius:999px;background:linear-gradient(#9C74E8,#7851CA);box-shadow:0 3px 0 #5F3CB0;color:#fff;font-family:var(--font-d);font-size:.68rem;font-weight:900;text-transform:uppercase;letter-spacing:.025em}
.welcome-mission>b{display:block;font-size:.9rem;line-height:1.25;color:#37315D}.welcome-mission>small{display:block;margin-top:5px;font-size:.67rem;color:#847799;font-weight:900}.welcome-mission>img{position:absolute;right:8px;bottom:15px;width:58px;height:58px;object-fit:contain;filter:drop-shadow(0 5px 2px rgba(153,91,0,.2))}
.mission-dots{display:flex;gap:5px;margin-top:9px}.mission-dots i{width:10px;height:10px;border-radius:50%;background:#E5D8B8;border:2px solid #D4C395}.mission-dots i.done{background:#65BF45;border-color:#429F2D;box-shadow:0 0 0 2px #DFF5D5}
@media(max-width:1050px){
  .home-lead{grid-template-columns:1fr}.home-welcome{min-height:360px;padding:22px 22px 0}.welcome-coach-scene{min-height:245px}.welcome-penguin{width:225px;left:8%}.welcome-coach{width:240px;right:31%;top:4px}.welcome-mission{width:250px;right:7%;bottom:8px}
}
@media(max-width:700px){
  .home-welcome{min-height:0;padding:16px 8px 2px;overflow:hidden}.home-welcome h1{font-size:2.65rem}.home-welcome>p{font-size:1rem;margin:7px 0 13px}.welcome-spark-a{right:8px;top:12px}
  .welcome-coach-scene{min-height:238px;margin:0;padding:0;border-radius:28px;background:linear-gradient(145deg,rgba(255,255,255,.55),rgba(255,243,207,.42))}
  .welcome-penguin{display:block;left:-12px;bottom:0;width:178px}.welcome-coach{display:flex;right:9px;top:13px;width:53%;min-height:88px;padding:15px 20px 13px 15px;border-radius:27px}.welcome-coach b{font-size:.88rem}.welcome-coach>img{width:43px;height:43px;right:-8px;bottom:-9px}
  .welcome-mission{right:8px;bottom:10px;width:56%;min-height:105px;padding:34px 42px 10px 13px;border-radius:22px;border-width:3px}.mission-label{left:11px;top:8px;padding:3px 8px;font-size:.53rem}.welcome-mission>b{font-size:.7rem}.welcome-mission>small{font-size:.55rem}.welcome-mission>img{width:44px;height:44px;right:3px;bottom:9px}.mission-dots{margin-top:5px}
}
@media(max-width:350px){.welcome-penguin{width:156px}.welcome-coach{width:52%}.welcome-mission{width:55%;padding-right:35px}.welcome-mission>img{width:37px;height:37px}}

/* ============ Data-synced Puzzle Pack dashboard ============ */
#s-puzzle-pack.puzzle-pack-screen{max-width:1480px;padding:16px clamp(16px,2.5vw,40px) 58px;gap:12px}
.puzzle-pack-hero.puzzle-pack-hero-authored{display:block;width:100%;min-height:0;padding:0;aspect-ratio:3.65/1;background:#079DE7;border:5px solid #C9EFFF;box-shadow:0 8px 0 #0871B8,0 18px 36px rgba(12,109,172,.18);cursor:pointer}
.puzzle-hero-bg{display:block;width:100%;height:100%;object-fit:cover;object-position:center;pointer-events:none;user-select:none}
.puzzle-pack-hero-authored::before{content:none}
.puzzle-hero-progress{position:absolute;z-index:3;right:28px;bottom:22px;width:min(355px,34%);min-height:70px;padding:10px 15px 10px 20px;display:flex;align-items:center;gap:12px;border-radius:24px;background:rgba(255,252,246,.96);border:4px solid #F2D89A;box-shadow:0 6px 0 #D9AF4B;color:#302954;text-align:left}
.puzzle-hero-progress>span{display:flex;flex:1;min-width:0;flex-direction:column;gap:7px}.puzzle-hero-progress b{font-family:var(--font-d);font-size:1rem}.puzzle-hero-progress i{display:block;height:12px;border-radius:999px;background:#EFE2C6;overflow:hidden}.puzzle-hero-progress i em{display:block;width:0;height:100%;border-radius:inherit;background:linear-gradient(90deg,#67C947,#49AE2D);transition:width .35s}.puzzle-hero-progress>img{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 4px 2px rgba(120,70,0,.15))}
.puzzle-picker-panel{padding:11px 18px 22px}.puzzle-picker-panel>h2{font-size:1.65rem;margin:-2px 0 8px}
.puzzle-levels{gap:30px;max-width:1200px;margin-bottom:16px}.puzzle-levels button{min-height:116px;grid-template-columns:auto auto auto;grid-template-rows:auto auto;padding:12px 22px;border-color:#A8D88C;box-shadow:0 7px 0 #70B34E;background:linear-gradient(145deg,#FFF,#F7FFF1)}
.puzzle-levels button::before{width:8px;background:#67C742}.puzzle-levels button span{grid-row:1/3;font-size:2.5rem;filter:hue-rotate(65deg)}.puzzle-levels button b{font-size:3rem;color:#239012}.puzzle-levels button em{align-self:end;font-style:normal;font-size:.85rem;font-weight:1000;color:#247B19}.puzzle-levels button small{grid-column:2/4;font-size:1rem}
.puzzle-levels button:nth-child(2){border-color:#8CC8EF;box-shadow:0 7px 0 #4B99CF}.puzzle-levels button:nth-child(2)::before{background:#2C98E6}.puzzle-levels button:nth-child(2) b,.puzzle-levels button:nth-child(2) em{color:#176DBD}.puzzle-levels button:nth-child(2) span{filter:hue-rotate(25deg)}
.puzzle-levels button:nth-child(3){border-color:#FF9EB1;box-shadow:0 7px 0 #E84968}.puzzle-levels button:nth-child(3)::before{background:#F43B67}.puzzle-levels button:nth-child(3) b,.puzzle-levels button:nth-child(3) em{color:#E51D49}.puzzle-levels button:nth-child(3) span{filter:hue-rotate(325deg)}
.puzzle-levels button:nth-child(4){border-color:#C8A3E7;box-shadow:0 7px 0 #9863C7}.puzzle-levels button:nth-child(4)::before{background:#A65AD2}.puzzle-levels button:nth-child(4) b,.puzzle-levels button:nth-child(4) em{color:#9827A4}.puzzle-levels button:nth-child(4) span{filter:hue-rotate(285deg)}
.puzzle-levels button.sel{border-color:#F44883;background:linear-gradient(145deg,#FFF9FC,#FFE6F0);box-shadow:0 7px 0 #CA2E64,0 0 0 4px #FFBBD2}
.puzzle-pack-toolbar{display:grid;grid-template-columns:minmax(0,1fr) auto auto;align-items:center;gap:14px;margin:2px 0 14px}.puzzle-filters{display:flex;align-items:center;gap:8px;overflow-x:auto;padding:5px 2px 8px;scrollbar-width:none}.puzzle-filters::-webkit-scrollbar{display:none}.puzzle-filters button{flex:0 0 auto;min-height:44px;padding:7px 16px;border-radius:999px;background:#FFFDF8;border:3px solid #EEDCBA;box-shadow:0 4px 0 #DDC59B;color:#544A70;font-family:var(--font-d);font-size:.85rem;font-weight:800}.puzzle-filters button.sel{background:linear-gradient(#FF6F91,#EF3D6C);border-color:#FFB3C3;box-shadow:0 4px 0 #C82E55;color:#fff}
.puzzle-audio-hint{min-height:44px;padding:8px 15px;border-radius:999px;background:#EDF8FF;border:3px solid #BBDCF1;color:#2772AE;font-size:.75rem;font-weight:900;white-space:nowrap}
.puzzle-earned{position:relative;min-width:190px;min-height:54px;padding:8px 68px 8px 17px;border-radius:20px;background:#FFF9EC;border:3px solid #F0DDAF;box-shadow:0 4px 0 #DCC699;display:flex;flex-direction:column;justify-content:center}.puzzle-earned small{font-size:.67rem;font-weight:900;color:#71677E}.puzzle-earned b{font-family:var(--font-d);font-size:1rem;color:#F04468}.puzzle-earned img{position:absolute;right:3px;bottom:0;width:67px;height:67px;object-fit:contain}
.puzzle-pack-grid{gap:12px}.puzzle-card{min-width:0}.puzzle-card-play{display:block;width:100%;min-height:116px;background:transparent}.puzzle-card-play img{display:block;width:100%;aspect-ratio:1.45;object-fit:cover;border-bottom:3px solid #EFE1C6}.puzzle-card-audio{position:absolute;z-index:3;left:8px;bottom:50px;width:44px;height:44px;border-radius:50%;display:grid;place-items:center;background:#fff;border:3px solid #B7DDF4;box-shadow:0 3px 0 #7DB6D8;font-size:1.05rem}.puzzle-card-audio:hover{transform:translateY(-2px)}.puzzle-card-audio:active{transform:translateY(2px);box-shadow:0 1px 0 #7DB6D8}.puzzle-card-copy{padding:8px 10px 10px}.puzzle-card-copy strong{font-size:1rem}.puzzle-card-copy small{padding-left:43px}
@media(max-width:1050px){
  .puzzle-pack-hero.puzzle-pack-hero-authored{aspect-ratio:2.5/1}.puzzle-pack-toolbar{grid-template-columns:1fr auto}.puzzle-filters{grid-column:1/-1}.puzzle-audio-hint{justify-self:start}.puzzle-levels{gap:16px}.puzzle-levels button{padding:10px 12px}.puzzle-pack-grid{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:700px){
  #s-puzzle-pack.puzzle-pack-screen{padding:10px 8px 34px}.puzzle-pack-hero.puzzle-pack-hero-authored{aspect-ratio:16/9;border-radius:25px}.puzzle-pack-hero-authored>img{object-position:center}.puzzle-hero-progress{right:10px;bottom:9px;width:65%;min-height:54px;padding:7px 9px 7px 13px;border-width:3px;border-radius:17px}.puzzle-hero-progress b{font-size:.72rem}.puzzle-hero-progress>img{width:38px;height:38px}
  .puzzle-picker-panel>h2{font-size:1.35rem}.puzzle-levels{grid-template-columns:repeat(2,1fr);gap:12px}.puzzle-levels button{min-height:92px;padding:8px}.puzzle-levels button span{font-size:1.85rem}.puzzle-levels button b{font-size:2.2rem}.puzzle-levels button em{font-size:.68rem}.puzzle-levels button small{font-size:.78rem}
  .puzzle-pack-toolbar{display:flex;flex-direction:column;align-items:stretch;gap:8px}.puzzle-filters{order:1}.puzzle-audio-hint{order:2;align-self:stretch;text-align:center;white-space:normal}.puzzle-earned{order:3;align-self:flex-end;min-width:180px}.puzzle-pack-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.puzzle-card-play{min-height:92px}.puzzle-card-play img{aspect-ratio:1.2}.puzzle-card-audio{width:44px;height:44px;left:5px;bottom:43px}.puzzle-card-copy small{padding-left:39px}.puzzle-card-copy small span{display:none}
}
@media(max-width:360px){.puzzle-filters button{padding:6px 12px}.puzzle-levels button span{display:none}.puzzle-levels button b{font-size:2rem}.puzzle-levels button{grid-template-columns:auto auto}.puzzle-levels button small{grid-column:1/3}}

/* ============ Supplied Puzzle dashboard artwork ============ */
.puzzle-back{width:190px;min-height:52px;padding:0;border:0;background:transparent;box-shadow:none;border-radius:0}.puzzle-back:hover{transform:translateY(-3px)}.puzzle-back:active{transform:translateY(3px);box-shadow:none}.puzzle-back img{display:block;width:100%;height:auto;pointer-events:none}
.puzzle-complete-pill>img{display:none;width:100%;height:auto}.puzzle-complete-pill.authored-complete{width:150px;min-width:150px;padding:0;border:0;background:transparent;box-shadow:none;border-radius:0}.puzzle-complete-pill.authored-complete::before{content:none}.puzzle-complete-pill.authored-complete>img{display:block}.puzzle-complete-pill.authored-complete>span{display:none}
.puzzle-progress-authored{display:none!important}.puzzle-hero-progress.authored-eight{width:min(390px,36%);min-height:0;padding:0;border:0;background:transparent;box-shadow:none}.puzzle-hero-progress.authored-eight .puzzle-progress-authored{display:block!important;width:100%;height:auto;filter:none}.puzzle-hero-progress.authored-eight .puzzle-progress-dynamic,.puzzle-hero-progress.authored-eight .puzzle-progress-gift{display:none}
.puzzle-levels button{display:block;min-height:0;padding:0;border:0!important;background:transparent!important;box-shadow:none!important;overflow:visible}.puzzle-levels button::before{content:none}.puzzle-levels .difficulty-art{display:block;width:100%;height:auto;max-width:100%;pointer-events:none;filter:none}.puzzle-levels .difficulty-fallback{display:none}.puzzle-levels button:hover{transform:translateY(-5px);filter:saturate(1.05)}.puzzle-levels button:active{transform:translateY(3px)}.puzzle-levels button.sel{box-shadow:none}.puzzle-levels button[data-pieces="9"].sel::after{content:none}
.puzzle-filters button[data-category="all"] img{display:none;max-width:100%;height:auto}.puzzle-filters button[data-category="all"].sel{width:94px;min-height:44px;padding:0;border:0;background:transparent;box-shadow:none}.puzzle-filters button[data-category="all"].sel img{display:block;width:100%}.puzzle-filters button[data-category="all"].sel span{display:none}
.puzzle-audio-hint{width:min(310px,30vw);min-height:0;padding:0;border:0;background:transparent}.puzzle-audio-hint img{display:block;width:100%;height:auto}
.puzzle-earned{padding:0;border:0;background:transparent;box-shadow:none;min-height:0;min-width:210px}.puzzle-earned-authored{display:none!important}.puzzle-earned-dynamic{position:relative;min-height:60px;padding:8px 68px 8px 17px;border-radius:20px;background:#FFF9EC;border:3px solid #F0DDAF;box-shadow:0 4px 0 #DCC699;display:flex;flex-direction:column;justify-content:center}.puzzle-earned-dynamic>img{position:absolute;right:3px;bottom:0;width:67px;height:67px;object-fit:contain}.puzzle-earned.authored-eight{width:245px}.puzzle-earned.authored-eight .puzzle-earned-authored{display:block!important;width:100%;height:auto;position:static}.puzzle-earned.authored-eight .puzzle-earned-dynamic{display:none}
@media(max-width:700px){
  .puzzle-back{width:145px}.puzzle-complete-pill.authored-complete{width:112px;min-width:112px}.puzzle-hero-progress.authored-eight{right:7px;bottom:7px;width:68%}.puzzle-audio-hint{width:100%;max-width:360px;align-self:center}.puzzle-earned.authored-eight{width:205px;align-self:flex-end}.puzzle-filters button[data-category="all"].sel{width:82px}
}

/* ============ Supplied layered Puzzle hero ============ */
.puzzle-pack-hero-authored>img,.puzzle-pack-hero-authored .puzzle-hero-live-copy{pointer-events:none;user-select:none}
.puzzle-hero-bg{position:absolute;inset:0;z-index:0}
.puzzle-pack-hero-authored::after{content:'';position:absolute;inset:0;z-index:1;background:linear-gradient(90deg,rgba(0,102,214,.2),rgba(0,133,231,.02) 53%,rgba(0,104,180,.05));pointer-events:none}
.puzzle-hero-live-copy{position:absolute;z-index:4;left:4%;top:8%;width:43%;height:86%;display:flex;flex-direction:column;align-items:flex-start;text-align:left}
.puzzle-hero-kicker-art{display:block;width:min(310px,70%);height:auto;filter:drop-shadow(0 4px 2px rgba(0,76,142,.2))}
.puzzle-hero-live-copy>strong{display:flex;flex-direction:column;font-family:var(--font-d);line-height:.82;margin-top:8px}.puzzle-hero-live-copy>strong span{font-size:clamp(2.5rem,4.1vw,4.35rem);color:#fff;text-shadow:0 5px 0 #1762B5,0 8px 8px rgba(0,45,100,.23)}.puzzle-hero-live-copy>strong b{font-size:clamp(3rem,4.8vw,5rem);color:#FFD33F;text-shadow:0 5px 0 #D78100,0 8px 8px rgba(0,45,100,.2)}
.puzzle-hero-live-copy>small{margin-top:13px;color:#fff;font-size:clamp(.72rem,1.1vw,1.08rem);font-weight:1000;text-shadow:0 2px 0 rgba(0,72,130,.65)}
.puzzle-hero-play-art{display:block;width:min(270px,58%);height:auto;margin-top:auto;filter:drop-shadow(0 6px 2px rgba(116,67,0,.25))}
.puzzle-hero-tiger-art,.puzzle-hero-penguin-art,.puzzle-hero-piece-art{position:absolute;z-index:3;height:auto;object-fit:contain;filter:drop-shadow(0 8px 3px rgba(0,75,130,.25))}.puzzle-hero-tiger-art{width:27%;left:46%;bottom:-34%}.puzzle-hero-penguin-art{width:23%;right:5%;bottom:-40%}.puzzle-hero-piece-art{width:5.5%;right:28%;top:44%;transform:rotate(-13deg);z-index:5}
.puzzle-hero-progress{z-index:6}
@media(max-width:1050px){
  .puzzle-hero-live-copy{width:46%;left:3%}.puzzle-hero-kicker-art{width:62%}.puzzle-hero-tiger-art{width:30%;left:44%;bottom:-28%}.puzzle-hero-penguin-art{width:26%;right:2%;bottom:-34%}.puzzle-hero-piece-art{right:27%}
}
@media(max-width:700px){
  .puzzle-hero-live-copy{left:4%;top:6%;width:57%;height:88%}.puzzle-hero-kicker-art{width:72%;max-width:170px}.puzzle-hero-live-copy>strong{margin-top:5px}.puzzle-hero-live-copy>strong span{font-size:clamp(1.4rem,7vw,2rem)}.puzzle-hero-live-copy>strong b{font-size:clamp(1.65rem,8vw,2.35rem)}.puzzle-hero-live-copy>small{display:none}.puzzle-hero-play-art{width:52%;max-width:135px;margin-top:auto;margin-bottom:4px}
  .puzzle-pack-hero .puzzle-hero-action{width:min(138px,65%)!important;max-width:65%;min-width:0;padding:0 10px!important;white-space:normal;line-height:1.05;text-align:center}
  .puzzle-hero-tiger-art{width:42%;left:48%;bottom:-20%}.puzzle-hero-penguin-art{display:none}.puzzle-hero-piece-art{width:9%;right:7%;top:26%}.puzzle-hero-progress{width:56%;right:6px;bottom:7px}.puzzle-hero-progress.authored-eight{width:60%}
}

/* ============ Premium child account flow ============ */
#s-onboard.onboard-screen{max-width:none;width:100%;padding:0 0 max(38px,env(safe-area-inset-bottom));background:
  radial-gradient(circle at 12% 12%,rgba(255,226,110,.36),transparent 18%),
  radial-gradient(circle at 88% 8%,rgba(210,180,255,.33),transparent 19%),
  linear-gradient(150deg,#FFF9E8 0%,#FFFDF7 44%,#F8F2FF 100%);color:#282554}
.onboard-shell{width:100%;max-width:1120px;margin:0 auto;padding:18px clamp(14px,3vw,38px) 38px;box-sizing:border-box}
.onboard-top{position:relative;display:grid;grid-template-columns:180px 1fr 180px;align-items:center;gap:18px;margin-bottom:22px}
.onboard-back{justify-self:start;min-width:145px;min-height:54px;padding:9px 24px;border:3px solid #EEE0C7;border-radius:999px;background:linear-gradient(#FFF,#FFF8E9);box-shadow:0 5px 0 #DECDAF;color:#302B61;font-family:var(--font-d);font-size:1rem;font-weight:900}
.onboard-back:hover{transform:translateY(-2px)}.onboard-back:active{transform:translateY(3px);box-shadow:0 2px 0 #DECDAF}
.onboard-steps{grid-column:2;display:grid;grid-template-columns:repeat(3,1fr);align-items:center;max-width:670px;width:100%;margin:0 auto;padding:0;list-style:none}
.onboard-steps li{position:relative;display:flex;align-items:center;gap:8px;min-width:0;color:#776AA5;font-family:var(--font-d);font-weight:800}
.onboard-steps li:not(:last-child)::after{content:'';height:4px;flex:1;margin:0 8px;border-radius:9px;background:repeating-linear-gradient(90deg,#DCCFF3 0 10px,transparent 10px 17px)}
.onboard-steps li b{flex:0 0 43px;width:43px;height:43px;display:grid;place-items:center;border-radius:50%;background:#F0E9FF;border:3px solid #DED2F6;color:#7659B8;font-size:1.15rem}.onboard-steps li span{white-space:nowrap}
.onboard-steps li.active{color:#EF6614}.onboard-steps li.active b{background:linear-gradient(#FF8C24,#FF6412);border-color:#FFB56D;color:#fff;box-shadow:0 4px 0 #D74C00}.onboard-steps li.done b{background:#55C66E;border-color:#8DE09C;color:#fff}.onboard-steps li.done{color:#36984D}
.onboard-page{width:100%;max-width:940px;margin:0 auto;padding:clamp(24px,4vw,45px);border:3px solid #F0E2CA;border-radius:42px;background:rgba(255,253,248,.94);box-shadow:0 9px 0 #E5D3B3,0 24px 48px rgba(89,68,40,.13);box-sizing:border-box}
.onboard-page[hidden]{display:none!important}.onboard-heading{text-align:center;margin-bottom:30px}.onboard-heading h1{display:inline-block;margin:0;font-size:clamp(2.25rem,5vw,4.1rem);line-height:.95;color:#29265B;letter-spacing:-.02em}.onboard-heading>span{display:inline-block;margin-left:8px;color:#FFB91F;font-size:2.2rem;vertical-align:top}.onboard-heading.ready p{margin:10px 0 0;color:#6F648F;font-size:1.2rem}.onboard-heading.ready strong{color:#EF641A}
.ob-field{margin:0 0 27px}.ob-field>label{display:flex;align-items:center;gap:10px;margin:0 0 10px;color:#35315F;font-size:1.05rem;font-weight:1000}.ob-field>label i{display:grid;place-items:center;width:30px;height:30px;border-radius:50%;background:#FF7A1A;color:#fff;font-style:normal;font-family:var(--font-d)}
.ob-name-wrap{display:grid;grid-template-columns:40px 1fr 34px;align-items:center;min-height:64px;padding:0 15px;border:3px solid #EEE1C9;border-radius:20px;background:#FFFEFA;box-shadow:0 4px 0 #E3D4BA}.ob-name-wrap:focus-within{border-color:#A98BE5;box-shadow:0 4px 0 #8460CC,0 0 0 4px #EDE4FF}.ob-name-wrap>span{font-size:1.6rem;color:#6B6490}.ob-name-wrap input{min-width:0;width:100%;height:58px;border:0;outline:0;background:transparent;color:#282554;font:900 1.15rem var(--font-b)}.ob-name-wrap i{display:none;width:27px;height:27px;place-items:center;border-radius:50%;background:#39BE66;color:#fff;font-style:normal}.ob-name-wrap.valid i{display:grid}
.ob-error{display:block;min-height:18px;margin:7px 4px 0;color:#C94055;font-size:.79rem;font-weight:900}.ob-upload-note{display:block;margin-top:8px;color:#746A8E;font-size:.78rem;font-weight:800;text-align:center}
.ob-age-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}.ob-age-grid button{position:relative;min-height:76px;border:3px solid #EEE0C8;border-radius:22px;background:#FFFDF8;box-shadow:0 5px 0 #DFCEB0;color:#312D61;font:900 2.4rem var(--font-d)}.ob-age-grid button.sel{border-color:#FF7B20;background:#FFF4E8;box-shadow:0 5px 0 #E55200,0 0 0 3px #FFD3AC}.ob-age-grid button.sel::after{content:'★';position:absolute;right:-8px;top:-12px;width:28px;height:28px;display:grid;place-items:center;border-radius:50%;background:#FF7A16;color:#fff;border:3px solid #fff;font-size:.72rem}
.ob-avatar-tabs{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.ob-avatar-tabs button{min-height:52px;padding:8px;border:3px solid #E9DEC9;border-radius:999px;background:#FFFDF8;color:#635B83;font:900 .98rem var(--font-d);box-shadow:0 4px 0 #DDCDB2}.ob-avatar-tabs button.active{border-color:#FF7A19;background:#FFF3E4;color:#E75500;box-shadow:0 4px 0 #D84B00}
.ob-avatar-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:13px}.ob-avatar-grid button{position:relative;aspect-ratio:1;border:4px solid transparent;border-radius:50%;background:#F6F0FF;padding:0;overflow:visible;box-shadow:0 4px 0 #D9C9EC}.ob-avatar-grid img{display:block;width:100%;height:100%;object-fit:contain;border-radius:50%}.ob-avatar-grid button.sel{border-color:#FF781C;box-shadow:0 0 0 4px #FFD1AA,0 5px 0 #D94B00}.ob-avatar-grid button.sel::after,.ob-buddy-grid button.sel::after{content:'✓';position:absolute;right:-7px;top:-8px;width:30px;height:30px;display:grid;place-items:center;border:3px solid #fff;border-radius:50%;background:#FF7618;color:#fff;font-weight:1000;box-shadow:0 2px 4px rgba(93,54,20,.24)}
.ob-upload-preview{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;width:100%;min-height:66px;margin-top:14px;padding:8px 18px;border:3px dashed #B8BDD0;border-radius:20px;background:#FFFDF8;color:#5B6080;font-family:var(--font-d)}.ob-upload-preview>span{font-size:1.8rem}.ob-upload-preview>img{width:54px;height:54px;border-radius:50%;object-fit:cover;border:3px solid #9B7BDA}.ob-upload-preview>img.upload-art{width:48px;height:58px;border:0;border-radius:8px;object-fit:contain}.ob-upload-preview.custom{border-style:solid;border-color:#9B7BDA;background:#F5EFFF}.ob-upload-preview.custom::after{content:'Replace';font-size:.75rem;font-weight:1000;color:#7350B8}.ob-upload-remove{display:none;width:100%;min-height:44px;margin-top:8px;border:0;background:transparent;color:#B43D50;font-weight:1000}.ob-upload-remove.show{display:block}
.ob-buddy-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;max-width:690px;margin:0 auto}.ob-buddy-grid button{position:relative;min-width:0;min-height:190px;padding:0;border:4px solid transparent;border-radius:28px;background:#FFFDF8;box-shadow:0 6px 0 #DED0B8;overflow:visible}.ob-buddy-grid img{display:block;width:100%;height:100%;max-height:250px;object-fit:contain;border-radius:24px}.ob-buddy-grid button>b{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0)}.ob-buddy-grid button.sel{border-color:#FF771A;box-shadow:0 6px 0 #D94A00,0 0 0 4px #FFD4AD}
.ob-continue{display:flex;align-items:center;justify-content:center;gap:15px;width:min(100%,540px);min-height:68px;margin:34px auto 0;padding:12px 30px;border:3px solid #FFB471;border-radius:999px;background:linear-gradient(#FF8825,#FF6414);box-shadow:0 7px 0 #D84B00;color:#fff;font:900 1.35rem var(--font-d);text-shadow:0 2px 0 rgba(150,45,0,.3)}.ob-continue span{font-size:1.7rem}.ob-continue:hover{transform:translateY(-2px)}.ob-continue:active{transform:translateY(4px);box-shadow:0 3px 0 #D84B00}.ob-continue.teal{background:linear-gradient(#42CB78,#22A958);border-color:#85E8A8;box-shadow:0 7px 0 #167E40}
.ob-language-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px}.ob-language-grid button,.ob-comfort-grid button,.ob-focus-grid button{position:relative;min-height:78px;border:3px solid #EBDDC5;border-radius:22px;background:#FFFDF8;box-shadow:0 5px 0 #DDCCAF;color:#312C5F;font-family:var(--font-d)}.ob-language-grid button{font-size:1.1rem}.ob-language-grid button.sel,.ob-comfort-grid button.sel,.ob-focus-grid button.sel{border-color:#FF7A1A;background:#FFF3E8;box-shadow:0 5px 0 #DC4E00,0 0 0 3px #FFD5AF}.ob-language-grid button.sel::after,.ob-comfort-grid button.sel::after,.ob-focus-grid button.sel::after{content:'✓';position:absolute;right:8px;top:7px;width:25px;height:25px;display:grid;place-items:center;border-radius:50%;background:#FF7618;color:#fff;font-weight:1000}
.ob-comfort-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.ob-comfort-grid button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:110px;padding:14px}.ob-comfort-grid button span{font-size:2.5rem}.ob-comfort-grid button b{font-size:.95rem;line-height:1.2}
.ob-focus-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.ob-focus-grid button{display:flex;align-items:center;justify-content:center;gap:12px;min-height:100px;padding:12px}.ob-focus-grid button span{font-size:2.2rem}.ob-focus-grid button b{font-size:1rem;line-height:1.1}.ob-focus-grid button.sel:nth-child(2){border-color:#56AEE8;background:#EAF7FF;box-shadow:0 5px 0 #2F89C7,0 0 0 3px #BFE7FF}.ob-focus-grid button.sel:nth-child(4){border-color:#9A74DA;background:#F3ECFF;box-shadow:0 5px 0 #7249BD,0 0 0 3px #DDCAFF}.ob-focus-grid button.sel:nth-child(6){border-color:#42C4C7;background:#E9FFFF;box-shadow:0 5px 0 #239B9E,0 0 0 3px #B8EEEE}
.ob-ready-profile{display:grid;grid-template-columns:160px 1fr;gap:24px;align-items:center;padding:22px;border:3px solid #ECDCC0;border-radius:30px;background:#FFFDF8;box-shadow:0 6px 0 #DECCAC}.ob-ready-avatar{width:150px;height:150px;border-radius:50%;object-fit:cover;border:6px solid #F0D7FF;background:#F5EEFF}.ob-ready-copy h2{margin:0 0 12px;font-size:2.5rem;color:#29265B}.ob-ready-meta{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.ob-ready-meta div{min-height:62px;padding:11px 15px;border-radius:18px;background:#FFF8E9;border:2px solid #EEDFC4}.ob-ready-meta small{display:block;color:#796E91;font-size:.7rem;font-weight:1000}.ob-ready-meta b{display:block;margin-top:2px;color:#322D60}.ob-ready-focus{grid-column:1/-1;display:flex;flex-wrap:wrap;gap:8px}.ob-ready-focus span{padding:6px 11px;border-radius:999px;background:#EEE7FF;color:#6E4CB2;font-size:.76rem;font-weight:1000}
.ob-ready-journey{margin-top:24px;padding:23px;border:3px solid #CAE9B8;border-radius:30px;background:linear-gradient(145deg,#FAFFF6,#F0FFE9);box-shadow:0 6px 0 #9CCB82}.ob-ready-journey h2{text-align:center;margin:0 0 16px;color:#2E6550}.ob-journey-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.ob-journey-card{display:flex;align-items:center;gap:10px;min-height:72px;padding:10px;border-radius:18px;background:#fff;border:2px solid #DDECCF;color:#322E5F;font-weight:1000}.ob-journey-card span{font-size:2rem}.ob-recommend{margin-top:16px;padding:13px 18px;border-radius:999px;background:#28B35D;color:#fff;text-align:center;font-family:var(--font-d);font-weight:900;box-shadow:0 5px 0 #19813E}
#s-onboard button:focus-visible,#s-onboard input:focus-visible{outline:4px solid #3A91FF;outline-offset:4px}
@media(max-width:760px){
  .onboard-shell{padding:12px 10px 30px}.onboard-top{grid-template-columns:auto 1fr;gap:10px;margin-bottom:16px}.onboard-back{min-width:0;min-height:48px;padding:7px 13px;font-size:.82rem}.onboard-steps{grid-column:2}.onboard-steps li{justify-content:center}.onboard-steps li span{display:none}.onboard-steps li b{flex-basis:36px;width:36px;height:36px;font-size:1rem}.onboard-steps li:not(:last-child)::after{margin:0 4px}
  .onboard-page{padding:24px 14px;border-radius:30px}.onboard-heading{margin-bottom:22px}.onboard-heading h1{font-size:2.25rem}.ob-field{margin-bottom:23px}.ob-age-grid{gap:8px}.ob-age-grid button{min-height:62px;border-radius:17px;font-size:2rem}.ob-avatar-grid{grid-template-columns:repeat(3,1fr);gap:11px}.ob-avatar-tabs{gap:7px}.ob-avatar-tabs button{font-size:.79rem;min-height:48px}.ob-buddy-grid{gap:9px}.ob-buddy-grid button{min-height:130px;border-radius:20px}.ob-buddy-grid img{border-radius:17px}.ob-continue{min-height:61px;margin-top:27px;font-size:1.15rem}
  .ob-language-grid{gap:9px}.ob-language-grid button{font-size:.88rem;padding:8px}.ob-comfort-grid{grid-template-columns:1fr;gap:10px}.ob-comfort-grid button{min-height:82px;justify-content:flex-start;padding-left:24px}.ob-comfort-grid button span{font-size:2rem}.ob-comfort-grid button b br{display:none}.ob-focus-grid{grid-template-columns:repeat(2,1fr);gap:10px}.ob-focus-grid button{min-height:88px;gap:7px;padding:8px}.ob-focus-grid button span{font-size:1.7rem}.ob-focus-grid button b{font-size:.85rem}
  .ob-ready-profile{grid-template-columns:1fr;text-align:center;padding:18px}.ob-ready-avatar{width:126px;height:126px;margin:0 auto}.ob-ready-copy h2{font-size:2rem}.ob-ready-meta{text-align:left}.ob-journey-grid{grid-template-columns:1fr 1fr}.ob-journey-card{font-size:.82rem}.ob-ready-journey{padding:17px 11px}
}
@media(max-width:350px){.onboard-heading h1{font-size:2rem}.ob-ready-meta{grid-template-columns:1fr}.ob-journey-grid{grid-template-columns:1fr}.ob-avatar-grid{gap:7px}.ob-buddy-grid button{min-height:112px}.ob-language-grid{grid-template-columns:1fr}}

/* ============ Global manual-scroll ownership ============ */
html{
  overflow-y:scroll;
  overscroll-behavior-y:auto;
  touch-action:pan-y pinch-zoom;
  -webkit-overflow-scrolling:touch;
}
body{
  height:auto;
  overscroll-behavior-y:auto;
  touch-action:pan-y pinch-zoom;
}
html body .screen.active{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  touch-action:pan-y pinch-zoom;
}

/* ============ Writing Castle ============ */
.writing-screen{--wc-navy:#24245f;--wc-purple:#7654c7;--wc-orange:#ff6425;--wc-cream:#fffaf0;display:none;width:100%;max-width:1480px;margin:0 auto;padding:20px clamp(12px,2vw,30px) 52px;color:var(--wc-navy);background:radial-gradient(circle at 50% 0,#fff7dc 0,#fffaf1 45%,#f7ffe9 100%);font-family:var(--font-b);box-sizing:border-box}.writing-screen.active{display:block}.writing-screen button{font:inherit;box-sizing:border-box}.writing-screen h1,.writing-screen h2,.writing-screen p{margin-top:0}.writing-screen h2{font-family:var(--font-d)}
.writing-topbar{display:grid;grid-template-columns:minmax(180px,1fr) minmax(360px,2.4fr) minmax(180px,1fr);align-items:start;gap:16px;min-height:190px;padding:8px 4px 18px;background:linear-gradient(180deg,rgba(255,249,229,.96),rgba(255,249,229,.2));position:relative}.writing-topbar:after{content:"";position:absolute;inset:45px 0 0;z-index:-1;border-radius:40px;background:linear-gradient(180deg,#bfeaff 0 47%,#93d66a 48% 68%,#55a83d 69%);opacity:.38}.writing-back{justify-self:start;display:flex;align-items:center;gap:9px;min-height:52px;padding:10px 17px;border:0;border-radius:18px;background:#fff;color:var(--wc-navy);box-shadow:0 5px 0 #e7ddcb,0 9px 22px #66562b25;font-weight:900;cursor:pointer}.writing-back img{width:24px;height:24px;object-fit:contain}.writing-brand{text-align:center}.writing-brand small{display:inline-block;padding:6px 24px;border-radius:999px;background:linear-gradient(#ffd84e,#ffbe21);box-shadow:0 3px 0 #e6a70d;font-family:var(--font-d);font-weight:900}.writing-brand h1{margin:6px 0 0;font-size:clamp(2.8rem,5vw,5rem);line-height:.95;color:var(--wc-navy);text-shadow:0 4px 0 #fff}.writing-brand p{margin:7px 0;font-size:clamp(.9rem,1.4vw,1.25rem);font-weight:900}.writing-player{justify-self:end;display:flex;align-items:center;gap:10px}.writing-player>span{display:flex;align-items:center;gap:7px;min-height:49px;padding:7px 14px;border:3px solid #ffd05a;border-radius:999px;background:#fff9dc;box-shadow:0 4px 0 #e9c979}.writing-player img{width:30px;height:30px;object-fit:contain}.writing-player-avatar{padding:3px!important;border-color:#dac6ff!important}.writing-player-avatar img{width:42px;height:42px;border-radius:50%;object-fit:cover}
.writing-primary{min-height:58px;padding:12px 28px;border:0;border-radius:18px;background:linear-gradient(#ff7b35,#ff531b);color:#fff;box-shadow:0 6px 0 #cf3b13,0 9px 18px #e04d2433;font-size:1.12rem;font-weight:1000;cursor:pointer}.writing-primary:active{transform:translateY(4px);box-shadow:0 2px 0 #cf3b13}.writing-quest{display:grid;grid-template-columns:160px minmax(0,1fr) 220px;align-items:center;gap:20px;max-width:1000px;margin:-26px auto 20px;padding:16px 22px;border:3px solid #eee0c4;border-radius:30px;background:#fffdf8;box-shadow:0 7px 0 #decbaa,0 16px 34px #6947201f;position:relative;z-index:2}.writing-quest-art{height:125px;position:relative}.writing-quest-art img{width:100%;height:100%;object-fit:contain}.writing-quest-art strong{position:absolute;inset:33px 0 auto;text-align:center;font-family:var(--font-d);font-size:3.7rem;color:#7456c7;text-shadow:0 3px 0 #fff}.writing-quest-copy>small,.writing-current-card>small,.writing-current-letter>small{font-size:1rem;font-weight:1000;color:#7654c7}.writing-quest-copy h2{margin:3px 0 8px;font-size:1.75rem}
.writing-stage-strip,.writing-exercise-stages{display:flex;align-items:flex-start;justify-content:center;gap:0}.writing-stage{position:relative;display:flex;flex:1;min-width:54px;flex-direction:column;align-items:center;gap:4px;color:#898795}.writing-stage:not(:last-child):after{content:"";position:absolute;left:65%;right:-35%;top:18px;border-top:3px dashed #c7c3c7;z-index:0}.writing-stage.done:not(:last-child):after{border-color:#6fbd3d}.writing-stage b{display:grid;place-items:center;width:38px;height:38px;border:3px solid #ddd8db;border-radius:50%;background:#fff;position:relative;z-index:1}.writing-stage.current b{border-color:#ff6b2b;background:#ff6b2b;color:#fff;box-shadow:0 4px 0 #d94a16}.writing-stage.done b{border-color:#55b739;background:#efffea;color:#31952b}.writing-stage small{font-weight:900;font-size:.72rem}.writing-stage-strip.compact .writing-stage b{width:34px;height:34px}.writing-stage-strip.compact .writing-stage:not(:last-child):after{top:16px}
.writing-section-title{display:flex;align-items:end;justify-content:space-between;gap:12px}.writing-section-title h2{margin-bottom:8px;font-size:1.55rem}.writing-section-title p{margin-bottom:8px;color:#6f6884;font-weight:800}.writing-section-title button{min-height:44px;border:0;background:none;color:#6e4bb7;font-weight:1000;cursor:pointer}.writing-journey{padding:18px 20px 30px;border:3px solid #e9dfc8;border-radius:34px;background:rgba(255,255,255,.82);box-shadow:0 7px 0 #d9caa9}.writing-area-map{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:15px;align-items:end;position:relative;padding:12px}.writing-area-map:before{content:"";position:absolute;left:6%;right:6%;top:56%;border-top:8px dashed #d6c2a2}.writing-area-node{position:relative;display:flex;min-width:0;min-height:195px;padding:12px 8px 14px;flex-direction:column;align-items:center;justify-content:flex-end;border:3px solid #e2d8c3;border-radius:25px;background:#fffdf8;color:var(--wc-navy);box-shadow:0 6px 0 #d7c8ad;cursor:pointer}.writing-area-node:nth-child(even){transform:translateY(-18px)}.writing-area-node img{width:100%;height:100px;object-fit:contain}.writing-area-node span:not(.writing-area-number){display:flex;min-height:50px;flex-direction:column;justify-content:center}.writing-area-node b{font-size:.92rem}.writing-area-node small{display:block;font-weight:900;color:#81788e}.writing-area-node>i{position:absolute;right:10px;top:10px;font-style:normal}.writing-area-node.here{border-color:#ff722b;box-shadow:0 6px 0 #d94d18,0 0 0 5px #fff2cf}.writing-area-node.locked{filter:grayscale(.8);opacity:.72}.writing-area-number{position:absolute;left:10px;top:10px;display:grid;width:32px;height:32px;place-items:center;border-radius:50%;background:#7654c7;color:#fff;font-weight:1000}.writing-area-node.here .writing-area-number{background:#ff6425}.writing-main-lower{display:grid;grid-template-columns:1.08fr .92fr;gap:18px;margin-top:20px}.writing-main-lower>section,.writing-summary-grid>section,.writing-exercise-lower>section{padding:18px;border:3px solid #e8ddc6;border-radius:27px;background:#fffdf8;box-shadow:0 6px 0 #d9caae}.writing-book-summary{display:grid;grid-template-columns:repeat(3,1fr);gap:10px}.writing-book-summary article{display:grid;grid-template-columns:56px auto;align-items:center;padding:10px;border:2px solid #eee1ca;border-radius:18px}.writing-book-summary img{grid-row:1/3;width:52px;height:52px;object-fit:contain}.writing-book-summary strong{font-size:1.6rem;color:#7654c7}.writing-book-summary span{font-weight:900}.writing-achievement-list,.writing-summary-grid>section>div{display:flex;gap:10px}.writing-badge{display:grid;grid-template-columns:48px 1fr auto;align-items:center;gap:8px;min-width:0;flex:1;padding:9px;border:2px solid #ede2cd;border-radius:17px;filter:grayscale(.8);opacity:.68}.writing-badge.earned{filter:none;opacity:1}.writing-badge img{width:46px;height:46px;object-fit:contain}.writing-badge span{min-width:0}.writing-badge b,.writing-badge small{display:block}.writing-badge small{font-size:.68rem;color:#716b7f}.writing-badge i{font-style:normal;color:#34a83c;font-weight:1000}
.writing-area-hero{display:grid;grid-template-columns:1fr minmax(280px,460px) 190px;align-items:end;gap:12px;margin:-42px 0 20px;min-height:190px;padding:12px 35px;border-radius:36px;background:linear-gradient(#d9f2ff,#e6ffd4 65%,#83c958);box-shadow:0 7px 0 #73a94c;position:relative;z-index:1}.writing-area-scene img{width:100%;height:185px;object-fit:contain}.writing-area-progress{align-self:center;padding:16px 24px;border:3px solid #e7dac2;border-radius:23px;background:#fff}.writing-area-progress strong{display:block;text-align:center;font-size:1.25rem}.writing-area-progress>div,.writing-mastery>div,.writing-letter-progress>div{height:14px;margin-top:9px;border-radius:999px;background:#dedce1;overflow:hidden}.writing-area-progress i,.writing-mastery i,.writing-letter-progress i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8a5ada,#6342b7)}.writing-coach-owl{width:185px;height:190px;object-fit:contain}.writing-area-layout,.writing-skill-layout{display:grid;grid-template-columns:minmax(0,1fr) 370px;align-items:start;gap:18px}.writing-activity-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:13px}.writing-activity{position:relative;display:flex;min-width:0;min-height:210px;padding:38px 12px 14px;flex-direction:column;align-items:center;border:3px solid #e9dfcc;border-radius:24px;background:#fffdf8;color:var(--wc-navy);box-shadow:0 6px 0 #d9cbb2;cursor:pointer}.writing-activity.current{border-color:#ff6425;box-shadow:0 6px 0 #d94a17}.writing-activity.completed{border-color:#8acb67;background:#fbfff7}.writing-activity.locked{filter:grayscale(1);opacity:.62}.writing-activity-num{position:absolute;left:12px;top:10px;display:grid;width:30px;height:30px;place-items:center;border-radius:50%;background:#7456c7;color:#fff;font-weight:1000}.writing-activity.current .writing-activity-num{background:#ff6425}.writing-activity-glyph{display:grid;place-items:center;flex:1;font-family:var(--font-d);font-size:clamp(2rem,4vw,4rem);color:#7654c7}.writing-activity small{width:100%;padding:7px;border-radius:999px;background:#f2ecff;font-weight:1000}.writing-current-card,.writing-current-letter{position:sticky;top:15px;padding:20px;border:3px solid #e8dcc4;border-radius:28px;background:#fffdf8;box-shadow:0 7px 0 #d6c6aa;text-align:center}.writing-current-card h2,.writing-current-letter h2{margin:4px 0}.writing-current-glyph,.writing-selected-symbol{display:grid;place-items:center;min-height:125px;margin:12px 0;border:2px solid #eee0c6;border-radius:20px;background:#fff;font-family:var(--font-d);font-size:5rem;color:#7654c7}.writing-current-card .writing-primary,.writing-current-letter .writing-primary{width:100%;margin-top:15px}.writing-summary-grid,.writing-exercise-lower{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:20px}.writing-summary-grid h2,.writing-exercise-lower h2{font-size:1.1rem;text-align:center}.writing-mini-stat,.writing-collection-count{flex:1;min-width:0;padding:10px;text-align:center;border:2px solid #eee2cf;border-radius:16px}.writing-mini-stat b,.writing-mini-stat span,.writing-collection-count b,.writing-collection-count span{display:block}.writing-mini-stat b,.writing-collection-count b{font-size:1.25rem;color:#6844bd}.writing-mini-stat span,.writing-collection-count span{font-size:.72rem;font-weight:900}
.writing-mastery{width:min(480px,90%);margin:-55px auto 20px;padding:14px 25px;border:3px solid #e5d8bd;border-radius:22px;background:#fffdf8;box-shadow:0 5px 0 #d8c6a6;text-align:center;position:relative;z-index:2}.writing-skill-layout{grid-template-columns:minmax(0,1fr) 430px}.writing-letter-wall{display:grid;grid-template-columns:repeat(7,minmax(62px,1fr));gap:12px}.writing-skill-tile{min-height:86px;padding:9px 5px;border:3px solid #e7ddca;border-radius:17px;background:#fffdf8;color:var(--wc-navy);box-shadow:0 5px 0 #d8c9ae;cursor:pointer}.writing-skill-tile strong,.writing-skill-tile small{display:block}.writing-skill-tile strong{font-family:var(--font-d);font-size:2.2rem;color:#7654c7}.writing-skill-tile small{font-size:.65rem;font-weight:1000}.writing-skill-tile.selected{border-color:#ff6425;box-shadow:0 5px 0 #d84616,0 0 0 4px #ffedd8}.writing-skill-tile.mastered{border-color:#68be4b;background:#f7fff3}.writing-skill-tile.locked{filter:grayscale(1);opacity:.58}.writing-letter-wall.prompt-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-letter-wall.prompt-grid .writing-skill-tile{min-height:110px}.writing-letter-wall.prompt-grid strong{font-size:1.3rem}.writing-selected-symbol{font-size:6rem}.writing-current-letter p{font-weight:900}.writing-skill-lower{margin-bottom:10px}
.writing-exercise-stages{width:min(650px,90%);margin:-58px auto 18px;padding:13px 22px;border:3px solid #e4d8c1;border-radius:24px;background:#fffdf8;box-shadow:0 5px 0 #d5c4a7;position:relative;z-index:3}.writing-exercise-stages .writing-stage{border:0;background:none}.writing-exercise-layout{display:grid;grid-template-columns:240px minmax(380px,1fr) 260px;grid-template-areas:"how canvas controls";gap:16px;align-items:stretch}.writing-how,.writing-canvas-card,.writing-exercise-controls{padding:18px;border:3px solid #e6dac4;border-radius:27px;background:#fffdf8;box-shadow:0 6px 0 #d5c5aa}.writing-how{grid-area:how}.writing-how h2,.writing-exercise-controls h2{text-align:center;font-size:1.2rem}.writing-how-letter{display:grid;place-items:center;min-height:150px;border:2px solid #dfd0f4;border-radius:18px;background:#f6f0ff;font-family:var(--font-d);font-size:7rem;color:#7654c7}.writing-how ol{padding-left:22px}.writing-how li{margin:8px 0;font-weight:900}.writing-coach-message{margin-top:15px;padding:12px;border-radius:15px;background:#fff1b9;font-weight:900;text-align:center}.writing-canvas-card{grid-area:canvas;position:relative;padding:12px;background:linear-gradient(#fff,#fffcf5)}.writing-canvas-card:before,.writing-canvas-card:after{content:"";position:absolute;left:14px;right:14px;border-top:2px dashed #c9d9f8;pointer-events:none}.writing-canvas-card:before{top:35%}.writing-canvas-card:after{top:70%}.writing-canvas-card canvas{display:block;width:100%;height:auto;aspect-ratio:760/500;border:0;border-radius:17px;background:transparent;touch-action:none;position:relative;z-index:1}.writing-audio{position:absolute;left:18px;top:18px;z-index:3;width:52px;height:52px;border:3px solid #d8c9f3;border-radius:50%;background:#fff;color:#7654c7;font-size:1.4rem;cursor:pointer}.writing-canvas-status{min-height:35px;padding:6px 10px;color:#6845b9;font-weight:1000;text-align:center}.writing-exercise-controls{grid-area:controls;display:flex;flex-direction:column;gap:14px}.writing-exercise-controls>button:not(.writing-primary){min-height:52px;border:3px solid #e4d7c2;border-radius:17px;background:#fff;color:var(--wc-navy);font-weight:1000;cursor:pointer}.writing-exercise-controls .writing-primary{margin-top:auto}.writing-attempts{padding:15px;border:2px solid #eadfce;border-radius:17px;text-align:center}.writing-attempts span,.writing-attempts strong{display:block}.writing-attempts strong{font-size:1.5rem;color:#7654c7}.writing-attempts div{display:flex;justify-content:center;gap:7px;margin-top:8px}.writing-attempts i{width:18px;height:18px;border-radius:50%;background:#ffd43c}.writing-attempts i.used{background:#dedbe0}.writing-ink-bottle{display:flex;align-items:center;justify-content:center;gap:14px}.writing-ink-bottle i{display:block;width:62px;height:70px;border:8px solid #bba1e9;border-radius:18px 18px 30px 30px;background:linear-gradient(transparent 25%,#8053cf 26%);position:relative}.writing-ink-bottle i:before{content:"";position:absolute;left:10px;right:10px;top:-22px;height:15px;border-radius:6px;background:#e29b39}.writing-ink-bottle span,.writing-ink-bottle b{font-size:1.2rem;font-weight:1000}.writing-ink-bottle b{color:#6c49bd}.writing-letter-progress{display:grid;grid-template-columns:80px 1fr;align-items:center;gap:12px}.writing-letter-progress>strong{grid-row:1/3;font-family:var(--font-d);font-size:4rem;color:#7654c7;text-align:center}.writing-letter-progress span{font-weight:900}.writing-letter-progress>div{margin:0}.writing-tip{min-height:75px;display:grid;place-items:center;padding:12px;border-radius:16px;background:#fff3c8;font-weight:900;text-align:center}
.writing-screen button:focus-visible,.writing-screen canvas:focus-visible{outline:4px solid #237de2;outline-offset:4px}
.writing-handwriting{font-family:var(--font-hand)!important;font-weight:700!important}.phonics-letter-bank button,.phonics-sound-stone>span{font-family:var(--font-hand)}
.writing-how-letter.writing-handwriting{padding:8px;font-size:clamp(1.75rem,2.8vw,3.2rem);line-height:1;overflow-wrap:anywhere;text-align:center}
@media(min-width:721px){.writing-exercise-stages{margin:-30px auto 18px}}
.writing-audio img{width:30px;height:30px;object-fit:contain}.writing-restoration{display:grid;grid-template-columns:auto 140px;align-items:center;gap:12px;margin:4px 0 12px;padding:10px 12px;border-radius:15px;background:#f4edff}.writing-restoration b,.writing-restoration small{display:block}.writing-restoration small{font-size:.72rem;color:#756c84}.writing-restoration>span{height:12px;border-radius:999px;background:#dcd6e5;overflow:hidden}.writing-restoration i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#9a69df,#7045bd)}
.writing-book-dialog{width:min(1050px,calc(100% - 24px));max-height:min(840px,calc(100dvh - 24px));padding:0;border:0;border-radius:30px;background:#fffaf0;box-shadow:0 25px 90px #2c19496b;overflow:hidden}.writing-book-dialog::backdrop{background:#211a407d;backdrop-filter:blur(5px)}.writing-book-shell{display:flex;max-height:min(840px,calc(100dvh - 24px));flex-direction:column}.writing-book-shell header{display:flex;align-items:center;justify-content:space-between;padding:20px 24px;background:linear-gradient(135deg,#6f4abe,#926add);color:#fff}.writing-book-shell header small{font-weight:1000}.writing-book-shell header h2{margin:0;font-family:var(--font-d);font-size:2rem}.writing-book-shell header button{display:grid;width:48px;height:48px;place-items:center;border:0;border-radius:50%;background:#fff;color:#5e3ca7;font-size:1.8rem;font-weight:1000;cursor:pointer}.writing-book-tabs{display:flex;gap:8px;padding:14px 20px;overflow-x:auto;border-bottom:2px solid #ede1cb}.writing-book-tabs button{min-height:44px;padding:8px 16px;border:2px solid #ddd0bd;border-radius:999px;background:#fff;color:#29265b;font-weight:1000;white-space:nowrap;cursor:pointer}.writing-book-tabs button.selected{border-color:#7049bd;background:#eee7ff;color:#6541ae}.writing-book-pages{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px;padding:20px;overflow-y:auto}.writing-book-pages article{padding:10px;border:3px solid #e7dcc7;border-radius:20px;background:#fff;box-shadow:0 5px 0 #d7c8ac}.writing-book-pages article>div{display:grid;height:150px;place-items:center;border-radius:13px;background:repeating-linear-gradient(#fff 0 36px,#dbe5fb 37px 39px)}.writing-book-pages article img{width:100%;height:100%;object-fit:contain}.writing-book-pages article strong{font-size:2.3rem;color:#714bbb}.writing-book-pages article b,.writing-book-pages article small{display:block;margin-top:6px}.writing-book-pages article small{color:#756d7f}.writing-book-empty{grid-column:1/-1;padding:30px;text-align:center}.writing-book-empty img{width:150px;height:150px;object-fit:contain}.writing-book-empty h3{font-family:var(--font-d);font-size:1.5rem;margin:0}.writing-book-empty p{color:#746b82;font-weight:900}
.parent-writing-milestones{margin-bottom:24px;padding:20px;border:3px solid #ded2f1;border-radius:25px;background:linear-gradient(145deg,#f9f5ff,#fffaf0);box-shadow:0 6px 0 #cdbce6}.parent-writing-head{display:flex;align-items:end;justify-content:space-between;gap:12px;margin-bottom:14px}.parent-writing-head small{font-weight:1000;color:#714bbb}.parent-writing-head h2{margin:0}.parent-writing-head>span{padding:7px 12px;border-radius:999px;background:#eee5ff;color:#6540ad;font-weight:1000}.parent-writing-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px}.parent-writing-grid article{padding:12px 14px;border:2px solid #e9dfcf;border-radius:16px;background:#fff}.parent-writing-grid article>div:first-child{display:flex;justify-content:space-between;gap:10px;font-weight:900}.parent-writing-grid article>div:first-child span{color:#6d4ab3}.parent-writing-grid article>div:last-child{height:10px;margin-top:8px;border-radius:999px;background:#e3dfe7;overflow:hidden}.parent-writing-grid i{display:block;height:100%;border-radius:inherit;background:linear-gradient(90deg,#8c5cd1,#6441b0)}
@media(max-width:1050px){.writing-topbar{grid-template-columns:170px 1fr 150px}.writing-area-map{grid-template-columns:repeat(3,1fr);row-gap:32px}.writing-area-map:before{display:none}.writing-area-node:nth-child(even){transform:none}.writing-main-lower{grid-template-columns:1fr}.writing-area-layout,.writing-skill-layout{grid-template-columns:minmax(0,1fr) 320px}.writing-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.writing-letter-wall{grid-template-columns:repeat(6,minmax(58px,1fr))}.writing-exercise-layout{grid-template-columns:minmax(0,1fr) 260px;grid-template-areas:"canvas controls" "how how"}.writing-how{display:grid;grid-template-columns:180px 1fr 220px;align-items:center;gap:12px}.writing-how h2{grid-column:1/-1}.writing-how-letter{min-height:120px}.writing-how ol{columns:2}.writing-summary-grid>section>div{flex-wrap:wrap}}
@media(max-width:720px){.writing-screen{padding:10px 10px 34px}.writing-topbar{grid-template-columns:auto 1fr auto;min-height:150px;gap:7px}.writing-back{min-width:48px;padding:8px 11px}.writing-back span{display:none}.writing-brand small{padding:4px 10px;font-size:.65rem}.writing-brand h1{font-size:clamp(2rem,10vw,3rem)}.writing-brand p{font-size:.72rem}.writing-player>span{padding:4px 8px;min-height:44px}.writing-player-avatar{display:none!important}.writing-quest{grid-template-columns:92px minmax(0,1fr);margin:-18px 0 15px;padding:13px;gap:10px}.writing-quest .writing-stage{min-width:0}.writing-quest-art{height:92px}.writing-quest-art strong{font-size:2.6rem;inset:23px 0 auto}.writing-quest-copy h2{font-size:1.25rem}.writing-quest .writing-primary{grid-column:1/-1;width:100%}.writing-stage-strip .writing-stage small{font-size:.58rem}.writing-stage b{width:31px;height:31px}.writing-stage:not(:last-child):after{top:14px}.writing-journey{padding:15px 12px 22px}.writing-section-title{align-items:flex-start}.writing-section-title p{display:none}.writing-area-map{grid-template-columns:1fr;padding:8px 2px 8px 34px;gap:14px}.writing-area-map:before{display:block;left:17px;right:auto;top:20px;bottom:20px;border:0;border-left:7px dashed #d6c2a2}.writing-area-node,.writing-area-node:nth-child(even){min-height:112px;display:grid;grid-template-columns:72px 1fr 26px;padding:9px 10px;transform:none;text-align:left}.writing-area-node img{height:86px}.writing-area-number{left:-38px;top:37px}.writing-area-node>i{position:static}.writing-area-node span:not(.writing-area-number){min-height:0}.writing-main-lower,.writing-book-summary,.writing-summary-grid,.writing-exercise-lower{grid-template-columns:1fr}.writing-book-summary{gap:8px}.writing-achievement-list{flex-direction:column}.writing-badge{width:100%;box-sizing:border-box}.writing-area-hero{grid-template-columns:1fr 90px;margin:-20px 0 16px;min-height:155px;padding:10px 15px}.writing-area-scene{display:none}.writing-area-progress{padding:12px;min-width:0}.writing-area-progress strong{font-size:.9rem}.writing-coach-owl{width:90px;height:120px}.writing-area-layout,.writing-skill-layout{grid-template-columns:1fr}.writing-activity-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:9px}.writing-activity{min-height:178px;padding:34px 8px 10px}.writing-current-card,.writing-current-letter{position:static}.writing-summary-grid>section>div{flex-wrap:wrap}.writing-mastery,.writing-exercise-stages{margin:-28px auto 16px}.writing-letter-wall{grid-template-columns:repeat(4,minmax(54px,1fr));gap:8px}.writing-skill-tile{min-height:76px}.writing-skill-tile strong{font-size:1.8rem}.writing-letter-wall.prompt-grid{grid-template-columns:1fr 1fr}.writing-exercise-layout{grid-template-columns:1fr;grid-template-areas:"canvas" "controls" "how"}.writing-canvas-card{padding:7px}.writing-canvas-card canvas{min-height:290px;object-fit:contain}.writing-exercise-controls{min-height:230px}.writing-how{display:block}.writing-how-letter{min-height:110px;font-size:5rem}.writing-how ol{columns:1}.writing-exercise-lower{gap:12px}.writing-exercise-stages{width:96%;padding:10px 6px}.writing-exercise-stages .writing-stage small{font-size:.58rem}.writing-exercise-stages .writing-stage b{width:31px;height:31px}.writing-exercise-stages .writing-stage:not(:last-child):after{top:15px}}
@media(max-width:360px){.writing-brand p{display:none}.writing-topbar{min-height:126px}.writing-player img{width:25px;height:25px}.writing-activity-grid,.writing-letter-wall.prompt-grid{grid-template-columns:1fr}.writing-letter-wall{grid-template-columns:repeat(3,1fr)}.writing-book-summary article{grid-template-columns:46px auto}.writing-book-summary img{width:42px;height:42px}.writing-stage small{font-size:.5rem}}
@media(min-width:721px) and (max-height:760px){.writing-screen{padding-top:8px}.writing-topbar{min-height:150px}.writing-brand h1{font-size:3.6rem}.writing-area-hero{min-height:155px}.writing-area-scene img,.writing-coach-owl{height:150px}.writing-exercise-layout{grid-template-columns:210px minmax(360px,1fr) 220px}.writing-how-letter{min-height:110px;font-size:5rem}.writing-canvas-card canvas{max-height:360px}.writing-exercise-lower{margin-top:12px}}
@media(max-width:720px){.writing-restoration{grid-template-columns:1fr}.writing-book-pages{grid-template-columns:repeat(2,minmax(0,1fr));padding:12px;gap:10px}.writing-book-shell header{padding:14px 16px}.writing-book-shell header h2{font-size:1.5rem}.parent-writing-grid{grid-template-columns:1fr}.parent-writing-head{align-items:flex-start;flex-direction:column}.parent-writing-head>span{align-self:flex-start}}
@media(max-width:360px){.writing-book-pages{grid-template-columns:1fr}}

/* Authored Writing Castle asset integration */
.writing-main .writing-area-map{grid-template-columns:repeat(3,minmax(0,1fr));max-width:1000px;margin:0 auto;align-items:stretch;gap:clamp(16px,2vw,26px)}
.writing-main .writing-area-map:before{display:none}
.writing-main .writing-area-node,.writing-main .writing-area-node:nth-child(even){min-height:220px;transform:none}
.writing-main .writing-area-node img{height:125px}
.writing-main .writing-area-node b{font-size:1.05rem}
@media(max-width:720px){.writing-main .writing-area-map{grid-template-columns:1fr}.writing-main .writing-area-node{min-height:118px;display:grid;grid-template-columns:78px 1fr 34px;grid-template-rows:1fr;padding:10px 12px 10px 46px;text-align:left}.writing-main .writing-area-node img{width:74px;height:88px}.writing-main .writing-area-node span:not(.writing-area-number){min-height:0;align-items:flex-start}.writing-main .writing-area-node>i{position:static;font-size:1.3rem}}
@media(max-width:360px){.writing-main .writing-journey{padding-top:10px}.writing-main .writing-area-node{min-height:104px}.writing-main .writing-area-node img{height:74px}}
.writing-area-node img{width:100%;height:118px;object-fit:contain;filter:drop-shadow(0 5px 5px rgba(63,43,101,.18))}
.writing-activity-art{display:block;width:100%;height:104px;margin:4px auto;object-fit:contain;filter:drop-shadow(0 4px 4px rgba(74,48,112,.14))}
.writing-current-art{display:block;width:min(190px,85%);height:180px;margin:4px auto 12px;object-fit:contain;filter:drop-shadow(0 6px 6px rgba(74,48,112,.16))}
.writing-ink-art{width:52px;height:52px;object-fit:contain;filter:drop-shadow(0 3px 4px rgba(91,47,151,.2))}
.writing-restoration{grid-template-columns:52px minmax(0,1fr) 140px}
.writing-coach-owl{object-fit:contain;filter:drop-shadow(0 6px 6px rgba(74,48,112,.16))}
.writing-badge img{object-fit:contain}
@media(max-width:720px){.writing-area-node img{height:86px}.writing-activity-art{height:82px}.writing-current-art{height:135px}.writing-restoration{grid-template-columns:44px minmax(0,1fr)}.writing-restoration>span{grid-column:1/-1}.writing-ink-art{width:44px;height:44px}}

/* Pencil Yard authored scene */
.writing-area[data-area="pencil-yard"] .writing-area-hero{overflow:hidden;background-image:linear-gradient(90deg,rgba(224,247,255,.1),rgba(255,255,255,.28)),url('../assets/img/writing-castle/pencil-yard/pencil-yard-background.png');background-size:cover;background-position:center 48%;box-shadow:0 7px 0 #73a94c,0 14px 30px rgba(67,135,65,.18)}
.writing-area[data-area="pencil-yard"] .writing-area-scene img{height:205px;filter:drop-shadow(0 8px 8px rgba(40,96,45,.2))}
.writing-area[data-area="pencil-yard"] .writing-area-progress{background:rgba(255,255,255,.94);backdrop-filter:blur(5px)}
.writing-area[data-area="pencil-yard"] .writing-coach-owl{height:190px;align-self:end}
.writing-area[data-area="pencil-yard"] .writing-activity{background-image:linear-gradient(rgba(255,253,248,.96),rgba(255,253,248,.96)),url('../assets/img/writing-castle/pencil-yard/pattern-sky-graphics.png');background-size:cover}
.writing-area[data-area="pencil-yard"] .writing-current-card{background-image:linear-gradient(rgba(255,253,248,.96),rgba(255,253,248,.96)),url('../assets/img/writing-castle/pencil-yard/garden-foreground.png');background-size:cover;background-position:center bottom}

/* Authored Big & Small Match scene */
.abc-match-world{height:clamp(520px,64vh,700px);background:linear-gradient(rgba(255,249,228,.04),rgba(255,240,196,.06)),url('../assets/img/abc-games/big-small-match/matching-field-background.png') center/cover;border-color:#fff9e7;box-shadow:0 10px 0 #d8be8c,0 20px 35px rgba(97,70,29,.18)}
.abc-match-board{z-index:3;width:min(78%,1040px);min-height:clamp(410px,52vh,575px);margin-left:8%;padding:45px clamp(18px,3vw,44px) 34px;grid-template-columns:minmax(150px,1fr) minmax(135px,.72fr) minmax(150px,1fr);gap:clamp(5px,1.8vw,24px);border:4px solid rgba(255,255,255,.8);border-radius:34px;background:rgba(255,255,255,.78);backdrop-filter:blur(3px);box-shadow:0 8px 0 rgba(207,180,127,.72),0 14px 30px rgba(88,62,30,.13)}
.abc-match-column{gap:clamp(5px,1vh,12px);padding-top:24px}.abc-match-label{top:-17px;min-width:145px;padding:5px 12px}.abc-match-column.lowercase .abc-match-label{background:#f49a19;box-shadow:0 4px 0 #cc6d00}
.abc-puzzle-piece{position:relative;width:100%;height:clamp(70px,8vh,96px);min-height:70px;padding:0;border:0!important;border-radius:0;background:transparent!important;box-shadow:none!important;color:#213b78;font-size:clamp(2rem,4vw,3.4rem);touch-action:pan-y pinch-zoom;isolation:isolate;overflow:visible}
.abc-puzzle-piece::before,.abc-puzzle-piece::after{display:none!important}.abc-match-piece-art{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;pointer-events:none;filter:drop-shadow(0 6px 4px rgba(70,52,24,.18))}.abc-match-letter{position:relative;z-index:3;display:grid;width:100%;height:100%;place-items:center;padding-right:8%;font-family:var(--font-d);font-size:inherit;color:#22346e;text-shadow:0 2px 0 #fff}.abc-puzzle-piece.lower .abc-match-letter{padding-right:0;padding-left:8%;color:#d66700}.abc-puzzle-piece.selected{transform:translateY(-2px);filter:drop-shadow(0 0 8px #ffe02f)}.abc-puzzle-piece.matched{opacity:.3;filter:grayscale(.2)}.abc-puzzle-piece.returning{animation:abcWiggle .55s}.abc-match-hint-ring{display:none;position:absolute;z-index:4;left:50%;top:50%;width:72px;height:72px;transform:translate(-50%,-50%);object-fit:contain;pointer-events:none}.abc-puzzle-piece.hint .abc-match-hint-ring{display:block;animation:abcPairPop .5s,abcGlow .7s .5s infinite alternate}
.abc-match-joined{display:grid;align-content:center;gap:9px;min-width:0}.abc-joined-pair{display:flex;justify-content:center;align-items:center;gap:0;animation:abcPairPop .45s}.abc-joined-piece{position:relative;display:grid;width:50%;max-width:92px;aspect-ratio:1.78;place-items:center}.abc-joined-piece img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill;filter:drop-shadow(0 3px 2px rgba(69,50,20,.18))}.abc-joined-piece b{position:relative;z-index:2;padding-right:9%;font:900 clamp(1.2rem,2.4vw,2rem) var(--font-d);color:#233978;text-shadow:0 1px #fff}.abc-joined-piece+ .abc-joined-piece b{padding:0 0 0 9%;color:#d66700}
.abc-match-mascot{z-index:5;left:.4%;bottom:-1%;width:clamp(125px,14vw,215px);height:clamp(220px,27vw,340px);pointer-events:auto}.abc-match-mascot .abc-match-penguin{position:absolute;left:0;bottom:0;width:100%;height:auto;object-fit:contain;filter:drop-shadow(0 9px 5px rgba(48,57,21,.24));pointer-events:none}.abc-match-mascot .abc-match-speech{position:absolute;left:1%;top:-8%;width:112%;height:35%;object-fit:fill;filter:drop-shadow(0 4px 2px rgba(75,54,25,.18));pointer-events:none}.abc-match-mascot>span{z-index:2;left:9%;top:0;width:86%;padding:11px 8px;border:0;background:transparent;box-shadow:none;font-size:clamp(.68rem,1.3vw,.9rem);pointer-events:none}.abc-match-audio{position:absolute;z-index:4;right:-5%;top:17%;width:48px;height:48px;padding:0;border:0;background:transparent;pointer-events:auto}.abc-match-audio img{width:100%;height:100%;object-fit:contain;filter:none}
.abc-match-hand{position:absolute;z-index:6;left:23%;top:22%;width:clamp(50px,6vw,82px);height:auto;object-fit:contain;pointer-events:none;opacity:1;animation:abcMatchHand .7s ease-in-out infinite alternate}.abc-match-guide-arrow{position:absolute;z-index:2;left:31%;top:17%;width:43%;height:auto;object-fit:contain;pointer-events:none;opacity:.55}.abc-match-guide-arrow.short{display:none;left:39%;top:44%;width:22%}
.abc-match-world>.abc-scene-hint{right:1.2%;bottom:2%;display:flex;align-items:center;justify-content:center;gap:5px;min-width:126px;padding:5px 13px;background:rgba(255,253,245,.94)}.abc-match-world>.abc-scene-hint img{width:42px;height:42px;object-fit:contain}.abc-match-feedback{position:absolute;z-index:10;left:50%;top:50%;width:210px;height:210px;transform:translate(-50%,-50%);pointer-events:none}.abc-match-feedback img{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:1!important}.abc-match-feedback .ring{animation:abcMatchPop .5s}.abc-match-feedback .badge{width:45%;height:45%;left:28%;top:27%;animation:abcMatchPop .45s}.abc-match-feedback .confetti{inset:-28%;top:-28%;width:156%;height:156%;border-radius:0;animation:abcMatchConfetti .7s both}.abc-match-undo{position:absolute;z-index:10;left:50%;top:50%;width:100px;height:100px;transform:translate(-50%,-50%);object-fit:contain;pointer-events:none;animation:abcWiggle .55s}.abc-target-pairs{position:relative;display:grid;min-width:160px;min-height:58px;place-items:center}.abc-target-pairs>img{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.abc-target-pairs>b{position:relative;z-index:2;color:#263971;font:900 1.15rem var(--font-d)}
@keyframes abcMatchPop{0%{transform:scale(.6)}65%{transform:scale(1.14)}100%{transform:scale(1)}}@keyframes abcMatchConfetti{0%{transform:scale(.7) rotate(-4deg)}60%{transform:scale(1.08) rotate(2deg)}100%{transform:scale(1)}}@keyframes abcMatchHand{from{transform:translateX(-5px) rotate(-3deg)}to{transform:translateX(6px) rotate(3deg)}}
#abcPlayAgain,#abcBackDashboard{display:flex;align-items:center;justify-content:center;gap:7px}
@media(max-width:760px){
  .abc-match-world{width:calc(100% - 6px);height:clamp(475px,64vh,610px);border-width:4px;border-radius:25px;background-position:center}.abc-match-board{width:calc(100% - 8px);min-height:410px;margin:0;padding:44px 3px 76px;grid-template-columns:minmax(82px,1fr) 82px minmax(82px,1fr);gap:0;border-width:2px;border-radius:22px}.abc-match-column{gap:5px;padding-top:10px}.abc-match-label{top:-28px;min-width:90px;padding:4px 6px;font-size:.63rem}.abc-puzzle-piece{height:62px;min-height:54px;font-size:2rem}.abc-match-letter{padding-right:12%}.abc-puzzle-piece.lower .abc-match-letter{padding-left:12%}.abc-match-hint-ring{width:54px;height:54px}.abc-match-joined{gap:6px}.abc-joined-piece{max-width:48px}.abc-joined-piece b{font-size:1rem}.abc-match-mascot{left:1%;bottom:0;width:100px;height:152px}.abc-match-mascot .abc-match-speech{left:72%;top:1%;width:150%;height:37%}.abc-match-mascot>span{left:83%;top:7%;width:128%;font-size:.57rem}.abc-match-audio{right:-125%;top:39%;width:44px;height:44px}.abc-match-world>.abc-scene-hint{right:6px!important;top:auto!important;bottom:7px!important;min-width:105px;min-height:48px;padding:3px 9px;font-size:.78rem}.abc-match-world>.abc-scene-hint img{width:35px;height:35px}.abc-match-hand{left:42%;top:28%;width:76px;filter:drop-shadow(0 4px 3px rgba(69,48,24,.38))}.abc-match-guide-arrow.long{display:none}.abc-match-guide-arrow.short{display:block;left:39%;top:50%;width:22%;opacity:.42}.abc-match-feedback{width:155px;height:155px}.abc-match-undo{width:76px;height:76px}.abc-target-pairs{min-width:125px;min-height:50px}.abc-target-pairs>b{font-size:.85rem}
}
@media(max-width:360px){.abc-match-board{grid-template-columns:minmax(78px,1fr) 72px minmax(78px,1fr)}.abc-puzzle-piece{height:58px}.abc-joined-piece{max-width:42px}.abc-match-mascot{width:88px;height:135px}.abc-match-mascot .abc-match-speech{left:72%;width:158%}.abc-match-audio{right:-137%}}
@media(orientation:landscape) and (max-height:760px) and (min-width:761px){.abc-match-world{height:min(61vh,470px)}.abc-match-board{min-height:min(48vh,370px);padding:35px 26px 20px}.abc-puzzle-piece{height:64px;min-height:58px}.abc-match-mascot{width:130px;height:210px}.abc-match-world>.abc-scene-hint{min-height:48px}.abc-match-hand{top:18%}}
@media(max-width:720px){.writing-area[data-area="pencil-yard"] .writing-area-hero{background-position:45% center}.writing-area[data-area="pencil-yard"] .writing-coach-owl{height:135px}.writing-area[data-area="pencil-yard"] .writing-area-progress{align-self:center}}

/* ============ ABC puzzle + letter placement polish ============ */
.abc-match-board{
  width:min(88%,1120px);
  margin-left:6%;
  grid-template-columns:minmax(170px,320px) minmax(190px,370px) minmax(170px,320px);
  justify-content:center;
  gap:clamp(8px,1.4vw,20px);
}
.abc-match-column{justify-items:center;min-width:0}
.abc-match-world{--match-piece-width:clamp(210px,24vw,320px)}
.abc-match-world[data-pairs="2"]{--match-piece-width:clamp(175px,20vw,270px)}
.abc-match-world[data-pairs="3"]{--match-piece-width:clamp(145px,16vw,220px)}
.abc-puzzle-piece{
  width:min(100%,var(--match-piece-width));
  height:auto!important;
  min-height:0!important;
  aspect-ratio:1.72;
}
.abc-match-piece-art{object-fit:contain!important}
.abc-match-letter{
  position:absolute;
  left:42%;
  top:52%;
  width:auto;
  height:auto;
  padding:0!important;
  line-height:1;
  transform:translate(-50%,-50%);
}
.abc-puzzle-piece.lower .abc-match-letter{left:58%}
.abc-match-joined{min-width:0;justify-items:center;width:100%}
.abc-match-feedback{top:28%;width:clamp(96px,10vw,130px);height:clamp(96px,10vw,130px)}
.abc-joined-pair{
  width:min(100%,390px);
  min-height:0;
  gap:0;
  border:0;
  border-radius:0;
  background:transparent;
  color:inherit;
  font-size:inherit;
  filter:drop-shadow(0 7px 5px rgba(66,48,20,.2));
}
.abc-match-world[data-pairs="2"] .abc-joined-pair{width:min(100%,330px)}
.abc-match-world[data-pairs="3"] .abc-joined-pair{width:min(100%,280px)}
.abc-match-world[data-pairs="1"] .abc-joined-pair{width:clamp(310px,34vw,400px);max-width:none}
.abc-joined-piece{width:50%;max-width:none;aspect-ratio:1.72}
.abc-joined-piece+ .abc-joined-piece{margin-left:-12%}
.abc-joined-piece img{object-fit:contain!important;filter:none}
.abc-joined-piece b{
  position:absolute;
  z-index:2;
  left:42%;
  top:52%;
  padding:0!important;
  transform:translate(-50%,-50%);
  font-size:clamp(1.35rem,2.4vw,2.3rem);
}
.abc-joined-piece.lower b{left:58%}
.abc-match-world[data-pairs="1"] .abc-joined-piece b{font-size:clamp(2rem,4vw,3rem)}
@keyframes abcPairPop{
  0%{opacity:1;transform:scale(.82)}
  70%{opacity:1;transform:scale(1.06)}
  100%{opacity:1;transform:scale(1)}
}

.abc-hidden-letter{--letter-x:50%;--letter-y:50%}
.abc-hidden-letter.platform-wood{--letter-x:46%;--letter-y:39%}
.abc-hidden-letter.platform-stone{--letter-x:53%;--letter-y:43%}
.abc-hidden-letter.platform-sign{--letter-x:50%;--letter-y:50%;width:clamp(105px,11vw,145px);height:clamp(72px,8vw,104px)}
.abc-hunt-feedback{width:clamp(88px,10vw,112px);height:clamp(88px,10vw,112px);top:42%}
.abc-hunt-feedback img:nth-child(2){left:60%;top:-18%;width:38%;height:38%}
.abc-hunt-feedback img:nth-child(3){inset:-20%;width:140%;height:140%}
.abc-hidden-letter>span{
  position:absolute;
  z-index:2;
  left:var(--letter-x);
  top:var(--letter-y);
  width:auto;
  height:auto;
  transform:translate(-50%,-50%);
  line-height:1;
  text-shadow:0 3px 0 rgba(255,255,255,.86),0 5px 8px rgba(63,42,115,.18);
}
.abc-hidden-letter.platform-sign>span{font-size:clamp(2.1rem,4.5vw,4rem)}

@media(max-width:760px){
  .abc-hidden-letter{left:var(--mx)!important;top:var(--my)!important}
  .abc-hidden-letter.platform-wood{--letter-y:35%}
  .abc-match-board{width:calc(100% - 8px);margin:0;grid-template-columns:minmax(82px,1fr) minmax(82px,1fr) minmax(82px,1fr);gap:1px}
  .abc-match-world{--match-piece-width:clamp(92px,31vw,138px)}
  .abc-match-world[data-pairs="2"]{--match-piece-width:clamp(84px,28vw,124px)}
  .abc-match-world[data-pairs="3"]{--match-piece-width:clamp(76px,25vw,110px)}
  .abc-match-letter{font-size:clamp(1.55rem,8vw,2.15rem)}
  .abc-joined-pair{width:min(100%,170px)}
  .abc-match-world[data-pairs="2"] .abc-joined-pair{width:min(100%,148px)}
  .abc-match-world[data-pairs="3"] .abc-joined-pair{width:min(100%,132px)}
  .abc-joined-piece b{font-size:1rem}
  .abc-hidden-letter.platform-sign{width:68px;height:54px}
}
@media(orientation:landscape) and (max-height:760px) and (min-width:761px){
  .abc-hunt-mascot{left:-2%;width:clamp(104px,14vw,128px)}
  .abc-hunt-mascot>span{display:none}
  .abc-match-board{width:min(88%,980px);min-height:min(48vh,370px);padding:34px 26px 18px}
  .abc-match-world{--match-piece-width:clamp(190px,24vw,290px)}
  .abc-match-world[data-pairs="2"]{--match-piece-width:clamp(155px,19vw,235px)}
  .abc-match-world[data-pairs="3"]{--match-piece-width:clamp(112px,12vw,145px)}
  .abc-match-world[data-pairs="3"]>.abc-scene-hint{right:50%!important;bottom:5px!important;transform:translateX(50%)}
  .abc-match-world[data-pairs="3"] .abc-match-label{top:-5px}
  .abc-match-feedback{width:96px;height:96px;top:22%}
  .abc-match-hand{left:47%;top:45%;width:72px}
}

/* ============ Final document scroll ownership ============ */
html{
  height:auto!important;
  max-height:none!important;
  min-height:100%;
  overflow-x:clip!important;
  overflow-y:auto!important;
  overscroll-behavior-y:auto;
  touch-action:pan-y pinch-zoom;
  -webkit-overflow-scrolling:touch;
}
body{
  height:auto!important;
  max-height:none!important;
  min-height:100vh;
  min-height:100dvh;
  overflow-x:clip!important;
  overflow-y:visible!important;
  overscroll-behavior-y:auto;
  touch-action:pan-y pinch-zoom;
}
html body .screen.active{
  height:auto!important;
  min-height:100vh!important;
  min-height:100dvh!important;
  max-height:none!important;
  overflow:visible!important;
  overscroll-behavior-y:auto;
  touch-action:pan-y pinch-zoom;
  padding-bottom:max(72px,calc(48px + env(safe-area-inset-bottom)))!important;
}
html body #s-home.active{padding-bottom:max(132px,calc(116px + env(safe-area-inset-bottom)))!important}
html body #s-abc-dashboard.active{
  height:auto!important;
  max-height:none!important;
  overflow:visible!important;
  padding-bottom:max(88px,calc(72px + env(safe-area-inset-bottom)))!important;
}
/* Desktop owns scroll inside the active screen; fallback does the same only
   when a mobile/embedded host suppresses native root scrolling. */
html.desktop-screen-scroll,
html.desktop-screen-scroll body,
html.screen-scroll-fallback,
html.screen-scroll-fallback body{
  width:100%;
  height:100%!important;
  min-height:0!important;
  overflow:hidden!important;
}
html.desktop-screen-scroll body #s-abc-dashboard.screen.active,
html.screen-scroll-fallback body #s-abc-dashboard.screen.active{
  align-content:start;
}
html.desktop-screen-scroll body #s-abc-dashboard.screen.active>* ,
html.screen-scroll-fallback body #s-abc-dashboard.screen.active>*{
  flex-shrink:0;
}
html.desktop-screen-scroll body .screen.active,
html.desktop-screen-scroll body #s-abc-dashboard.screen.active,
html.screen-scroll-fallback body .screen.active,
html.screen-scroll-fallback body #s-abc-dashboard.screen.active{
  box-sizing:border-box;
  width:100%;
  height:100dvh!important;
  min-height:0!important;
  max-height:100dvh!important;
  overflow-x:clip!important;
  overflow-y:auto!important;
  overscroll-behavior-y:contain;
  touch-action:pan-y pinch-zoom;
  -webkit-overflow-scrolling:touch;
}
