/* Tool materials, part animation and treatment choreography share the calibrated contact. */
.doctor-tools button{overflow:hidden;min-height:120px;background:radial-gradient(ellipse at 42% 18%,#fffefa,#faf2df 62%,#d2e8e2);border-radius:25px;box-shadow:inset 0 2px #fff,0 4px #9fbfb8,0 7px 12px #536d7120}
.doctor-tools button svg{height:88px;overflow:visible;filter:drop-shadow(0 4px 2px #495f7030)}
.doctor-tools button>span{display:block;position:relative;font-size:12px;margin-top:1px;color:#655782}
.doctor-tools button.complete{opacity:.7}.doctor-tools button.complete>svg{opacity:.65}.doctor-tools button.complete:after{background:#b9e1c6;color:#327758}
.doctor-tools button:active:not(:disabled){transform:translateY(2px);box-shadow:inset 0 2px white,0 2px #a9bfb7}
.doctor-tools button[aria-pressed=true]{border-color:#e0b653;background:radial-gradient(ellipse at 35% 15%,#fffce5,#ffdf95);box-shadow:inset 0 2px #fff8db,0 4px #c9a354,0 0 0 3px #ffeebc}
.doctor-tools button[aria-pressed=true]>svg{animation:none;scale:1.04}
.doctor-tools button:not(:disabled) .tool-readout{animation:doctor-display-light 3.2s ease-in-out infinite}
.doctor-tools button:not(:disabled) .tool-frost{animation:doctor-frost-light 4s ease-in-out infinite}
.doctor-tools button[aria-pressed=true] .tool-pump{animation:doctor-part-ready 2.4s ease-in-out infinite}
.doctor-tools button[aria-pressed=true] .tool-heart-disc{animation:doctor-heart-ready 1.5s ease-in-out infinite;transform-origin:81px 60px}
.doctor-tools button[aria-pressed=true] .tool-clean-bubbles{animation:doctor-bubble-ready 2s ease-in-out infinite}
.doctor-tools button[aria-pressed=true] .tool-candy-swirl{animation:doctor-display-light 2s infinite}
.doctor-tool-contact,.doctor-drag{width:100px;height:100px}
.doctor-tool-contact .doctor-treatment-tool{transform-origin:var(--contact-x) var(--contact-y);animation:doctor-touch-and-lift 1.35s ease-in-out both}
.effect-bandage .doctor-treatment-tool{animation:doctor-bandage-contact 1.35s ease-out both}
.effect-bandage .tool-bandage-left{transform-origin:50px 50px;animation:doctor-bandage-unfold-left 1.35s ease-out both}
.effect-bandage .tool-bandage-right{transform-origin:50px 50px;animation:doctor-bandage-unfold-right 1.35s ease-out both}
.effect-ice .doctor-treatment-tool{animation:doctor-cool-contact 1.35s ease-out both}
.effect-spray .doctor-treatment-tool{animation:doctor-spray-contact 1.35s ease-out both}
.effect-spray .tool-pump{animation:doctor-nozzle-press .3s .28s 2}
.effect-wipe .doctor-treatment-tool{animation:doctor-cloth-polish 1.35s ease-in-out both}
.effect-thermometer .tool-readout{animation:doctor-display-check 1.35s both}
.effect-shot .tool-plunger{animation:doctor-plunger-press 1.35s ease-in-out both}
.effect-stethoscope .doctor-treatment-tool{animation:doctor-touch-and-lift 1.35s ease-in-out both}
.effect-stethoscope .tool-heart-disc{transform-origin:81px 60px;animation:doctor-disc-beat 1.35s ease-in-out both}
.effect-medicine .doctor-treatment-tool{animation:doctor-spoon-sip 1.35s ease-in-out both}
.effect-lollipop .doctor-treatment-tool{animation:doctor-candy-accept 1.1s ease-out both}
.doctor-care-accent{position:absolute;inset:-12%;pointer-events:none;opacity:0;animation:doctor-care-accent 1.35s both}
.doctor-care-accent svg{width:100%;height:100%;overflow:visible}
.effect-spray .doctor-care-accent{animation:none;opacity:1}.care-droplet{opacity:0;animation:doctor-droplet .6s ease-out 2;animation-delay:calc(.25s + var(--drop)*.06s)}
.effect-stethoscope .doctor-care-accent{animation:doctor-heart-trace 1.35s both}
.effect-ice .doctor-care-accent{animation:doctor-frost-release 1.35s both}
.effect-wipe .doctor-care-accent{animation:doctor-wash-bubbles 1.35s both}
.effect-lollipop .doctor-care-accent{animation-duration:1.1s}
.doctor-bandage-set{width:58px;height:58px}
@keyframes doctor-display-light{50%{opacity:.65}}
@keyframes doctor-frost-light{50%{opacity:.82}}
@keyframes doctor-part-ready{50%{translate:0 1.5px}}
@keyframes doctor-heart-ready{50%{scale:1.045}}
@keyframes doctor-bubble-ready{50%{translate:0 -3px}}
@keyframes doctor-touch-and-lift{0%{opacity:0;translate:12px -18px;rotate:-7deg}22%,78%{opacity:1;translate:0 0;rotate:0deg}100%{opacity:0;translate:10px -18px}}
@keyframes doctor-bandage-contact{0%{opacity:0;translate:0 -14px;scale:1.12}20%,80%{opacity:1;translate:0 0;scale:1}90%{opacity:1;scale:.98}100%{opacity:0;scale:1}}
@keyframes doctor-bandage-unfold-left{0%,20%{scale:.3 1;rotate:12deg}48%,100%{scale:1;rotate:0deg}}
@keyframes doctor-bandage-unfold-right{0%,20%{scale:.3 1;rotate:-12deg}55%,100%{scale:1;rotate:0deg}}
@keyframes doctor-cool-contact{0%{opacity:0;translate:0 -24px;rotate:-7deg}25%{opacity:1;translate:0 0;rotate:0deg}32%{scale:1.02 .97}42%,78%{opacity:1;scale:1}100%{opacity:0;translate:0 -15px}}
@keyframes doctor-spray-contact{0%{opacity:0;translate:-18px 4px}22%,78%{opacity:1;translate:0 0;rotate:0deg}100%{opacity:0;translate:-15px 5px}}
@keyframes doctor-cloth-polish{0%{opacity:0;translate:-16px 8px;rotate:-8deg}15%{opacity:1}32%{translate:16px -7px;rotate:8deg}52%{translate:-15px 6px;rotate:-8deg}73%{translate:14px -6px;rotate:7deg}88%{opacity:1;translate:0 0}100%{opacity:0;translate:8px -15px}}
@keyframes doctor-display-check{0%,25%{opacity:.3}35%,52%{opacity:1}43%{opacity:.45}62%,100%{opacity:1}}
@keyframes doctor-disc-beat{0%,25%,47%,70%,100%{scale:1}35%,58%{scale:1.08}}
@keyframes doctor-spoon-sip{0%{opacity:0;translate:15px 14px;rotate:-10deg}25%,75%{opacity:1;translate:0 0}40%,62%{rotate:12deg}100%{opacity:0;translate:12px 8px;rotate:0deg}}
@keyframes doctor-candy-accept{0%{opacity:0;translate:0 25px;rotate:-12deg}35%,80%{opacity:1;translate:0 0;rotate:0deg}55%{rotate:7deg}100%{opacity:0;scale:.95}}
@keyframes doctor-care-accent{0%,25%{opacity:0;scale:.7}45%,75%{opacity:1;scale:1}100%{opacity:0;translate:0 -14px;scale:1.1}}
@keyframes doctor-droplet{0%{opacity:0;translate:-8px 0;scale:.4}20%{opacity:.9}100%{opacity:0;translate:var(--dx) var(--dy);scale:1.6}}
@keyframes doctor-heart-trace{0%,20%{opacity:0;clip-path:inset(0 100% 0 0)}35%,80%{opacity:1}75%{clip-path:inset(0)}100%{opacity:0;clip-path:inset(0)}}
@keyframes doctor-frost-release{0%,22%{opacity:0;scale:.65;rotate:-12deg}45%,70%{opacity:1}100%{opacity:0;scale:1.3;rotate:12deg}}
@keyframes doctor-wash-bubbles{0%,30%{opacity:0;scale:.6}60%{opacity:1}100%{opacity:0;scale:1.2;translate:0 -20px}}
@media(max-width:760px){.doctor-tools button{min-height:102px}.doctor-tools button svg{height:72px}.doctor-tools button>span{font-size:11px}}
@media(max-width:520px){.doctor-tools button{min-height:86px}.doctor-tools button svg{height:58px}.doctor-tool-contact,.doctor-drag{width:86px;height:86px}}
@media(min-width:521px) and (max-height:650px){.doctor-tools button{min-height:90px}.doctor-tools button svg{height:60px}}
@media(prefers-reduced-motion:reduce){.doctor-screen *,.doctor-drag{animation:none!important;transition:none!important}.doctor-care-accent{opacity:1}}
