
:root{
  --blue:#245a86; --brown:#704312; --cream:#fff9e9; --sky:#eaf9ff; --gold:#f0a51e; --line:#b3dff3;
}
*{box-sizing:border-box}
body{
  margin:0;
  font-family: "Noto Sans TC", system-ui, -apple-system, BlinkMacSystemFont, sans-serif;
  background:linear-gradient(90deg,#d9f5ff,#fffdf7 12%,#fffdf7 88%,#d9f5ff);
  color:var(--blue);
  padding-bottom:96px;
}
a{text-decoration:none;color:inherit}
.page{max-width:1180px;margin:0 auto;padding:24px}
.topbar{
  position:sticky;top:0;z-index:50;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  padding:14px 24px;margin:-24px -24px 20px;
  background:rgba(255,253,247,.92);backdrop-filter:blur(10px);
  border-bottom:3px solid rgba(179,223,243,.45);
}
.brand{display:flex;align-items:center;gap:14px}
.logo{
  width:74px;height:74px;border-radius:24px;display:grid;place-items:center;
  background:linear-gradient(180deg,#fff8df,#f3cf7d);
  color:var(--blue);font-family:Georgia,serif;font-size:25px;font-weight:1000;
  border:5px solid #fff;
}
.brand h1{font-size:clamp(18px,2.8vw,30px);margin:0;line-height:1.1}
.brand p{margin:4px 0 0;color:#6b7f8f;font-weight:900}
.nav-actions{display:flex;gap:10px;flex-wrap:wrap;justify-content:flex-end}
button,.btn{
  border:0;border-radius:24px;padding:14px 20px;font-size:1.05rem;font-weight:1000;cursor:pointer;
  box-shadow:0 12px 26px rgba(36,90,134,.13);
}
.primary{background:linear-gradient(180deg,#ffcc4d,#f0a51e);color:white}
.secondary{background:#fff;border:4px solid var(--line);color:var(--blue)}
.compact-nav a[href$="us/"]{
  border-color:#f6a992!important;
  background:linear-gradient(180deg,#fff7ef,#eefbff)!important;
  box-shadow:0 12px 26px rgba(246,169,146,.24);
}
.compact-nav a[href$="us/"]::before{
  content:"US";
  display:inline-grid;
  place-items:center;
  min-width:28px;
  height:20px;
  padding:0 6px;
  border-radius:999px;
  background:#245a86;
  color:#fff;
  font-size:.68rem;
  font-weight:1000;
  margin-bottom:2px;
}
.mobile-top-controls{display:none}
.mobile-menu-overlay{
  position:fixed;
  inset:0;
  z-index:160;
  display:none;
  padding:18px;
  background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.82) 0 44px,transparent 45px),linear-gradient(180deg,rgba(234,249,255,.98),rgba(255,253,247,.98));
}
.mobile-menu-overlay.show{display:block}
.mobile-menu-panel{
  width:min(100%,520px);
  min-height:calc(100dvh - 36px);
  margin:0 auto;
  border:5px solid rgba(255,255,255,.86);
  border-radius:30px;
  padding:18px;
  background:linear-gradient(180deg,rgba(255,253,247,.94),rgba(234,249,255,.9));
  box-shadow:0 26px 70px rgba(36,90,134,.24);
}
.mobile-menu-head{display:flex;justify-content:space-between;align-items:flex-start;gap:12px;margin-bottom:14px}
.mobile-menu-head strong{display:block;font-size:1.45rem;color:var(--blue)}
.mobile-menu-head small{display:block;color:#5c6e7b;font-weight:900;margin-top:2px}
.mobile-menu-close{width:44px;height:44px;border-radius:50%;padding:0;background:#fff8df;color:var(--brown);font-size:30px;line-height:1}
.mobile-menu-links{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.mobile-menu-links a,.mobile-menu-links button{
  min-height:64px;
  border:4px solid rgba(179,223,243,.78);
  border-radius:22px;
  padding:10px 12px;
  background:#fff;
  color:var(--blue);
  text-align:left;
  font-weight:1000;
  box-shadow:0 12px 24px rgba(36,90,134,.1);
}
.mobile-menu-links small{display:block;color:#54758e;font-size:.8rem;margin-top:2px}
.mobile-menu-links .mobile-us-link{border-color:#f6a992;background:linear-gradient(180deg,#fff7ef,#eefbff);color:#1f517c}
.mobile-menu-links .mobile-us-link::before{
  content:"US";
  display:inline-grid;
  place-items:center;
  min-width:28px;
  min-height:18px;
  margin-right:7px;
  border-radius:999px;
  background:#f6a992;
  color:#fff;
  font-size:.7rem;
  vertical-align:middle;
}
.mobile-menu-open{overflow:hidden}
.site-footer{
  width:min(1180px,calc(100% - 32px));
  margin:10px auto 100px;
  padding:18px 20px;
  border:4px solid rgba(255,255,255,.86);
  border-radius:28px;
  background:radial-gradient(circle at 12% 18%,rgba(255,255,255,.9) 0 24px,transparent 25px),linear-gradient(180deg,#eefbff,#fffdf7);
  color:#54758e;
  text-align:center;
  font-weight:900;
  box-shadow:0 16px 34px rgba(36,90,134,.1);
}
.site-footer p{margin:.2rem 0}
.site-footer nav{display:flex;flex-wrap:wrap;justify-content:center;gap:8px 14px;margin-top:10px}
.site-footer a{color:var(--blue);font-weight:1000}
@media(max-width:760px){
  .topbar{grid-template-columns:1fr auto;align-items:center}
  .topbar .nav-actions.compact-nav{display:none!important}
  .mobile-top-controls{display:flex;align-items:center;gap:8px}
  .mobile-menu-btn,.mobile-coin-pill{
    min-height:42px;
    border-radius:18px;
    padding:8px 11px;
    border:3px solid var(--line);
    background:#fff;
    color:var(--blue);
    font-size:.86rem;
    box-shadow:0 10px 20px rgba(36,90,134,.1);
  }
  .mobile-menu-btn{background:linear-gradient(180deg,#ffcc4d,#f0a51e);border:0;color:#fff}
  .mobile-coin-pill{white-space:nowrap}
  .brand{min-width:0}
  .brand .logo{width:54px;height:54px;border-radius:18px;font-size:19px}
  .brand h1{font-size:1rem}
  .brand p{font-size:.72rem}
  .coin-wallet{display:none}
  .site-footer{margin-bottom:108px;padding:14px 12px;border-radius:22px;font-size:.78rem}
  .site-footer nav{gap:6px 10px}
}
@media(max-width:390px){
  .mobile-menu-links{grid-template-columns:1fr}
  .mobile-menu-panel{padding:14px;border-radius:24px}
  .mobile-menu-links a,.mobile-menu-links button{min-height:54px}
}
.card{
  background:linear-gradient(180deg,#fffdf7,#f7fdff);
  border:6px solid #fff;
  border-radius:36px;
  padding:28px;
  box-shadow:0 20px 48px rgba(36,90,134,.12);
  margin:20px 0;
}
.hero{display:grid;grid-template-columns:1fr minmax(260px,42%);gap:24px;align-items:center}
.hero h2{font-size:clamp(30px,4.5vw,52px);margin:0 0 16px;color:var(--blue);line-height:1.06}
.hero p{font-size:1.08rem;line-height:1.8;color:#5c6e7b;font-weight:900}
.hero img{width:100%;border-radius:34px;border:6px solid white;box-shadow:0 18px 44px rgba(36,90,134,.16)}
.badge{display:inline-flex;padding:8px 16px;border-radius:999px;background:#8757e8;color:white;font-weight:1000;margin-bottom:12px}
.grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.level-card{
  position:relative;min-height:245px;padding:18px;border-radius:32px;background:linear-gradient(180deg,#fff9e9,#eaf9ff);
  border:6px solid white;box-shadow:0 16px 36px rgba(36,90,134,.14);display:flex;flex-direction:column;align-items:center;text-align:center;gap:8px;
}
.level-card.unlocked{outline:5px solid rgba(243,207,125,.65)}
.level-card.locked{opacity:.68;filter:saturate(.75)}
.level-num{
  position:absolute;top:10px;left:10px;width:46px;height:46px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(180deg,#f3cf7d,#c9903e);color:white;border:4px solid #fff8df;font:1000 24px Georgia,serif;
}
.level-card img{width:100%;height:105px;object-fit:cover;border-radius:22px;margin-bottom:4px}
.level-card strong{font-size:1.35rem;color:var(--brown)}
.level-card em{font-style:normal;font-weight:1000;color:var(--blue)}
.level-card small{font-weight:900;color:#6b7f8f}
.level-card b{margin-top:auto;padding:7px 14px;border-radius:999px;background:#fff8df;color:var(--brown)}
.lesson-hero{display:grid;grid-template-columns:minmax(250px,38%) 1fr;gap:24px;align-items:center}
.lesson-hero img,.story-layout img{width:100%;border-radius:30px;border:6px solid white;box-shadow:0 16px 34px rgba(36,90,134,.16)}
.lesson-title{font-size:clamp(28px,4vw,46px);margin:0;color:var(--blue)}
.step-title{font-size:clamp(24px,3.2vw,34px);color:var(--brown);margin:0 0 12px}
.task-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.task{background:#fffdf7;border:4px solid var(--line);border-radius:30px;padding:20px}
.task h3{font-size:1.45rem;color:var(--brown);margin:0 0 10px}
.options,.letter-bank,.game-options,.button-row{display:flex;gap:10px;flex-wrap:wrap;margin:14px 0}
.options button,.letter-bank button,.game-options button{
  background:linear-gradient(180deg,#fff4ca,#f3cf7d);color:var(--brown);border:4px solid #fff8df;border-radius:22px;
}
.letter-bank button:disabled{opacity:.35}
.answer-box{
  min-height:64px;padding:14px;border-radius:24px;background:var(--sky);border:4px dashed var(--line);
  font-size:clamp(32px,5vw,54px);font-weight:1000;text-align:center;letter-spacing:.07em;color:var(--blue);
}
.feedback,.muted{font-weight:1000;color:#5c6e7b;line-height:1.6}
.story-layout{display:grid;grid-template-columns:minmax(230px,34%) 1fr;gap:24px;align-items:start}
.story-text h3{font-size:clamp(28px,4vw,46px);line-height:1.14;margin:12px 0;color:var(--blue)}
.story-text .zh{font-size:1.3rem;color:var(--brown);font-weight:1000}
.story-count{display:inline-flex;padding:8px 16px;border-radius:999px;background:var(--sky);border:4px solid var(--line);font-weight:1000}
.story-list{background:#fff8df;border:4px dashed #f3cf7d;border-radius:26px;padding:16px;margin-top:16px}
.story-list h4{color:var(--brown);margin:0 0 8px;font-size:1.25rem}
.story-list ol{margin:0;padding-left:24px}
.story-list li{margin:8px 0;color:var(--blue);font-weight:1000}
.story-list li.active{color:var(--brown)}
.story-list button{background:transparent;box-shadow:none;padding:0;text-align:left;color:inherit}
.story-list small{display:block;color:#6b7f8f;margin-top:3px}
.coin-wallet{
  position:fixed;right:16px;top:16px;z-index:100;
  background:linear-gradient(180deg,#ffe38a,#f0a51e);color:#704312;border:5px solid #fff8df;border-radius:999px;
  padding:10px 16px;font-weight:1000;box-shadow:0 14px 34px rgba(36,90,134,.22);cursor:pointer;
}
.flying-coin{
  position:fixed;left:50%;top:52%;z-index:120;width:54px;height:54px;border-radius:50%;display:grid;place-items:center;
  background:linear-gradient(180deg,#ffe38a,#f0a51e);border:5px solid #fff8df;color:#704312;font-weight:1000;opacity:0;
}
.flying-coin.fly{animation:flyCoin .9s ease-out forwards}
@keyframes flyCoin{0%{opacity:0;transform:translate(-50%,-50%) scale(.4)}25%{opacity:1;transform:translate(-50%,-85%) scale(1.1)}100%{opacity:0;transform:translate(42vw,-46vh) scale(.6) rotate(420deg)}}
.bubble-layer{position:fixed;inset:0;z-index:90;pointer-events:none;overflow:hidden}
.bubble-layer span{position:absolute;bottom:-30px;width:28px;height:28px;border-radius:50%;border:3px solid rgba(255,255,255,.9);background:rgba(179,223,243,.55);animation:bubbleUp 1.5s ease-out forwards}
@keyframes bubbleUp{0%{transform:translateY(0);opacity:0}20%{opacity:1}100%{transform:translateY(-80vh);opacity:0}}
.toast{
  position:fixed;left:50%;bottom:24px;transform:translateX(-50%) translateY(20px);z-index:130;
  opacity:0;transition:.25s;background:#fff8df;border:5px solid white;border-radius:999px;padding:14px 22px;font-weight:1000;color:var(--blue);box-shadow:0 16px 38px rgba(36,90,134,.22);
}
.toast.show{opacity:1;transform:translateX(-50%)}
.shop-panel{position:fixed;inset:0;background:rgba(36,90,134,.35);z-index:140;display:none;align-items:center;justify-content:center;padding:20px}
.shop-panel.show{display:flex}
.shop-card{position:relative;width:min(92vw,680px);background:linear-gradient(180deg,#fff9e9,#eaf9ff);border:7px solid white;border-radius:36px;padding:28px;text-align:center;box-shadow:0 24px 60px rgba(36,90,134,.28)}
.shop-items{display:grid;grid-template-columns:repeat(3,1fr);gap:14px;margin:18px 0}
.shop-items button{background:#fffdf7;border:5px solid #fff8df;color:var(--brown)}
.close{position:absolute;right:16px;top:12px;width:44px;height:44px;border-radius:50%;padding:0;background:#fff8df;color:var(--brown);font-size:28px}
.parent-list{columns:2;line-height:2.1;font-size:1.25rem;font-weight:1000;color:#5d4a2b}
@media(max-width:900px){
  .grid,.task-grid{grid-template-columns:1fr 1fr}
  .hero,.lesson-hero,.story-layout{grid-template-columns:1fr}
}
@media(max-width:640px){
  .page{padding:14px}.topbar{margin:-14px -14px 14px;padding:12px}
  .grid,.task-grid,.shop-items{grid-template-columns:1fr}
  .nav-actions{justify-content:flex-start}
  .coin-wallet{top:auto;bottom:14px;right:14px}
  .parent-list{columns:1}
}

.practice-bank{display:grid;gap:18px}
.practice-group{background:rgba(234,249,255,.72);border:4px solid var(--line);border-radius:28px;padding:18px}
.practice-group h3{margin:0 0 12px;font-size:1.25rem;color:var(--brown)}
.practice-chips{display:flex;flex-wrap:wrap;gap:10px}
.chip{background:#fff;border:3px solid #b3dff3;border-radius:999px;padding:10px 14px;font-size:.98rem;color:var(--blue);box-shadow:none}
.level-card small{line-height:1.35}
.buy-strip{display:grid;gap:12px;align-items:center;background:linear-gradient(180deg,#fff8df,#f7fdff);border:4px solid var(--line);border-radius:30px;padding:20px;margin-top:18px}
@media(max-width:720px){.practice-chips{display:grid;grid-template-columns:1fr 1fr}.chip{font-size:.92rem;padding:10px 8px}.topbar{position:relative}.nav-actions .secondary{padding:10px 12px}}


/* v2.1 sea creature motion + locked preview */
.creature-layer{position:fixed;inset:0;pointer-events:none;z-index:5;overflow:hidden}
.creature{position:absolute;font-size:clamp(26px,4vw,48px);opacity:.34;filter:drop-shadow(0 8px 12px rgba(36,90,134,.18));animation:swimFloat 9s ease-in-out infinite}
.c1{left:3%;top:28%;animation-duration:10s}.c2{right:6%;top:38%;animation-duration:8s}.c3{left:8%;bottom:18%;animation-duration:7s}.c4{right:8%;bottom:15%;animation-duration:11s}
@keyframes swimFloat{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-22px) translateX(14px) rotate(5deg)}}
.locked-preview{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:16px}
.locked-preview span{background:#fff8df;border:4px solid var(--line);border-radius:22px;padding:16px;font-weight:1000;color:var(--brown);text-align:center}
@media(max-width:720px){.locked-preview{grid-template-columns:1fr}.creature{opacity:.22}}

/* v2.2 Speaker Island high-grade path */
.speaker-teaser{background:linear-gradient(180deg,#f7fdff,#fff8df)}
.speaker-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px;margin-top:18px}
.speaker-game{background:#fffdf7;border:4px solid var(--line);border-radius:28px;padding:18px;box-shadow:0 14px 30px rgba(36,90,134,.10);display:grid;gap:10px;align-content:start}
.speaker-game h3{margin:0;color:var(--blue);font-size:1.25rem;line-height:1.28}
.speaker-game p{margin:0;color:#5c6e7b;font-weight:900;line-height:1.55}
.speaker-game.locked-game{background:linear-gradient(180deg,#fff8df,#f6f1e7);opacity:.92}
.locked-note{border:3px dashed #d7b66d;border-radius:18px;background:rgba(255,255,255,.55);padding:10px;color:var(--brown);font-weight:1000}
.mini-badge{display:inline-flex;width:max-content;background:#eaf9ff;border:3px solid var(--line);border-radius:999px;padding:6px 10px;font-weight:1000;color:var(--brown);font-size:.86rem}
.access-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.access-card{border:4px solid var(--line);border-radius:26px;padding:18px;background:#fffdf7;font-weight:1000;line-height:1.6}
.access-card strong{font-size:1.35rem;color:var(--blue)}
.access-card.free{background:#eefbff}.access-card.locked{background:#fff8df}
@media(max-width:900px){.speaker-grid{grid-template-columns:1fr 1fr}.access-row{grid-template-columns:1fr}}
@media(max-width:640px){.speaker-grid{grid-template-columns:1fr}.speaker-game{padding:16px}.speaker-hero img{max-height:none;object-fit:contain}.access-card strong{font-size:1.18rem}}


/* v2.3 island route cards */
.island-section{background:linear-gradient(180deg,#f7fdff,#fffdf7)}
.island-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:18px}
.island-card{display:grid;gap:8px;text-decoration:none;color:inherit;background:#fffdf7;border:4px solid var(--line);border-radius:28px;padding:18px;box-shadow:0 14px 30px rgba(36,90,134,.10);min-height:210px}
.island-card span{font-weight:1000;color:var(--blue);font-size:1.25rem}
.island-card strong{font-size:1.05rem;color:var(--brown);line-height:1.35}
.island-card p{margin:0;color:#5c6e7b;font-weight:900;line-height:1.5}
.island-card.free{background:#eefbff}.island-card.mixed{background:#fffef2}.island-card.locked{background:#fff8df}
.path-list{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:16px}
.path-level{border:4px solid var(--line);border-radius:24px;padding:16px;background:#fffdf7;display:grid;gap:8px}
.path-level .status{display:inline-block;width:max-content;border-radius:999px;padding:6px 10px;font-weight:1000;background:#eefbff;color:var(--blue)}
.path-level.locked .status{background:#fff0cc;color:#9a6a13}.path-level.locked{background:#fff8df}.path-level.free{background:#eefbff}
@media(max-width:980px){.island-grid,.path-list{grid-template-columns:1fr 1fr}}
@media(max-width:640px){.island-grid,.path-list{grid-template-columns:1fr}.island-card{min-height:auto}}

.starter-unlock-card{
  display:grid;
  grid-template-columns:minmax(0,.95fr) minmax(240px,1.2fr);
  gap:18px;
  align-items:center;
  background:radial-gradient(circle at 14% 12%,rgba(255,255,255,.9) 0 26px,transparent 27px),linear-gradient(180deg,#fff8df,#eefbff);
}
.starter-unlock-card h3{margin:.25rem 0 .5rem;color:var(--brown);font-size:1.25rem}
.starter-unlock-card p{margin:0;color:#5c6e7b;font-weight:900;line-height:1.5}
.starter-unlock-card ul{margin:0;padding-left:1.2rem;color:#4f6576;font-weight:900;line-height:1.65}
.starter-unlock-card .button-row{grid-column:1 / -1;margin-top:0}
.locked-preview-group{
  border-style:dashed!important;
  background:linear-gradient(180deg,rgba(255,253,247,.92),rgba(234,249,255,.78))!important;
  color:#5c6e7b;
}
.locked-preview-group h3{color:var(--blue)}
.locked-preview-group p{margin:.4rem 0 .8rem;font-weight:900;line-height:1.5}
.story-locked-preview{margin-top:12px;padding:14px;border-radius:20px}
@media(max-width:700px){
  .starter-unlock-card{grid-template-columns:1fr}
  .starter-unlock-card ul{padding-left:1rem}
}


/* v2.4 readability + story tap-to-speak */
.story-clickable{cursor:pointer;background:rgba(234,249,255,.72);border:3px dashed var(--line);border-radius:20px;padding:10px 12px}
.story-line-row{display:grid;grid-template-columns:1fr auto;gap:10px;align-items:center}
.story-list .story-select-btn{width:100%;background:transparent;box-shadow:none;padding:0;text-align:left;color:inherit;border:0}
.story-list .story-sound-btn{width:44px;height:44px;border-radius:50%;padding:0;background:#fff;border:3px solid var(--line);box-shadow:0 8px 18px rgba(36,90,134,.12);font-size:1.1rem}
.nav-actions .btn,.nav-actions button{font-size:.95rem;padding:10px 13px;border-width:3px}
.page-lite{max-width:980px}
.simple-list{display:grid;gap:12px;margin:18px 0}
.simple-list article{background:#fffdf7;border:4px solid var(--line);border-radius:24px;padding:18px}
.simple-list h3{margin:0 0 8px;color:var(--brown)}
.simple-list p{margin:0;color:#5c6e7b;font-weight:900;line-height:1.6}
@media(max-width:640px){
  .brand .logo{width:56px;height:56px;font-size:20px;border-radius:18px}
  .brand h1{font-size:1.05rem}
  .brand p{font-size:.82rem}
  button,.btn{font-size:.95rem;padding:11px 14px}
  .card{padding:20px;border-radius:28px}
  .story-line-row{grid-template-columns:1fr 42px}
}

/* v2.5 nav language cleanup + animal speaking task */
.topbar{align-items:flex-start;gap:14px}
.nav-actions{gap:9px;align-items:center;justify-content:flex-end;max-width:1060px}
.nav-actions .btn,.nav-actions button{font-size:.86rem;padding:8px 11px;border-width:3px;line-height:1.1;white-space:nowrap}
.brand h1{font-size:clamp(1.05rem,2vw,1.55rem)}
.brand p{font-size:.9rem}
.hero h2,.step-title{font-size:clamp(1.45rem,3vw,2.25rem)}
.lesson-title{font-size:clamp(1.55rem,3vw,2.35rem)}
.muted,.feedback{font-size:clamp(.98rem,1.8vw,1.1rem);font-weight:850}

.animal-task-intro{display:grid;grid-template-columns:auto 1fr auto;gap:14px;align-items:center;background:linear-gradient(180deg,#fff8df,#eefbff);border:4px solid var(--line);border-radius:28px;padding:16px;margin-bottom:16px}
.animal-task-intro h3{margin:0 0 5px;color:var(--blue);font-size:1.18rem}
.animal-task-intro p{margin:0;color:#5c6e7b;font-weight:900;line-height:1.45}
.basket-icon{width:58px;height:58px;border-radius:20px;background:#fff;display:grid;place-items:center;font-size:34px;border:3px solid #f3cf7d}
.basket-count{background:#fff;border:3px solid #f3cf7d;border-radius:999px;padding:8px 12px;font-weight:1000;color:var(--brown);white-space:nowrap}
.animal-practice-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}
.animal-word-card{display:grid;grid-template-columns:auto 1fr;grid-template-areas:"animal word" "animal hint";gap:2px 10px;align-items:center;text-align:left;background:#fffdf7;border:4px solid var(--line);border-radius:22px;padding:13px 14px;box-shadow:0 10px 22px rgba(36,90,134,.10);color:var(--blue);transition:.18s transform,.18s background,.18s opacity}
.animal-word-card .animal{grid-area:animal;font-size:30px;transition:.25s transform}
.animal-word-card strong{grid-area:word;font-size:1.15rem;color:var(--blue)}
.animal-word-card small{grid-area:hint;font-size:.78rem;color:#6b7f8f;font-weight:900;line-height:1.25}
.animal-word-card:hover{transform:translateY(-2px)}
.animal-word-card.delivered{background:#eaf9ff;border-color:#f3cf7d;opacity:.82}
.animal-word-card.delivered .animal{transform:translateX(14px) rotate(8deg) scale(1.12)}
.animal-word-card.delivered small{color:#9a6a13}

@media(max-width:900px){
  .topbar{position:relative}.nav-actions{justify-content:flex-start;width:100%}
  .animal-practice-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:640px){
  .nav-actions{display:flex;flex-wrap:wrap;gap:7px}
  .nav-actions .btn,.nav-actions button{font-size:.78rem;padding:8px 9px;border-radius:18px}
  .animal-task-intro{grid-template-columns:44px 1fr;gap:10px;padding:13px}
  .basket-icon{width:44px;height:44px;border-radius:15px;font-size:26px}.basket-count{grid-column:1 / -1;text-align:center}
  .animal-practice-grid{grid-template-columns:1fr}
  .animal-word-card{padding:12px}
}


/* v2.6 US-first navigation + voice basket game */
.topbar{align-items:flex-start}
.nav-actions{max-width:980px;gap:8px}
.nav-actions .btn,.nav-actions button{font-size:.82rem;padding:7px 10px;border-width:3px;border-radius:20px}
.voice-basket-card{background:linear-gradient(180deg,#eefbff,#fffdf7)}
.voice-basket-stage{display:grid;grid-template-columns:110px 1fr 110px;align-items:center;gap:18px;margin:18px 0;padding:18px;border:4px solid var(--line);border-radius:30px;background:rgba(255,255,255,.74);overflow:hidden}
.voice-animal,.voice-basket{width:90px;height:90px;border-radius:28px;display:grid;place-items:center;font-size:50px;background:#fff;border:4px solid #f3cf7d;box-shadow:0 12px 28px rgba(36,90,134,.13)}
.voice-target{display:grid;gap:8px;text-align:center}
.voice-target strong{font-size:clamp(2rem,5vw,4rem);color:var(--blue);letter-spacing:.03em;line-height:1}
.voice-target small{font-weight:1000;color:#5c6e7b}
.voice-meter{
  width:min(100%,560px);
  height:16px;
  margin:8px auto 4px;
  border-radius:999px;
  overflow:hidden;
  background:#e7f3f8;
  border:3px solid rgba(179,223,243,.95);
  box-shadow:inset 0 2px 8px rgba(36,90,134,.08);
}
.voice-meter span{
  display:block;
  width:0%;
  height:100%;
  border-radius:inherit;
  background:linear-gradient(90deg,#8fd3e0,#f0a51e);
  transition:width .08s linear;
}
.voice-heard{
  margin:4px 0 0;
  text-align:center;
  color:var(--blue);
  font-weight:1000;
}
.voice-animal.deliver{animation:deliverToBasket .85s ease-in-out}
.voice-basket.catch{animation:basketCatch .85s ease-in-out}
@keyframes deliverToBasket{0%{transform:translateX(0) rotate(0)}55%{transform:translateX(calc(100vw - 260px)) rotate(12deg) scale(1.1)}100%{transform:translateX(0) rotate(0)}}
@keyframes basketCatch{0%,100%{transform:scale(1)}55%{transform:scale(1.16) rotate(-5deg)}}
@media(max-width:760px){
  .nav-actions{display:flex;flex-wrap:wrap;justify-content:flex-start;max-width:none;width:100%}
  .nav-actions .btn,.nav-actions button{font-size:.76rem;padding:7px 9px}
  .voice-basket-stage{grid-template-columns:72px 1fr 72px;gap:10px;padding:12px}
  .voice-animal,.voice-basket{width:62px;height:62px;border-radius:20px;font-size:36px}
  .voice-target strong{font-size:2.25rem}
  @keyframes deliverToBasket{0%{transform:translateX(0)}55%{transform:translateX(calc(100vw - 180px)) rotate(12deg) scale(1.05)}100%{transform:translateX(0)}}
}


/* v2.7 bilingual nav layout + voice-basket animation polish */
.topbar{align-items:flex-start;gap:16px}
.bilingual-nav{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end;align-items:center;max-width:1120px}
.bilingual-nav .btn,.bilingual-nav button{min-width:74px;min-height:50px;padding:7px 11px;border-radius:22px;font-size:.82rem;line-height:1.05;display:inline-grid;place-items:center;gap:2px;text-align:center;white-space:normal}
.bilingual-nav .nav-en{font-weight:1000;color:var(--blue);font-size:.86rem;letter-spacing:.01em}
.bilingual-nav .nav-zh{font-weight:900;color:#54758e;font-size:.68rem;letter-spacing:.02em}
.coin-wallet{z-index:30}
.flying-word-card{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);background:#fff8df;border:4px solid #f3cf7d;border-radius:20px;padding:10px 18px;color:var(--blue);font-size:1.25rem;font-weight:1000;box-shadow:0 14px 28px rgba(36,90,134,.18);z-index:3;pointer-events:none;opacity:0}
.flying-word-card.fly-to-basket{animation:wordToBasket .95s ease-in-out forwards}
@keyframes wordToBasket{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}20%{opacity:1;transform:translate(-50%,-80%) scale(1.05)}75%{opacity:1;transform:translate(170px,-50%) scale(.9) rotate(5deg)}100%{opacity:0;transform:translate(220px,-40%) scale(.55)}}
.voice-basket-stage{position:relative}
.voice-target strong{text-transform:none}
@media(max-width:900px){.topbar{position:relative}.bilingual-nav{justify-content:flex-start;max-width:none;width:100%}.bilingual-nav .btn,.bilingual-nav button{min-width:68px;min-height:46px;padding:6px 8px}.bilingual-nav .nav-en{font-size:.78rem}.bilingual-nav .nav-zh{font-size:.62rem}}
@media(max-width:520px){.bilingual-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.bilingual-nav .btn,.bilingual-nav button{width:100%;min-width:0}.brand h1{font-size:1.05rem}.brand p{font-size:.78rem}.coin-wallet{right:8px;top:auto;bottom:10px}.voice-basket-stage{grid-template-columns:58px 1fr 58px}.voice-animal,.voice-basket{width:54px;height:54px;font-size:30px}.voice-target strong{font-size:1.8rem}@keyframes wordToBasket{0%{opacity:0;transform:translate(-50%,-50%) scale(.7)}20%{opacity:1;transform:translate(-50%,-80%) scale(1.02)}75%{opacity:1;transform:translate(80px,-50%) scale(.86)}100%{opacity:0;transform:translate(110px,-38%) scale(.5)}}}


/* v2.8 bilingual home + cleaner nav + language tabs */
.compact-nav{display:flex;flex-wrap:wrap;gap:8px;justify-content:flex-end;align-items:center;max-width:1040px}
.compact-nav .btn,.compact-nav button{min-width:82px;min-height:46px;padding:7px 12px;border-radius:22px;display:inline-flex;flex-direction:column;gap:1px;align-items:center;justify-content:center;line-height:1.05;text-align:center;white-space:normal}
.compact-nav .nav-zh{font-size:.86rem;font-weight:1000;color:var(--blue)}
.compact-nav .nav-en{font-size:.66rem;font-weight:900;color:#5f7f94;letter-spacing:.01em}
.us-nav .btn{min-width:92px}.us-nav .nav-en{font-size:.82rem;color:var(--blue)}
.lang-tabs{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}.lang-panel.hidden{display:none!important}
.lang-panel code{background:#fff8dd;border:1px solid rgba(240,174,47,.3);border-radius:8px;padding:2px 6px;word-break:break-word}
@media(max-width:900px){.compact-nav{justify-content:flex-start;max-width:none;width:100%}.compact-nav .btn,.compact-nav button{min-width:76px;min-height:44px;padding:6px 9px}.compact-nav .nav-zh{font-size:.8rem}.compact-nav .nav-en{font-size:.6rem}}
@media(max-width:520px){.compact-nav{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.compact-nav .btn,.compact-nav button{width:100%;min-width:0}.hero h2{font-size:clamp(1.8rem,9vw,2.35rem)}.hero p{font-size:1rem;line-height:1.65}.lang-tabs .primary,.lang-tabs .secondary{flex:1;min-width:120px}}

/* v2.9 child-first Chinese instructions + clearer voice basket order */
.voice-basket-card .step-title,.practice-bank .animal-task-intro h3{font-weight:1000;}
.voice-basket-card .muted,.practice-bank .animal-task-intro p{font-size:1.02rem;line-height:1.65;color:#50687a;}
.voice-target .mini-badge{font-size:.9rem;}
.animal-word-card small{font-size:.86rem;color:#a87922;font-weight:900;}
@media(max-width:680px){
  .voice-basket-card .muted,.practice-bank .animal-task-intro p{font-size:.92rem;}
  .animal-word-card small{font-size:.78rem;}
}

/* v3.4 card art uses project watercolor image assets, not CSS-drawn illustrations */
.explorer-levels .path-level{align-content:start;gap:10px;overflow:hidden}
.level-visual{
  position:relative;
  min-height:112px;
  border-radius:22px;
  overflow:hidden;
  background:#fffdf7;
  box-shadow:0 12px 26px rgba(36,90,134,.10);
}
.level-visual img{
  display:block;
  width:100%;
  height:100%;
  min-height:inherit;
  object-fit:cover;
  object-position:center;
  border-radius:inherit;
}
@media(max-width:980px){
  .level-visual{min-height:104px}
}
@media(max-width:640px){
  .explorer-levels .path-level{grid-template-columns:92px 1fr;grid-template-areas:"status status" "visual title" "visual body" "actions actions";align-items:center;gap:8px 12px;padding:14px}
  .explorer-levels .path-level .status{grid-area:status}
  .explorer-levels .path-level .level-visual{grid-area:visual;min-height:86px}
  .explorer-levels .path-level h3{grid-area:title;margin:0;font-size:1rem;line-height:1.25}
  .explorer-levels .path-level p{grid-area:body;margin:0;font-size:.88rem;line-height:1.45}
  .explorer-levels .path-level .button-row{grid-area:actions;margin:4px 0 0}
}

/* v3.0 layout, language switch, and animal mission polish */
.nav-actions.compact-nav{display:grid;gap:7px;justify-items:end;max-width:760px}
.nav-row{display:flex;flex-wrap:wrap;gap:7px;justify-content:flex-end}
.resource-nav{padding-top:4px;border-top:2px dashed rgba(179,223,243,.7)}
.compact-nav .btn,.compact-nav button{min-width:92px}
.compact-nav .nav-en{font-size:.84rem;font-weight:1000;color:var(--blue)}
.compact-nav .nav-zh{font-size:.66rem;font-weight:900;color:#5f7f94}
.us-nav .nav-en{font-size:.82rem}
.lang-tabs button[aria-pressed="true"]{outline:4px solid rgba(243,207,125,.55)}
.guide-steps{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:18px 0}
.guide-step{background:#fffdf7;border:4px solid var(--line);border-radius:22px;padding:16px}
.guide-step strong{display:block;color:var(--blue);font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.15}
.guide-step small{display:block;color:#6b7f8f;font-weight:1000;font-size:.92rem;margin-top:6px;line-height:1.45}
.voice-basket-stage{grid-template-columns:minmax(70px,110px) minmax(120px,1fr) minmax(70px,110px)}
.voice-animal.deliver,.mission-animal.deliver{animation:deliverToBasket .82s ease-in-out}
.voice-basket.catch,.mission-basket.catch{animation:basketCatch .82s ease-in-out}
@keyframes deliverToBasket{0%{transform:translateX(0) translateY(0) scale(1)}55%{transform:translateX(var(--deliver-x, 220px)) translateY(-6px) scale(1.08)}100%{transform:translateX(0) translateY(0) scale(1)}}
@keyframes basketCatch{0%,100%{transform:scale(1)}55%{transform:scale(1.14) rotate(-4deg)}}
.flying-word-card.fly-to-basket{animation:wordToBasket .9s ease-in-out forwards}
@keyframes wordToBasket{0%{opacity:0;transform:translate(-50%,-50%) scale(.72)}18%{opacity:1;transform:translate(-50%,-64%) scale(1.02)}78%{opacity:1;transform:translate(calc(-50% + var(--word-x, 170px)),calc(-50% + var(--word-y, 0px))) scale(.86)}100%{opacity:0;transform:translate(calc(-50% + var(--word-x, 220px)),calc(-50% + var(--word-y, 0px))) scale(.48)}}
.animal-task-intro{grid-template-columns:auto 1fr auto}
.animal-mission-stage{position:relative;display:grid;grid-template-columns:minmax(72px,120px) minmax(140px,1fr) minmax(72px,120px);gap:14px;align-items:center;background:rgba(255,255,255,.78);border:4px solid var(--line);border-radius:28px;padding:16px;margin:12px 0;overflow:hidden}
.mission-stop{display:grid;gap:6px;place-items:center}
.mission-label{font-size:.76rem;text-transform:uppercase;color:#6b7f8f;font-weight:1000;letter-spacing:.04em}
.mission-animal,.mission-basket{width:82px;height:82px;border-radius:26px;display:grid;place-items:center;background:#fff;border:4px solid #f3cf7d;font-size:46px;box-shadow:0 12px 26px rgba(36,90,134,.12)}
.mission-word-card{display:grid;gap:6px;text-align:center;background:#fff8df;border:4px solid #f3cf7d;border-radius:24px;padding:16px;box-shadow:0 14px 28px rgba(36,90,134,.12)}
.mission-word-card span{font-weight:1000;color:#9a6a13;font-size:.82rem;text-transform:uppercase}
.mission-word-card strong{font-size:clamp(1.8rem,4.6vw,3.15rem);color:var(--blue);line-height:1}
.mission-word-card small,.mission-helper{color:#5c6e7b;font-weight:1000;line-height:1.45}
.mission-word-card.delivered{animation:cardPulse .82s ease-in-out}
@keyframes cardPulse{50%{transform:translateX(10px) scale(1.04);background:#eaf9ff}}
.animal-practice-grid{grid-template-columns:repeat(4,1fr)}
.animal-word-card{grid-template-columns:auto 1fr;min-height:76px}
.animal-word-card.delivered .animal{transform:translateX(8px) scale(1.08)}
.speaker-module-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px;margin-top:16px}
.speaker-module{display:grid;gap:9px;background:#fffdf7;border:4px solid var(--line);border-radius:24px;padding:16px;align-content:start}
.speaker-module h3{margin:0;color:var(--blue);font-size:1.22rem;line-height:1.25}
.speaker-module small{display:block;color:#704312;font-weight:1000}
.speaker-module p{margin:0;color:#5c6e7b;font-weight:900;line-height:1.5}
.speaker-module.locked{background:#fff8df}.speaker-module.free{background:#eefbff}
.status.free{background:#eaf9ff;color:var(--blue)}.status.locked{background:#fff0cc;color:#9a6a13}
@media(max-width:980px){
  .topbar{display:grid;grid-template-columns:1fr}.nav-actions.compact-nav{justify-items:start;justify-self:stretch;max-width:none;width:100%}
  .nav-row{justify-content:flex-start}
  .guide-steps,.speaker-module-grid{grid-template-columns:1fr 1fr}
  .animal-practice-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:560px){
  .nav-actions.compact-nav{display:grid;grid-template-columns:1fr;align-items:stretch}
  .nav-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));width:100%;gap:6px}
  .compact-nav .btn,.compact-nav button{width:100%;min-width:0;min-height:45px;padding:7px 6px}
  .compact-nav .nav-en{font-size:.72rem}.compact-nav .nav-zh{font-size:.6rem}
  .guide-steps,.speaker-module-grid{grid-template-columns:1fr}
  .animal-mission-stage,.voice-basket-stage{grid-template-columns:58px minmax(96px,1fr) 58px;gap:8px;padding:10px}
  .mission-animal,.mission-basket{width:54px;height:54px;border-radius:18px;font-size:30px}
  .mission-word-card{padding:10px;border-radius:18px}
  .mission-word-card strong{font-size:1.55rem}
  .mission-word-card small{font-size:.72rem}
  .animal-task-intro{grid-template-columns:40px 1fr}
  .basket-count{grid-column:1 / -1}
}

/* v3.1 fixes: always-visible music/shop/payment actions */
.global-action-bar{
  position:fixed;right:16px;bottom:16px;z-index:80;
  display:flex;gap:8px;align-items:center;flex-wrap:wrap;justify-content:flex-end;
  padding-bottom:env(safe-area-inset-bottom);
}
.global-action-bar .mini-action{
  padding:10px 13px;border-radius:18px;font-size:.86rem;line-height:1.05;text-align:center;
}
.global-action-bar .mini-action span{font-size:.72rem;display:block;margin-top:2px}
.global-action-bar .music-action{
  border-color:#f6a992;
  background:#fff7ef;
}
.global-action-bar .music-action[aria-pressed="true"]{
  background:linear-gradient(180deg,#bfe8ed,#245a86);
  color:#fff;
}
.voice-target strong{
  font-size:clamp(28px,4.2vw,54px);
  line-height:1.05;
  display:block;
  word-break:normal;
}
.voice-basket-stage,.animal-mission-stage{overflow:hidden}
.sentence-puzzle-card .answer-box{
  min-height:56px;display:flex;align-items:center;justify-content:center;text-align:center;
  background:#fffdf7;border:4px dashed var(--line);border-radius:24px;font-weight:1000;color:var(--brown);
}
.puzzle-chip:disabled{opacity:.45;transform:scale(.96)}
@media(max-width:760px){
  .global-action-bar{left:8px;right:8px;bottom:calc(10px + env(safe-area-inset-bottom));justify-content:center;background:rgba(255,253,247,.94);border:3px solid rgba(179,223,243,.55);border-radius:22px;padding:7px}
  .global-action-bar .mini-action{padding:8px 10px;font-size:.78rem}
  .voice-target strong{font-size:clamp(24px,9vw,38px)}
  .coin-wallet{bottom:calc(86px + env(safe-area-inset-bottom));top:auto}
}

/* v3.4 restore original watercolor assets */
.level-visual.asset-visual{
  padding:0;
  border:0;
  background:#fffdf7;
  box-shadow:0 12px 26px rgba(36,90,134,.10);
}
.level-visual.asset-visual::before,.level-visual.asset-visual::after{display:none}
.level-visual.asset-visual img,.level-card .level-visual.asset-visual img{
  display:block;
  width:100%;
  height:100%;
  min-height:inherit;
  object-fit:cover;
  object-position:center;
  border-radius:inherit;
}
.mini-visual.asset-visual{min-height:96px}
.map-visual.asset-visual{min-height:118px;margin-top:28px;margin-bottom:6px}
.unlock-visual.asset-visual{min-height:260px}
.asset-buddy,.asset-basket{
  background:#fffdf7!important;
  border:0!important;
  box-shadow:0 10px 20px rgba(36,90,134,.12)!important;
  overflow:hidden;
}
.asset-buddy img,.asset-basket img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  border-radius:inherit;
}
.voice-animal.asset-buddy,.voice-basket.asset-basket,.mission-animal.asset-buddy,.mission-basket.asset-basket{
  border-radius:24px;
}
.basket-icon.asset-buddy{border-radius:18px}
.animal-word-card .asset-buddy{
  width:46px;
  height:46px;
  border-radius:16px;
  grid-area:animal;
}
.asset-buddy::before,.asset-buddy::after,.asset-basket::before,.asset-basket::after{display:none!important}
.simple-list article::before,.access-card::before,.locked-preview span::before,.island-card::before,.task::before,.voice-basket-card::before,#storyBlock::before,.speaker-teaser::before,.buy-strip::before,.shop-card::before{
  background-image:url("assets/level_art/level8_polite.jpeg");
  background-size:cover;
  background-position:center;
}
.simple-list article:nth-child(2)::before,.locked-preview span:nth-child(2)::before{background-image:url("assets/book_header.png")}
.simple-list article:nth-child(3)::before,.locked-preview span:nth-child(3)::before{background-image:url("assets/dolphin_reward.png")}
.simple-list article:nth-child(4)::before,.locked-preview span:nth-child(4)::before{background-image:url("assets/card_pearl.png")}
@media(max-width:640px){
  .watercolor-levels .path-level .asset-visual{min-height:86px}
  .map-visual.asset-visual{min-height:88px}
  .unlock-visual.asset-visual{min-height:190px}
}

/* v3.4 watercolor ocean storybook task cards */
:root{--paper:#fffdf7;--wash-blue:#eaf9ff;--wash-cream:#fff8df;--wash-yellow:#f8d987;--wash-coral:#f6a992;--wash-sea:#bfe8ed;--ink-soft:#4f6f82}
.card,.path-level,.level-card,.speaker-module,.simple-list article,.access-card,.locked-preview span,.shop-card,.practice-group,.animal-word-card{border-color:rgba(255,255,255,.86)!important;box-shadow:0 18px 38px rgba(36,90,134,.11),inset 0 1px 0 rgba(255,255,255,.72)}
.path-level,.level-card,.speaker-module,.simple-list article,.access-card,.locked-preview span,.animal-word-card{background:radial-gradient(circle at 16% 12%,rgba(255,255,255,.9) 0 18px,transparent 19px),radial-gradient(circle at 88% 18%,rgba(246,169,146,.22) 0 22px,transparent 23px),linear-gradient(180deg,rgba(255,253,247,.98),rgba(234,249,255,.82));border-radius:28px}
.path-level.locked,.speaker-module.locked,.level-card.locked,.island-card.locked{background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.9) 0 18px,transparent 19px),radial-gradient(circle at 86% 20%,rgba(246,169,146,.2) 0 22px,transparent 23px),linear-gradient(180deg,#fff8df,#f7fdff);opacity:.94;filter:none}
.path-level.free,.speaker-module.free,.level-card.unlocked,.access-card.free{background:radial-gradient(circle at 18% 12%,rgba(255,255,255,.92) 0 18px,transparent 19px),radial-gradient(circle at 84% 18%,rgba(248,217,135,.24) 0 24px,transparent 25px),linear-gradient(180deg,#eefbff,#fffdf7)}
.status,.path-level .status,.mini-badge{border:0;box-shadow:0 8px 18px rgba(36,90,134,.10)}
.watercolor-levels .path-level,.explorer-levels .path-level,.starter-levels .path-level,.speaker-levels .path-level,.teen-levels .path-level{align-content:start;gap:10px;overflow:hidden}
.level-visual{position:relative;min-height:118px;border:0;border-radius:26px;overflow:hidden;background:#fffdf7;box-shadow:0 10px 22px rgba(36,90,134,.08)}
.mini-visual{min-height:94px;border-radius:22px}.map-visual{width:100%;min-height:112px;margin-bottom:4px}.unlock-visual{min-height:260px}
.level-card{min-height:285px;padding:16px}.level-card .level-visual{margin-top:28px}
.simple-list article::before,.access-card::before,.locked-preview span::before{content:"";display:block;height:62px;border-radius:20px;margin-bottom:10px;background:radial-gradient(circle at 24% 58%,rgba(255,255,255,.88) 0 13px,transparent 14px),radial-gradient(circle at 70% 38%,rgba(246,169,146,.24) 0 18px,transparent 19px),linear-gradient(180deg,#eaf9ff,#fff8df);box-shadow:inset 0 -10px 18px rgba(36,90,134,.05)}
.locked-preview span::before{height:44px;border-radius:16px}.shop-card::before{content:"";display:block;width:110px;height:76px;margin:0 auto 10px;border-radius:28px;background:radial-gradient(circle at 34% 60%,#fff 0 13px,transparent 14px),radial-gradient(circle at 64% 48%,rgba(248,217,135,.78) 0 16px,transparent 17px),linear-gradient(180deg,#eaf9ff,#fff8df);box-shadow:inset 0 -10px 18px rgba(36,90,134,.06),0 10px 20px rgba(36,90,134,.10)}
.animal-mission-stage,.voice-basket-stage{background:radial-gradient(circle at 16% 15%,rgba(255,255,255,.9) 0 22px,transparent 23px),radial-gradient(circle at 84% 20%,rgba(246,169,146,.2) 0 25px,transparent 26px),linear-gradient(180deg,rgba(234,249,255,.86),rgba(255,253,247,.86));border:0;box-shadow:inset 0 -14px 30px rgba(36,90,134,.06),0 14px 28px rgba(36,90,134,.10)}
.voice-animal,.mission-animal,.basket-icon{border:0;background:transparent;box-shadow:none}
.mission-word-card{border:0;border-radius:24px;background:linear-gradient(180deg,#fffdf7,#fff8df);box-shadow:0 12px 24px rgba(36,90,134,.12),inset 0 -8px 16px rgba(240,165,30,.08)}.animal-word-card{border:0}.animal-word-card .animal{width:46px;height:42px}.animal-word-card .animal::before{width:42px;height:32px}.animal-word-card .animal::after{transform:translate(7px,-4px) scale(.78)}
.sentence-puzzle-card{background:linear-gradient(180deg,#fffdf7,#eaf9ff)}
.island-card{border-color:rgba(255,255,255,.84)!important;box-shadow:0 18px 38px rgba(36,90,134,.11),inset 0 1px 0 rgba(255,255,255,.72)}
.island-card::before,.task::before,.voice-basket-card::before,#storyBlock::before,.speaker-teaser::before,.buy-strip::before{
  content:"";
  display:block;
  height:74px;
  border-radius:24px;
  margin-bottom:10px;
  background:radial-gradient(circle at 28% 60%,rgba(255,255,255,.88) 0 15px,transparent 16px),radial-gradient(circle at 68% 36%,rgba(246,169,146,.24) 0 20px,transparent 21px),linear-gradient(180deg,#eaf9ff,#fff8df);
  box-shadow:inset 0 -12px 20px rgba(36,90,134,.05),0 8px 18px rgba(36,90,134,.07);
}
.task,.buy-strip{border-color:rgba(255,255,255,.82)!important;background:linear-gradient(180deg,#fffdf7,#f7fdff)!important;box-shadow:0 14px 30px rgba(36,90,134,.10)}
.voice-basket-card::before{height:86px;background:radial-gradient(circle at 24% 52%,rgba(255,255,255,.9) 0 14px,transparent 15px),radial-gradient(circle at 74% 46%,rgba(248,217,135,.38) 0 22px,transparent 23px),linear-gradient(180deg,#eaf9ff,#fff8df)}
#storyBlock::before{height:84px;background:radial-gradient(circle at 28% 50%,#fff 0 14px,transparent 15px),radial-gradient(circle at 72% 54%,rgba(243,207,125,.45) 0 16px,transparent 17px),linear-gradient(180deg,#eaf9ff,#fff8df)}
@media(max-width:980px){.level-visual{min-height:104px}.speaker-levels,.teen-levels{grid-template-columns:1fr 1fr}}
@media(max-width:640px){
  .watercolor-levels .path-level,.explorer-levels .path-level,.starter-levels .path-level,.speaker-levels .path-level,.teen-levels .path-level{grid-template-columns:92px 1fr;grid-template-areas:"status status" "visual title" "visual body" "actions actions";align-items:center;gap:8px 12px;padding:14px}
  .watercolor-levels .path-level .status{grid-area:status}.watercolor-levels .path-level .level-visual{grid-area:visual;min-height:86px}.watercolor-levels .path-level h3{grid-area:title;margin:0;font-size:1rem;line-height:1.25}.watercolor-levels .path-level p{grid-area:body;margin:0;font-size:.88rem;line-height:1.45}.watercolor-levels .path-level .button-row{grid-area:actions;margin:4px 0 0}
  .level-card{min-height:250px}.map-visual{min-height:86px}.unlock-visual{min-height:190px}
}

/* v3.4 final override: asset images only, no CSS-drawn task art */
.level-visual.asset-visual{padding:0!important;border:0!important;background:#fffdf7!important;box-shadow:0 12px 26px rgba(36,90,134,.10)!important;display:block!important;overflow:hidden!important}
.level-visual.asset-visual::before,.level-visual.asset-visual::after{display:none!important}
.level-visual.asset-visual img,.level-card .level-visual.asset-visual img{display:block!important;width:100%!important;height:100%!important;min-height:inherit;object-fit:cover;object-position:center;border-radius:inherit}
.mini-visual.asset-visual{min-height:96px!important}.map-visual.asset-visual{min-height:118px!important;margin-top:28px;margin-bottom:6px}.unlock-visual.asset-visual{min-height:260px!important}
.asset-buddy,.asset-basket{background:#fffdf7!important;border:0!important;box-shadow:0 10px 20px rgba(36,90,134,.12)!important;overflow:hidden!important;color:transparent!important}
.asset-buddy img,.asset-basket img{display:block!important;width:100%!important;height:100%!important;object-fit:cover;border-radius:inherit}
.voice-animal.asset-buddy,.voice-basket.asset-basket,.mission-animal.asset-buddy,.mission-basket.asset-basket{border-radius:24px!important}.basket-icon.asset-buddy{border-radius:18px!important}
.animal-word-card .asset-buddy{width:46px;height:46px;border-radius:16px;grid-area:animal}.asset-buddy::before,.asset-buddy::after,.asset-basket::before,.asset-basket::after{display:none!important}
.simple-list article::before,.access-card::before,.locked-preview span::before,.island-card::before,.task::before,.voice-basket-card::before,#storyBlock::before,.speaker-teaser::before,.buy-strip::before,.shop-card::before{background-image:url("assets/level_art/level8_polite.jpeg")!important;background-size:cover!important;background-position:center!important}
.simple-list article:nth-child(2)::before,.locked-preview span:nth-child(2)::before{background-image:url("assets/book_header.png")!important}.simple-list article:nth-child(3)::before,.locked-preview span:nth-child(3)::before{background-image:url("assets/dolphin_reward.png")!important}.simple-list article:nth-child(4)::before,.locked-preview span:nth-child(4)::before{background-image:url("assets/card_pearl.png")!important}
@media(max-width:640px){.watercolor-levels .path-level .asset-visual{min-height:86px!important}.map-visual.asset-visual{min-height:88px!important}.unlock-visual.asset-visual{min-height:190px!important}}
@media(max-width:520px){
  .animal-practice-grid{grid-template-columns:1fr}
  .voice-basket-stage,.animal-mission-stage{max-width:100%;grid-template-columns:54px minmax(0,1fr) 54px}
  .voice-basket-stage > *,.animal-mission-stage > *,.voice-target,.practice-bank,.practice-bank > *,.practice-group,.animal-task-intro,.mission-helper{min-width:0;max-width:100%}
  .voice-target .mini-badge,.voice-target strong,.voice-target small,.mission-word-card strong,.mission-word-card small{max-width:100%;overflow-wrap:anywhere;white-space:normal}
  .voice-target .mini-badge{width:100%;min-width:0;justify-content:center;text-align:center}
}

/* v4.1 soft ocean-tech choice mission */
.choice-mission-card{
  position:relative;
  overflow:hidden;
  background:
    radial-gradient(circle at 12% 12%,rgba(255,255,255,.9) 0 34px,transparent 35px),
    radial-gradient(circle at 86% 14%,rgba(143,211,224,.26) 0 58px,transparent 59px),
    linear-gradient(180deg,rgba(238,251,255,.96),rgba(255,253,247,.96));
}
.choice-mission-card::after{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:24px;
  pointer-events:none;
  background:
    linear-gradient(90deg,transparent 0 48%,rgba(143,211,224,.16) 49% 51%,transparent 52%),
    linear-gradient(0deg,transparent 0 48%,rgba(143,211,224,.14) 49% 51%,transparent 52%);
  opacity:.45;
}
.choice-mission-head,.choice-mission-grid,.choice-options-wrap,.choice-after-actions,.choice-mission-card > .feedback{position:relative;z-index:1}
.choice-mission-head{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:16px}
.choice-mission-head .step-title{margin:.25rem 0 0}
.scan-chip{
  border:3px solid rgba(143,211,224,.9);
  background:rgba(255,255,255,.72);
  color:var(--blue);
  border-radius:999px;
  padding:9px 13px;
  font-weight:1000;
  box-shadow:0 10px 22px rgba(36,90,134,.1);
}
.choice-mission-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(260px,.75fr);gap:16px;align-items:stretch}
.choice-brief-card,.choice-radar-card{
  border:4px solid rgba(255,255,255,.86);
  background:rgba(255,255,255,.72);
  border-radius:26px;
  padding:18px;
  box-shadow:0 14px 30px rgba(36,90,134,.1),inset 0 1px 0 rgba(255,255,255,.75);
}
.choice-brief-card h3{margin:0 0 8px;color:var(--blue);font-size:1.35rem}
.choice-question{font-size:clamp(1.1rem,2.2vw,1.45rem);line-height:1.45;font-weight:1000;color:#4f3f2d;margin:0 0 12px}
.choice-focus-pill{
  display:inline-flex;
  align-items:center;
  gap:8px;
  border-radius:999px;
  padding:9px 12px;
  background:#fff8df;
  color:#7a5a1c;
  font-weight:1000;
  margin-bottom:12px;
}
.choice-focus-pill strong{color:var(--blue)}
.teacher-listen-btn{display:inline-grid;gap:1px;min-width:220px}
.teacher-listen-btn small{font-size:.82rem;color:rgba(255,255,255,.9)}
.choice-tip{margin:10px 0 0;color:#5c6e7b;font-weight:900;line-height:1.45}
.choice-radar-card{display:grid;grid-template-columns:120px 1fr;gap:10px 14px;align-items:center}
.ocean-radar{
  grid-row:span 4;
  position:relative;
  width:116px;
  height:116px;
  display:grid;
  place-items:center;
  border-radius:50%;
  background:
    radial-gradient(circle,rgba(255,255,255,.96) 0 26%,rgba(143,211,224,.28) 27% 45%,rgba(255,253,247,.78) 46% 100%);
  border:4px solid rgba(255,255,255,.9);
  box-shadow:inset 0 0 0 3px rgba(143,211,224,.35),0 16px 26px rgba(36,90,134,.12);
}
.ocean-radar::before{
  content:"";
  position:absolute;
  inset:12px;
  border-radius:50%;
  border:2px dashed rgba(36,90,134,.24);
}
.ocean-radar::after{
  content:"";
  position:absolute;
  left:50%;
  top:50%;
  width:48%;
  height:3px;
  background:linear-gradient(90deg,rgba(240,165,30,.75),transparent);
  transform-origin:left center;
  animation:radarSweep 3s linear infinite;
}
.ocean-radar span{position:absolute;border-radius:50%;border:2px solid rgba(143,211,224,.45)}
.ocean-radar span:first-child{inset:25px}.ocean-radar span:nth-child(2){inset:43px}
.ocean-radar strong{position:relative;z-index:1;color:var(--blue);font-size:.86rem}
@keyframes radarSweep{to{transform:rotate(360deg)}}
.mission-stat{display:flex;justify-content:space-between;gap:10px;border-bottom:2px solid rgba(179,223,243,.65);padding:4px 0;color:#5c6e7b;font-weight:900}
.mission-stat strong{color:var(--blue)}
.mission-progress,.choice-speaking-meter{
  grid-column:1 / -1;
  height:14px;
  border-radius:999px;
  background:#e7f3f8;
  overflow:hidden;
  border:2px solid rgba(179,223,243,.95);
}
.mission-progress span,.choice-speaking-meter span{
  display:block;
  height:100%;
  width:0%;
  border-radius:inherit;
  background:linear-gradient(90deg,#8fd3e0,#f8d987,#f6a992);
  transition:width .16s ease;
}
.choice-radar-card p{grid-column:1 / -1;margin:0;color:var(--blue);font-weight:1000;text-align:center}
.choice-options-wrap{margin-top:16px}
.choice-options{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}
.choice-word-card{
  position:relative;
  min-height:132px;
  display:grid;
  place-items:center;
  gap:4px;
  overflow:hidden;
  border:4px solid rgba(255,255,255,.86);
  border-radius:26px;
  background:
    radial-gradient(circle at 22% 18%,rgba(255,255,255,.95) 0 24px,transparent 25px),
    linear-gradient(180deg,#fffdf7,#eefbff);
  box-shadow:0 16px 30px rgba(36,90,134,.11),inset 0 1px 0 rgba(255,255,255,.75);
  color:var(--blue);
}
.choice-word-card strong{font-size:clamp(1.8rem,4vw,2.8rem);line-height:1}
.choice-word-card small{font-size:1.05rem;color:#6b5a45;font-weight:1000}
.choice-word-card:hover{transform:translateY(-2px)}
.choice-word-card.selected{border-color:#8fd3e0}
.choice-word-card.correct{box-shadow:0 0 0 5px rgba(143,211,224,.3),0 18px 34px rgba(36,90,134,.13)}
.choice-word-card.wrong{border-color:#f6a992}
.choice-word-card.delivered{background:linear-gradient(180deg,#eaf9ff,#fff8df)}
.choice-scan-line{
  position:absolute;
  left:-20%;
  top:0;
  width:22%;
  height:100%;
  background:linear-gradient(90deg,transparent,rgba(143,211,224,.45),transparent);
  opacity:0;
}
.choice-word-card.scanning .choice-scan-line{animation:cardScan .82s ease-out}
@keyframes cardScan{0%{left:-25%;opacity:0}20%{opacity:1}100%{left:105%;opacity:0}}
.choice-after-actions{display:grid;grid-template-columns:minmax(180px,260px) 1fr;gap:14px;align-items:center;margin-top:14px}
.choice-delivery-stage{
  position:relative;
  min-height:76px;
  border-radius:24px;
  background:linear-gradient(90deg,rgba(234,249,255,.85),rgba(255,253,247,.85));
  overflow:hidden;
  border:3px solid rgba(255,255,255,.85);
}
.choice-delivery-animal,.choice-delivery-basket{
  position:absolute;
  top:50%;
  transform:translateY(-50%);
  width:58px;
  height:58px;
  display:grid;
  place-items:center;
}
.choice-delivery-animal{left:12px}.choice-delivery-basket{right:12px}
.choice-delivery-animal img,.choice-delivery-basket img{width:100%;height:100%;object-fit:contain}
.choice-delivery-card{
  position:absolute;
  left:50%;
  top:50%;
  transform:translate(-50%,-50%);
  border-radius:18px;
  padding:10px 18px;
  background:#fff8df;
  color:var(--blue);
  font-weight:1000;
  box-shadow:0 12px 24px rgba(36,90,134,.14);
}
.choice-delivery-animal.deliver{animation:choiceAnimalDeliver 1.05s ease-in-out}
.choice-delivery-card.deliver{animation:choiceCardDeliver 1.05s ease-in-out}
.choice-delivery-basket.catch{animation:basketCatch 1.05s ease-in-out}
@keyframes choiceAnimalDeliver{50%{transform:translate(calc(100vw - 310px),-50%) scale(1.05) rotate(7deg)}}
@keyframes choiceCardDeliver{0%{opacity:1}65%{opacity:1;transform:translate(130px,-50%) scale(.9)}100%{opacity:0;transform:translate(170px,-50%) scale(.65)}}
@media(max-width:760px){
  .choice-mission-card{padding:14px}
  .choice-mission-head{align-items:flex-start}
  .scan-chip{font-size:.78rem;padding:7px 9px}
  .choice-mission-grid{grid-template-columns:1fr;gap:10px}
  .choice-brief-card,.choice-radar-card{padding:12px;border-radius:22px}
  .choice-radar-card{grid-template-columns:84px 1fr}
  .ocean-radar{width:82px;height:82px}
  .choice-options{grid-template-columns:1fr 1fr 1fr;gap:8px}
  .choice-word-card{min-height:92px;border-radius:20px;padding:10px 6px}
  .choice-word-card strong{font-size:1.55rem}
  .choice-word-card small{font-size:.88rem}
  .choice-after-actions{grid-template-columns:1fr;gap:9px}
  .choice-delivery-stage{min-height:62px}
  .choice-delivery-animal,.choice-delivery-basket{width:46px;height:46px}
  .choice-delivery-card{padding:8px 12px}
  @keyframes choiceAnimalDeliver{50%{transform:translate(calc(100vw - 155px),-50%) scale(1.04) rotate(7deg)}}
  @keyframes choiceCardDeliver{0%{opacity:1}65%{opacity:1;transform:translate(70px,-50%) scale(.9)}100%{opacity:0;transform:translate(94px,-50%) scale(.65)}}
}
@media(max-width:430px){
  .choice-mission-card .guide-steps{display:none}
  .choice-mission-card{padding:10px}
  .choice-mission-head{margin-bottom:8px}
  .scan-chip{display:none}
  .choice-mission-head .step-title{font-size:1.32rem}
  .choice-mission-grid{gap:8px}
  .choice-brief-card,.choice-radar-card{padding:9px;border-radius:18px}
  .choice-brief-card h3{font-size:1.05rem;margin-bottom:4px}
  .choice-question{font-size:.96rem;line-height:1.28;margin-bottom:8px}
  .choice-focus-pill{font-size:.78rem;padding:6px 8px;margin-bottom:8px}
  .teacher-listen-btn{width:100%;min-width:0}
  .teacher-listen-btn small{font-size:.74rem}
  .choice-tip{display:none}
  .choice-radar-card{grid-template-columns:58px 1fr 1fr;gap:5px 7px}
  .ocean-radar{width:56px;height:56px;grid-row:span 2}
  .ocean-radar::before{inset:8px}
  .ocean-radar strong{font-size:.64rem}
  .mission-stat{display:grid;gap:1px;font-size:.72rem;line-height:1.05;padding:2px 0}
  .mission-stat span{font-size:.68rem}
  .mission-progress,.choice-speaking-meter{height:9px}
  .choice-radar-card p{font-size:.78rem;line-height:1.15}
  .choice-options{grid-template-columns:1fr 1fr 1fr}
  .choice-options-wrap{margin-top:8px}
  .choice-word-card{min-height:74px;border-radius:18px}
  .choice-word-card strong{font-size:1.22rem}
  .choice-word-card small{font-size:.78rem}
  .choice-after-actions{margin-top:8px}
  .choice-delivery-stage{min-height:52px}
  .choice-delivery-animal,.choice-delivery-basket{width:38px;height:38px}
  .choice-delivery-card{font-size:.82rem;padding:7px 10px}
  .choice-mission-card > .feedback{font-size:.86rem;line-height:1.28}
}

/* v3.5 four island watercolor main visuals */
.island-card::before{display:none!important}
.island-thumb{
  display:block;
  width:100%;
  aspect-ratio:1.24;
  object-fit:contain;
  object-position:center;
  border-radius:22px;
  background:#fffdf7;
  border:5px solid rgba(255,255,255,.9);
  box-shadow:0 12px 24px rgba(36,90,134,.12);
  margin-bottom:8px;
}
@media(max-width:640px){
  .island-thumb{max-height:220px}
}

/* v3.7 Speaker cards and clean information pages */
.speaker-level-art{
  aspect-ratio:736 / 480;
  min-height:0!important;
  background:#eefbff!important;
}
.speaker-level-art img{
  object-fit:contain!important;
  background:#eefbff;
}
@media(max-width:640px){
  .speaker-levels{grid-template-columns:1fr!important}
  .speaker-level-art{width:100%;aspect-ratio:736 / 480}
  .speaker-levels .path-level{
    grid-template-columns:1fr!important;
    grid-template-areas:"status" "visual" "title" "body" "actions"!important;
  }
  .speaker-levels .path-level .level-visual{
    grid-area:visual;
    width:100%;
  }
  .speaker-levels .path-level .status{grid-area:status}
  .speaker-levels .path-level h3{grid-area:title}
  .speaker-levels .path-level p{grid-area:body}
  .speaker-levels .path-level .button-row{grid-area:actions}
}
.page-lite .hero,
body[data-page="worksheets"] .hero{
  grid-template-columns:1fr;
}
.page-lite .hero > img,
body[data-page="worksheets"] .hero > img{
  display:none!important;
}
.page-lite .simple-list,
body[data-page="worksheets"] .locked-preview{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:14px;
}
.page-lite .simple-list article,
body[data-page="worksheets"] .locked-preview span,
.page-lite .access-card{
  display:grid;
  grid-template-columns:54px 1fr;
  gap:12px;
  align-items:start;
  text-align:left;
  padding:18px;
}
.page-lite .simple-list article::before,
body[data-page="worksheets"] .locked-preview span::before,
.page-lite .access-card::before{
  content:"i";
  width:48px;
  height:48px;
  display:grid;
  place-items:center;
  border-radius:18px;
  margin:0;
  background:#eefbff!important;
  background-image:none!important;
  border:3px solid rgba(179,223,243,.85);
  color:var(--blue);
  font-weight:1000;
  font-size:1.35rem;
  box-shadow:none;
}
.page-lite .simple-list article:nth-child(1)::before{content:"?"}
.page-lite .simple-list article:nth-child(2)::before{content:"✓"}
.page-lite .simple-list article:nth-child(3)::before{content:"★"}
.page-lite .simple-list article:nth-child(4)::before{content:"+"}
body[data-page="worksheets"] .locked-preview span:nth-child(1)::before{content:"4-7"}
body[data-page="worksheets"] .locked-preview span:nth-child(2)::before{content:"9-12";font-size:.95rem}
body[data-page="worksheets"] .locked-preview span:nth-child(3)::before{content:"13+"}
.page-lite .simple-list article h3,
.page-lite .simple-list article p{
  grid-column:2;
}
body[data-page="worksheets"] .locked-preview span{
  grid-template-columns:56px 1fr;
}
@media(max-width:700px){
  .page-lite .simple-list,
  body[data-page="worksheets"] .locked-preview{
    grid-template-columns:1fr;
  }
  .page-lite .simple-list article,
  body[data-page="worksheets"] .locked-preview span,
  .page-lite .access-card{
    grid-template-columns:46px 1fr;
    padding:15px;
  }
  .page-lite .simple-list article::before,
  body[data-page="worksheets"] .locked-preview span::before,
  .page-lite .access-card::before{
    width:42px;
    height:42px;
    border-radius:15px;
  }
}
