/* Animal Doctor: a warm, focused clinic with independently animated patient parts. */
.doctor-heading-actions{display:flex;align-items:center;justify-content:flex-end;gap:10px;flex-wrap:wrap}.doctor-change{min-height:44px;padding:9px 14px;border:3px solid #fffdf5;border-radius:18px;background:linear-gradient(145deg,#fff9df,#f7db94);box-shadow:inset 0 2px white,0 3px #d2b36e;color:#725d8c;font:inherit;font-size:15px;font-weight:900;touch-action:manipulation}.doctor-change:active{translate:0 2px;box-shadow:inset 0 2px white,0 1px #d2b36e}.doctor-patient-choice[aria-pressed=true]{border-color:#e9c25f;box-shadow:0 0 0 3px #fff0ad,0 5px #ccb4b8}@media(max-width:520px){.doctor-heading{flex-wrap:wrap}.doctor-heading-actions{gap:8px;margin-left:auto}.doctor-change{font-size:13px;padding:8px 10px}.doctor-heading-actions .doctor-counter{min-width:58px}}
.doctor-screen{max-width:1180px;margin:auto;padding:0 18px 18px}.doctor-screen[hidden],.doctor-screen [hidden]{display:none!important}.doctor-screen[hidden] *{animation-play-state:paused!important}
.doctor-heading{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:0 0 10px}.doctor-heading h1{font-size:clamp(24px,3vw,31px);margin:1px 0;color:#786398}.doctor-heading .home-kicker{color:#65928b;letter-spacing:2px}.doctor-counter{border:3px solid #fffdf4;background:linear-gradient(145deg,#fff7d7,#ffe4a4);border-radius:24px;min-width:90px;padding:9px 15px;font-size:23px;font-weight:900;text-align:center;box-shadow:inset 0 2px 0 white,0 4px #dcc391}
.doctor-choose{background:linear-gradient(145deg,#fff9ee,#deeee7);border:4px solid #fffdf5;border-radius:32px;padding:24px;text-align:center;box-shadow:0 7px #b0d2d0}.doctor-choose h2{font-size:24px;color:#637f85;margin:0 0 18px}.doctor-patients{display:flex;justify-content:center;flex-wrap:wrap;gap:14px}.doctor-patient-choice{flex:1 1 145px;max-width:195px;min-width:120px;border:3px solid white;border-radius:28px;padding:9px;background:radial-gradient(ellipse at 50% 25%,#fff8eb,#f0d7cf);box-shadow:inset 0 3px white,0 5px #ccb4b8;color:#6b5e85;font:inherit;touch-action:manipulation}.doctor-patient-choice:nth-child(even){background:radial-gradient(ellipse at 50% 25%,#fafff0,#d2e4dc);box-shadow:inset 0 3px white,0 5px #a6c3bc}.doctor-patient-choice svg{width:100%;height:210px;filter:drop-shadow(0 5px 3px #7052471c)}.doctor-patient-choice strong{display:block;font-size:18px;padding:6px}
.doctor-room{display:grid;grid-template-columns:minmax(0,1fr) 192px;gap:14px;align-items:stretch}.doctor-clinic{position:relative;isolation:isolate;overflow:hidden;border:4px solid #fffaf0;border-radius:32px;background:#d6e8de url('doctor-clinic-v2.webp') center/cover;min-height:380px;height:clamp(380px,calc(100svh - 225px),590px);box-shadow:0 6px #a5c8c0,inset 0 0 30px #e9faf02b;display:grid;place-items:end center}.doctor-clinic:before{content:'';position:absolute;inset:0;background:linear-gradient(120deg,#ffedc020,transparent 45%,#487b7720);pointer-events:none}.doctor-clinic:after{content:'';position:absolute;left:5%;top:0;width:23%;height:70%;background:linear-gradient(115deg,#fff6d534,transparent);transform:skewX(-18deg);pointer-events:none;animation:doctor-room-light 9s ease-in-out infinite}.doctor-table{display:none}.doctor-screen .doctor-stage{position:relative;width:min(460px,calc((100svh - 238px)*.9),94%);aspect-ratio:360/400;max-height:none;touch-action:none;margin-bottom:3%;z-index:1}.doctor-patient{position:absolute;inset:0;pointer-events:none;filter:drop-shadow(0 5px 3px #755b4524)}.doctor-patient svg{width:100%;height:100%;overflow:visible}.doctor-body{transform-origin:180px 370px;animation:doctor-breathe 4s ease-in-out infinite}.doctor-head{transform-origin:180px 220px;animation:doctor-head-idle 6s ease-in-out infinite}.doctor-tail{transform-origin:255px 310px;animation:doctor-tail-wag 3.6s ease-in-out infinite}.doctor-ear{transform-box:fill-box;transform-origin:center bottom;animation:doctor-ear-twitch 7s ease-in-out infinite}.ear-right{animation-delay:-3s}.doctor-eyes{transform-box:fill-box;transform-origin:center;animation:doctor-blink 5.2s infinite}.doctor-patient.care-happy{animation:doctor-relief .85s ease-in-out}.doctor-patient.happy .doctor-head{animation:doctor-happy-head 2s ease-in-out infinite}.doctor-patient.happy .doctor-tail{animation-duration:1s}
.doctor-target{position:absolute;transform:translate(-50%,-50%);width:76px;height:76px;border:0;border-radius:50%;background:transparent!important;padding:0;touch-action:none;box-shadow:none!important;z-index:2}.doctor-target:not(:disabled):active{translate:none}.doctor-area-ring{position:absolute;inset:2px;border:3px solid #fff7b8;border-radius:50%;box-shadow:0 0 0 5px #ffdf9366,0 0 20px #ffefbc;opacity:0;scale:.9;transition:opacity .16s,scale .16s;pointer-events:none}.doctor-target.suggested .doctor-area-ring{opacity:1;scale:1;animation:doctor-area-pulse 1.5s ease-in-out infinite}.doctor-target.suggested .doctor-spot{filter:brightness(1.08)}.doctor-target.treated{pointer-events:none}.doctor-target.treated svg{width:58px;height:58px;filter:drop-shadow(0 2px 2px #79573c30)}.doctor-spot{display:block;position:absolute;inset:27%;border-radius:50%;pointer-events:none}.spot-bandage:after,.spot-spray:after{content:'';position:absolute;inset:4px 9px;border-left:3px solid #cb8796;border-right:2px solid #d99ca4;transform:rotate(35deg);border-radius:6px}.spot-ice{background:radial-gradient(ellipse,#bda2c288,#cfb5c060,transparent 72%)}.spot-wipe{background:radial-gradient(ellipse at 30% 20%,#bda17f,#a28a70);border-radius:35% 60% 40% 30%;box-shadow:8px -4px 0 -3px #9a8267,-8px 6px 0 -4px #ad9377}.spot-thermometer,.spot-shot,.spot-stethoscope,.spot-medicine{background:none}.spot-stethoscope:after{content:'♥';font-size:20px;color:#e0a4a8;opacity:0}.suggested .spot-stethoscope:after{opacity:1}
.doctor-tools{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:11px;align-content:center;padding:14px 10px;border:3px solid #fffaf1;border-radius:29px;background:linear-gradient(150deg,#f7f0e9,#ece0f1);box-shadow:inset 0 2px 0 white,0 5px #c9b8d7}.doctor-tools button{position:relative;min-width:0;min-height:110px;background:linear-gradient(150deg,#fffefa,#f4eadd);border:2px solid #fff;border-radius:22px;padding:7px 3px;color:#756285;box-shadow:inset 0 2px white,0 4px #c9bbca,0 5px 8px #66596c10;touch-action:none;font:inherit;font-weight:800;font-size:12px;transition:background .15s,box-shadow .15s}.doctor-tools button svg{display:block;height:73px;width:100%;pointer-events:none;filter:drop-shadow(0 3px 1px #5f667821)}.doctor-tools button[aria-pressed=true]{background:linear-gradient(145deg,#fffce7,#ffe6a4);border-color:#e7c77a;box-shadow:0 4px #cba553,0 0 0 3px #ffedbf}.doctor-tools button.complete{opacity:.48;box-shadow:0 2px #d5c9d4}.doctor-tools button.complete:after{content:'✓';position:absolute;top:4px;right:5px;background:#c4e3ba;border-radius:50%;padding:2px 5px;color:#498b6c}.doctor-tools button:disabled{cursor:default}.doctor-progress{height:8px;background:#d1dfdd;border-radius:12px;margin:8px 0 0;overflow:hidden}.doctor-progress span{display:block;height:100%;background:linear-gradient(90deg,#82b9a0,#b3d9a6);transition:width .3s}.doctor-status{text-align:center;font-size:18px;font-weight:800;color:#6d6685;margin:10px 0 0;min-height:24px}
.doctor-treat{position:absolute;left:50%;top:49%;transform:translate(-50%,-50%);width:92px;height:92px;border-radius:50%;background:#fffbe440;border:3px solid #ffe9a2;box-shadow:0 0 0 6px #fff6b330;touch-action:none;z-index:3;animation:doctor-area-pulse 1.5s infinite}.doctor-treat svg{height:100%;width:100%;opacity:.3}.all-better .doctor-treat svg{opacity:1;animation:doctor-lollipop .95s ease-in-out both}.all-better .doctor-treat{border-color:transparent;background:transparent;box-shadow:none;animation:none}.all-better .doctor-patient{animation:doctor-relief 1s ease-in-out}
.doctor-effect{position:absolute;transform:translate(-50%,-50%);width:110px;height:110px;pointer-events:none;z-index:6}.doctor-treatment-tool{position:absolute;inset:5%;display:block;animation:doctor-place .85s both}.doctor-treatment-tool svg{height:100%;width:100%;filter:drop-shadow(0 4px 2px #5d647332)}.doctor-treatment-check{position:absolute;right:0;top:0;font-size:26px;background:#eafbe1;color:#599376;border:3px solid white;border-radius:50%;padding:0 6px;animation:doctor-check-pop .85s both}.doctor-effect i{position:absolute;font-style:normal;font-size:23px;color:#fff7b9;text-shadow:0 1px #c9ad65;animation:doctor-spark .85s ease-out both}.doctor-effect i:nth-of-type(1){left:-5%;top:15%}.doctor-effect i:nth-of-type(2){right:-5%;top:25%;animation-delay:.1s}.doctor-effect i:nth-of-type(3){left:40%;bottom:0;animation-delay:.15s}.doctor-treatment-cloud,.doctor-treatment-pulse{position:absolute;inset:20%;border-radius:50%;opacity:0}
.effect-bandage .doctor-treatment-tool{animation:doctor-bandage .85s both}.effect-ice .doctor-treatment-cloud{background:radial-gradient(ellipse,#ecffff99,#b8e9f244,transparent 70%);animation:doctor-cooling .85s both}.effect-ice i{color:#bcefff}.effect-spray .doctor-treatment-tool{transform-origin:center bottom;animation:doctor-spray-tool .85s both}.effect-spray .doctor-treatment-cloud{inset:0 10% 30% 38%;background:radial-gradient(circle at 20% 65%,#d7fcdfdd,transparent 23%),radial-gradient(circle at 55% 35%,#e6ffff,transparent 24%),radial-gradient(circle at 65% 65%,#c5eddfcc,transparent 28%);animation:doctor-mist .85s both}.effect-wipe .doctor-treatment-tool{animation:doctor-wipe .85s both}.effect-wipe .doctor-treatment-cloud{background:radial-gradient(ellipse,#ffffffd0,transparent 70%);animation:doctor-clean .85s both}.effect-thermometer .doctor-treatment-tool{animation:doctor-temperature .85s both}.effect-thermometer .doctor-treatment-check{background:#d9f7e6}.effect-shot .doctor-treatment-tool{animation:doctor-gentle-shot .85s both}.effect-stethoscope .doctor-treatment-tool{animation:doctor-heartbeat .85s both}.effect-stethoscope .doctor-treatment-pulse{border:3px solid #f3abbc;animation:doctor-heart-ring .85s both}.effect-medicine .doctor-treatment-tool{animation:doctor-drink .85s both}.effect-medicine .doctor-treatment-cloud{background:#d8f8ec;animation:doctor-sip .85s both}
.doctor-drag{position:fixed;z-index:1000;width:100px;height:100px;transform:translate(-50%,-60%);pointer-events:none;filter:drop-shadow(0 7px 4px #67557c40)}.doctor-drag svg{width:100%;height:100%}.gentle-wiggle{animation:doctor-wiggle .3s}.doctor-tile{background:#e8f7ef}.doctor-tile-picture{background:linear-gradient(#d3eee7,#fdf0d4);display:block;position:relative;border:4px solid #fff;border-radius:24px;box-shadow:0 4px #b8d8ce}.doctor-tile-picture>svg{height:95%;width:70%;position:absolute;left:12%;bottom:0}.doctor-tile-picture>span{position:absolute;width:37%;right:5%;bottom:3%;transform:rotate(-9deg)}.doctor-tile-picture>span svg{width:100%;height:100%}.doctor-sticker .sticker-art{background-size:contain!important;background-position:center!important;background-repeat:no-repeat!important}.doctor-sticker:before,.doctor-sticker:after{mask-repeat:no-repeat}
@keyframes doctor-blink{0%,43%,47%,100%{transform:scaleY(1)}45%{transform:scaleY(.1)}}@keyframes doctor-breathe{50%{transform:scale(1.008,1.017)}}@keyframes doctor-head-idle{50%{transform:rotate(-1deg) translateY(-1px)}}@keyframes doctor-ear-twitch{0%,72%,85%,100%{transform:rotate(0)}77%{transform:rotate(3deg)}81%{transform:rotate(-2deg)}}@keyframes doctor-tail-wag{50%{transform:rotate(5deg)}}@keyframes doctor-room-light{50%{opacity:.55}}@keyframes doctor-happy-head{50%{transform:rotate(2deg) translateY(-3px)}}@keyframes doctor-relief{40%{transform:translateY(-5px) scale(1.012)}70%{transform:translateY(1px)}}@keyframes doctor-area-pulse{50%{box-shadow:0 0 0 8px #ffe49a30,0 0 23px #fff1b9;scale:1.045}}@keyframes doctor-wiggle{25%{translate:-5px}75%{translate:5px}}@keyframes doctor-place{0%{translate:0 -20px;scale:.75;opacity:0}40%{translate:0 0;scale:1.05;opacity:1}80%{scale:1}100%{opacity:0}}@keyframes doctor-bandage{0%{scale:1.3;rotate:-12deg;opacity:0}40%{scale:1;rotate:0deg;opacity:1}100%{scale:.8;opacity:0}}@keyframes doctor-cooling{20%{opacity:1;scale:.7}75%{opacity:1;scale:1.6}100%{opacity:0;scale:1.8}}@keyframes doctor-spray-tool{0%{rotate:-12deg;opacity:0}25%{opacity:1}45%,65%{rotate:7deg}100%{opacity:0}}@keyframes doctor-mist{0%{opacity:0;scale:.3;translate:-12px 8px}35%{opacity:1}100%{opacity:0;scale:1.6;translate:16px -16px}}@keyframes doctor-wipe{0%{opacity:0;translate:-18px 7px;rotate:-10deg}20%{opacity:1}40%{translate:16px -7px;rotate:10deg}65%{translate:-12px 6px;rotate:-8deg}100%{translate:14px -6px;opacity:0}}@keyframes doctor-clean{25%{opacity:.8;scale:.4}100%{opacity:0;scale:1.6}}@keyframes doctor-temperature{0%{opacity:0;translate:0 -15px}25%,75%{opacity:1;translate:0 0}100%{opacity:0}}@keyframes doctor-gentle-shot{0%{opacity:0;translate:9px -9px}25%,65%{opacity:1;translate:0 0}100%{opacity:0;translate:12px -10px}}@keyframes doctor-heartbeat{0%{opacity:0}20%{opacity:1;scale:1}35%,65%{scale:1.13}50%,80%{scale:1}100%{opacity:0}}@keyframes doctor-heart-ring{20%{opacity:.8;scale:.6}100%{opacity:0;scale:1.65}}@keyframes doctor-drink{0%{opacity:0}20%{opacity:1}35%,65%{rotate:-24deg;translate:0 -3px}100%{opacity:0;rotate:0deg}}@keyframes doctor-sip{30%{opacity:.6;scale:.15}100%{opacity:0;scale:1;translate:0 15px}}@keyframes doctor-check-pop{0%,40%{opacity:0;scale:.4}65%{opacity:1;scale:1.15}100%{opacity:0;scale:1}}@keyframes doctor-spark{0%{opacity:0;scale:.5}25%{opacity:1}100%{translate:0 -30px;opacity:0;scale:1.3}}@keyframes doctor-lollipop{0%{translate:0 26px;rotate:-20deg;scale:.6}45%{translate:0 -3px;rotate:10deg;scale:1.1}100%{translate:0 0;rotate:-5deg;scale:1}}
@media(max-width:760px){.doctor-screen{padding:0 12px 16px}.doctor-room{grid-template-columns:minmax(0,1fr) 172px;gap:9px}.doctor-tools{padding:9px 7px;gap:9px}.doctor-tools button{min-height:94px;font-size:11px}.doctor-tools button svg{height:61px}.doctor-patient-choice svg{height:175px}.doctor-target{width:70px;height:70px}}
@media(max-width:520px){.doctor-room{grid-template-columns:1fr}.doctor-clinic{height:385px;min-height:0;border-radius:27px}.doctor-screen .doctor-stage{width:min(320px,96%);margin-bottom:3px}.doctor-tools{grid-template-columns:repeat(3,minmax(0,1fr));padding:8px;gap:8px;border-radius:22px}.doctor-tools button{min-height:78px;font-size:11px;border-radius:17px;padding:3px}.doctor-tools button svg{height:49px}.doctor-tools:has(button[data-tool=lollipop]:not([hidden])){display:flex;justify-content:center}.doctor-tools:has(button[data-tool=lollipop]:not([hidden])) button.complete{display:none}.doctor-tools button[data-tool=lollipop]{min-width:120px}.doctor-choose{padding:15px}.doctor-patients{gap:10px}.doctor-patient-choice{min-width:95px;flex-basis:95px}.doctor-patient-choice svg{height:145px}.doctor-counter{font-size:19px;min-width:70px;padding:8px}.doctor-target{width:64px;height:64px}.doctor-status{font-size:16px}.doctor-heading{margin-bottom:8px}.doctor-treat{width:82px;height:82px}}
@media(min-width:521px) and (max-height:650px){.doctor-clinic{height:360px;min-height:0}.doctor-screen .doctor-stage{width:300px;margin-bottom:0}.doctor-tools{gap:8px;padding:8px}.doctor-tools button{min-height:84px}.doctor-tools button svg{height:53px}}
@media(prefers-reduced-motion:reduce){.doctor-screen *, .doctor-drag{animation:none!important;transition:none!important}}
/* Artwork, drop preview and treatment all use the SAME contact point. */
.doctor-drag{transform:translate(calc(-1 * var(--contact-x,50%)),calc(-1 * var(--contact-y,50%)));width:96px;height:96px}
.doctor-tool-contact{position:absolute;left:50%;top:50%;width:96px;height:96px;transform:translate(calc(-1 * var(--contact-x,50%)),calc(-1 * var(--contact-y,50%)));pointer-events:none}
.doctor-tool-contact .doctor-treatment-tool{inset:0;transform-origin:var(--contact-x,50%) var(--contact-y,50%)}
.doctor-target.suggested{z-index:5}
.doctor-bandage-set{position:absolute;width:58px;height:58px;left:50%;top:50%;transform:translate(-50%,-50%)}
.doctor-bandage-set svg{display:block}
.doctor-tools{background:linear-gradient(160deg,#fffaf0,#def0ed);border-color:#fffdf7;box-shadow:inset 0 2px white,0 5px #a8c9c4}
.doctor-tools button{background:linear-gradient(155deg,#fffefa 35%,#e4f1ee);box-shadow:inset 0 2px white,0 4px #abc9c4,0 6px 10px #55726920;border-color:#fffdf8}
.doctor-tools button svg{filter:drop-shadow(0 4px 2px #46636e2b)}
.doctor-tools button[aria-pressed=true]{background:linear-gradient(145deg,#fffbe6,#ffe29c);box-shadow:inset 0 2px white,0 4px #cba553,0 0 0 3px #ffedbf;transform:translateY(-2px)}
.doctor-area-ring{border-width:2px;box-shadow:0 0 0 4px #ffdf9344,0 0 16px #fff6bf}
.effect-bandage .doctor-treatment-tool{animation:doctor-stick .85s ease-out both}
.effect-ice .doctor-treatment-tool{animation:doctor-settle .85s ease-out both}
.effect-spray .doctor-treatment-cloud{inset:36%;background:radial-gradient(ellipse,#e5fffbd9,#8bd4cf55,transparent 70%);animation:doctor-soft-mist .85s ease-out both}
.effect-spray .doctor-treatment-tool{animation:doctor-pump .85s ease-in-out both}
.effect-stethoscope .doctor-treatment-pulse{inset:24%;border:3px solid #efb0bd;background:#ffe3eb22}
.effect-medicine .doctor-treatment-tool{animation:doctor-spoon .85s ease-in-out both}
.effect-thermometer .doctor-treatment-check{background:#dcf6d5;color:#438d68}
@keyframes doctor-stick{0%{opacity:0;translate:0 -16px;scale:1.08}30%{opacity:1;translate:0 0;scale:1}70%{opacity:1}100%{opacity:0}}
@keyframes doctor-settle{0%{opacity:0;translate:0 -20px}30%{opacity:1;translate:0 0}42%{translate:0 -3px}55%,80%{translate:0 0;opacity:1}100%{opacity:0}}
@keyframes doctor-soft-mist{0%,18%{opacity:0;scale:.3}45%{opacity:.9;scale:1.1}100%{opacity:0;scale:2.2;translate:8px -6px}}
@keyframes doctor-pump{0%{opacity:0;translate:-8px 6px}20%,72%{opacity:1;translate:0 0}40%,58%{rotate:-3deg}50%,65%{rotate:0deg}100%{opacity:0}}
@keyframes doctor-spoon{0%{opacity:0;translate:12px 12px}30%,72%{opacity:1;translate:0 0}45%,60%{rotate:8deg}100%{opacity:0;translate:8px 6px}}
@media(prefers-reduced-motion:reduce){.doctor-screen *, .doctor-drag{animation:none!important;transition:none!important}}
.doctor-treat svg{position:absolute;left:50%;top:50%;transform:translate(-50%,-35%)}
/* One patient coordinate plane for marks, guidance, drops and treatment. */
#doctor-targets{position:absolute;inset:0;pointer-events:none}
#doctor-targets .doctor-target{pointer-events:auto}
#doctor-targets .doctor-target.treated{pointer-events:none}
.doctor-patient svg{display:block}
.doctor-target{width:72px;height:72px}
.doctor-spot{inset:17%;background:none!important;box-shadow:none!important;border-radius:0}
.doctor-spot:after{display:none}.doctor-spot svg{width:100%;height:100%;display:block;filter:drop-shadow(0 1px 1px #77535020)}
.doctor-target.treated.healing .doctor-spot svg{width:100%;height:100%}
.doctor-target.healing .doctor-spot{animation:doctor-mark-heals 1.35s ease-in-out both}
.doctor-area-ring{inset:0;border:4px solid #fffbd9;outline:3px solid #eba940;box-shadow:0 0 0 9px #ffda6260,0 0 24px #fff4a9;background:#fff6c51c}
.doctor-target.suggested .doctor-area-ring{animation:doctor-guide-ring 1.6s ease-in-out infinite}
.doctor-target-pointer{position:absolute;left:calc(50% - 9px);top:-23px;width:18px;height:13px;background:#ffc654;clip-path:polygon(0 0,100% 0,50% 100%);filter:drop-shadow(0 2px white);opacity:0}
.doctor-target.suggested .doctor-target-pointer{opacity:1;animation:doctor-guide-pointer 1.2s ease-in-out infinite}
.doctor-target.suggested .doctor-spot{filter:contrast(1.15)}
.doctor-tools button{min-height:116px;border-radius:24px;background:radial-gradient(ellipse at 40% 18%,#fff,#fff8e9 65%,#d8ebe6);border-bottom:4px solid #aecac5}
.doctor-tools button svg{height:80px;transition:scale .16s}
.doctor-tools button[aria-pressed=true] svg{animation:doctor-tool-ready 2s ease-in-out infinite}
.doctor-tools button.complete svg{animation:none}
.doctor-tool-contact,.doctor-drag{width:90px;height:90px}
.doctor-effect .doctor-treatment-tool,.doctor-effect .doctor-treatment-cloud,.doctor-effect .doctor-treatment-check,.doctor-effect .doctor-treatment-pulse,.doctor-effect i{animation-duration:1.35s}
.effect-spray .tool-pump{animation:doctor-nozzle-press .32s .2s 3}
.effect-shot .tool-plunger{animation:doctor-plunger-press 1.35s both}
.effect-ice .doctor-treatment-cloud{inset:5%;background:radial-gradient(ellipse,#c8f8ff90,#b0e7f555,transparent 70%)}
.effect-ice i{font-size:27px;color:#e4fcff}
.effect-wipe .doctor-treatment-cloud{background:radial-gradient(circle at 30% 40%,#fff 0 5px,transparent 6px),radial-gradient(circle at 70% 65%,#dcfaff 0 7px,transparent 8px),radial-gradient(circle at 50% 20%,#e6ffff 0 4px,transparent 5px)}
.doctor-bandage-set{width:54px;height:54px}.doctor-target.treated .doctor-bandage-set svg{width:100%;height:100%}
@keyframes doctor-mark-heals{0%,32%{opacity:1;scale:1}75%{opacity:.25;scale:.92}100%{opacity:0;scale:.85}}
@keyframes doctor-guide-ring{50%{box-shadow:0 0 0 12px #ffda6235,0 0 28px #fff4a9;scale:1.025}}
@keyframes doctor-guide-pointer{50%{translate:0 5px}}
@keyframes doctor-tool-ready{50%{translate:0 -3px;rotate:-3deg}}
@keyframes doctor-nozzle-press{50%{translate:0 3px}}
@keyframes doctor-plunger-press{0%,20%{translate:0 0}65%,100%{translate:0 8px}}
@media(max-width:760px){.doctor-tools button{min-height:98px}.doctor-tools button svg{height:65px}}
@media(max-width:520px){.doctor-target{width:62px;height:62px}.doctor-tool-contact,.doctor-drag{width:76px;height:76px}.doctor-tools button{min-height:84px}.doctor-tools button svg{height:54px}.doctor-bandage-set{width:46px;height:46px}}
@media(min-width:521px) and (max-height:650px){.doctor-tools button{min-height:86px}.doctor-tools button svg{height:55px}}
@media(prefers-reduced-motion:reduce){.doctor-screen *, .doctor-drag{animation:none!important;transition:none!important}.doctor-target.healing .doctor-spot{opacity:0}}

/* Keep the animated patient in native HTML, avoiding Safari SVG/canvas compositing offsets. */
#doctor-patient{z-index:0;filter:none}#doctor-patient>svg{position:absolute;inset:0;width:100%;height:100%;overflow:hidden}#doctor-patient .doctor-motion-layer{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;overflow:hidden}#doctor-patient .doctor-motion-layer canvas{position:absolute;inset:0;width:100%;height:100%;display:block}#doctor-targets{z-index:2}#doctor-effect{z-index:4}#doctor-treat{z-index:3}

#doctor-stage.loading-patient #doctor-targets,#doctor-stage.loading-patient #doctor-treat{visibility:hidden}.doctor-room[aria-busy=true] .doctor-tools{opacity:.55;pointer-events:none}
