.teeth-page-shell{
  background:linear-gradient(180deg,#ffffff 0%,#f8f5ff 100%);
  border-radius:34px;
  padding:28px;
  box-shadow:0 18px 48px rgba(72,62,127,.10);
}
.teeth-page-header img{max-height:132px;width:auto;object-fit:contain}
.teeth-voice-preview{display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-bottom:18px}
.teeth-voice-preview .small-song-btn{padding:.8rem 1rem}
.teeth-status-strip{display:flex;justify-content:space-between;gap:18px;align-items:center;flex-wrap:wrap;margin-bottom:18px}
.teeth-status-text{
  flex:1 1 360px;
  background:#eefaff;
  border:1px solid #d9f2ff;
  color:var(--purple-dark);
  font-weight:800;
  border-radius:18px;
  padding:14px 16px;
  min-height:58px;
  display:flex;
  align-items:center;
}
.teeth-progress-pill{
  display:flex;
  align-items:center;
  gap:12px;
  background:#fff9d9;
  border:1px solid #f1da7a;
  color:var(--purple-dark);
  border-radius:999px;
  padding:10px 14px;
  font-weight:900;
}
.teeth-progress-pill span{white-space:nowrap}
.teeth-progress-bar{
  width:210px;
  height:14px;
  background:#efe7ff;
  border-radius:999px;
  overflow:hidden;
  box-shadow:inset 0 1px 2px rgba(0,0,0,.06);
}
.teeth-progress-fill{
  width:0%;
  height:100%;
  border-radius:999px;
  background:linear-gradient(90deg,#48d3f2 0%,#79f0dc 52%,#ffe467 100%);
  transition:width .18s linear;
}
.teeth-game-board{
  position:relative;
  width:min(980px,100%);
  margin:0 auto;
  aspect-ratio:4 / 3;
  border-radius:34px;
  overflow:hidden;
  background:linear-gradient(180deg,#ffe4ea 0%,#ffd6e0 100%);
  box-shadow:inset 0 0 0 8px rgba(255,255,255,.75), 0 18px 38px rgba(72,62,127,.14);
  touch-action:none;
}
.teeth-mouth-stage,
.teeth-bug-layer,
.teeth-bubble-layer,
.teeth-overlay{
  position:absolute;
  inset:0;
}
.teeth-mouth-stage{overflow:hidden}
.teeth-mouth-layer{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  user-select:none;
  -webkit-user-drag:none;
}
.teeth-mouth-layer.clean{opacity:1}
.teeth-mouth-layer.light,
.teeth-mouth-layer.medium,
.teeth-mouth-layer.dirty{transition:opacity .26s ease}
.teeth-bug-layer{pointer-events:none}
.teeth-bug-sprite{
  --bug-scale:1;
  position:absolute;
  width:clamp(72px,9vw,112px);
  user-select:none;
  pointer-events:none;
  filter:drop-shadow(0 8px 16px rgba(39,18,87,.18));
  animation:teethBugJitter .62s ease-in-out infinite alternate;
  transition:opacity .25s ease, filter .25s ease;
}
.teeth-bug-sprite.scared{filter:drop-shadow(0 10px 18px rgba(39,18,87,.25)) brightness(1.08)}
.teeth-bug-sprite.cleaned{
  animation:none;
  opacity:0;
  transform:translate(-50%,-50%) scale(.2) rotate(16deg);
  filter:blur(2px);
}
@keyframes teethBugJitter{
  0%{transform:translate(-50%,-50%) rotate(-4deg) translateY(0) scale(var(--bug-scale))}
  50%{transform:translate(-50%,-50%) rotate(5deg) translateY(-2px) scale(var(--bug-scale))}
  100%{transform:translate(-50%,-50%) rotate(-3deg) translateY(2px) scale(var(--bug-scale))}
}
.teeth-bubble-sprite{
  position:absolute;
  transform:translate(-50%,-50%);
  pointer-events:none;
  animation:teethBubbleFloat .9s ease-out forwards;
  filter:drop-shadow(0 8px 16px rgba(99,180,255,.18));
  opacity:.95;
}
@keyframes teethBubbleFloat{
  0%{opacity:.98;transform:translate(-50%,-50%) scale(.72)}
  65%{opacity:.92}
  100%{opacity:0;transform:translate(-50%,-128%) scale(1.24)}
}
.teeth-brush{
  position:absolute;
  left:92%;
  top:92%;
  width:clamp(180px,22vw,270px);
  aspect-ratio:1.47 / 1;
  border:0;
  background:rgba(255,255,255,.78);
  padding:14px 14px 8px;
  border-radius:28px;
  z-index:4;
  cursor:grab;
  transform:translate(-50%,-50%) rotate(-14deg);
  transition:filter .18s ease, box-shadow .18s ease;
  touch-action:none;
  box-shadow:0 10px 24px rgba(68,47,122,.18), inset 0 0 0 2px rgba(255,255,255,.6);
}
.teeth-brush img{width:100%;height:auto;display:block;pointer-events:none;user-select:none;-webkit-user-drag:none}
.teeth-brush.is-dragging{cursor:grabbing;filter:drop-shadow(0 10px 20px rgba(39,18,87,.25));box-shadow:0 16px 30px rgba(68,47,122,.26), inset 0 0 0 2px rgba(255,255,255,.7)}
.teeth-brush-label{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  background:#fff4b5;
  color:var(--purple-dark);
  font-weight:900;
  font-size:.9rem;
  padding:6px 12px;
  border-radius:999px;
  margin:0 auto 8px;
  box-shadow:0 4px 10px rgba(255,210,82,.28);
}
.teeth-overlay{
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  z-index:6;
  background:rgba(72,45,115,.18);
  backdrop-filter:blur(4px);
}
.teeth-overlay.is-hidden{display:none}
.teeth-overlay-card{
  width:min(540px,92%);
  background:#fff;
  border-radius:28px;
  padding:24px;
  text-align:center;
  box-shadow:0 20px 40px rgba(34,19,79,.22);
}
.teeth-overlay-card h2{margin:8px 0 12px}
.teeth-overlay-card p{margin:0 auto 18px;max-width:44ch;color:var(--ink-soft);font-weight:700;line-height:1.55}
.teeth-overlay-card.celebration{background:linear-gradient(180deg,#fffef7 0%,#ffffff 100%)}
.teeth-finish-actions{display:flex;gap:12px;justify-content:center;flex-wrap:wrap}
.teeth-controls-row{display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:18px}
.teeth-controls-row .btn{min-width:190px}
.teeth-brush-glow{
  position:absolute;
  width:90px;
  height:90px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(255,255,255,.85) 0%, rgba(122,233,255,.34) 35%, rgba(122,233,255,0) 70%);
  transform:translate(-50%,-50%);
  pointer-events:none;
  opacity:0;
  transition:opacity .12s ease;
  z-index:3;
}
.teeth-brush-glow.show{opacity:1}
@media (max-width: 820px){
  .teeth-page-shell{padding:18px}
  .teeth-page-header img{max-height:96px}
  .teeth-progress-pill{width:100%;justify-content:space-between;border-radius:18px}
  .teeth-progress-bar{width:min(60vw,240px)}
  .teeth-game-board{aspect-ratio:4 / 5; border-radius:26px}
  .teeth-brush{left:88%;top:92%;width:clamp(160px,42vw,230px);padding:10px 10px 6px}
  .teeth-brush-label{font-size:.78rem;padding:5px 10px}
}
@media (max-width: 560px){
  .teeth-status-text{font-size:.98rem}
  .teeth-overlay-card{padding:18px}
  .teeth-brush{left:84%; top:92%; width:clamp(150px,44vw,205px)}
}

/* v11.5 — brush grab state + finish controls */
.teeth-brush.has-been-grabbed{
  background:transparent;
  padding:0;
  border-radius:0;
  box-shadow:none;
}
.teeth-brush.has-been-grabbed .teeth-brush-label{
  display:none;
}
.teeth-brush.has-been-grabbed.is-dragging{
  box-shadow:none;
}
.teeth-finish-actions .btn,
.teeth-finish-actions a.btn{
  min-width:150px;
}
.teeth-song-toggle{background:#fff2a8!important;color:var(--purple-dark)!important;border:2px solid #ffd955!important}
.teeth-song-toggle[aria-pressed="false"]{background:#f1eff8!important;border-color:#ded9ee!important;color:#71698c!important}


/* ===== v12.1: three dental tools + fixed clean mouth ===== */
.teeth-mouth-stage .teeth-mouth-layer.clean{opacity:1!important}
.teeth-tool-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:0 auto 18px;width:min(900px,100%)}
.teeth-guide-item{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:center;padding:12px 14px;border-radius:20px;background:#fff;box-shadow:0 8px 22px rgba(72,62,127,.08);border:2px solid #eee8ff;color:var(--purple-dark)}
.teeth-guide-item>span{grid-row:1/3;font-size:1.8rem}.teeth-guide-item strong{font-size:.98rem}.teeth-guide-item small{font-weight:800;color:var(--ink-soft)}
.brush-guide{border-color:#a9c8ff;background:#f2f7ff}.pick-guide{border-color:#93e3bd;background:#f0fff8}.floss-guide{border-color:#ffd77d;background:#fffaf0}
.teeth-tool{position:absolute;z-index:4;border:0;background:rgba(255,255,255,.86);padding:10px;border-radius:22px;cursor:grab;touch-action:none;box-shadow:0 10px 24px rgba(68,47,122,.18),inset 0 0 0 2px rgba(255,255,255,.65);transition:filter .16s ease,box-shadow .16s ease,transform .16s ease}
.teeth-tool img{width:100%;height:100%;object-fit:contain;display:block;pointer-events:none;user-select:none;-webkit-user-drag:none}
.teeth-tool.is-dragging{cursor:grabbing;filter:drop-shadow(0 10px 18px rgba(39,18,87,.23));box-shadow:0 14px 28px rgba(68,47,122,.24)}
.teeth-tool.has-been-grabbed{background:transparent;padding:0;border-radius:0;box-shadow:none}
.teeth-tool.has-been-grabbed .teeth-tool-label{display:none}
.teeth-tool-label{display:inline-flex;align-items:center;justify-content:center;background:#fff4b5;color:var(--purple-dark);font-weight:900;font-size:.78rem;padding:5px 9px;border-radius:999px;margin:0 auto 5px;box-shadow:0 4px 10px rgba(255,210,82,.24);white-space:nowrap}
.teeth-brush{left:88%;top:91%;width:clamp(150px,18vw,225px);aspect-ratio:1.47/1;transform:translate(-50%,-50%) rotate(-12deg)}
.teeth-pick{left:12%;top:91%;width:clamp(135px,16vw,205px);aspect-ratio:2.33/1;transform:translate(-50%,-50%) rotate(8deg)}
.teeth-floss{left:50%;top:92%;width:clamp(105px,12vw,150px);aspect-ratio:1.62/1;transform:translate(-50%,-50%)}
.teeth-tool-glow{position:absolute;width:92px;height:92px;border-radius:50%;transform:translate(-50%,-50%);pointer-events:none;opacity:0;z-index:3;transition:opacity .1s ease;background:radial-gradient(circle,rgba(255,255,255,.9) 0%,rgba(107,225,255,.34) 40%,rgba(107,225,255,0) 72%)}
.teeth-tool-glow.show{opacity:1}.teeth-tool-glow.pick{background:radial-gradient(circle,rgba(255,255,255,.92) 0%,rgba(94,222,167,.34) 40%,rgba(94,222,167,0) 72%)}.teeth-tool-glow.floss{background:radial-gradient(circle,rgba(255,255,255,.92) 0%,rgba(255,213,95,.36) 40%,rgba(255,213,95,0) 72%)}
.teeth-bug-sprite.wrong-tool{animation:teethWrongTool .18s linear 2;filter:drop-shadow(0 10px 18px rgba(39,18,87,.24)) saturate(.75)}
@keyframes teethWrongTool{0%{margin-left:0}33%{margin-left:-5px}66%{margin-left:5px}100%{margin-left:0}}
@media(max-width:820px){.teeth-tool-guide{grid-template-columns:1fr}.teeth-guide-item{padding:9px 12px}.teeth-brush{left:82%;top:94%;width:clamp(130px,34vw,190px)}.teeth-pick{left:18%;top:94%;width:clamp(120px,31vw,180px)}.teeth-floss{left:50%;top:94%;width:clamp(90px,23vw,130px)}}
@media(max-width:560px){.teeth-tool-label{font-size:.7rem}.teeth-brush{left:80%;top:95%}.teeth-pick{left:20%;top:95%}.teeth-floss{top:95%}}


/* ===== v12.2: clearer color coding + snapback support ===== */
.teeth-tool{
  transition:filter .16s ease,box-shadow .16s ease,transform .16s ease,left .18s ease,top .18s ease;
}
.teeth-brush .teeth-tool-label{
  background:linear-gradient(90deg,#8bdfff 0%,#cfb1ff 100%);
  box-shadow:0 4px 10px rgba(121,160,255,.25);
}
.teeth-pick .teeth-tool-label{
  background:linear-gradient(90deg,#7ee184 0%,#ff9ccc 100%);
  box-shadow:0 4px 10px rgba(103,210,126,.24);
}
.teeth-floss .teeth-tool-label{
  background:linear-gradient(90deg,#ffe36c 0%,#ffb65c 100%);
  box-shadow:0 4px 10px rgba(255,194,92,.24);
}


/* ===== v12.3: more bugs, slightly smaller ===== */


/* ===== v12.4 / v13.16: simplified single toothbrush mode ===== */
.single-tool-guide{grid-template-columns:minmax(0,1fr);width:min(420px,100%);}
.single-tool-guide .teeth-guide-item{justify-self:center;width:100%;}
.teeth-guide-item small{font-size:.92rem;}
