
:root{--dp-purple:#5d3b72;--dp-gold:#efc64d;--dp-cream:#fffaf0;--dp-teal:#77aaa5;--dp-ink:#3f3344}.dental-page{background:#fffdf7;color:var(--dp-ink)}.wrap{max-width:1120px;margin-inline:auto;padding-inline:20px}.dp-hero,.dp-section{padding-block:3.2rem}.dp-hero{text-align:center}.dp-hero h1{font-size:clamp(2.3rem,6vw,4.6rem);line-height:1}.dp-subtitle{font-size:1.25rem;font-weight:800}.dp-actions{display:flex;gap:.7rem;justify-content:center;align-items:center;flex-wrap:wrap}.dp-primary,.dp-secondary,.dp-listen,.dp-sound-buttons button,.dp-tools button,.dp-glasses button,.dp-practice button,.dp-steps button{font:inherit;cursor:pointer}.dp-primary{display:inline-flex;align-items:center;justify-content:center;background:var(--dp-gold);color:#3c2d40;border:2px solid #d6aa2f;border-radius:999px;padding:.8rem 1.2rem;font-weight:900;text-decoration:none;box-shadow:0 4px 0 #c79720}.dp-secondary,.dp-listen{background:white;color:var(--dp-purple);border:2px solid #78548b;border-radius:999px;padding:.58rem .85rem;font-weight:850}.dp-small-link a{color:var(--dp-purple);font-weight:750}.shop-chapter,.dp-kicker{font-size:.78rem;letter-spacing:.08em;font-weight:900;color:#765287}.dp-section h2,.dp-grownups h2{font-size:clamp(1.8rem,4vw,2.8rem);color:#4e3262}.dp-scene{position:relative;min-height:390px;border-radius:28px;overflow:hidden;background:linear-gradient(#cdecea 0 63%,#a7d69e 63%);margin:1.2rem 0}.dp-building{position:absolute;width:48%;height:55%;left:29%;bottom:10%;background:#fff0c9;border:5px solid #79586f;border-radius:18px}.dp-roof{position:absolute;left:-8%;right:-8%;top:-25%;height:30%;background:#735078;clip-path:polygon(50% 0,100% 100%,0 100%)}.dp-window{position:absolute;left:12%;top:28%;background:#bde6ef;border:5px solid white;padding:1rem}.dp-door{position:absolute;right:13%;bottom:0;width:25%;height:58%;background:#4b9d99;display:grid;place-items:center;font-size:2rem}.dp-find-target{position:absolute;left:38%;top:6%;width:76px;height:76px;border-radius:50%;border:5px solid white;background:#fff9d9;color:#735078;font-size:2.3rem;cursor:pointer}.dp-find-target.clue{animation:dpPulse 1s 3}.dp-find-target.found{box-shadow:0 0 0 7px #68417c}.dp-bridge{position:absolute;left:0;bottom:4%;width:35%;height:18%;background:#b79a74;border-radius:50% 50% 0 0}.dp-flowers{position:absolute;right:3%;bottom:3%;font-size:2rem}.dp-mission{background:#f7f0fa;border-radius:20px;padding:1rem 1.2rem}.dp-banner{background:#68417c;color:white;padding:1.2rem;font-size:1.25rem}.dp-team{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1rem}.dp-person{background:#fff7df;border:1px solid #e3cf9b;border-radius:24px;padding:1rem;display:grid;grid-template-columns:150px 1fr;gap:1rem}.dp-collywobble{height:220px;border-radius:48% 52% 44% 56%;position:relative;display:grid;place-items:center;font-size:1.7rem;box-shadow:inset 0 0 0 12px rgba(255,255,255,.22)}.dp-pearl{background:linear-gradient(135deg,#9b83bf,#d5c7e6)}.dp-floss{background:linear-gradient(135deg,#e5a4c9,#b79bd5)}.dp-fuzz{position:absolute;top:10%;font-size:2.6rem}.dp-face{background:#f5e3c7;padding:.5rem;border-radius:50%;margin-top:-10px}.dp-coat{position:absolute;bottom:12%;background:white;padding:.5rem 1.3rem;border-radius:14px}.dp-tools,.dp-glasses{display:grid;grid-template-columns:1fr 1fr;gap:.45rem}.dp-tools button,.dp-glasses button,.dp-practice button,.dp-sound-buttons button{background:white;border:2px solid #79558b;border-radius:14px;padding:.65rem;color:#4e3262;font-weight:800}.dp-tools b{display:block;font-size:1.5rem}.dp-result{font-weight:800;color:#5d3b72}.dp-room-scene{background:linear-gradient(#f5e8cf 0 72%,#c6a87f 72%)}.dp-room-find{position:absolute;border:3px solid #68417c;background:#fff9df;border-radius:14px;font-weight:900}.dp-room-find.chair{left:31%;bottom:8%;width:37%;height:40%;font-size:1.3rem}.dp-room-find.light{left:43%;top:8%;font-size:2.4rem}.dp-room-find.cup{right:13%;bottom:22%;font-size:1.8rem}.dp-sink{position:absolute;right:8%;bottom:9%;font-size:4rem}.dp-wall-pics{position:absolute;left:7%;top:13%;font-size:2rem}.dp-room-find.found{background:#efe2ff;box-shadow:0 0 0 5px #f1cc55}.dp-progress{font-size:1.7rem;color:#68417c}.dp-chair-stage{height:310px;background:#edf7f5;border-radius:25px;position:relative;overflow:hidden;margin:1rem 0}.dp-ollie-chair{position:absolute;left:34%;bottom:22%;width:34%;height:42%;transition:transform 2s ease;transform-origin:bottom center}.dp-chair-body{height:70%;background:#7da9a2;border:5px solid #4e706b;border-radius:30px}.dp-ollie-face{text-align:center;font-size:2.2rem;background:#b995c7;width:85px;height:75px;border-radius:50%;margin:auto;display:grid;place-items:center}.dp-ollie-chair.tipped{transform:rotate(22deg)}.dp-over-light{position:absolute;left:49%;top:5%;font-size:4rem;opacity:.25;transition:.8s}.dp-chair-stage:has(.tipped) .dp-over-light{opacity:1}.dp-chair-extra{font-weight:900;color:#5d3b72}.dp-steps{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.6rem;margin:1rem 0}.dp-steps>button{background:#fff7df;border:2px solid #dfc88e;border-radius:18px;padding:.8rem;min-width:0}.dp-steps span,.dp-steps strong,.dp-steps small{display:block}.dp-steps span{font-size:1.6rem}.dp-steps strong{margin:.35rem 0}.dp-step-panels{margin-top:.8rem}.dp-step-panel{background:#f7f0fa;border-radius:22px;padding:1rem}.dp-step-panel[hidden]{display:none!important}.dp-wait-scene{display:flex;gap:1rem;font-size:2.4rem;background:#eaf7f5;padding:1rem;border-radius:16px}.dp-inline-link{display:inline-block;text-decoration:none}.dp-mouth{font-size:5rem}.dp-hand{font:inherit;font-size:2rem;border:0;background:#fff0a8;border-radius:20px;padding:1rem}.dp-practice{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.8rem}.dp-celebrate{margin-top:1rem;background:linear-gradient(90deg,#eef8e7,#fff6c9);border-radius:22px;padding:1rem;display:flex;justify-content:space-between;align-items:center}.dp-celebrate[hidden]{display:none!important}.dp-sticker{width:120px;height:120px;border-radius:50%;border:6px solid #e1b84b;background:#fff0a8;display:grid;place-items:center;text-align:center;color:#5d3b72;font-weight:900}.dp-sound-buttons{display:flex;gap:.6rem;flex-wrap:wrap}.dp-counter{display:flex;gap:.7rem;align-items:center}.dp-counter>strong{font-size:4rem;color:#5d3b72}.dp-brush-game{background:#edf7f5;border-radius:24px;padding:1rem}.dp-brush-mouth{display:grid;grid-template-columns:repeat(4,60px);gap:10px;justify-content:center;background:#8b5575;border-radius:80px;padding:2rem;margin-bottom:1rem}.dp-brush-mouth button{height:45px;border:0;border-radius:12px;background:#fffbe9;font-size:0}.dp-brush-mouth button.clean{box-shadow:0 0 16px 6px #ffe86c}.dp-brush-mouth button.clean:after{content:"✦";font-size:1.5rem;color:#e1b84b}.dp-brush-progress{height:12px;background:white;border-radius:999px;overflow:hidden;margin-top:1rem}.dp-brush-progress i{display:block;width:0;height:100%;background:#efc64d;transition:width .4s}.dp-wobbly,.dp-grownups{margin-block:2rem;background:#f7f0fa;border-radius:22px;padding:1.2rem}.dp-grownups details{background:white;border-radius:14px;padding:.8rem}.dp-grownups summary{font-weight:900;color:#5d3b72;cursor:pointer}.dp-worry-links{display:grid;grid-template-columns:repeat(2,1fr);gap:.4rem;margin-top:.6rem}.dp-worry-links a{background:#fff7df;border-radius:10px;padding:.5rem;color:#5d3b72}.dp-modal{position:fixed;inset:0;background:#0007;z-index:9999;display:grid;place-items:center;padding:1rem}.dp-modal[hidden]{display:none}.dp-modal>div{background:#fffaf0;border-radius:22px;padding:1.2rem;max-width:500px}.trail-marker{max-width:1080px;margin:2rem auto;padding:2rem;text-align:center}.trail-lantern-button{padding:.8rem 1.1rem;border-radius:999px;border:2px solid #8a6b32;background:#fff4c7;font-weight:900}
@keyframes dpPulse{50%{transform:scale(1.14);box-shadow:0 0 0 8px #f1cc5588}}
@media(max-width:980px){.dp-steps{grid-template-columns:repeat(3,1fr)}.dp-team{grid-template-columns:1fr}}
@media(max-width:650px){.dp-steps{grid-template-columns:repeat(2,1fr)}.dp-person{grid-template-columns:1fr}.dp-collywobble{height:180px}.dp-worry-links{grid-template-columns:1fr}}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}.dp-ollie-chair,.dp-find-target{transition:none!important;animation:none!important}}

/* Canonical Ollie dental-chair image cross-fade */
.dp-chair-image-stage{height:auto;min-height:0;aspect-ratio:768/1024;background:#edf7f5;position:relative;overflow:hidden;margin:1rem auto;max-width:620px;border-radius:25px}
.dp-chair-image{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;opacity:0;transition:opacity 1.25s ease;pointer-events:none}
.dp-chair-image.is-visible{opacity:1}
@media(prefers-reduced-motion:reduce){.dp-chair-image{transition-duration:.01ms!important}}

/* Team + treatment-room artwork refinement */
.dp-banner{background:#dff3ec;color:#4e3262;border-top:1px solid #c4e2d7;border-bottom:1px solid #c4e2d7;padding:1.15rem;font-size:1.25rem;text-align:center}.dp-banner strong{color:#3f6f69}.dp-person{background:#fffaf0;border:1px solid #e5d7b9;box-shadow:0 8px 22px rgba(83,60,89,.07);align-items:start}.dp-person-art{min-height:250px;display:flex;align-items:flex-end;justify-content:center;background:#f4eee5;border-radius:20px;overflow:hidden;padding:.5rem}.dp-person-art img{display:block;width:100%;height:260px;object-fit:contain;object-position:center bottom}.dp-mission{background:#f8f1fb;border:1px solid #e2d3ea;box-shadow:0 6px 18px rgba(83,60,89,.05)}
.dp-room-picture{position:relative;margin:1rem 0;border-radius:26px;overflow:hidden;background:#f4eee5;box-shadow:0 8px 24px rgba(83,60,89,.08)}.dp-room-picture>img{display:block;width:100%;height:auto}.dp-room-hotspot{position:absolute;border:0;background:transparent;cursor:pointer;border-radius:22px;color:transparent;font-size:0}.dp-room-hotspot:focus-visible,.dp-room-hotspot.clue{outline:5px solid #efc64d;outline-offset:2px;background:rgba(255,246,180,.18)}.dp-room-hotspot.found:after{content:'★';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:58px;height:58px;border-radius:50%;display:grid;place-items:center;background:#fff9df;border:5px solid #68417c;color:#68417c;font-size:30px;box-shadow:0 3px 10px #0002}.dp-room-hotspot.found:before{content:'✓';position:absolute;z-index:2;left:calc(50% + 17px);top:calc(50% - 33px);width:23px;height:23px;border-radius:50%;display:grid;place-items:center;background:#fff;border:3px solid #68417c;color:#68417c;font-size:14px;font-weight:900}.dp-room-hotspot.chair{left:48%;top:28%;width:37%;height:62%}.dp-room-hotspot.light{left:57%;top:0%;width:20%;height:30%}.dp-room-hotspot.cup{left:76%;top:47%;width:8%;height:14%}.dp-grownup-chair-hotspot{left:7%;top:54%;width:26%;height:42%}.dp-grownup-chair-note{margin:.65rem 0 0;font-weight:800;color:#5d3b72;min-height:1.5em}.dp-room-mission-tools{display:flex;gap:.65rem;align-items:center;flex-wrap:wrap;margin-top:.7rem}.dp-room-count{font-weight:900;color:#5d3b72;margin:0}.dp-section>h2{margin-bottom:.5rem}.dp-room-target-list{font-weight:750}
@media(max-width:650px){.dp-person-art img{height:220px}.dp-room-hotspot.found:after{width:46px;height:46px;font-size:24px}.dp-room-hotspot.found:before{left:calc(50% + 12px);top:calc(50% - 27px);width:20px;height:20px}}
@media(prefers-reduced-motion:reduce){.dp-room-hotspot.clue{animation:none!important}}

/* Corrected team-card layout: character art large above copy, matching surgery cards */
.dp-team{align-items:stretch}
.dp-person{display:flex;flex-direction:column;padding:0;overflow:hidden}
.dp-person-art{width:100%;min-height:360px;padding:1rem 1rem 0;background:#edf7f5;border-radius:0;align-items:flex-end;justify-content:center}
.dp-person:nth-child(2) .dp-person-art{background:#fff0e7}
.dp-person-art img{width:100%;height:360px;max-width:420px;object-fit:contain;object-position:center bottom}
.dp-person>div:not(.dp-person-art){padding:1.15rem 1.25rem 1.35rem}
@media(max-width:650px){.dp-person-art{min-height:300px}.dp-person-art img{height:300px}}

.dp-person h3{font-size:clamp(1.75rem,3vw,2.25rem);line-height:1.08;margin:.9rem 0 .45rem}
.dp-step-picture{display:block;width:100%;height:auto;border-radius:24px;margin:0 0 1rem;box-shadow:0 10px 26px rgba(59,54,91,.10)}
.dp-open-wide-picture{max-width:720px;margin-left:auto;margin-right:auto}
.dp-brush-mouth{position:relative;max-width:900px;margin:0 auto 1rem;line-height:0}
.dp-brush-mouth>img{display:block;width:100%;height:auto;border-radius:26px}
.dp-brush-tooth{position:absolute;width:9%;aspect-ratio:1/1.15;border:0;background:transparent;padding:0;transform:translate(-50%,-50%);cursor:pointer;border-radius:48%;touch-action:manipulation}
.dp-brush-tooth span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%) scale(.35);font-size:clamp(1.2rem,4vw,2.5rem);line-height:1;color:#fff;opacity:0;text-shadow:0 0 5px #fff,0 0 10px #f4cf52;transition:opacity .18s ease,transform .25s ease}
.dp-brush-tooth.brushed span{opacity:1;transform:translate(-50%,-50%) scale(1)}
.dp-brush-tooth:focus-visible{outline:4px solid #6c4aa5;outline-offset:3px}
.dp-brush-tooth.t1{left:27%;top:36%}.dp-brush-tooth.t2{left:36%;top:37%}.dp-brush-tooth.t3{left:45%;top:38%}.dp-brush-tooth.t4{left:55%;top:38%}.dp-brush-tooth.t5{left:64%;top:37%}.dp-brush-tooth.t6{left:73%;top:36%}
.dp-brush-tooth.t7{left:28%;top:73%}.dp-brush-tooth.t8{left:37%;top:76%}.dp-brush-tooth.t9{left:45.5%;top:77%}.dp-brush-tooth.t10{left:54.5%;top:77%}.dp-brush-tooth.t11{left:63%;top:76%}.dp-brush-tooth.t12{left:72%;top:73%}
@media(max-width:650px){.dp-brush-tooth{width:11%}.dp-step-picture{border-radius:18px}}
@media(prefers-reduced-motion:reduce){.dp-brush-tooth span{transition:none}}

/* Real Ollie brushing-mouth game — replaces all former placeholder mouth/tooth graphics */
#brushing .dp-brush-mouth,
#brushing .dp-real-mouth{
  position:relative;
  display:block;
  width:min(100%,980px);
  margin:1rem auto 1.25rem;
  padding:0;
  background:transparent !important;
  border:0 !important;
  border-radius:0 !important;
  box-shadow:none !important;
  line-height:0;
  overflow:visible;
}
#brushing .dp-real-mouth>img{
  display:block;
  width:100%;
  height:auto;
  margin:0 auto;
  padding:0;
  background:transparent;
  border:0;
  border-radius:0;
  box-shadow:none;
}
#brushing .dp-real-tooth{
  position:absolute;
  z-index:3;
  width:10%;
  height:20%;
  padding:0;
  margin:0;
  border:0 !important;
  border-radius:45%;
  background:transparent !important;
  box-shadow:none !important;
  appearance:none;
  -webkit-appearance:none;
  transform:translate(-50%,-50%);
  cursor:pointer;
  touch-action:manipulation;
  color:transparent;
}
#brushing .dp-real-tooth::before,
#brushing .dp-real-tooth::after{content:none !important;display:none !important}
#brushing .dp-real-tooth span{
  position:absolute;
  left:50%;top:50%;
  transform:translate(-50%,-50%) scale(.25);
  opacity:0;
  color:#fff7b8;
  font-size:clamp(1.6rem,4.5vw,3.4rem);
  line-height:1;
  text-shadow:0 0 4px #fff,0 0 10px #ffd95c,0 0 16px #fff;
  transition:opacity .16s ease,transform .22s ease;
}
#brushing .dp-real-tooth.brushed span{
  opacity:1;
  transform:translate(-50%,-50%) scale(1);
}
#brushing .dp-real-tooth:focus-visible{outline:4px solid #6c4aa5 !important;outline-offset:2px}

/* Coordinates aligned to the six upper and six lower teeth in brushing-mouth.png */
#brushing .t1{left:27.5%;top:36%} #brushing .t2{left:36.0%;top:37%}
#brushing .t3{left:45.0%;top:38%} #brushing .t4{left:54.5%;top:38%}
#brushing .t5{left:63.5%;top:37%} #brushing .t6{left:72.0%;top:36%}
#brushing .t7{left:28.5%;top:72%} #brushing .t8{left:37.0%;top:75%}
#brushing .t9{left:45.5%;top:76%} #brushing .t10{left:54.0%;top:76%}
#brushing .t11{left:62.5%;top:75%} #brushing .t12{left:71.0%;top:72%}

@media(max-width:650px){
 #brushing .dp-real-tooth{width:12%;height:24%}
}
@media(prefers-reduced-motion:reduce){
 #brushing .dp-real-tooth span{transition:none}
}


/* Dr Pearlwhistle tool tray: brief tap feedback */
.dp-tools button{position:relative}
.dp-tools button.dp-tool-wiggle b{
  display:inline-block;
  animation:dpToolWiggle .38s ease-in-out;
  transform-origin:50% 70%;
}
.dp-tool-sparkle{
  position:absolute;
  top:.18rem;
  right:.28rem;
  font-style:normal;
  line-height:1;
  font-size:1rem;
  color:#d49b17;
  opacity:0;
  transform:scale(.45) rotate(-12deg);
  pointer-events:none;
}
.dp-tools button.dp-tool-wiggle .dp-tool-sparkle{
  animation:dpToolSparkle .38s ease-out;
}
@keyframes dpToolWiggle{
  0%,100%{transform:rotate(0deg)}
  25%{transform:rotate(-7deg)}
  55%{transform:rotate(6deg)}
  78%{transform:rotate(-3deg)}
}
@keyframes dpToolSparkle{
  0%{opacity:0;transform:scale(.4) rotate(-12deg)}
  35%{opacity:1;transform:scale(1.18) rotate(7deg)}
  100%{opacity:0;transform:scale(.75) rotate(15deg)}
}
@media (prefers-reduced-motion:reduce){
  .dp-tools button.dp-tool-wiggle b,
  .dp-tools button.dp-tool-wiggle .dp-tool-sparkle{
    animation:none !important;
  }
  .dp-tool-sparkle{display:none}
}
