.settings-math{margin:4px 0 10px;padding:10px;border-radius:14px;background:rgba(255,255,255,.06)}
.settings-math-title{font-family:Quicksand,sans-serif;font-size:.78rem;font-weight:800;color:#FFD700;margin-bottom:8px}
.settings-math-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}
.settings-math-card{border:1px solid rgba(255,215,0,.25);border-radius:12px;background:rgba(255,255,255,.08);color:#fff;padding:9px 8px;font-family:Quicksand,sans-serif;cursor:pointer}
.settings-math-card strong{display:block;font-size:.78rem}
.settings-math-card span{display:block;font-size:.68rem;opacity:.72;margin-top:2px}
.settings-math-card.active{background:linear-gradient(135deg,#8e44ad,#f06292);box-shadow:0 0 0 2px #FFD700}

/* Playroom + map spot activity containers */
#playroom-play-area .kingdom-activity,#spot-scene-stage .kingdom-activity{width:100%;max-width:100%;min-height:min(62vh,420px);height:100%}
#playroom-play-area .kingdom-activity.play-scene-group,#spot-scene-stage .kingdom-activity.play-scene-group{bottom:0}
#playroom-play-area.magic-play-active,#spot-scene-stage.magic-play-active{display:flex;align-items:stretch;justify-content:center}
#screen-playroom .playroom-play-area{min-height:min(58vh,400px)}
.candy-recipe{background:linear-gradient(180deg,#fff0f8 0%,#ffb6d9 55%,#ff8ec7 100%);color:#4b0a50}
.undersea-activity{background:linear-gradient(180deg,#0b5f7a 0%,#023447 100%);color:#e0f7fa}

/* ===== Kingdom Activity base layout ===== */
.kingdom-activity{position:relative;width:min(100%,680px);min-height:360px;margin:0 auto;border-radius:24px;overflow:hidden;font-family:'Quicksand',sans-serif;touch-action:manipulation;box-sizing:border-box}
.moon-activity{background:linear-gradient(180deg,#1a1440 0%,#2b1f5e 45%,#4a3a8c 100%);color:#fff}
.activity-princess{position:absolute;width:120px;height:156px;left:8px;bottom:8px;z-index:6;pointer-events:none;opacity:1;filter:drop-shadow(0 4px 8px rgba(0,0,0,.35))}
.activity-princess svg{width:100%;height:100%;display:block}
.activity-fallback{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:12px;padding:48px 16px 24px;min-height:320px}
.activity-fallback-toy{width:140px;height:140px}
.activity-fallback .activity-princess{position:relative;left:auto;bottom:auto;width:150px;height:190px}
.activity-prompt{position:absolute;left:50%;top:10px;transform:translateX(-50%);z-index:8;box-sizing:border-box;background:rgba(255,255,255,.95);border-radius:16px;padding:8px 16px;font-weight:800;line-height:1.22;color:#4B2A70;text-align:center;max-width:calc(100% - 24px);overflow-wrap:anywhere;box-shadow:0 3px 10px rgba(0,0,0,.25)}
#playroom-floor.joy-visible .activity-prompt{left:calc(50% + 68px);max-width:calc(100% - 152px)}
.activity-choices{position:absolute;left:50%;bottom:12px;transform:translateX(-50%);display:flex;gap:10px;z-index:9;flex-wrap:wrap;justify-content:center;box-sizing:border-box;width:max-content;max-width:calc(100% - 20px)}
.activity-choice{min-width:48px;min-height:44px;max-width:100%;border-radius:14px;border:2px solid #FFD700;background:#fff;color:#4B2A70;font-weight:900;font-size:1rem;line-height:1.15;white-space:normal;overflow-wrap:anywhere;padding:6px 12px;cursor:pointer}
.activity-choice:active{transform:scale(.94)}
.discovery-item-badge{position:absolute;right:10px;top:10px;width:60px;height:74px;z-index:5;opacity:.9;pointer-events:none}
.discovery-item-badge .scaled-object{width:100%!important;height:100%!important}

#screen-playroom.magic-play-active .playroom-topbar{margin-bottom:4px}
#screen-playroom.magic-play-active .playroom-hint{display:none}
#screen-playroom.magic-play-active .playroom-title{line-height:1.08}
.playroom-action-bar{max-width:calc(100% - 16px);justify-content:flex-end;flex-wrap:wrap}
.playroom-put-away,.playroom-change-style{line-height:1.15;white-space:normal}

/* ===== Moon Tiara Studio (15) ===== */
.tiara-studio-activity{padding:58px 16px 18px;background:radial-gradient(circle at 50% 30%,#51458f 0%,#2b1f5e 56%,#171136 100%)}
.tiara-studio{position:relative;width:100%;height:100%;min-height:315px;display:flex;align-items:center;justify-content:center;gap:32px}
.tiara-princess{width:210px;height:285px;flex:0 0 auto;filter:drop-shadow(0 8px 16px rgba(0,0,0,.32));transition:transform .45s}
.tiara-princess svg{width:100%;height:100%;display:block}
.wearing-tiara .tiara-princess{animation:tiara-princess-celebrate .7s ease-out}
.tiara-design-panel{width:250px;min-height:270px;padding:12px 14px;border-radius:22px;background:rgba(255,255,255,.12);border:2px solid rgba(255,215,0,.35);box-shadow:0 8px 24px rgba(0,0,0,.22);text-align:center}
.tiara-preview{height:118px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 12px rgba(255,215,0,.28))}
.tiara-preview .scaled-object{width:130px!important;height:150px!important}
.tiara-color-name{font-family:'Cinzel Decorative',serif;font-weight:900;color:#FFF6C0;font-size:.82rem;margin:0 0 8px}
.tiara-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.tiara-swatch{min-width:45px;min-height:58px;border-radius:13px;border:2px solid rgba(255,255,255,.35);background:rgba(255,255,255,.1);padding:5px 2px;color:#fff;cursor:pointer;font-family:'Quicksand',sans-serif}
.tiara-swatch span{display:block;width:28px;height:28px;margin:0 auto 3px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,var(--swatch) 40%,color-mix(in srgb,var(--swatch),#3b235e 30%));box-shadow:0 2px 7px rgba(0,0,0,.3)}
.tiara-swatch small{display:block;font-size:.51rem;line-height:1}
.tiara-swatch.selected{border-color:#FFD700;background:rgba(255,215,0,.2);box-shadow:0 0 12px rgba(255,215,0,.38);transform:translateY(-2px)}
.tiara-wear-btn{margin-top:10px;min-height:42px;padding:8px 18px;border-radius:20px;border:2px solid #FFD700;background:linear-gradient(180deg,#fff,#FFF6C0);color:#4B2A70;font-family:'Quicksand',sans-serif;font-weight:900;cursor:pointer}
.tiara-wear-btn.ready{animation:tiara-wear-ready .8s ease-in-out infinite alternate}
@keyframes tiara-wear-ready{to{transform:scale(1.05);box-shadow:0 0 15px rgba(255,215,0,.55)}}
@keyframes tiara-princess-celebrate{0%{transform:scale(.85)}55%{transform:scale(1.08) translateY(-8px)}100%{transform:scale(1)}}

/* ===== Star Wand Night Sky (16) ===== */
.star-wand-activity{background:#080b2b}
.star-wand-sky{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 72% 20%,#303a82 0%,#13184e 31%,#080b2b 72%);transition:filter 1s,background 1.2s}
.star-wand-milky-way{position:absolute;width:130%;height:48%;left:-18%;top:5%;opacity:.2;transform:rotate(-14deg);background:radial-gradient(ellipse,rgba(207,214,255,.46),rgba(128,120,210,.12) 45%,transparent 70%);filter:blur(14px);transition:opacity 1.1s}
.star-wand-moon{position:absolute;right:10%;top:10%;width:76px;height:76px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fffde8,#f4e7a7 62%,#cabb79);box-shadow:0 0 18px rgba(255,248,196,.35);opacity:.62;transition:opacity 1s,box-shadow 1s}
.star-wand-moon span,.star-wand-moon::before,.star-wand-moon::after{content:'';position:absolute;border-radius:50%;background:rgba(167,151,103,.18)}
.star-wand-moon span{width:17px;height:11px;left:16px;top:17px}.star-wand-moon::before{width:13px;height:13px;right:13px;top:27px}.star-wand-moon::after{width:20px;height:10px;left:28px;bottom:13px}
.star-wand-fixed-stars{position:absolute;inset:0 0 25%}
.star-wand-fixed-stars i{position:absolute;width:var(--star-size);height:var(--star-size);border-radius:50%;background:#fff;opacity:.35;box-shadow:0 0 3px #fff;animation:star-wand-twinkle 1.8s var(--star-delay) ease-in-out infinite alternate;transition:opacity .8s,box-shadow .8s}
.star-wand-target{position:absolute;z-index:4;width:50px;height:50px;transform:translate(-50%,-50%);border:2px solid rgba(255,215,0,.55);border-radius:50%;background:rgba(44,43,99,.78);color:#918aa8;font-size:1.75rem;line-height:1;padding:0;cursor:pointer;transition:transform .35s,color .4s,background .4s,box-shadow .4s}
.star-wand-target.lit{color:#fff49a;background:rgba(255,215,0,.2);box-shadow:0 0 8px #fff,0 0 22px #FFD700;text-shadow:0 0 8px #fff;transform:translate(-50%,-50%) scale(1.08)}
.star-wand-constellations{position:absolute;inset:0 0 auto;width:100%;height:55%;z-index:3;pointer-events:none}
.star-wand-constellations path{fill:none;stroke:#b9c9ff;stroke-width:.28;stroke-dasharray:2 2;opacity:0;transition:opacity 1s 400ms}
.star-wand-hills{position:absolute;left:-5%;width:110%;border-radius:50% 50% 0 0}
.star-wand-hills-back{height:30%;bottom:3%;background:#171947;clip-path:polygon(0 57%,12% 28%,24% 58%,37% 18%,50% 60%,66% 22%,79% 54%,90% 20%,100% 52%,100% 100%,0 100%)}
.star-wand-hills-front{height:24%;bottom:0;background:linear-gradient(180deg,#111638,#080b20);clip-path:polygon(0 43%,16% 18%,30% 52%,45% 28%,58% 60%,73% 20%,87% 47%,100% 27%,100% 100%,0 100%)}
.star-wand-castle{position:absolute;right:16%;bottom:10%;z-index:3;font-size:6.5rem;line-height:1;filter:brightness(.25) saturate(.5);transition:filter 1s;text-shadow:0 4px 12px rgba(0,0,0,.45)}
.star-wand-item{position:absolute;right:12px;top:8px;width:72px;height:94px;z-index:7;filter:drop-shadow(0 0 8px rgba(255,215,0,.6))}
.star-wand-item .scaled-object{width:100%!important;height:100%!important}
.star-wand-activity .activity-princess{z-index:7}
.star-wand-sky.sky-revealed{background:radial-gradient(circle at 72% 20%,#5363b4 0%,#242a73 32%,#0b1040 75%)}
.sky-revealed .star-wand-milky-way{opacity:.75}.sky-revealed .star-wand-moon{opacity:1;box-shadow:0 0 28px 8px rgba(255,248,196,.5)}
.sky-revealed .star-wand-fixed-stars i{opacity:1;box-shadow:0 0 6px 1px #fff}.sky-revealed .star-wand-constellations path{opacity:.75}.sky-revealed .star-wand-castle{filter:brightness(.7) saturate(.9)}
@keyframes star-wand-twinkle{to{opacity:1;transform:scale(1.8)}}

/* ===== Royal Owl Delivery (17) ===== */
.royal-owl-activity{position:relative;background:linear-gradient(180deg,#0b1035 0%,#27245d 58%,#51458f 100%)}
.owl-night-sky{position:absolute;inset:0 0 36%;overflow:hidden;background:radial-gradient(circle at 75% 12%,rgba(197,207,255,.2),transparent 25%)}
.owl-night-sky::after{content:'';position:absolute;right:10%;top:8%;width:58px;height:58px;border-radius:50%;background:#fff8cc;box-shadow:0 0 22px rgba(255,248,204,.55)}
.owl-night-sky i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff;animation:owl-star-twinkle 1.4s ease-in-out infinite alternate}
.owl-night-sky i:nth-child(1){left:10%;top:18%}.owl-night-sky i:nth-child(2){left:23%;top:34%;animation-delay:.3s}.owl-night-sky i:nth-child(3){left:39%;top:12%;animation-delay:.7s}
.owl-night-sky i:nth-child(4){left:55%;top:29%;animation-delay:1s}.owl-night-sky i:nth-child(5){left:69%;top:15%;animation-delay:.5s}.owl-night-sky i:nth-child(6){left:88%;top:42%;animation-delay:.9s}
.owl-castle{position:absolute;left:50%;bottom:5%;width:min(66%,450px);height:67%;transform:translateX(-50%);background:linear-gradient(90deg,#292653,#4b477f 15%,#373268 50%,#4b477f 85%,#292653);border:3px solid #7771a3;border-bottom:0;box-shadow:0 8px 28px rgba(0,0,0,.4)}
.owl-castle-roof{position:absolute;left:-5%;top:-17%;width:110%;height:19%;background:#1b193e;clip-path:polygon(0 100%,13% 0,27% 100%,50% 0,73% 100%,87% 0,100% 100%)}
.owl-window-row{position:absolute;left:8%;right:8%;top:20%;display:flex;justify-content:space-around;gap:8%}
.owl-castle-window{position:relative;width:76px;height:108px;border:4px solid #c9b56b;border-radius:38px 38px 8px 8px;background:linear-gradient(90deg,#18204d 47%,#c9b56b 48%,#c9b56b 52%,#18204d 53%);padding:0;cursor:pointer;overflow:visible;box-shadow:inset 0 0 15px rgba(0,0,0,.55)}
.owl-castle-window::after{content:'';position:absolute;left:0;right:0;top:48%;height:4px;background:#c9b56b}
.owl-window-glow{position:absolute;inset:5px;border-radius:30px 30px 3px 3px;background:rgba(255,222,122,.08);transition:background .5s,box-shadow .5s}
.owl-castle-window.chosen .owl-window-glow,.owl-castle-window.delivered .owl-window-glow{background:rgba(255,225,126,.75);box-shadow:0 0 24px #FFD76A}
.owl-castle-door{position:absolute;left:50%;bottom:0;width:72px;height:105px;transform:translateX(-50%);border-radius:38px 38px 0 0;background:#211d4b;border:4px solid #7771a3;border-bottom:0}
.delivery-owl{position:absolute;z-index:8;left:108%;top:8%;width:80px;height:76px;text-align:center;pointer-events:none}
.delivery-owl-bird{display:block;font-size:3.6rem;line-height:1;filter:drop-shadow(0 6px 5px rgba(0,0,0,.42))}
.delivery-parcel{position:absolute;left:29px;top:48px;font-size:1.35rem;filter:drop-shadow(0 2px 3px rgba(0,0,0,.4))}
.owl-fly .delivery-owl-bird{animation:owl-wing-flap .24s ease-in-out 7 alternate}
.owl-fly-0{animation:owl-flight-left 1.9s cubic-bezier(.22,.75,.3,1) forwards}.owl-fly-1{animation:owl-flight-middle 1.9s cubic-bezier(.22,.75,.3,1) forwards}.owl-fly-2{animation:owl-flight-right 1.9s cubic-bezier(.22,.75,.3,1) forwards}
.owl-letter{position:absolute;z-index:12;left:50%;top:52%;width:min(78%,390px);padding:27px 28px 22px;transform:translate(-50%,-50%) scale(.15) rotate(-8deg);opacity:0;pointer-events:none;border:3px solid #c39a43;border-radius:10px;background:linear-gradient(135deg,#fff9dc,#f4dfaa);color:#5b3518;text-align:center;box-shadow:0 16px 45px rgba(0,0,0,.48);transition:opacity .42s,transform .65s cubic-bezier(.18,.9,.25,1.25)}
.owl-letter.open{opacity:1;transform:translate(-50%,-50%) scale(1) rotate(0);pointer-events:auto}
.owl-letter::before,.owl-letter::after{content:'';position:absolute;left:8px;right:8px;height:2px;background:rgba(140,93,35,.25)}.owl-letter::before{top:9px}.owl-letter::after{bottom:9px}
.owl-letter h3{margin:2px 0 9px;font-family:'Cinzel Decorative',serif;font-size:1rem}.owl-letter p{font-size:.83rem;line-height:1.45;margin:0 0 12px}.owl-letter strong{font-family:cursive;font-size:.75rem}
.owl-letter-seal{font-size:1.8rem}
/* Close control is a sibling of .owl-letter (see polish block) so letter scale never shrinks the hit target */
@keyframes owl-star-twinkle{to{opacity:.3;transform:scale(.6)}}
@keyframes owl-wing-flap{from{transform:rotate(-12deg) scaleY(.82)}to{transform:rotate(12deg) scaleY(1.12)}}
@keyframes owl-flight-left{0%{left:108%;top:8%;transform:rotate(-8deg) scale(.65)}38%{left:58%;top:5%;transform:rotate(-18deg) scale(1.05)}67%{left:16%;top:20%;transform:rotate(9deg) scale(1.12)}84%{left:23%;top:33%;transform:rotate(-5deg)}100%{left:25%;top:37%;transform:rotate(0) scale(.82)}}
@keyframes owl-flight-middle{0%{left:108%;top:8%;transform:rotate(-8deg) scale(.65)}38%{left:63%;top:3%;transform:rotate(-18deg) scale(1.05)}67%{left:30%;top:14%;transform:rotate(9deg) scale(1.12)}84%{left:43%;top:29%;transform:rotate(-5deg)}100%{left:44%;top:37%;transform:rotate(0) scale(.82)}}
@keyframes owl-flight-right{0%{left:108%;top:8%;transform:rotate(-8deg) scale(.65)}35%{left:62%;top:2%;transform:rotate(-18deg) scale(1.05)}60%{left:42%;top:15%;transform:rotate(9deg) scale(1.12)}82%{left:64%;top:28%;transform:rotate(-5deg)}100%{left:63%;top:37%;transform:rotate(0) scale(.82)}}

/* ===== Dream Pillow Choices (19) ===== */
.dream-pillow-activity{background:linear-gradient(180deg,#17143f 0%,#36306f 48%,#7568a5 100%)}
.dream-room-window{position:absolute;left:6%;top:12%;width:112px;height:145px;border:8px solid #4a3d72;border-radius:58px 58px 8px 8px;background:radial-gradient(circle at 62% 27%,#fff7bf 0 13%,#333978 14% 38%,#11163e 70%);box-shadow:inset 0 0 0 3px #a795cb,0 8px 20px rgba(0,0,0,.3)}
.dream-room-window::before,.dream-room-window::after{content:'';position:absolute;background:#786a9e}.dream-room-window::before{left:49%;top:0;width:5px;height:100%}.dream-room-window::after{left:0;top:48%;width:100%;height:5px}
.dream-bed{position:absolute;left:4%;bottom:4%;width:265px;height:112px;border-radius:18px 36px 12px 12px;background:linear-gradient(180deg,#d7c5ed,#9b84c7);border:5px solid #66528d;box-shadow:0 12px 24px rgba(0,0,0,.28)}
.dream-bed::before{content:'';position:absolute;left:-9px;bottom:-16px;width:12px;height:55px;border-radius:5px;background:#5f4c80;box-shadow:259px 0 #5f4c80}
.dream-pillow-item{position:absolute;right:8px;top:-42px;width:92px;height:112px;transform:rotate(7deg)}
.dream-pillow-item .scaled-object{width:100%!important;height:100%!important}
.dream-princess{position:absolute;z-index:5;left:67px;bottom:50px;width:145px;height:205px;filter:drop-shadow(0 7px 10px rgba(0,0,0,.35));transition:filter .4s}
.dream-princess svg{width:100%;height:100%;display:block}
.dream-is-bad .dream-princess{animation:dream-worried-shiver .18s ease-in-out 5 alternate;filter:drop-shadow(0 7px 10px rgba(0,0,0,.35)) saturate(.72)}
.dream-cloud{position:absolute;z-index:5;left:33%;top:15%;width:31%;min-height:145px;padding:18px 24px;border-radius:48%;background:rgba(255,255,255,.92);color:#473568;text-align:center;box-shadow:0 9px 25px rgba(0,0,0,.25);display:flex;flex-direction:column;align-items:center;justify-content:center}
.dream-cloud::before,.dream-cloud::after{content:'';position:absolute;border-radius:50%;background:inherit}.dream-cloud::before{left:-28px;bottom:-22px;width:40px;height:40px}.dream-cloud::after{left:-45px;bottom:-42px;width:18px;height:18px}
.dream-cloud-emoji{font-size:2.6rem;line-height:1.1}.dream-cloud h3{font-family:'Cinzel Decorative',serif;font-size:.88rem;margin:6px 0 4px}.dream-cloud p{font-size:.7rem;line-height:1.3;margin:0}
.dream-cloud.dreaming{animation:dream-cloud-arrive .7s cubic-bezier(.2,.9,.25,1.2)}
.dream-is-good .dream-cloud{box-shadow:0 0 30px rgba(255,232,125,.52)}.dream-is-bad .dream-cloud{background:rgba(215,211,235,.95);box-shadow:0 0 30px rgba(82,73,132,.7)}
.dream-options{position:absolute;z-index:7;right:3%;top:18%;width:30%;display:grid;grid-template-columns:1fr 1fr;gap:9px}
.dream-option{min-height:80px;padding:8px 5px;border:2px solid rgba(255,255,255,.42);border-radius:17px;background:rgba(255,255,255,.13);color:#fff;font-family:'Quicksand',sans-serif;cursor:pointer;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px}
.dream-option span{font-size:1.6rem}.dream-option strong{font-size:.62rem;line-height:1.15}.dream-option.sweet-dream{border-color:rgba(255,215,0,.55)}.dream-option.bad-dream{border-color:rgba(178,166,214,.7);background:rgba(39,33,82,.38)}
.dream-option.chosen{transform:scale(1.06);border-color:#fff;box-shadow:0 0 15px rgba(255,255,255,.42)}
@keyframes dream-cloud-arrive{0%{opacity:0;transform:scale(.3) translate(-50px,45px)}100%{opacity:1;transform:scale(1) translate(0,0)}}
@keyframes dream-worried-shiver{from{transform:translateX(-3px) rotate(-1deg)}to{transform:translateX(3px) rotate(1deg)}}
.dream-full-scene{display:none;position:absolute;inset:0;z-index:26;overflow:hidden;background-position:center;background-size:cover;color:#fff}
.dream-full-scene.active{display:block;animation:dream-scene-reveal .9s cubic-bezier(.2,.8,.2,1) both}
.dream-playing>.activity-prompt,.dream-playing>.dream-room-window,.dream-playing>.dream-bed,.dream-playing>.dream-princess,.dream-playing>.dream-cloud,.dream-playing>.dream-options{visibility:hidden}
.dream-scene-vignette{position:absolute;inset:0;background:linear-gradient(180deg,rgba(12,10,45,.12),transparent 42%,rgba(9,6,35,.52));box-shadow:inset 0 0 80px rgba(17,8,55,.38);pointer-events:none}
.dream-scene-motion{position:absolute;inset:0;overflow:hidden;pointer-events:none}
.dream-scene-caption{position:absolute;z-index:8;left:50%;top:5%;width:min(580px,72%);padding:11px 24px 13px;transform:translateX(-50%);border:2px solid rgba(255,255,255,.7);border-radius:24px;background:rgba(24,15,69,.67);box-shadow:0 8px 28px rgba(0,0,0,.3),inset 0 0 18px rgba(255,255,255,.09);backdrop-filter:blur(5px);text-align:center;animation:dream-caption-in .8s .35s ease-out both}
.dream-scene-caption span{font-size:1.65rem}.dream-scene-caption h2{margin:0 0 3px;font:700 1.15rem 'Cinzel Decorative',serif;text-shadow:0 2px 5px #24134d}.dream-scene-caption p{margin:0;font-size:.72rem;line-height:1.35}
.dream-scene-bed{position:absolute;z-index:7;left:4%;bottom:3%;width:min(430px,50%);height:170px;border-radius:26px 38px 18px 18px;background:linear-gradient(180deg,#e9dcf7 0 12%,#bda4db 13% 100%);border:6px solid #69528f;box-shadow:0 15px 28px rgba(7,5,32,.48),inset 0 10px rgba(255,255,255,.35);animation:dream-bed-enter 1s .25s cubic-bezier(.2,.85,.25,1.12) both}
.dream-scene-bed::before,.dream-scene-bed::after{content:'';position:absolute;bottom:-20px;width:14px;height:62px;border-radius:7px;background:#574276}.dream-scene-bed::before{left:-11px}.dream-scene-bed::after{right:-11px}
.dream-scene-headboard{position:absolute;left:-7px;top:-74px;width:66px;height:146px;border:6px solid #69528f;border-radius:50px 50px 8px 8px;background:linear-gradient(135deg,#cfb8e8,#8f73b8);box-shadow:inset 8px 0 rgba(255,255,255,.18)}
.dream-scene-pillow{position:absolute;z-index:1;left:24px;top:-27px;width:155px;height:80px;border-radius:48% 42% 45% 35%;background:linear-gradient(145deg,#fff,#e8ddf4);border:3px solid #b9a5d2;box-shadow:inset -8px -7px 12px rgba(100,72,132,.12),0 5px 8px rgba(45,27,77,.2);transform:rotate(-4deg)}
.dream-scene-princess{position:absolute;z-index:2;left:42px;top:-129px;width:170px;height:245px;filter:drop-shadow(0 7px 9px rgba(0,0,0,.34));animation:dream-sleeper-breathe 2.8s ease-in-out infinite}
.dream-scene-princess svg{width:100%;height:100%;display:block}
.dream-scene-blanket{position:absolute;z-index:4;left:114px;right:-5px;top:22px;bottom:-5px;border-radius:55px 33px 17px 12px;background:linear-gradient(145deg,#a883d1 0%,#7354a8 70%,#5c428f 100%);border:4px solid #62468f;box-shadow:inset 15px 12px 20px rgba(255,255,255,.16),inset -15px -10px 18px rgba(46,24,91,.22)}
.dream-scene-blanket::before{content:'';position:absolute;left:18px;right:18px;top:18px;height:5px;border-radius:50%;background:rgba(255,255,255,.25);box-shadow:0 43px rgba(255,255,255,.09)}
.dream-scene-blanket::after{content:'☾  ✦  ✧  ✦';position:absolute;left:18%;top:43%;color:#f7dd7a;font-size:1.1rem;letter-spacing:.7rem;text-shadow:0 0 8px rgba(255,230,118,.7)}
.dream-full-scene.bad-dream .dream-scene-bed{animation:dream-bed-enter 1s .25s cubic-bezier(.2,.85,.25,1.12) both,dream-worried-full .22s 1.15s ease-in-out 5 alternate}
.dream-full-scene.bad-dream .dream-scene-blanket{background:linear-gradient(145deg,#7e78a8,#45416f)}
.dream-scene-close{position:absolute;z-index:12;left:50%;bottom:3%;transform:translateX(-50%);padding:10px 22px;border:2px solid rgba(255,255,255,.78);border-radius:999px;background:linear-gradient(135deg,#fff,#e8ddff);box-shadow:0 5px 18px rgba(0,0,0,.32);color:#4b327b;font:700 .72rem 'Quicksand',sans-serif;cursor:pointer;animation:dream-close-in .6s 1s ease-out both}
.dream-scene-close:hover{transform:translateX(-50%) scale(1.05);box-shadow:0 7px 24px rgba(0,0,0,.38),0 0 20px rgba(255,255,255,.35)}
.dream-petal{position:absolute;left:var(--x);top:-25px;width:var(--s);height:var(--s);border-radius:70% 20% 70% 20%;background:linear-gradient(135deg,#fff4ff,#ff88cb);box-shadow:0 0 7px #fff;animation:dream-petal-fall 4.5s var(--d) linear infinite}
.dream-butterfly{position:absolute;font-size:1.8rem;filter:drop-shadow(0 0 6px #fff);animation:dream-butterfly 5s ease-in-out infinite}.butterfly-a{left:18%;top:39%}.butterfly-b{right:17%;top:31%;animation-delay:-2.1s}
.dream-shooting-star{position:absolute;left:var(--x);top:var(--y);width:75px;height:3px;border-radius:50%;background:linear-gradient(90deg,transparent,#b7eaff,#fff);filter:drop-shadow(0 0 5px #8ce8ff);transform:rotate(-24deg) translateX(-160px);animation:dream-star-shoot 2.6s var(--d) ease-in infinite}
.dream-falling-sweet{position:absolute;left:var(--x);top:-60px;font-size:1.65rem;filter:drop-shadow(0 3px 4px rgba(69,21,76,.35));animation:dream-sweet-fall 5s var(--d) linear infinite}
.dream-bubble{position:absolute;left:var(--x);bottom:-30px;width:var(--s);height:var(--s);border:2px solid rgba(255,255,255,.75);border-radius:50%;box-shadow:inset 2px 2px 4px rgba(255,255,255,.7),0 0 7px rgba(126,238,255,.8);animation:dream-bubble-rise 4.4s var(--d) ease-in infinite}
.dream-swimming-fish{position:absolute;left:-70px;font-size:2.1rem;filter:drop-shadow(0 3px 5px rgba(0,36,96,.45));animation:dream-fish-swim 7s linear infinite}.fish-a{top:42%}.fish-b{top:66%;animation-duration:9s;animation-delay:-4s}
.dream-rain{position:absolute;inset:0}.dream-rain i{position:absolute;left:var(--x);top:-30px;width:2px;height:34px;background:linear-gradient(transparent,rgba(207,222,255,.85));transform:rotate(13deg);animation:dream-rain-fall .72s var(--d) linear infinite}
.dream-lightning{position:absolute;inset:0;background:#e9e4ff;mix-blend-mode:screen;opacity:0;animation:dream-lightning-flash 4.2s 1.1s infinite}
.dream-floating-ghost{position:absolute;font-size:3.6rem;opacity:.9;filter:drop-shadow(0 0 15px #b9c9ff);animation:dream-ghost-float 4s ease-in-out infinite}.ghost-a{left:55%;top:38%}.ghost-b{right:8%;top:58%;font-size:2.7rem;animation-delay:-1.7s}
.dream-maze-mist{position:absolute;left:-10%;right:-10%;bottom:-5%;height:35%;background:radial-gradient(ellipse at center,rgba(209,216,255,.58),rgba(129,115,199,.1) 65%,transparent);filter:blur(11px);animation:dream-mist-drift 5s ease-in-out infinite alternate}
@keyframes dream-scene-reveal{0%{opacity:0;transform:scale(1.12);filter:blur(9px)}100%{opacity:1;transform:scale(1);filter:blur(0)}}
@keyframes dream-caption-in{0%{opacity:0;transform:translate(-50%,-35px) scale(.85)}100%{opacity:1;transform:translate(-50%,0) scale(1)}}
@keyframes dream-princess-enter{0%{opacity:0;transform:translateY(80px) scale(.75)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes dream-princess-fly{0%{transform:translate(-18px,16px) rotate(-4deg)}100%{transform:translate(85px,-32px) rotate(6deg)}}
@keyframes dream-princess-float{0%,100%{transform:translateY(4px) rotate(-1deg)}50%{transform:translateY(-17px) rotate(2deg)}}
@keyframes dream-bed-enter{0%{opacity:0;transform:translateY(100px) scale(.88)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes dream-sleeper-breathe{0%,100%{transform:translateY(2px)}50%{transform:translateY(-3px)}}
@keyframes dream-worried-full{from{transform:translateX(-5px) rotate(-1.5deg)}to{transform:translateX(5px) rotate(1.5deg)}}
@keyframes dream-close-in{from{opacity:0;transform:translate(-50%,25px)}to{opacity:1;transform:translate(-50%,0)}}
@keyframes dream-petal-fall{0%{transform:translate(0,-20px) rotate(0);opacity:0}10%{opacity:1}100%{transform:translate(80px,620px) rotate(520deg);opacity:.3}}
@keyframes dream-butterfly{0%,100%{transform:translate(0,0) rotate(-8deg)}35%{transform:translate(55px,-30px) rotate(8deg)}70%{transform:translate(18px,42px) rotate(-3deg)}}
@keyframes dream-star-shoot{0%,18%{opacity:0;transform:rotate(-24deg) translateX(-160px)}25%{opacity:1}65%,100%{opacity:0;transform:rotate(-24deg) translateX(420px)}}
@keyframes dream-sweet-fall{0%{transform:translateY(-50px) rotate(0);opacity:0}10%{opacity:1}100%{transform:translateY(650px) rotate(var(--r));opacity:.65}}
@keyframes dream-bubble-rise{0%{transform:translate(0,30px) scale(.7);opacity:0}12%{opacity:.85}100%{transform:translate(35px,-600px) scale(1.25);opacity:0}}
@keyframes dream-fish-swim{0%{transform:translateX(-80px)}45%{transform:translateX(620px) translateY(-28px)}50%{transform:translateX(680px) translateY(-28px) scaleX(-1)}95%{transform:translateX(-20px) scaleX(-1)}100%{transform:translateX(-80px)}}
@keyframes dream-rain-fall{to{transform:translate(90px,640px) rotate(13deg)}}
@keyframes dream-lightning-flash{0%,8%,12%,100%{opacity:0}9%,11%{opacity:.72}}
@keyframes dream-ghost-float{0%,100%{transform:translate(0,0) rotate(-5deg)}50%{transform:translate(22px,-28px) rotate(7deg)}}
@keyframes dream-mist-drift{from{transform:translateX(-4%) scaleX(1)}to{transform:translateX(4%) scaleX(1.12)}}

/* ===== Night Lantern Castle Hallway (21) ===== */
.castle-lantern-activity{--hall-light:0;background:#0d0926}
.castle-hallway{position:absolute;inset:0;overflow:hidden;background:linear-gradient(180deg,#100b2d,#21164a 52%,#16102f)}
.castle-hall-ceiling{position:absolute;z-index:1;left:20%;right:20%;top:0;height:20%;clip-path:polygon(25% 0,75% 0,100% 100%,0 100%);background:repeating-linear-gradient(90deg,#25194d 0 13%,#45326e 14% 15%,#25194d 16% 31%);border-bottom:5px solid #665087;filter:brightness(.32);transition:filter .7s}
.castle-hall-ceiling i{position:absolute;top:0;width:3px;height:100%;background:#8c75aa;transform-origin:top}.castle-hall-ceiling i:nth-child(1){left:20%;transform:rotate(-12deg)}.castle-hall-ceiling i:nth-child(2){left:50%}.castle-hall-ceiling i:nth-child(3){right:20%;transform:rotate(12deg)}
.castle-hall-back-wall{position:absolute;z-index:2;left:31%;right:31%;top:15%;height:42%;border:5px solid #4b396c;background:linear-gradient(90deg,#2a1e50,#4a376c 48%,#291e4d);box-shadow:inset 0 0 35px #0b071f;filter:brightness(.35);transition:filter .7s}
.castle-crest{position:absolute;left:50%;top:7%;transform:translateX(-50%);color:#d2b85e;font-size:2rem;text-shadow:0 0 10px #ffe88a}
.castle-far-doors{position:absolute;left:50%;bottom:0;width:42%;height:72%;transform:translateX(-50%);display:flex;perspective:350px}
.castle-far-doors span{width:50%;height:100%;border:4px solid #806936;background:linear-gradient(90deg,#241845,#5a3966);box-shadow:inset 0 0 0 5px #35234d,inset 0 0 0 7px #9b8248;transition:transform 1.1s cubic-bezier(.2,.8,.2,1)}
.castle-far-doors span:first-child{transform-origin:left}.castle-far-doors span:last-child{transform-origin:right}
.castle-hall-complete .castle-far-doors span:first-child{transform:rotateY(-72deg)}.castle-hall-complete .castle-far-doors span:last-child{transform:rotateY(72deg)}
.castle-hall-complete .castle-far-doors::after{content:'\2728';position:absolute;z-index:-1;inset:5% 12% 0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle,#fff7b7,#a68eff 45%,#31275f 75%);font-size:2.6rem;box-shadow:0 0 30px #ffe98a}
.castle-wall{position:absolute;z-index:3;top:0;bottom:31%;width:39%;background:repeating-linear-gradient(180deg,#302252 0 18%,#3f2c61 19% 20%,#2d204f 21% 39%);filter:brightness(.3);transition:filter .7s}
.castle-wall-left{left:0;clip-path:polygon(0 0,77% 0,100% 100%,0 100%)}.castle-wall-right{right:0;clip-path:polygon(23% 0,100% 0,100% 100%,0 100%)}
.castle-window{position:absolute;width:25%;height:29%;border:6px solid #493660;border-radius:48px 48px 5px 5px;background:radial-gradient(circle at 65% 25%,#fff2a8 0 7%,#171a50 8% 45%,#090d29 78%);box-shadow:inset 0 0 0 3px #806a98}.castle-window::before,.castle-window::after{content:'';position:absolute;background:#645075}.castle-window::before{left:48%;top:0;width:4px;height:100%}.castle-window::after{left:0;top:50%;width:100%;height:4px}.window-one{left:7%;top:10%;transform:skewY(5deg)}.window-two{left:39%;top:43%;width:20%;height:23%;transform:skewY(5deg)}.window-three{right:35%;top:34%;width:20%;height:24%;transform:skewY(-5deg)}
.castle-portrait{position:absolute;width:20%;height:25%;padding:5px;border:5px ridge #8c7040;background:#17102e;box-shadow:0 5px 10px #080614;box-sizing:border-box}.castle-portrait span{width:100%;height:100%;display:flex;align-items:center;justify-content:center;border-radius:50%;background:radial-gradient(circle,#775a91,#291c46);font-size:1.4rem}.portrait-one{left:45%;top:9%;transform:skewY(5deg)}.portrait-two{right:8%;top:10%;transform:skewY(-5deg)}.portrait-three{right:8%;top:48%;width:17%;height:21%;transform:skewY(-5deg)}
.castle-hall-floor{position:absolute;z-index:4;left:0;right:0;bottom:0;height:52%;clip-path:polygon(31% 0,69% 0,100% 100%,0 100%);background:repeating-linear-gradient(90deg,#211841 0 9%,#503b6d 9.5% 10%,#211841 10.5% 20%);filter:brightness(.35);transition:filter .7s}
.castle-hall-floor::before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(180deg,transparent 0 16%,rgba(166,139,188,.55) 17% 18%,transparent 19% 34%)}
.castle-hall-floor i{position:absolute;bottom:0;width:3px;height:100%;background:#8c75a0;transform-origin:bottom}.castle-hall-floor i:nth-child(1){left:8%;transform:rotate(19deg)}.castle-hall-floor i:nth-child(2){left:28%;transform:rotate(10deg)}.castle-hall-floor i:nth-child(3){left:50%}.castle-hall-floor i:nth-child(4){right:28%;transform:rotate(-10deg)}.castle-hall-floor i:nth-child(5){right:8%;transform:rotate(-19deg)}
.castle-columns{position:absolute;z-index:5;top:10%;bottom:25%;width:31%;pointer-events:none;filter:brightness(.3);transition:filter .7s}.castle-columns i{position:absolute;width:24px;height:100%;border:4px solid #4d3965;background:linear-gradient(90deg,#302044,#78658b,#2b1d42);box-shadow:0 0 0 5px #211631}.castle-columns i::before,.castle-columns i::after{content:'';position:absolute;left:-12px;width:48px;height:13px;border:3px solid #49355d;background:#766184}.castle-columns i::before{top:-9px}.castle-columns i::after{bottom:-9px}.left-columns{left:5%}.right-columns{right:5%}.castle-columns i:nth-child(1){left:0}.castle-columns i:nth-child(2){left:47%;height:78%;top:12%;transform:scale(.8)}.castle-columns i:nth-child(3){right:0;height:58%;top:23%;transform:scale(.64)}
.castle-hall-darkness{position:absolute;z-index:8;inset:0;pointer-events:none;background:radial-gradient(circle at 15% 78%,rgba(255,189,76,.17),rgba(5,3,20,.72) 24%,rgba(4,2,16,.9) 68%);opacity:.92;transition:opacity .8s}
.castle-hall-glow{position:absolute;z-index:9;inset:0;pointer-events:none;background:radial-gradient(ellipse at 50% 52%,rgba(255,221,122,.42),transparent 62%);opacity:0;transition:opacity .8s}
.castle-step-1 .castle-hall-darkness{opacity:.75}.castle-step-2 .castle-hall-darkness{opacity:.62}.castle-step-3 .castle-hall-darkness{opacity:.49}.castle-step-4 .castle-hall-darkness{opacity:.36}.castle-step-5 .castle-hall-darkness{opacity:.24}.castle-step-6 .castle-hall-darkness{opacity:.1}
.castle-step-2 .castle-wall,.castle-step-2 .castle-columns,.castle-step-2 .castle-hall-floor{filter:brightness(.52)}.castle-step-4 .castle-wall,.castle-step-4 .castle-columns,.castle-step-4 .castle-hall-floor,.castle-step-4 .castle-hall-ceiling,.castle-step-4 .castle-hall-back-wall{filter:brightness(.76)}.castle-hall-complete .castle-wall,.castle-hall-complete .castle-columns,.castle-hall-complete .castle-hall-floor,.castle-hall-complete .castle-hall-ceiling,.castle-hall-complete .castle-hall-back-wall{filter:brightness(1.05)}.castle-hall-complete .castle-hall-glow{opacity:.65}
.castle-candle-path{position:absolute;z-index:12;inset:0}.castle-hall-candle{position:absolute;width:58px;height:100px;padding:0;transform:translate(-50%,-50%) scale(var(--candle-scale));transform-origin:center bottom;border:0;background:transparent;color:#fff;cursor:not-allowed;opacity:.38;filter:grayscale(.8);transition:opacity .35s,filter .35s}
.castle-hall-candle.next-candle,.castle-hall-candle.lit{opacity:1;filter:none;cursor:pointer}.castle-hall-candle.next-candle{animation:castle-candle-call 1.15s ease-in-out infinite}
.castle-candle-wax{position:absolute;left:22px;top:30px;width:17px;height:42px;border-radius:6px 6px 2px 2px;background:linear-gradient(90deg,#d8c9b6,#fff8df 45%,#c5ae9c);box-shadow:inset -3px 0 3px rgba(67,35,58,.25)}.castle-candle-wick{position:absolute;z-index:3;left:29px;top:24px;width:3px;height:9px;background:#18101d}.castle-candle-holder{position:absolute;left:13px;top:70px;width:36px;height:8px;border-radius:50%;background:linear-gradient(#e0c25f,#84632f);box-shadow:0 5px 0 -2px #563f29}.castle-candle-holder::after{content:'';position:absolute;left:16px;top:5px;width:5px;height:18px;background:#927035}
.castle-candle-flame{position:absolute;z-index:5;left:24px;top:5px;width:14px;height:23px;border-radius:55% 45% 58% 42%;background:#31294a;transform:rotate(45deg);transition:background .3s,box-shadow .3s}.castle-hall-candle.lit .castle-candle-flame{background:radial-gradient(circle at 65% 65%,#fff,#ffe66b 28%,#ff982f 63%,#ef4b20);box-shadow:0 0 12px #fff19a,0 0 28px #ffb13b,0 0 55px 19px rgba(255,182,67,.5);animation:castle-flame-flicker .38s ease-in-out infinite alternate}
.castle-hall-candle small{position:absolute;left:50%;top:88px;width:110px;transform:translateX(-50%);padding:3px 6px;border-radius:8px;background:rgba(24,14,47,.8);font:700 .48rem 'Quicksand',sans-serif;opacity:0;transition:opacity .3s}.castle-hall-candle.next-candle small,.castle-hall-candle.lit small{opacity:1}
.castle-hall-candle.lit::after{content:'';position:absolute;z-index:-1;left:50%;top:30px;width:135px;height:105px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(255,225,130,.38),transparent 70%);animation:castle-light-breathe 1.7s ease-in-out infinite alternate}
.castle-lantern-princess{position:absolute;z-index:11;left:6%;top:72%;width:132px;height:188px;transform:translate(-10%,-50%) scale(1.08);filter:brightness(.6) drop-shadow(0 8px 10px rgba(0,0,0,.5));transition:left 1s cubic-bezier(.2,.8,.2,1),top 1s cubic-bezier(.2,.8,.2,1),transform 1s,filter .7s;pointer-events:none}.castle-lantern-princess svg{width:100%;height:100%;display:block}.castle-step-1 .castle-lantern-princess{filter:brightness(.8) drop-shadow(0 8px 10px rgba(0,0,0,.5))}.castle-step-3 .castle-lantern-princess,.castle-hall-complete .castle-lantern-princess{filter:brightness(1) drop-shadow(0 8px 10px rgba(0,0,0,.45))}
.castle-princess-walking{animation:castle-princess-step .42s ease-in-out 2}
.princess-night-lantern{position:absolute;z-index:4;right:-13px;top:74px;width:48px;height:62px;filter:drop-shadow(0 0 8px #ffc646)}.princess-night-lantern .scaled-object{width:100%!important;height:100%!important}
.castle-location-card{position:absolute;z-index:15;right:2%;top:12%;width:175px;padding:9px 10px;border:2px solid rgba(213,181,93,.7);border-radius:14px;background:rgba(23,13,50,.84);box-shadow:0 6px 18px rgba(0,0,0,.35);text-align:center}.castle-location-card span{font-size:1.4rem}.castle-location-card strong,.castle-location-card small{display:block}.castle-location-card strong{font:700 .7rem 'Cinzel Decorative',serif;color:#ffe693}.castle-location-card small{margin-top:3px;font-size:.55rem;line-height:1.25}.castle-location-card.castle-card-show{animation:castle-card-arrive .55s ease-out}
@keyframes castle-candle-call{0%,100%{transform:translate(-50%,-50%) scale(var(--candle-scale))}50%{transform:translate(-50%,-55%) scale(calc(var(--candle-scale) + .1));filter:drop-shadow(0 0 12px #ffe786)}}
@keyframes castle-flame-flicker{from{transform:rotate(42deg) scale(.9,1.05)}to{transform:rotate(48deg) scale(1.08,.94)}}
@keyframes castle-light-breathe{from{opacity:.55;transform:translate(-50%,-50%) scale(.9)}to{opacity:1;transform:translate(-50%,-50%) scale(1.12)}}
@keyframes castle-princess-step{0%,100%{margin-top:0}50%{margin-top:-13px}}
@keyframes castle-card-arrive{from{opacity:0;transform:translateX(25px) scale(.9)}to{opacity:1;transform:translateX(0) scale(1)}}

/* ===== Big Silver Mirror (20) ===== */
.silver-mirror-activity{background:radial-gradient(circle at 50% 35%,#68609b 0%,#332b69 60%,#1d1748 100%)}
.mirror-room-sparkles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#dcd7ff;box-shadow:0 0 8px #fff;animation:mirror-room-twinkle 1.5s ease-in-out infinite alternate}
.mirror-room-sparkles i:nth-child(1){left:16%;top:19%}.mirror-room-sparkles i:nth-child(2){right:15%;top:27%;animation-delay:.5s}.mirror-room-sparkles i:nth-child(3){left:23%;top:62%;animation-delay:.9s}.mirror-room-sparkles i:nth-child(4){right:20%;top:71%;animation-delay:.2s}
.mirror-princess{position:absolute;left:4%;bottom:4%;z-index:5;width:155px;height:215px;filter:drop-shadow(0 7px 11px rgba(0,0,0,.38))}
.mirror-princess svg{width:100%;height:100%;display:block}
.mirror-finished .mirror-princess{animation:mirror-princess-smile .8s ease-out}
.royal-mirror{--cleaned:0;position:absolute;z-index:4;left:52%;top:51%;width:310px;height:365px;transform:translate(-50%,-50%);filter:drop-shadow(0 13px 19px rgba(0,0,0,.45))}
.royal-mirror-glass{position:absolute;left:28px;right:28px;top:30px;height:285px;border:13px solid #b9b7c8;border-radius:49% 49% 42% 42%;overflow:hidden;background:linear-gradient(145deg,#8d98ae,#d6d8df 45%,#7c839a);box-shadow:inset 0 0 0 5px #e8e6ef,inset 0 0 22px rgba(46,42,78,.5),0 0 0 5px #706b83}
.royal-mirror-glass::before{content:'';position:absolute;inset:0;background:linear-gradient(115deg,transparent 5%,rgba(255,255,255,.32) 19%,transparent 35%);z-index:4;pointer-events:none}
.royal-mirror-crown{position:absolute;z-index:6;left:50%;top:-17px;transform:translateX(-50%);width:96px;height:54px;padding-top:5px;border-radius:50% 50% 12px 12px;background:linear-gradient(135deg,#f1eff7,#8c899d 52%,#d7d4df);border:5px solid #686477;color:#fff5a5;text-align:center;font-size:2rem;text-shadow:0 0 8px #fff;box-sizing:border-box}
.mirror-reflection{position:absolute;left:50%;bottom:-6px;width:190px;height:270px;transform:translateX(-50%) scaleX(-1);opacity:calc(.3 + var(--cleaned) * .7);filter:blur(calc(4px - var(--cleaned) * 4px)) saturate(calc(.55 + var(--cleaned) * .45));transition:opacity .5s,filter .5s}
.mirror-reflection svg{width:100%;height:100%;display:block}
.mirror-dirt-layer{position:absolute;z-index:2;inset:0;background:radial-gradient(circle at 18% 25%,rgba(78,69,62,.74),transparent 24%),radial-gradient(circle at 76% 18%,rgba(104,94,77,.65),transparent 22%),radial-gradient(circle at 33% 69%,rgba(72,67,64,.65),transparent 28%),radial-gradient(circle at 79% 72%,rgba(92,82,71,.7),transparent 24%),linear-gradient(rgba(92,88,96,.48),rgba(117,107,95,.35));opacity:calc(.88 - var(--cleaned) * .7);transition:opacity .55s}
.mirror-wipe-patches{position:absolute;z-index:5;inset:0}
.mirror-wipe-patch{position:absolute;border:0;border-radius:48%;background:radial-gradient(ellipse,rgba(76,69,62,.88) 0%,rgba(109,100,86,.7) 48%,rgba(86,80,78,.15) 74%,transparent 76%);cursor:pointer;padding:0;transition:opacity .55s,transform .55s;box-shadow:inset 0 0 14px rgba(57,49,43,.5)}
.mirror-wipe-patch span{font-size:1.25rem;opacity:.8;filter:drop-shadow(0 1px 2px rgba(0,0,0,.35))}
.mirror-wipe-patch.cleaned{opacity:0;transform:scale(.45) rotate(14deg);pointer-events:none}
.mirror-shine{position:absolute;z-index:6;inset:0;opacity:0;pointer-events:none;background:linear-gradient(120deg,transparent 22%,rgba(255,255,255,.8) 38%,transparent 53%);transform:translateX(-100%);transition:opacity .3s}
.mirror-clean .mirror-shine{opacity:1;animation:mirror-shine-sweep 1.35s ease-out}
.royal-mirror-stand{position:absolute;left:50%;bottom:-5px;width:32px;height:58px;transform:translateX(-50%);background:linear-gradient(90deg,#6c687c,#dad7e1 45%,#777386);border-radius:5px}
.royal-mirror-stand::after{content:'';position:absolute;left:50%;bottom:-8px;width:150px;height:18px;transform:translateX(-50%);border-radius:50%;background:linear-gradient(#d4d1dc,#716d80)}
.mirror-clean-status{position:absolute;z-index:7;right:4%;bottom:8%;width:155px;padding:10px;border-radius:16px;background:rgba(255,255,255,.14);border:2px solid rgba(220,215,255,.45);color:#fff;text-align:center}
.mirror-clean-status span{display:block;font-size:1.8rem}.mirror-clean-status strong{display:block;font-size:.67rem;margin-top:3px}
.mirror-finished .mirror-clean-status{border-color:#fff2a1;box-shadow:0 0 18px rgba(255,242,161,.38)}
@keyframes mirror-room-twinkle{to{opacity:.2;transform:scale(.5)}}
@keyframes mirror-shine-sweep{0%{transform:translateX(-110%)}100%{transform:translateX(110%)}}
@keyframes mirror-princess-smile{0%{transform:scale(.88)}55%{transform:scale(1.08) translateY(-6px)}100%{transform:scale(1)}}

/* ===== Chandelier Designer (22) ===== */
.chandelier-designer-activity{background:linear-gradient(180deg,#171139 0%,#3d2d68 63%,#6e527f 100%)}
.chandelier-ballroom{position:absolute;inset:0;overflow:hidden;background:radial-gradient(ellipse at 43% 30%,rgba(255,231,164,.17),transparent 42%)}
.chandelier-ballroom::before,.chandelier-ballroom::after{content:'';position:absolute;top:8%;bottom:0;width:90px;border:4px solid rgba(207,190,226,.2);border-bottom:0;border-radius:50px 50px 0 0}.chandelier-ballroom::before{left:3%}.chandelier-ballroom::after{right:3%}
.chandelier-preview{position:absolute;z-index:4;left:43%;top:3%;width:320px;height:280px;transform:translateX(-50%);filter:drop-shadow(0 8px 10px rgba(0,0,0,.4))}
.chandelier-preview svg{width:100%;height:100%;overflow:visible}
.chandelier-crystal{filter:drop-shadow(0 2px 3px rgba(0,0,0,.25));transition:filter .5s}
.chandelier-flame{opacity:.35;transition:opacity .5s}
.chandelier-light-rays{position:absolute;z-index:2;left:43%;top:15%;width:430px;height:370px;transform:translateX(-50%);opacity:0;background:conic-gradient(from 198deg at 50% 0,transparent 0 8deg,rgba(255,238,170,.24) 9deg 20deg,transparent 21deg 30deg,rgba(255,238,170,.2) 31deg 45deg,transparent 46deg 55deg,rgba(255,238,170,.2) 56deg 68deg,transparent 69deg);filter:blur(4px);transition:opacity .8s}
.chandelier-floor{position:absolute;left:0;right:0;bottom:0;height:25%;background:repeating-linear-gradient(90deg,rgba(255,255,255,.08) 0 2px,transparent 2px 70px),linear-gradient(180deg,#69517c,#402f5c);border-top:4px solid rgba(231,215,191,.25)}
.chandelier-princess{position:absolute;z-index:7;left:4%;bottom:3%;width:135px;height:190px;filter:drop-shadow(0 7px 11px rgba(0,0,0,.35))}
.chandelier-princess svg{width:100%;height:100%;display:block}
.chandelier-controls{position:absolute;z-index:8;right:2%;top:10%;width:min(252px,46%);padding:12px;border-radius:20px;background:rgba(19,13,48,.72);border:2px solid rgba(255,215,0,.3);box-shadow:0 10px 24px rgba(0,0,0,.32);box-sizing:border-box}
.chandelier-control-group{margin-bottom:9px}.chandelier-control-group>strong{display:block;margin-bottom:4px;color:#FFF3B0;font-size:.68rem;text-transform:uppercase;letter-spacing:.08em}.chandelier-control-group>div{display:flex;gap:5px;width:100%}
.chandelier-design-choice{flex:1 1 0;min-width:0;min-height:54px;padding:5px 3px 4px;border:2px solid rgba(255,255,255,.28);border-radius:11px;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;font-family:'Quicksand',sans-serif;overflow:hidden;box-sizing:border-box}
.chandelier-design-choice span{display:block;width:22px;height:22px;margin:0 auto 3px;border-radius:50%;background:var(--choice-color,transparent);font-size:1.15rem;line-height:22px;text-shadow:0 0 5px #fff}
.chandelier-design-choice small{display:block;width:100%;max-width:100%;box-sizing:border-box;padding:0 1px;font-size:.55rem;font-weight:800;line-height:1.1;text-align:center;white-space:normal;overflow-wrap:anywhere;word-break:break-word;hyphens:auto}
.chandelier-design-choice.rainbow-choice span{background:conic-gradient(#ff8da1,#ffd76a,#82e6c8,#78b7ff,#c69bff,#ff8da1)}
.chandelier-design-choice.selected{border-color:#FFD700;background:rgba(255,215,0,.2);box-shadow:0 0 9px rgba(255,215,0,.35);transform:translateY(-2px)}
.chandelier-light-btn{width:100%;min-height:42px;margin-top:2px;border:2px solid #FFD700;border-radius:18px;background:linear-gradient(180deg,#fffbe0,#ffd76a);color:#4b326b;font-family:'Quicksand',sans-serif;font-weight:900;cursor:pointer;animation:chandelier-button-glow .8s ease-in-out infinite alternate}
.chandelier-lit .chandelier-light-rays{opacity:1}.chandelier-lit .chandelier-flame{opacity:1}.chandelier-lit .chandelier-crystal{filter:drop-shadow(0 0 8px #fff);animation:chandelier-crystal-dance .75s ease-in-out 2 alternate}.chandelier-lit .chandelier-preview{filter:drop-shadow(0 0 22px rgba(255,231,143,.7))}
.chandelier-lit .chandelier-princess{animation:chandelier-princess-cheer .75s ease-out}
@keyframes chandelier-button-glow{to{box-shadow:0 0 14px rgba(255,215,0,.55);transform:scale(1.025)}}
@keyframes chandelier-crystal-dance{from{transform:rotate(-4deg)}to{transform:rotate(4deg)}}
@keyframes chandelier-princess-cheer{0%{transform:scale(.9)}55%{transform:scale(1.08) translateY(-8px)}100%{transform:scale(1)}}

/* ===== Moon Explorer (25) ===== */
.moon-explorer-activity{background:linear-gradient(180deg,#06081e 0%,#151847 50%,#313268 100%);overflow:hidden}
.moon-explorer-sky{position:absolute;inset:0 0 34%;background:radial-gradient(circle at 65% 22%,rgba(174,195,255,.2),transparent 26%)}
.moon-explorer-sky i{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff;animation:moon-star-twinkle 1.6s ease-in-out infinite alternate}
.moon-explorer-sky i:nth-child(1){left:12%;top:18%}.moon-explorer-sky i:nth-child(2){left:28%;top:34%;animation-delay:.3s}.moon-explorer-sky i:nth-child(3){left:51%;top:16%;animation-delay:.8s}.moon-explorer-sky i:nth-child(4){left:75%;top:31%;animation-delay:.5s}.moon-explorer-sky i:nth-child(5){left:89%;top:20%;animation-delay:1s}
.moon-earth{position:absolute;right:9%;top:12%;width:72px;height:72px;border-radius:50%;background:radial-gradient(circle at 34% 30%,#dff9ff 0 11%,#5fc2ff 12% 40%,#2574c7 70%);box-shadow:0 0 22px rgba(126,204,255,.45);overflow:hidden}
.moon-earth::before{content:'';position:absolute;left:12px;top:23px;width:45px;height:17px;border-radius:50%;background:#5fd28a;box-shadow:24px 22px 0 -2px #65c879,-18px 20px 0 -5px #75df95}
.moon-surface{position:absolute;left:0;right:0;bottom:0;height:70%;background:linear-gradient(180deg,#a8a6b8 0%,#7f7d99 42%,#5e5d80 100%);clip-path:ellipse(86% 68% at 50% 80%);box-shadow:inset 0 18px 35px rgba(255,255,255,.18)}
.moon-horizon{position:absolute;left:0;right:0;top:0;height:48%;background:radial-gradient(ellipse at 24% 62%,rgba(78,76,101,.55) 0 8%,transparent 9%),radial-gradient(ellipse at 62% 56%,rgba(74,72,98,.55) 0 10%,transparent 11%),radial-gradient(ellipse at 84% 70%,rgba(73,71,96,.5) 0 7%,transparent 8%)}
.moon-rover{position:absolute;left:9%;top:57%;font-size:2.3rem;filter:drop-shadow(0 5px 5px rgba(0,0,0,.35));transform:rotate(-8deg)}
.moon-explorer-princess{position:absolute;z-index:6;left:6%;top:45%;width:122px;height:168px;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35));transition:left .75s cubic-bezier(.2,.8,.2,1),top .75s cubic-bezier(.2,.8,.2,1)}
.moon-explorer-princess svg{width:100%;height:100%;display:block}
.moon-explorer-princess::before{content:'';position:absolute;z-index:4;left:22px;top:8px;width:78px;height:78px;border-radius:50%;border:4px solid rgba(255,255,255,.78);background:radial-gradient(circle at 35% 25%,rgba(255,255,255,.35),rgba(255,255,255,.08) 60%,rgba(170,210,255,.18));box-shadow:0 0 10px rgba(255,255,255,.35);pointer-events:none}
.moon-explorer-princess.moon-hop{animation:moon-princess-hop .8s ease-out}
.moon-explorer-stops{position:absolute;inset:0;z-index:5}
.moon-explorer-stop{position:absolute;transform:translate(-50%,-50%);width:142px;height:116px;padding:0;border:0;outline:0;background:transparent;color:#fff;font-family:'Quicksand',sans-serif;font-weight:900;cursor:pointer;filter:drop-shadow(0 9px 8px rgba(22,20,47,.4))}
.moon-explorer-stop:focus-visible{outline:3px solid #fff3a6;outline-offset:5px;border-radius:50%}
.moon-object-wrap{position:absolute;left:50%;top:46%;width:125px;height:88px;transform:translate(-50%,-50%);transition:transform .35s,filter .35s}.moon-explorer-stop:hover .moon-object-wrap,.moon-explorer-stop:active .moon-object-wrap{transform:translate(-50%,-54%) scale(1.07)}
.moon-object-label{position:absolute;left:50%;bottom:1px;width:120px;transform:translateX(-50%);font-size:.62rem;line-height:1.1;color:#fff;text-shadow:0 2px 4px #272342,0 0 6px #272342;transition:color .3s,text-shadow .3s}
.moon-landmark{position:absolute;display:block;left:50%;top:50%;transform:translate(-50%,-50%)}
.moon-crater-cave{width:122px;height:62px}.crater-rim{position:absolute;inset:3px 0 0;border-radius:50%;background:radial-gradient(ellipse at 48% 45%,#23243b 0 31%,#4d4d69 33% 42%,#b7b5c4 45% 54%,#706f89 62%,transparent 65%);box-shadow:inset -12px -8px 15px rgba(25,23,48,.6),0 9px 9px rgba(35,32,61,.38)}.crater-mouth{position:absolute;left:29px;top:18px;width:64px;height:29px;border-radius:50%;background:radial-gradient(ellipse at 50% 65%,#22243b,#080a1b 72%);box-shadow:inset 0 6px 10px #000}.crater-glow{position:absolute;left:39px;top:24px;width:43px;height:18px;border-radius:50%;background:radial-gradient(ellipse,#9feaff,rgba(96,134,255,.48),transparent 72%);opacity:.2;transition:opacity .5s,box-shadow .5s}.moon-crater-cave b{position:absolute;width:8px;height:5px;border-radius:50%;background:#5f5f78}.moon-crater-cave b:nth-of-type(1){left:12px;top:41px}.moon-crater-cave b:nth-of-type(2){right:13px;top:12px}.moon-crater-cave b:nth-of-type(3){right:4px;top:46px}
.moon-rock-cluster{width:116px;height:74px}.moon-rock-cluster i{position:absolute;bottom:8px;border:2px solid #4a4a60;clip-path:polygon(17% 16%,60% 0,95% 34%,82% 88%,35% 100%,0 62%);background:linear-gradient(135deg,#c9c7d1,#666779 43%,#303348 72%);box-shadow:inset 8px 8px 9px rgba(255,255,255,.22),0 7px 7px rgba(30,29,49,.45)}.moon-rock-cluster i:nth-child(1){left:35px;width:50px;height:55px}.moon-rock-cluster i:nth-child(2){left:5px;width:43px;height:36px;transform:rotate(-12deg)}.moon-rock-cluster i:nth-child(3){right:3px;width:41px;height:39px;transform:rotate(13deg)}.moon-rock-cluster i:nth-child(4){left:45px;bottom:0;width:29px;height:24px;transform:rotate(22deg)}.moon-rock-cluster b{position:absolute;z-index:2;color:#aeeeff;font-size:1rem;text-shadow:0 0 7px #59cfff;opacity:.3;transition:opacity .45s}.moon-rock-cluster b:nth-of-type(1){left:49px;top:23px}.moon-rock-cluster b:nth-of-type(2){right:21px;top:41px}
.moon-royal-flag{width:98px;height:100px}.flag-pole{position:absolute;left:48px;top:3px;width:6px;height:88px;border-radius:4px;background:linear-gradient(90deg,#665576,#e5ddec 45%,#71627e);box-shadow:3px 3px 5px rgba(36,29,54,.42)}.flag-pole::before{content:'';position:absolute;left:-4px;top:-7px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6bc,#c09a3d 58%,#755926)}.flag-cloth{position:absolute;left:52px;top:11px;width:56px;height:42px;clip-path:polygon(0 0,100% 8%,84% 48%,100% 88%,0 78%);transform-origin:left center;background:linear-gradient(135deg,#da4572,#81285c);box-shadow:inset -7px -5px 9px rgba(54,12,53,.28);animation:moon-flag-wave 1.8s ease-in-out infinite}.flag-cloth b{position:absolute;left:19px;top:8px;color:#ffe78a;font-size:1.1rem}.flag-base{position:absolute;left:31px;bottom:5px;width:41px;height:12px;border-radius:50%;background:#55546d;box-shadow:0 4px 5px rgba(31,28,55,.4)}
.moon-stardust-deposit{width:112px;height:85px}.moon-stardust-deposit::before{content:'';position:absolute;left:9px;right:8px;bottom:4px;height:27px;border-radius:50%;background:radial-gradient(ellipse,#8374b4 0,#6e668c 37%,transparent 72%);box-shadow:0 0 13px rgba(162,144,255,.25)}.moon-stardust-deposit i{position:absolute;width:8px;height:8px;background:#d8d0e8;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 37%);opacity:.42}.moon-stardust-deposit i:nth-child(1){left:20px;top:42px}.moon-stardust-deposit i:nth-child(2){left:43px;top:25px;width:13px;height:13px}.moon-stardust-deposit i:nth-child(3){right:26px;top:35px;width:10px;height:10px}.moon-stardust-deposit i:nth-child(4){right:8px;top:16px}.moon-stardust-deposit i:nth-child(5){left:11px;top:14px;width:6px;height:6px}.moon-stardust-deposit b{position:absolute;left:50%;top:53%;width:6px;height:6px;border-radius:50%;background:#a893db;box-shadow:-35px 12px 0 #8073a8,-15px 18px 0 #c5b9e4,19px 16px 0 #8073a8,37px 6px 0 #bcb0d8}
.moon-explorer-stop.visited .moon-object-label{color:#fff3a6;text-shadow:0 0 7px #ffd75a,0 2px 4px #272342}.moon-explorer-stop.visited .moon-object-wrap{filter:drop-shadow(0 0 11px rgba(255,232,115,.85))}.moon-explorer-stop.visited .crater-glow{opacity:1;box-shadow:0 0 18px #85deff}.moon-explorer-stop.visited .moon-rock-cluster b{opacity:1;animation:moon-symbol-pulse 1s ease-in-out infinite alternate}.moon-explorer-stop.visited .moon-stardust-deposit i{opacity:1;background:#fff09b;filter:drop-shadow(0 0 5px #fff);animation:moon-dust-twinkle .75s ease-in-out infinite alternate}.moon-explorer-stop.visited .moon-stardust-deposit i:nth-child(even){animation-delay:.35s}
@keyframes moon-flag-wave{0%,100%{transform:skewY(-3deg) scaleX(.94)}50%{transform:skewY(5deg) scaleX(1.06)}}@keyframes moon-symbol-pulse{to{transform:scale(1.28);text-shadow:0 0 12px #8de5ff}}@keyframes moon-dust-twinkle{to{transform:scale(1.6) rotate(45deg);opacity:.48}}
.moon-footprints i{position:absolute;z-index:4;width:20px;height:10px;border-radius:50%;background:rgba(63,61,84,.38);transform:rotate(-18deg);box-shadow:18px 8px 0 rgba(63,61,84,.3);animation:moon-footprint-appear .45s ease-out both}
.moon-discovery-card{position:absolute;z-index:7;right:3%;top:20%;width:240px;min-height:130px;padding:15px;border-radius:22px;background:rgba(255,255,255,.9);color:#37325d;text-align:center;box-shadow:0 12px 26px rgba(0,0,0,.28);transform:translateY(8px);transition:transform .35s,box-shadow .35s}
.moon-discovery-card.show{animation:moon-card-pop .5s cubic-bezier(.2,.9,.25,1.2)}
.moon-discovery-emoji{font-size:2.4rem}.moon-discovery-card h3{font-family:'Cinzel Decorative',serif;font-size:.92rem;margin:4px 0}.moon-discovery-card p{font-size:.72rem;line-height:1.35;margin:0}
.moon-mission-complete .moon-discovery-card{box-shadow:0 0 26px rgba(255,243,166,.65),0 12px 26px rgba(0,0,0,.28)}
@keyframes moon-star-twinkle{to{opacity:.25;transform:scale(.55)}}
@keyframes moon-princess-hop{0%{transform:translateY(0) rotate(0)}42%{transform:translateY(-28px) rotate(-3deg)}100%{transform:translateY(0) rotate(0)}}
@keyframes moon-footprint-appear{0%{opacity:0;transform:scale(.2) rotate(-18deg)}100%{opacity:1;transform:scale(1) rotate(-18deg)}}
@keyframes moon-card-pop{0%{opacity:.3;transform:scale(.75) translateY(14px)}100%{opacity:1;transform:scale(1) translateY(0)}}

/* ===== Silver Unicorn Flight (26) ===== */
.unicorn-flight-activity{background:linear-gradient(180deg,#141441 0%,#34327a 53%,#8975bc 100%);overflow:hidden}
.unicorn-flight-sky{position:absolute;inset:0;overflow:hidden;background:radial-gradient(circle at 74% 18%,rgba(255,243,184,.18),transparent 24%)}
.unicorn-flight-moon{position:absolute;right:9%;top:11%;width:78px;height:78px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fffdeb,#f2e4ab 67%,#c5b779);box-shadow:0 0 25px rgba(255,246,196,.48)}
.unicorn-flight-stars{position:absolute;inset:0 0 30%}.unicorn-flight-stars i{position:absolute;width:3px;height:3px;border-radius:50%;background:#fff;box-shadow:0 0 5px #fff;animation:unicorn-star-twinkle 1.4s var(--delay) ease-in-out infinite alternate}
.unicorn-flight-clouds{position:absolute;inset:0;opacity:.35;transition:opacity .5s}
.unicorn-flight-clouds::before,.unicorn-flight-clouds::after{content:'';position:absolute;width:150px;height:46px;border-radius:50%;background:rgba(235,240,255,.72);box-shadow:40px -20px 0 4px rgba(235,240,255,.72),82px 0 0 -5px rgba(235,240,255,.72)}
.unicorn-flight-clouds::before{left:8%;top:26%}.unicorn-flight-clouds::after{right:15%;top:52%;transform:scale(.8)}
.unicorn-flight-forest{position:absolute;left:0;right:0;bottom:0;height:24%;opacity:.32;background:linear-gradient(180deg,transparent,#172f3e 35%),repeating-linear-gradient(115deg,transparent 0 24px,#18374b 25px 42px,transparent 43px 66px);clip-path:polygon(0 42%,5% 8%,10% 43%,16% 0,23% 45%,30% 12%,37% 45%,44% 2%,52% 44%,60% 9%,68% 45%,76% 0,84% 43%,91% 10%,100% 45%,100% 100%,0 100%);transition:opacity .5s}
.flying-unicorn-wrap{position:absolute;z-index:6;left:5%;top:31%;width:390px;height:260px;filter:drop-shadow(0 13px 12px rgba(0,0,0,.3))}
.flying-unicorn{position:absolute;left:0;top:50px;width:390px;height:250px}.flying-unicorn svg{width:100%;height:100%;display:block;overflow:visible}
.unicorn-rider{position:absolute;z-index:4;left:118px;top:-2px;width:120px;height:180px;transform:rotate(-3deg);transform-origin:50% 80%}
.unicorn-rider svg{width:100%;height:100%;display:block}
.unicorn-wing{transform-box:fill-box;transform-origin:70% 75%}.unicorn-wing-front{animation:unicorn-wing-flap .52s ease-in-out infinite alternate}.unicorn-wing-back{animation:unicorn-wing-flap-back .52s .08s ease-in-out infinite alternate}
.unicorn-tail{animation:unicorn-tail-wave .8s ease-in-out infinite alternate;transform-origin:90px 105px}
.unicorn-flight-message{position:absolute;z-index:8;right:4%;top:28%;width:210px;min-height:105px;padding:13px;border-radius:20px;background:rgba(255,255,255,.9);color:#463668;text-align:center;box-shadow:0 10px 22px rgba(0,0,0,.24)}
.unicorn-flight-message span{display:block;font-size:2rem}.unicorn-flight-message p{font-size:.7rem;line-height:1.35;margin:5px 0 0;font-weight:700}
.unicorn-flight-picker{position:absolute;z-index:9;left:50%;bottom:2%;transform:translateX(-50%);text-align:center}.unicorn-picker-title{display:inline-block;margin-bottom:5px;padding:4px 13px;border-radius:999px;background:rgba(32,22,78,.7);color:#fff1a5;font-size:.58rem;font-weight:900;text-shadow:0 0 7px #fff}
.unicorn-flight-choices{display:flex;gap:13px;justify-content:center}
.unicorn-flight-choice{position:relative;width:118px;min-height:112px;padding:4px;border:0;background:transparent;color:#fff;font-family:'Quicksand',sans-serif;cursor:pointer;filter:drop-shadow(0 7px 6px rgba(12,10,45,.4))}
.unicorn-route-portal{position:relative;width:70px;height:70px;margin:0 auto 4px;display:flex;align-items:center;justify-content:center;border:4px solid rgba(255,255,255,.78);border-radius:50%;box-shadow:inset 0 0 17px rgba(255,255,255,.35),0 0 15px rgba(208,198,255,.42);overflow:hidden;animation:unicorn-portal-float 1.8s ease-in-out infinite}.unicorn-flight-choice:nth-child(2) .unicorn-route-portal{animation-delay:-.6s}.unicorn-flight-choice:nth-child(3) .unicorn-route-portal{animation-delay:-1.15s}
.unicorn-route-portal i{position:relative;z-index:3;font-style:normal;font-size:2rem;filter:drop-shadow(0 3px 3px rgba(18,17,48,.35))}.unicorn-route-portal b{position:absolute;inset:0;background:radial-gradient(circle at 35% 28%,rgba(255,255,255,.8),transparent 14%),linear-gradient(135deg,transparent 30%,rgba(255,255,255,.32),transparent 68%);animation:unicorn-portal-shimmer 2s linear infinite}
.route-forest{background:radial-gradient(circle at 50% 78%,#54c77b 0 24%,#1c704f 25% 45%,#203861 70%)}.route-cloud{background:linear-gradient(180deg,#63c7f3,#c8f3ff 58%,#829be4)}.route-stars{background:radial-gradient(circle at 50% 45%,#7358ba,#21194f 68%);box-shadow:inset 0 0 17px rgba(255,255,255,.35),0 0 17px #d7bcff}
.unicorn-flight-choice strong,.unicorn-flight-choice small{display:block}.unicorn-flight-choice strong{font-size:.62rem;line-height:1.1;text-shadow:0 2px 4px #17133d}.unicorn-flight-choice small{margin-top:2px;font-size:.48rem;color:#ded8ff;text-shadow:0 2px 4px #17133d}
.unicorn-flight-choice:hover .unicorn-route-portal{border-color:#fff3a6;animation:none;transform:scale(1.1)}.unicorn-flight-choice.selected .unicorn-route-portal{border-color:#ffe56e;box-shadow:inset 0 0 20px rgba(255,255,255,.48),0 0 22px 5px rgba(255,221,89,.68)}.unicorn-flight-choice.selected strong{color:#fff3a6}
.unicorn-flight-progress{position:absolute;z-index:10;left:15%;right:15%;bottom:1.5%;height:5px;border-radius:5px;background:rgba(255,255,255,.2);opacity:0;overflow:hidden}.unicorn-flight-progress i{display:block;width:100%;height:100%;transform:translateX(-100%);border-radius:inherit;background:linear-gradient(90deg,#ff9ad7,#ffed86,#8be5ff)}.unicorn-flying~.unicorn-flight-progress{opacity:1}.unicorn-flying~.unicorn-flight-progress i{animation:unicorn-flight-progress 8.5s linear both}
.unicorn-sparkle-trail{position:absolute;z-index:5;inset:0;pointer-events:none}.unicorn-trail-spark{position:absolute;width:12px;height:12px;clip-path:polygon(50% 0,61% 37%,100% 50%,61% 62%,50% 100%,39% 62%,0 50%,39% 37%);background:#fff4a3;filter:drop-shadow(0 0 5px #fff);animation:unicorn-trail-fade 1.4s ease-out forwards}.unicorn-trail-spark.trail-cloud{background:#e8fbff}.unicorn-trail-spark.trail-stars{background:#d69aff}
.unicorn-route-effects{position:absolute;inset:0;pointer-events:none}.unicorn-route-effects i{position:absolute;opacity:0}.flying-forest .unicorn-route-effects i{width:8px;height:8px;border-radius:50%;background:#fff18c;box-shadow:0 0 11px 3px #ffe45e;opacity:1;animation:unicorn-firefly 2s ease-in-out infinite}.flying-forest .unicorn-route-effects i:nth-child(1){left:9%;top:40%}.flying-forest .unicorn-route-effects i:nth-child(2){left:25%;top:64%;animation-delay:.4s}.flying-forest .unicorn-route-effects i:nth-child(3){left:46%;top:47%;animation-delay:.9s}.flying-forest .unicorn-route-effects i:nth-child(4){left:61%;top:68%;animation-delay:.2s}.flying-forest .unicorn-route-effects i:nth-child(5){left:78%;top:42%;animation-delay:1.2s}.flying-forest .unicorn-route-effects i:nth-child(6){left:91%;top:61%;animation-delay:.7s}
.flying-cloud .unicorn-route-effects i{width:125px;height:38px;border-radius:50%;background:rgba(240,248,255,.8);box-shadow:34px -16px 0 rgba(240,248,255,.8),70px 0 0 -4px rgba(240,248,255,.8);opacity:.72;animation:unicorn-cloud-rush 5s linear infinite}.flying-cloud .unicorn-route-effects i:nth-child(1){left:-25%;top:18%}.flying-cloud .unicorn-route-effects i:nth-child(2){left:16%;top:55%;animation-delay:-2s;transform:scale(.7)}.flying-cloud .unicorn-route-effects i:nth-child(3){left:62%;top:24%;animation-delay:-3.6s;transform:scale(.85)}
.flying-stars .unicorn-route-effects i{width:90px;height:3px;background:linear-gradient(90deg,transparent,#fff3a6);opacity:1;transform:rotate(-24deg);animation:unicorn-comet-rush 2.1s linear infinite}.flying-stars .unicorn-route-effects i:nth-child(1){left:5%;top:22%}.flying-stars .unicorn-route-effects i:nth-child(2){left:38%;top:48%;animation-delay:.7s}.flying-stars .unicorn-route-effects i:nth-child(3){left:68%;top:18%;animation-delay:1.3s}.flying-stars .unicorn-route-effects i:nth-child(4){left:18%;top:70%;animation-delay:1.7s}
.flying-forest .unicorn-flight-forest{opacity:1;animation:unicorn-forest-scroll 2.4s linear infinite}.flying-cloud .unicorn-flight-clouds{opacity:1;animation:unicorn-cloud-layer 6s linear infinite}.flying-stars .unicorn-flight-stars i{background:#FFF3A6;box-shadow:0 0 9px 2px #FFD700}.flying-stars .unicorn-flight-sky{background:radial-gradient(circle at 50% 40%,#474aa0,#11133d 72%)}
.flying-forest .flying-unicorn-wrap.unicorn-flying{animation:unicorn-forest-flight 8.5s ease-in-out}.flying-cloud .flying-unicorn-wrap.unicorn-flying{animation:unicorn-cloud-flight 8.5s ease-in-out}.flying-stars .flying-unicorn-wrap.unicorn-flying{animation:unicorn-star-flight 8.5s ease-in-out}
.unicorn-flying .unicorn-rider{animation:unicorn-rider-bounce .55s ease-in-out infinite alternate}
@keyframes unicorn-star-twinkle{to{opacity:.22;transform:scale(.5)}}
@keyframes unicorn-wing-flap{from{transform:rotate(7deg) scaleY(1)}to{transform:rotate(-22deg) scaleY(.58)}}
@keyframes unicorn-wing-flap-back{from{transform:rotate(2deg) scaleY(.92)}to{transform:rotate(-17deg) scaleY(.52)}}
@keyframes unicorn-tail-wave{from{transform:rotate(-5deg)}to{transform:rotate(7deg)}}
@keyframes unicorn-rider-bounce{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-5px) rotate(1deg)}}
@keyframes unicorn-portal-float{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-7px) rotate(2deg)}}@keyframes unicorn-portal-shimmer{to{transform:translateX(100%) rotate(25deg)}}@keyframes unicorn-flight-progress{to{transform:translateX(0)}}@keyframes unicorn-trail-fade{0%{opacity:1;transform:translate(0,0) scale(1)}100%{opacity:0;transform:translate(calc(-70px + var(--drift)),-35px) scale(.2) rotate(160deg)}}@keyframes unicorn-firefly{0%,100%{opacity:.25;transform:translate(0,0) scale(.7)}50%{opacity:1;transform:translate(18px,-22px) scale(1.3)}}@keyframes unicorn-cloud-rush{from{margin-left:-180px}to{margin-left:110%}}@keyframes unicorn-comet-rush{0%{transform:translate(-180px,-40px) rotate(-24deg);opacity:0}20%{opacity:1}100%{transform:translate(320px,120px) rotate(-24deg);opacity:0}}@keyframes unicorn-forest-scroll{to{background-position:-180px 0}}@keyframes unicorn-cloud-layer{50%{transform:translateX(-12%)}}
@keyframes unicorn-forest-flight{0%{left:-42%;top:44%;transform:scale(.68) rotate(-5deg)}14%{left:4%;top:26%;transform:scale(1) rotate(2deg)}29%{left:43%;top:38%;transform:scale(.83) rotate(-2deg)}43%{left:17%;top:7%;transform:scale(1.08) rotate(4deg)}58%{left:-8%;top:30%;transform:scale(.9) rotate(-3deg)}73%{left:46%;top:14%;transform:scale(.96) rotate(3deg)}87%{left:22%;top:38%;transform:scale(1.05) rotate(-1deg)}100%{left:5%;top:31%;transform:scale(1)}}
@keyframes unicorn-cloud-flight{0%{left:-42%;top:39%;transform:scale(.66) rotate(-5deg)}13%{left:8%;top:9%;transform:scale(1.03) rotate(4deg)}28%{left:44%;top:28%;transform:scale(.82) rotate(-3deg)}42%{left:21%;top:2%;transform:scale(1.1) rotate(3deg)}57%{left:-6%;top:24%;transform:scale(.88) rotate(-4deg)}72%{left:47%;top:6%;transform:scale(.94) rotate(4deg)}87%{left:28%;top:36%;transform:scale(1.06) rotate(-2deg)}100%{left:5%;top:31%;transform:scale(1)}}
@keyframes unicorn-star-flight{0%{left:-42%;top:46%;transform:scale(.62) rotate(-6deg)}12%{left:12%;top:13%;transform:scale(1.05) rotate(5deg)}27%{left:48%;top:31%;transform:scale(.76) rotate(-4deg)}41%{left:26%;top:0;transform:scale(1.12) rotate(4deg)}56%{left:-9%;top:21%;transform:scale(.86) rotate(-5deg)}71%{left:49%;top:8%;transform:scale(.92) rotate(5deg)}86%{left:31%;top:39%;transform:scale(1.08) rotate(-3deg)}100%{left:5%;top:31%;transform:scale(1) rotate(0)}}

/* ===== Castle Key (27) ===== */
.castle-key-activity{padding:0;background:radial-gradient(circle at 50% 45%,#514374,#261d4d 58%,#130d2e 100%);container-type:inline-size}
.castle-key-activity>.activity-princess{width:82px;height:110px;left:3px;bottom:2px;z-index:13}
.moon-hall{position:absolute;z-index:2;inset:58px 14px 14px 76px;display:grid;grid-template-columns:repeat(6,minmax(0,1fr));grid-template-rows:repeat(2,minmax(0,1fr));gap:14px;padding:0;perspective:1100px}
.moon-door{position:relative;grid-column:span 2;width:100%;height:100%;min-height:0;padding:0;border:clamp(4px,.65vw,7px) solid #c9a24a;border-bottom-color:#7d5b24;border-radius:clamp(34px,6vw,70px) clamp(34px,6vw,70px) 9px 9px;background:linear-gradient(180deg,#20143d,#3e2858 70%,#17102f);box-shadow:inset 0 0 0 3px rgba(255,215,0,.25),0 9px 18px rgba(0,0,0,.48);overflow:visible;cursor:pointer;touch-action:manipulation;perspective:850px;transform-style:preserve-3d}
.moon-door:nth-child(4){grid-column:2/span 2}.moon-door:nth-child(5){grid-column:4/span 2}
.moon-door::before{content:'';position:absolute;z-index:7;inset:5px;border:2px solid rgba(255,215,0,.35);border-radius:inherit;pointer-events:none}
.moon-door::after{content:'';position:absolute;z-index:0;left:8%;right:8%;bottom:-8px;height:17px;border-radius:50%;background:rgba(7,4,19,.46);filter:blur(3px);pointer-events:none}
.moon-door-face{position:absolute;z-index:5;inset:0;border-radius:inherit;background:linear-gradient(90deg,#5b3318 0%,#a86a33 18%,#70401f 48%,#bd7638 78%,#4e2b15 100%);box-shadow:inset 0 0 0 3px rgba(255,215,0,.2),inset -13px 0 19px rgba(34,15,15,.25);transform:rotateY(0);transform-origin:left center;transform-style:preserve-3d;backface-visibility:hidden;transition:transform .9s cubic-bezier(.18,.78,.2,1),filter .35s}
.moon-door:hover:not(.open) .moon-door-face{filter:brightness(1.13);transform:perspective(850px) rotateY(-7deg)}
.moon-door-arch{position:absolute;left:12%;right:12%;top:7%;height:27%;border-radius:50% 50% 7px 7px;background:linear-gradient(180deg,rgba(255,230,160,.2),rgba(0,0,0,.12));box-shadow:inset 0 0 0 3px rgba(201,162,74,.55)}
.moon-door-panel{position:absolute;left:13%;right:13%;border-radius:10px;border:clamp(2px,.35vw,4px) solid rgba(201,162,74,.7);background:linear-gradient(90deg,rgba(0,0,0,.2),rgba(255,215,0,.1) 45%,rgba(0,0,0,.25));box-shadow:inset 0 0 13px rgba(0,0,0,.3)}
.moon-door-panel-top{top:39%;height:20%}.moon-door-panel-bottom{top:63%;height:20%}
.moon-door-knob{position:absolute;z-index:6;right:10%;top:59%;width:clamp(12px,1.8vw,20px);height:clamp(12px,1.8vw,20px);border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff2b0,#d4a017 55%,#8a6400);box-shadow:0 2px 4px rgba(0,0,0,.45),0 0 8px rgba(255,215,0,.65)}
.moon-door-keyhole{position:absolute;z-index:6;right:calc(10% + 5px);top:68%;width:6px;height:11px;border-radius:50% 50% 2px 2px;background:#241208}
.moon-door-key{position:absolute;z-index:7;left:50%;top:48%;transform:translate(-50%,-50%);font-size:clamp(1.45rem,3vw,2.5rem);filter:drop-shadow(0 0 7px #FFD700);opacity:.95}
.moon-door-number{position:absolute;z-index:7;left:0;right:0;bottom:5%;font-size:clamp(.6rem,1.2vw,.9rem);font-weight:900;color:#ffe9a8;text-shadow:0 2px 3px rgba(0,0,0,.7)}
.moon-door-room{position:absolute;z-index:1;inset:0;display:block;padding:0;border-radius:inherit;box-sizing:border-box;overflow:hidden;text-align:center;opacity:.2;transform:scale(.88);transition:opacity .55s .15s,transform .6s .15s;background:#1a1233}
.moon-door-portal{position:absolute;inset:0;border-radius:inherit;overflow:hidden;perspective:420px;transform-style:preserve-3d}
.moon-door-portal::after{content:'';position:absolute;z-index:5;inset:0;border-radius:inherit;box-shadow:inset 0 0 28px 10px rgba(12,6,28,.55),inset 8px 0 18px rgba(0,0,0,.35);pointer-events:none}
.moon-room-depth{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 38%,rgba(255,248,210,.35),transparent 55%),linear-gradient(180deg,#2a1f4a 0%,#4a3568 42%,#1a1230 100%);transform:translateZ(-40px) scale(1.08)}
.moon-room-backwall{position:absolute;left:12%;right:12%;top:8%;bottom:28%;border-radius:12px 12px 4px 4px;box-shadow:inset 0 0 28px rgba(0,0,0,.45);opacity:.9}
.moon-room-floor{position:absolute;left:4%;right:4%;bottom:0;height:32%;clip-path:polygon(8% 0,92% 0,100% 100%,0 100%);background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(0,0,0,.35));box-shadow:inset 0 8px 18px rgba(0,0,0,.25)}
.moon-room-stage{position:absolute;inset:0;pointer-events:none}
.moon-room-prop{position:absolute;z-index:3;font-size:clamp(1rem,2.4vw,1.85rem);line-height:1;filter:drop-shadow(0 3px 4px rgba(0,0,0,.35));opacity:0;will-change:transform,opacity}
.moon-prop-anchor{left:50%;top:42%;font-size:clamp(1.55rem,3.6vw,2.8rem);transform:translate(-50%,-50%) scale(.7);z-index:4}
.moon-door-room-caption{position:absolute;z-index:6;left:6%;right:6%;bottom:5%;display:flex;flex-direction:column;align-items:center;gap:1px;padding:5px 6px 6px;border-radius:12px;background:linear-gradient(180deg,rgba(255,250,230,.92),rgba(255,236,190,.88));box-shadow:0 4px 12px rgba(20,10,40,.35);opacity:0;transform:translateY(8px);transition:opacity .45s .35s,transform .45s .35s;pointer-events:none}
.moon-door-room-emoji{display:none}.moon-door-room-name{font-size:clamp(.58rem,1.35vw,.95rem);font-weight:900;color:#4f2d0a;line-height:1.15}.moon-door-room-desc{max-width:100%;font-size:clamp(.42rem,.95vw,.68rem);color:#6d4818;line-height:1.2}
.moon-room-owl .moon-room-depth{background:radial-gradient(ellipse at 50% 30%,#fff4d0 0%,#c9a06a 40%,#5a3a22 100%)}.moon-room-owl .moon-room-backwall{background:repeating-linear-gradient(90deg,#6b4423 0 18%,#4a2e16 18% 20%,#7a5130 20% 38%);border:3px solid #3d2412}
.moon-room-owl .moon-room-shelf{position:absolute;left:10%;right:10%;top:28%;height:6px;border-radius:3px;background:linear-gradient(180deg,#c9a06a,#6b4423);box-shadow:0 10px 0 #5a3820,0 20px 0 #6b4423,0 30px 0 #5a3820;opacity:.85}
.moon-room-kitchen .moon-room-depth{background:radial-gradient(ellipse at 50% 25%,#e8f0ff 0%,#8aa0c8 45%,#3a4568 100%)}.moon-room-kitchen .moon-room-backwall{background:linear-gradient(180deg,#d8e4f8,#9aacc8);border:3px solid #6a7a98}
.moon-room-kitchen .moon-room-sill{position:absolute;left:14%;right:14%;top:38%;height:10px;border-radius:4px;background:linear-gradient(180deg,#c8d4e8,#7a8aa8);box-shadow:0 4px 8px rgba(0,0,0,.25)}
.moon-room-music .moon-room-depth{background:radial-gradient(ellipse at 50% 35%,#fff0d8 0%,#d4a060 42%,#5a3048 100%)}.moon-room-music .moon-room-backwall{background:linear-gradient(180deg,#6a3858,#3a2040);border:3px solid #8a5068;box-shadow:inset 0 0 20px rgba(255,200,120,.2)}
.moon-room-dress .moon-room-depth{background:radial-gradient(ellipse at 50% 30%,#fff5fa 0%,#e8b0d0 40%,#6a3860 100%)}.moon-room-dress .moon-room-backwall{background:linear-gradient(180deg,#f0d0e8,#c888b8);border:3px solid #a86898}
.moon-room-dress .moon-room-mirror{position:absolute;left:50%;top:18%;width:28%;height:36%;transform:translateX(-50%);border-radius:50% 50% 8px 8px;border:3px solid #d4a017;background:linear-gradient(135deg,rgba(255,255,255,.7),rgba(180,200,255,.35));box-shadow:0 0 12px rgba(255,215,0,.35)}
.moon-room-obs .moon-room-depth{background:radial-gradient(ellipse at 50% 20%,#2a3a78 0%,#121828 55%,#050810 100%)}.moon-room-obs .moon-room-backwall{background:radial-gradient(circle at 70% 20%,#fff8c0 0 4%,transparent 5%),radial-gradient(circle at 30% 40%,#fff 0 2px,transparent 3px),radial-gradient(circle at 55% 55%,#fff 0 1.5px,transparent 2.5px),linear-gradient(180deg,#1a2848,#0a1020);border:3px solid #3a4870}
.moon-room-obs .moon-room-sky-glow{position:absolute;left:20%;right:20%;top:8%;height:40%;border-radius:50%;background:radial-gradient(circle,rgba(180,200,255,.35),transparent 70%);filter:blur(4px)}
.moon-door.unlocking .moon-door-key{animation:moon-door-key-turn .5s ease}
.moon-door.unlocking .moon-door-face{animation:moon-door-rattle .52s ease}
.moon-door.open .moon-door-face{filter:brightness(.92);transform:perspective(850px) rotateY(-84deg)}
.moon-door.open .moon-door-room{opacity:1;transform:scale(1)}
.moon-door.open .moon-door-room-caption{opacity:1;transform:translateY(0)}
.moon-door.open .moon-prop-anchor{animation:moon-prop-anchor-in .7s .2s cubic-bezier(.2,.8,.25,1) both,moon-prop-anchor-bob 2.4s 1s ease-in-out infinite}
.moon-door.open .moon-prop-a{animation:moon-prop-inout-a 3.2s .35s ease-in-out infinite}
.moon-door.open .moon-prop-b{animation:moon-prop-inout-b 3.6s .55s ease-in-out infinite}
.moon-door.open .moon-prop-c{animation:moon-prop-inout-c 3.4s .75s ease-in-out infinite}
.moon-door.open .moon-prop-d{animation:moon-prop-inout-d 3.8s .45s ease-in-out infinite}
.moon-door.open .moon-prop-e{animation:moon-prop-inout-e 3.1s .9s ease-in-out infinite}
.moon-door.open[data-theme="owl"] .moon-prop-a,.moon-door.open[data-theme="owl"] .moon-prop-b,.moon-door.open[data-theme="owl"] .moon-prop-c{animation-name:moon-book-flutter}
.moon-door.open[data-theme="owl"] .moon-prop-d,.moon-door.open[data-theme="owl"] .moon-prop-e{animation-name:moon-feather-drift}
.moon-door.open[data-theme="kitchen"] .moon-prop-a,.moon-door.open[data-theme="kitchen"] .moon-prop-b,.moon-door.open[data-theme="kitchen"] .moon-prop-c{animation-name:moon-cookie-cool}
.moon-door.open[data-theme="kitchen"] .moon-prop-d,.moon-door.open[data-theme="kitchen"] .moon-prop-e{animation-name:moon-steam-rise}
.moon-door.open[data-theme="music"] .moon-prop-a,.moon-door.open[data-theme="music"] .moon-prop-b,.moon-door.open[data-theme="music"] .moon-prop-c{animation-name:moon-note-float}
.moon-door.open[data-theme="music"] .moon-prop-d{animation-name:moon-prop-inout-d}
.moon-door.open[data-theme="music"] .moon-prop-e{animation-name:moon-sparkle-twinkle}
.moon-door.open[data-theme="dress"] .moon-prop-a,.moon-door.open[data-theme="dress"] .moon-prop-c,.moon-door.open[data-theme="dress"] .moon-prop-d{animation-name:moon-gown-sway}
.moon-door.open[data-theme="dress"] .moon-prop-b,.moon-door.open[data-theme="dress"] .moon-prop-e{animation-name:moon-sparkle-twinkle}
.moon-door.open[data-theme="obs"] .moon-prop-a,.moon-door.open[data-theme="obs"] .moon-prop-c,.moon-door.open[data-theme="obs"] .moon-prop-e{animation-name:moon-star-twinkle}
.moon-door.open[data-theme="obs"] .moon-prop-b{animation-name:moon-comet-pass}
.moon-door.open[data-theme="obs"] .moon-prop-d{animation-name:moon-moon-bob}
.moon-door.open{z-index:6;box-shadow:inset 0 0 0 3px #FFD700,0 0 24px 5px rgba(255,215,0,.5),inset 0 0 40px rgba(255,230,150,.15)}
.moon-door.unlocked:not(.open) .moon-door-key{opacity:.35;filter:grayscale(.4)}
@keyframes moon-door-key-turn{0%{transform:translate(-50%,-50%) rotate(0)}50%{transform:translate(-50%,-50%) rotate(40deg) scale(1.2)}100%{transform:translate(-50%,-50%) rotate(0)}}
@keyframes moon-door-rattle{0%,100%{transform:perspective(850px) rotateY(0)}35%{transform:perspective(850px) rotateY(-13deg)}65%{transform:perspective(850px) rotateY(5deg)}}
@keyframes moon-prop-anchor-in{from{opacity:0;transform:translate(-50%,-40%) scale(.45)}to{opacity:1;transform:translate(-50%,-50%) scale(1)}}
@keyframes moon-prop-anchor-bob{0%,100%{transform:translate(-50%,-50%) scale(1) rotate(-2deg)}50%{transform:translate(-50%,-58%) scale(1.05) rotate(2deg)}}
@keyframes moon-prop-inout-a{0%{left:-18%;top:55%;opacity:0;transform:scale(.5) rotate(-20deg)}18%{opacity:1}45%{left:38%;top:48%;opacity:1;transform:scale(1) rotate(8deg)}72%{left:72%;top:36%;opacity:.9;transform:scale(.95) rotate(-6deg)}100%{left:112%;top:28%;opacity:0;transform:scale(.55) rotate(18deg)}}
@keyframes moon-prop-inout-b{0%{left:112%;top:62%;opacity:0;transform:scale(.45) rotate(15deg)}20%{opacity:1}48%{left:58%;top:52%;opacity:1;transform:scale(1.05) rotate(-10deg)}75%{left:28%;top:40%;opacity:.85;transform:scale(.9) rotate(12deg)}100%{left:-20%;top:30%;opacity:0;transform:scale(.5) rotate(-18deg)}}
@keyframes moon-prop-inout-c{0%{left:50%;top:108%;opacity:0;transform:scale(.4)}22%{opacity:1}50%{left:42%;top:58%;opacity:1;transform:scale(1) rotate(6deg)}78%{left:62%;top:22%;opacity:.8;transform:scale(.85)}100%{left:78%;top:-18%;opacity:0;transform:scale(.4)}}
@keyframes moon-prop-inout-d{0%{left:-15%;top:22%;opacity:0;transform:scale(.4) rotate(-30deg)}15%{opacity:1}50%{left:48%;top:28%;opacity:1;transform:scale(1) rotate(10deg)}85%{left:105%;top:18%;opacity:.7}100%{left:118%;top:12%;opacity:0;transform:scale(.45) rotate(25deg)}}
@keyframes moon-prop-inout-e{0%{left:108%;top:78%;opacity:0;transform:scale(.35)}18%{opacity:1}52%{left:55%;top:60%;opacity:1;transform:scale(1)}82%{left:12%;top:45%;opacity:.75}100%{left:-16%;top:38%;opacity:0;transform:scale(.4)}}
@keyframes moon-book-flutter{0%{left:-20%;top:50%;opacity:0;transform:scale(.4) rotateY(70deg)}12%{opacity:1}35%{left:32%;top:44%;opacity:1;transform:scale(1.05) rotateY(0deg) rotate(-8deg)}55%{left:48%;top:40%;transform:scale(1) rotateY(-25deg) rotate(6deg)}78%{left:78%;top:32%;opacity:.85;transform:scale(.9) rotateY(40deg)}100%{left:118%;top:24%;opacity:0;transform:scale(.45) rotateY(80deg)}}
@keyframes moon-feather-drift{0%{left:55%;top:-12%;opacity:0;transform:scale(.3) rotate(-20deg)}15%{opacity:1}40%{left:38%;top:35%;opacity:1;transform:scale(1) rotate(25deg)}70%{left:62%;top:62%;opacity:.85;transform:scale(.9) rotate(-15deg)}100%{left:28%;top:112%;opacity:0;transform:scale(.4) rotate(40deg)}}
@keyframes moon-cookie-cool{0%{left:-18%;top:36%;opacity:0;transform:scale(.35) rotate(-40deg)}16%{opacity:1}40%{left:28%;top:34%;opacity:1;transform:scale(1) rotate(8deg)}65%{left:55%;top:36%;transform:scale(1.05) rotate(-6deg)}100%{left:115%;top:32%;opacity:0;transform:scale(.5) rotate(30deg)}}
@keyframes moon-steam-rise{0%{left:42%;top:72%;opacity:0;transform:scale(.3)}20%{opacity:.9}55%{left:50%;top:40%;opacity:.7;transform:scale(1)}100%{left:58%;top:8%;opacity:0;transform:scale(1.2)}}
@keyframes moon-note-float{0%{left:48%;top:58%;opacity:0;transform:scale(.3) rotate(-10deg)}15%{opacity:1}45%{left:28%;top:30%;opacity:1;transform:scale(1.1) rotate(12deg)}75%{left:72%;top:12%;opacity:.8;transform:scale(.95) rotate(-8deg)}100%{left:90%;top:-16%;opacity:0;transform:scale(.5)}}
@keyframes moon-gown-sway{0%{left:-16%;top:48%;opacity:0;transform:scale(.4) rotate(-18deg)}18%{opacity:1}40%{left:30%;top:42%;opacity:1;transform:scale(1) rotate(6deg)}65%{left:58%;top:38%;transform:scale(1.05) rotate(-8deg)}100%{left:118%;top:30%;opacity:0;transform:scale(.5) rotate(14deg)}}
@keyframes moon-sparkle-twinkle{0%,100%{left:22%;top:24%;opacity:0;transform:scale(.2) rotate(0)}25%{opacity:1;transform:scale(1.15) rotate(20deg)}50%{left:70%;top:40%;opacity:.9;transform:scale(.9) rotate(-15deg)}75%{left:40%;top:18%;opacity:1;transform:scale(1.2) rotate(30deg)}}
@keyframes moon-star-twinkle{0%{left:15%;top:18%;opacity:0;transform:scale(.2)}20%{opacity:1;transform:scale(1.2)}50%{left:55%;top:28%;opacity:1;transform:scale(.9)}80%{left:82%;top:14%;opacity:.8;transform:scale(1.1)}100%{left:105%;top:8%;opacity:0;transform:scale(.3)}}
@keyframes moon-comet-pass{0%{left:-25%;top:55%;opacity:0;transform:scale(.4) rotate(-25deg)}12%{opacity:1}55%{left:55%;top:28%;opacity:1;transform:scale(1.15) rotate(-25deg)}100%{left:125%;top:5%;opacity:0;transform:scale(.5) rotate(-25deg)}}
@keyframes moon-moon-bob{0%{left:68%;top:16%;opacity:0;transform:scale(.4)}25%{opacity:1;transform:scale(1)}50%{left:62%;top:12%;opacity:1;transform:scale(1.08)}75%{left:72%;top:18%;opacity:.9}100%{left:110%;top:10%;opacity:0;transform:scale(.5)}}

/* ===== Telescope (24) ===== */
.telescope-activity{padding-top:52px;padding-bottom:56px}
.moon-sky{position:relative;width:100%;height:100%;min-height:300px;background:radial-gradient(circle at 50% 30%,#241a52 0%,#0d0a26 70%);overflow:hidden}
.constellation-lines{position:absolute;inset:0;width:100%;height:100%}
.constellation-line{fill:none;stroke:#FFF3A6;stroke-width:1.05;stroke-linecap:round;stroke-linejoin:round;opacity:0;filter:drop-shadow(0 0 2px #FFD700);transition:opacity .7s}
.constellation-line.connected{opacity:.95}
.constellation-star{position:absolute;width:30px;height:30px;min-width:30px;min-height:30px;border-radius:50%;border:none;background:rgba(255,255,255,.12);color:#FFF6C0;font-size:1.1rem;line-height:30px;padding:0;transform:translate(-50%,-50%);cursor:pointer;transition:color .3s,text-shadow .3s,background .3s,transform .3s}
.constellation.connected .constellation-star{color:#FFF9B0;background:rgba(255,215,0,.22);text-shadow:0 0 5px #fff,0 0 11px #FFD700;transform:translate(-50%,-50%) scale(1.08)}
.constellation[data-constellation="1"] .constellation-star{color:#FFD1E6}.constellation[data-constellation="2"] .constellation-star{color:#B9F5FF}.constellation[data-constellation="3"] .constellation-star{color:#D9CEFF}
.constellation-lines .constellation-line:nth-child(2){stroke:#FFD1E6;filter:drop-shadow(0 0 2px #FF8FC8)}.constellation-lines .constellation-line:nth-child(3){stroke:#B9F5FF;filter:drop-shadow(0 0 2px #65D9F1)}.constellation-lines .constellation-line:nth-child(4){stroke:#D9CEFF;filter:drop-shadow(0 0 2px #A88DFF)}
.constellation.pending .constellation-star{animation:constellation-pulse 1s ease-in-out infinite}
@keyframes constellation-pulse{0%,100%{opacity:1}50%{opacity:.5}}
.shooting-star{position:absolute;top:18%;left:-6%;width:3px;height:3px;background:#fff;border-radius:50%;box-shadow:0 0 8px 2px #fff;animation:shooting-star-fly 1.6s ease-out forwards}
.shooting-star::after{content:'';position:absolute;right:0;top:50%;width:70px;height:2px;background:linear-gradient(90deg,transparent,#fff);transform:translateY(-50%)}
@keyframes shooting-star-fly{0%{transform:translate(0,0)}100%{transform:translate(130vw,60px)}}

/* ===== Musical Nightlight (28) ===== */
.nightlight-activity{display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:60px 16px 20px;background:linear-gradient(180deg,#151133 0%,#34275f 55%,#7567a0 100%)}
.nightlight-bedroom{--nightlight-glow:radial-gradient(circle,#fff7ba 0%,#ffcf6b 45%,#ffb830 100%);position:relative;width:min(88%,560px);height:310px;margin-bottom:10px;border-radius:28px;background:radial-gradient(circle at 50% 55%,rgba(255,255,255,.16),transparent 44%),linear-gradient(180deg,#201846 0%,#453674 64%,#6d5d91 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.08),0 12px 26px rgba(0,0,0,.28);overflow:hidden}
.nightlight-window{position:absolute;left:8%;top:12%;width:92px;height:115px;border:6px solid #66508e;border-radius:46px 46px 8px 8px;background:radial-gradient(circle at 62% 22%,#fff8bd 0 13%,#27336e 14% 46%,#10143a 70%);box-shadow:inset 0 0 0 3px rgba(255,255,255,.18)}
.nightlight-window::before,.nightlight-window::after{content:'';position:absolute;background:#7862a0}.nightlight-window::before{left:48%;top:0;width:5px;height:100%}.nightlight-window::after{left:0;top:49%;height:5px;width:100%}
.nightlight-window span{position:absolute;right:12px;top:18px;width:4px;height:4px;border-radius:50%;background:#fff;box-shadow:-22px 23px 0 #fff,10px 42px 0 #fff,0 0 7px 2px #fff}
.nightlight-bed{position:absolute;left:6%;bottom:10%;width:190px;height:78px;border-radius:18px 28px 10px 10px;background:linear-gradient(180deg,#e1d4f4,#9b80c9);border:4px solid #5f4a84;box-shadow:0 10px 18px rgba(0,0,0,.24)}
.nightlight-bed::before{content:'';position:absolute;left:18px;right:18px;top:18px;height:23px;border-radius:12px;background:linear-gradient(90deg,#f8d7e7,#cbb9f2)}
.nightlight-pillow{position:absolute;left:18px;top:-20px;width:58px;height:35px;border-radius:16px;background:#fff5fb;box-shadow:0 4px 8px rgba(0,0,0,.15)}
.nightlight-table{position:absolute;left:50%;bottom:52px;width:150px;height:20px;transform:translateX(-50%);border-radius:12px;background:linear-gradient(180deg,#8a5a36,#5b351d);box-shadow:0 50px 0 -7px #5b351d}
.nightlight-lamp{position:absolute;left:50%;bottom:80px;width:190px;height:190px;transform:translateX(-50%)}
.nightlight-beam{position:absolute;left:50%;top:30%;width:300px;height:300px;transform:translate(-50%,-50%);border-radius:50%;opacity:.72;filter:blur(7px);transition:background .5s;animation:nightlight-glow-breathe 2.6s ease-in-out infinite}
.nightlight-projections{position:absolute;z-index:1;inset:-12px;color:#fff7c9;text-shadow:0 0 10px #fff,0 0 18px #FFD700;opacity:.86;pointer-events:none}
.nightlight-projections span{position:absolute;font-size:1.8rem;animation:nightlight-projection-float 3.6s ease-in-out infinite}
.nightlight-projections span:nth-child(1){left:13%;top:15%;font-size:2.5rem}.nightlight-projections span:nth-child(2){left:70%;top:12%;animation-delay:.4s}.nightlight-projections span:nth-child(3){left:78%;top:58%;animation-delay:.8s}.nightlight-projections span:nth-child(4){left:23%;top:65%;animation-delay:1.2s}.nightlight-projections span:nth-child(5){left:45%;top:3%;animation-delay:1.6s}
.nightlight-item{position:absolute;z-index:3;left:50%;bottom:0;width:112px;height:136px;transform:translateX(-50%);display:flex;align-items:flex-end;justify-content:center;filter:drop-shadow(0 8px 10px rgba(0,0,0,.35))}
.nightlight-item .scaled-object{width:112px!important;height:136px!important}
.nightlight-music-notes{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0}
.nightlight-music-notes span{position:absolute;left:50%;bottom:95px;color:#fff9c8;font-size:1.6rem;text-shadow:0 0 8px #fff;animation:nightlight-note-float 2.2s ease-out infinite}
.nightlight-music-notes span:nth-child(2){animation-delay:.45s;left:55%}.nightlight-music-notes span:nth-child(3){animation-delay:.9s;left:44%}.nightlight-music-notes span:nth-child(4){animation-delay:1.35s;left:59%}
.lullaby-playing .nightlight-music-notes{opacity:1}.lullaby-playing .nightlight-bedroom{box-shadow:0 0 32px rgba(255,238,170,.35),inset 0 0 0 2px rgba(255,255,255,.1),0 12px 26px rgba(0,0,0,.28)}
.nightlight-colors{display:flex;gap:10px;justify-content:center;margin-bottom:10px;flex-wrap:wrap;z-index:5}
.nightlight-color-btn{width:48px;height:48px;min-width:44px;min-height:44px;border-radius:50%;border:3px solid rgba(255,255,255,.5);cursor:pointer;padding:0;box-shadow:0 5px 10px rgba(0,0,0,.18)}
.nightlight-color-btn.active{border-color:#FFD700;box-shadow:0 0 10px 2px #FFD700,0 5px 10px rgba(0,0,0,.18);transform:translateY(-2px)}
.nightlight-tunes{position:relative;z-index:6;display:flex;justify-content:center;gap:8px;margin:0 0 9px;flex-wrap:wrap}
.nightlight-tune-btn{min-width:128px;min-height:49px;padding:6px 10px;border:2px solid rgba(255,255,255,.48);border-radius:16px;background:rgba(34,25,79,.75);color:#fff;font-family:'Quicksand',sans-serif;cursor:pointer;box-shadow:0 5px 10px rgba(0,0,0,.2);transition:transform .25s,background .25s,box-shadow .25s}.nightlight-tune-btn span{display:inline-block;margin-right:5px;font-size:1.1rem}.nightlight-tune-btn strong{font-size:.62rem}.nightlight-tune-btn:hover{transform:translateY(-3px);background:rgba(77,57,132,.9)}.nightlight-tune-btn.active{border-color:#ffe681;background:linear-gradient(135deg,#6e4fa5,#a85b9d);box-shadow:0 0 14px rgba(255,226,116,.48),0 5px 10px rgba(0,0,0,.2)}
.lullaby-playing .nightlight-tune-btn.active span{animation:nightlight-tune-pulse .7s ease-in-out infinite alternate}
.nightlight-music-btn{min-height:44px;padding:8px 20px;border-radius:20px;border:2px solid #FFD700;background:#fff;color:#4B2A70;font-weight:800;font-family:'Quicksand',sans-serif;cursor:pointer;z-index:5}
.nightlight-music-btn.playing{background:linear-gradient(135deg,#8e44ad,#f06292);color:#fff;box-shadow:0 0 16px rgba(255,215,0,.45)}
@keyframes nightlight-glow-breathe{0%,100%{opacity:.55;transform:translate(-50%,-50%) scale(.95)}50%{opacity:.88;transform:translate(-50%,-50%) scale(1.07)}}
@keyframes nightlight-projection-float{0%,100%{transform:translateY(0) rotate(-4deg);opacity:.72}50%{transform:translateY(-10px) rotate(5deg);opacity:1}}
@keyframes nightlight-note-float{0%{transform:translate(0,0) scale(.7);opacity:0}18%{opacity:1}100%{transform:translate(var(--note-x,34px),-130px) scale(1.25);opacity:0}}
@keyframes nightlight-tune-pulse{to{transform:scale(1.2) rotate(7deg);filter:drop-shadow(0 0 5px #fff3a6)}}

/* ===== Shooting Star Globe (29) ===== */
.star-globe-activity{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 16px 70px;background:radial-gradient(circle at 50% 30%,#101842 0%,#050512 75%);gap:8px}
.star-globe{position:relative;width:min(72vw,260px);height:min(72vw,260px);border-radius:50%;border:6px solid rgba(255,255,255,.35);background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.18),rgba(80,90,180,.35) 60%,rgba(20,20,60,.5));cursor:pointer;padding:0;overflow:hidden;box-shadow:0 0 30px rgba(135,206,250,.35);flex:none;isolation:isolate}
.star-globe.spinning{box-shadow:0 0 36px rgba(255,215,100,.55),0 0 30px rgba(135,206,250,.45)}
.star-globe-inner{position:absolute;inset:0;transition:transform 1.1s cubic-bezier(.2,.8,.2,1),opacity .45s;z-index:1}
.star-globe-activity.globe-has-scene .star-globe-inner{opacity:.12}
.globe-star{position:absolute;color:#FFD700;font-size:.85rem;text-shadow:0 0 8px #fff;animation:globe-twinkle 2s ease-in-out infinite}
.globe-star:nth-child(1){left:20%;top:15%}.globe-star:nth-child(2){left:60%;top:10%;animation-delay:.2s}.globe-star:nth-child(3){left:80%;top:35%;animation-delay:.4s}
.globe-star:nth-child(4){left:15%;top:50%;animation-delay:.1s}.globe-star:nth-child(5){left:45%;top:45%;animation-delay:.5s}.globe-star:nth-child(6){left:75%;top:60%;animation-delay:.3s}
.globe-star:nth-child(7){left:30%;top:75%;animation-delay:.6s}.globe-star:nth-child(8){left:60%;top:80%;animation-delay:.15s}.globe-star:nth-child(9){left:10%;top:85%;animation-delay:.45s}
.globe-star:nth-child(10){left:85%;top:85%;animation-delay:.25s}
@keyframes globe-twinkle{0%,100%{opacity:.55;transform:scale(.9)}50%{opacity:1;transform:scale(1.15)}}
.star-globe-shine{position:absolute;left:8%;top:8%;width:35%;height:35%;border-radius:50%;background:rgba(255,255,255,.4);filter:blur(6px);z-index:4;pointer-events:none}
.star-globe-viewport{position:absolute;inset:0;z-index:2;opacity:0;transform:scale(.82);transition:opacity .45s,transform .5s cubic-bezier(.2,.9,.25,1.15);pointer-events:none;overflow:hidden;border-radius:50%}
.star-globe-viewport.show{opacity:1;transform:scale(1)}
.star-globe-viewport .star-globe-scene-card{position:absolute;inset:0;min-height:0;height:100%;padding:0;border:0;border-radius:50%;background:radial-gradient(circle at 50% 35%,rgba(70,90,180,.55),rgba(8,10,40,.95));box-shadow:none;overflow:hidden}
.star-globe-viewport .globe-scene-sky{position:absolute;inset:0;height:100%;border-radius:50%;background:radial-gradient(circle at 50% 30%,rgba(93,109,190,.55),rgba(9,12,43,.92) 72%)}
.star-globe-viewport .star-globe-scene-title,
.star-globe-viewport .star-globe-scene-text{display:none}
.star-globe-caption{max-width:min(90%,320px);text-align:center;opacity:0;transform:translateY(6px);transition:opacity .35s,transform .35s;min-height:0;pointer-events:none;z-index:3}
.star-globe-caption.show{opacity:1;transform:translateY(0);min-height:44px}
.star-globe-caption strong{display:block;font-family:'Cinzel Decorative',serif;font-size:.82rem;font-weight:900;color:#FFF4B8;text-shadow:0 0 8px rgba(255,215,0,.45)}
.star-globe-caption span{display:block;font-size:.72rem;font-weight:800;line-height:1.25;color:#fff;margin-top:2px}
.star-globe-scene{display:none}
.star-globe-scene-card{position:relative;min-height:225px;padding:10px 12px 12px;border-radius:24px;background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(118,128,210,.14));border:2px solid rgba(200,215,255,.25);box-shadow:0 10px 24px rgba(0,0,0,.24),inset 0 0 22px rgba(135,206,250,.14);overflow:hidden}
.globe-scene-sky{position:relative;height:155px;border-radius:18px;background:radial-gradient(circle at 50% 25%,rgba(93,109,190,.55),rgba(9,12,43,.92) 72%);overflow:hidden;box-shadow:inset 0 0 18px rgba(255,255,255,.1)}
.globe-scene-sky::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 16% 24%,#fff 0 2px,transparent 3px),radial-gradient(circle at 34% 70%,#fff 0 1.5px,transparent 2.5px),radial-gradient(circle at 70% 22%,#fff 0 2px,transparent 3px),radial-gradient(circle at 84% 66%,#fff 0 1.5px,transparent 2.5px);opacity:.8}
.star-globe-scene-title{margin-top:8px;font-family:'Cinzel Decorative',serif;font-size:.82rem;font-weight:900;color:#FFF4B8;text-shadow:0 0 8px rgba(255,215,0,.45)}
.star-globe-scene-text{font-size:.76rem;font-weight:800;line-height:1.25;max-width:360px;margin:4px auto 0;color:#fff}
.globe-animated-svg{position:absolute;z-index:2;inset:0;width:100%;height:100%;overflow:visible}.real-comet{filter:drop-shadow(0 0 8px #fff)}.comet-a{animation:globe-real-comet-a 3.2s ease-in infinite}.comet-b{animation:globe-real-comet-b 3.2s .75s ease-in infinite}.comet-c{animation:globe-real-comet-c 3.2s 1.45s ease-in infinite}
.globe-real-owl{transform-box:fill-box;transform-origin:center bottom;animation:globe-owl-bob 2.4s ease-in-out infinite}.owl-b{animation-delay:.4s}.owl-c{animation-delay:.8s}.globe-owl-eyes{transform-box:fill-box;transform-origin:center;animation:globe-real-owl-blink 3.1s ease-in-out infinite}.owl-b .globe-owl-eyes{animation-delay:.55s}.owl-c .globe-owl-eyes{animation-delay:1.1s}.globe-owl-wing{transform-box:fill-box;transform-origin:top center;animation:globe-owl-wing 1.2s ease-in-out infinite alternate}.wing-right{animation-delay:.15s}
.globe-real-fairy{transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 7px #fff);animation:globe-real-fairy-loop 4.2s ease-in-out infinite}.fairy-b{animation-delay:-1.9s}.fairy-wing{transform-box:fill-box;transform-origin:center;animation:globe-fairy-wing .32s ease-in-out infinite alternate}.right-wing{animation-delay:.12s}.globe-svg-flower{transform-box:fill-box;transform-origin:center bottom;animation:globe-flower-sway 2s ease-in-out infinite alternate}.flower-b{animation-delay:.7s}.globe-fairy-sparkles circle{fill:#fff4a8;filter:drop-shadow(0 0 4px #fff);animation:globe-fairy-spark 1.2s ease-in-out infinite alternate}.globe-fairy-sparkles circle:nth-child(even){animation-delay:.55s}
.globe-marching-star{fill:#ffe773;stroke:#fff4ae;stroke-width:2;transform-box:fill-box;transform-origin:center;filter:drop-shadow(0 0 7px #ffd84c);animation:globe-real-star-march 1.15s ease-in-out infinite alternate}.star-b{animation-delay:.18s}.star-c{animation-delay:.36s}.star-d{animation-delay:.54s}.star-e{animation-delay:.72s}.globe-parade-moon{animation:globe-real-moon-bob 2s ease-in-out infinite;transform-origin:215px 36px}
@keyframes globe-real-comet-a{0%{transform:translate(-100px,115px) rotate(-11deg);opacity:0}15%{opacity:1}100%{transform:translate(520px,-20px) rotate(-11deg);opacity:0}}@keyframes globe-real-comet-b{0%{transform:translate(-100px,80px) scale(.78) rotate(-8deg);opacity:0}15%{opacity:1}100%{transform:translate(520px,5px) scale(.78) rotate(-8deg);opacity:0}}@keyframes globe-real-comet-c{0%{transform:translate(-90px,135px) scale(.6) rotate(-14deg);opacity:0}15%{opacity:1}100%{transform:translate(510px,47px) scale(.6) rotate(-14deg);opacity:0}}
@keyframes globe-owl-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-5px) rotate(2deg)}}@keyframes globe-real-owl-blink{0%,44%,52%,100%{transform:scaleY(1)}47%,49%{transform:scaleY(.08)}}@keyframes globe-owl-wing{from{transform:rotate(5deg)}to{transform:rotate(-13deg)}}@keyframes globe-real-fairy-loop{0%,100%{transform:translate(0,0) rotate(-4deg)}30%{transform:translate(42px,-21px) rotate(6deg)}62%{transform:translate(-24px,14px) rotate(-7deg)}82%{transform:translate(18px,25px) rotate(3deg)}}@keyframes globe-fairy-wing{from{transform:scaleX(.35) rotate(-8deg)}to{transform:scaleX(1) rotate(9deg)}}@keyframes globe-flower-sway{from{transform:rotate(-4deg)}to{transform:rotate(5deg)}}@keyframes globe-fairy-spark{to{opacity:.25;transform:scale(.35)}}@keyframes globe-real-star-march{from{transform:translateY(7px) rotate(-8deg) scale(.88)}to{transform:translateY(-9px) rotate(8deg) scale(1.12)}}@keyframes globe-real-moon-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-9px)}}

/* ===== Generic Moon Discovery (15,16,17,18,19,20,21,22,23,25,26) ===== */
.moon-discovery{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:56px 16px 70px;text-align:center;background:linear-gradient(180deg,#241a52 0%,#4a3a8c 60%,#8B7AB8 100%)}
.discovery-stage{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin:8px 0;position:relative;z-index:2}
.discovery-target{width:52px;height:52px;min-width:44px;min-height:44px;border-radius:14px;border:2px solid rgba(255,215,0,.5);background:rgba(255,255,255,.12);font-size:1.5rem;cursor:pointer;filter:grayscale(.85) brightness(.55);transition:filter .4s,transform .3s,background .4s}
.discovery-target.lit{filter:none;background:rgba(255,215,0,.22);border-color:#FFD700;transform:scale(1.08)}
.discovery-choice-row{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.discovery-choice{min-width:96px;min-height:44px;border-radius:16px;border:2px solid rgba(255,215,0,.5);background:rgba(255,255,255,.14);color:#fff;font-weight:700;padding:10px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;font-family:'Quicksand',sans-serif}
.discovery-choice-emoji{font-size:1.6rem}
.discovery-choice-label{font-size:.68rem}
.discovery-choice.chosen{border-color:#FFD700;background:rgba(255,215,0,.28)}
.discovery-choice:disabled{opacity:.5;cursor:default}
.discovery-twirl-visual{font-size:3rem;margin-bottom:8px}
.discovery-twirl-visual.spin{animation:discovery-twirl-spin .7s ease}
@keyframes discovery-twirl-spin{0%{transform:rotate(0) scale(1)}50%{transform:rotate(200deg) scale(1.15)}100%{transform:rotate(360deg) scale(1)}}
.discovery-twirl-btn{min-height:44px;min-width:100px;padding:8px 20px;border-radius:20px;border:2px solid #FFD700;background:#fff;color:#4B2A70;font-weight:800;cursor:pointer;font-family:'Quicksand',sans-serif}
.discovery-twirl-btn:disabled{opacity:.5}
.discovery-scroll-log{max-width:280px;max-height:90px;overflow-y:auto;font-size:.66rem;line-height:1.3;color:#E8E0FF;margin:6px 0}
.discovery-scroll-line{margin:2px 0}
.discovery-reveal{min-height:52px;margin-top:8px;opacity:0;transform:translateY(6px);transition:opacity .5s,transform .5s}
.moon-discovery.revealed .discovery-reveal{opacity:1;transform:translateY(0)}
.discovery-reveal-emoji{font-size:2rem}
.discovery-reveal-text{font-size:.78rem;font-weight:700;max-width:280px;margin:4px auto 0}
.discovery-scroll .discovery-stage{gap:18px;margin:18px 0 14px}
.discovery-scroll .discovery-target{width:92px;height:112px;border-radius:20px;font-size:3.2rem;border-width:3px;box-shadow:0 7px 18px rgba(0,0,0,.24)}
.discovery-scroll .discovery-target.lit{transform:scale(1.1);box-shadow:0 0 18px rgba(255,215,0,.42)}
.discovery-scroll .discovery-scroll-log{width:min(86%,620px);max-width:620px;max-height:170px;font-size:1rem;line-height:1.45;margin:10px auto;padding:8px 18px;border-radius:16px;background:rgba(19,14,53,.28)}
.discovery-scroll .discovery-scroll-line{margin:5px 0}
.discovery-scroll .discovery-reveal-emoji{font-size:3.2rem}
.discovery-scroll .discovery-reveal-text{font-size:1.15rem;max-width:520px}
.moon-discovery-dark{position:relative}
.discovery-dark-overlay{position:absolute;inset:0;z-index:1;background:radial-gradient(circle at 50% 55%,rgba(5,5,15,.15) 0%,rgba(5,5,15,.85) 70%);opacity:calc(1 - var(--dark-progress,0) * .75);transition:opacity .6s;pointer-events:none}
.moon-discovery-dark .activity-princess{filter:brightness(.35) saturate(.5);transition:filter .8s}
.moon-discovery-dark.fully-lit .activity-princess{filter:brightness(1) saturate(1)}
.moon-discovery-dark .discovery-target{filter:grayscale(1) brightness(.3)}
.moon-discovery-dark .discovery-target.lit{filter:none;text-shadow:0 0 10px #FFD700}

/* ===== Reduced motion guard ===== */
@media (prefers-reduced-motion: reduce){
  .kingdom-activity *,.kingdom-activity *::before,.kingdom-activity *::after{animation-duration:.001ms!important;animation-iteration-count:1!important;transition-duration:.001ms!important}
}

@media (max-width:520px){
  .activity-princess{width:100px;height:130px;left:6px}
  .castle-key-activity>.activity-princess{width:58px;height:78px;left:1px}
  .moon-hall{inset:56px 7px 10px;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:repeat(3,minmax(0,1fr));gap:7px}
  .moon-door,.moon-door:nth-child(4),.moon-door:nth-child(5){grid-column:auto;width:100%;height:100%;border-width:4px;border-radius:30px 30px 6px 6px}
  .moon-door:nth-child(5){grid-column:1/3;width:50%;justify-self:center}
  .moon-door-room-caption{padding:3px 4px 4px;bottom:3%}.moon-door-room-name{font-size:.5rem}.moon-door-room-desc{font-size:.38rem;line-height:1.1}.moon-prop-anchor{font-size:1.45rem}.moon-room-prop{font-size:.95rem}.moon-door-number{font-size:.55rem}.moon-door-key{font-size:1.2rem}
  .tiara-studio{gap:8px}.tiara-princess{width:140px;height:210px}.tiara-design-panel{width:190px;padding:10px 8px}.tiara-swatch{min-width:38px}.tiara-swatch small{font-size:.45rem}
  .discovery-scroll .discovery-stage{gap:9px}.discovery-scroll .discovery-target{width:70px;height:88px;font-size:2.5rem}.discovery-scroll .discovery-scroll-log{font-size:.82rem}
  .dream-room-window{width:76px;height:100px}.dream-bed{width:190px;height:88px}.dream-bed::before{box-shadow:184px 0 #5f4c80}.dream-princess{left:40px;width:115px;height:165px}.dream-cloud{left:30%;top:16%;width:30%;padding:12px}.dream-options{right:2%;width:34%;gap:5px}.dream-option{min-height:67px}.dream-option strong{font-size:.52rem}.dream-scene-caption{top:3%;width:76%;padding:8px 14px}.dream-scene-caption span{font-size:1.25rem}.dream-scene-caption h2{font-size:.82rem}.dream-scene-caption p{font-size:.57rem}.dream-scene-bed{left:2%;bottom:5%;width:58%;height:112px;border-width:4px}.dream-scene-headboard{top:-48px;width:43px;height:94px;border-width:4px}.dream-scene-pillow{left:15px;top:-19px;width:98px;height:55px}.dream-scene-princess{left:26px;top:-87px;width:112px;height:165px}.dream-scene-blanket{left:75px;top:14px;border-width:3px}.dream-scene-blanket::after{font-size:.72rem;letter-spacing:.35rem}.dream-scene-close{right:2%;left:auto;bottom:3%;transform:none;padding:8px 16px;font-size:.6rem}.dream-scene-close:hover{transform:scale(1.05)}
  .castle-location-card{right:1%;top:13%;width:135px;padding:7px}.castle-location-card span{font-size:1.05rem}.castle-location-card strong{font-size:.56rem}.castle-location-card small{font-size:.46rem}.castle-lantern-princess{width:100px;height:145px}.princess-night-lantern{right:-10px;top:55px;width:38px;height:50px}.castle-hall-candle{width:45px;height:78px}.castle-candle-wax{left:17px;top:24px;width:14px;height:33px}.castle-candle-wick{left:23px;top:19px}.castle-candle-flame{left:18px;top:3px}.castle-candle-holder{left:9px;top:55px}.castle-hall-candle small{top:70px;width:82px;font-size:.4rem}
  .royal-mirror{width:245px;height:330px;left:53%}.royal-mirror-glass{left:22px;right:22px;height:255px}.mirror-princess{width:110px;height:160px}.mirror-clean-status{right:2%;width:108px;padding:7px}
  .chandelier-preview{left:38%;width:250px;height:230px}.chandelier-light-rays{left:38%;width:330px}.chandelier-controls{right:1%;width:min(200px,48%);padding:8px}.chandelier-design-choice{min-height:48px}.chandelier-design-choice small{font-size:max(.48rem,8px)!important}.chandelier-princess{width:105px;height:155px}
  .moon-earth{width:50px;height:50px}.moon-explorer-princess{width:94px;height:132px}.moon-explorer-princess::before{left:17px;top:6px;width:60px;height:60px}.moon-explorer-stop{width:105px;height:92px}.moon-object-wrap{transform:translate(-50%,-50%) scale(.78)}.moon-explorer-stop:hover .moon-object-wrap,.moon-explorer-stop:active .moon-object-wrap{transform:translate(-50%,-54%) scale(.84)}.moon-object-label{bottom:-2px;width:95px;font-size:.5rem}.moon-discovery-card{right:2%;top:18%;width:170px;padding:10px;min-height:105px}.moon-discovery-card p{font-size:.62rem}
  .flying-unicorn-wrap{width:290px;height:210px;left:1%}.flying-unicorn{width:290px;height:190px}.unicorn-rider{left:88px;top:4px;width:88px;height:135px}.unicorn-flight-message{right:2%;top:29%;width:145px;padding:9px}.unicorn-flight-picker{bottom:2%}.unicorn-flight-choices{gap:4px}.unicorn-flight-choice{width:82px;min-height:87px}.unicorn-route-portal{width:51px;height:51px;border-width:3px}.unicorn-route-portal i{font-size:1.45rem}.unicorn-flight-choice strong{font-size:.48rem}.unicorn-flight-choice small{font-size:.39rem}.unicorn-picker-title{font-size:.48rem}
  .nightlight-activity{padding:54px 6px 10px}.nightlight-bedroom{width:98%;height:230px;margin-bottom:6px}.nightlight-colors{gap:6px;margin-bottom:6px}.nightlight-color-btn{width:38px;height:38px;min-width:38px;min-height:38px}.nightlight-tunes{gap:4px;margin-bottom:6px}.nightlight-tune-btn{min-width:92px;min-height:42px;padding:4px 5px}.nightlight-tune-btn span{font-size:.9rem}.nightlight-tune-btn strong{font-size:.48rem}.nightlight-music-btn{min-height:40px;padding:6px 14px;font-size:.68rem}
  .star-globe-activity{padding:52px 7px 58px}.star-globe{width:min(58vw,180px);height:min(58vw,180px)}.star-globe-caption strong{font-size:.68rem}.star-globe-caption span{font-size:.58rem}
}

/* ===== Candy Recipe engine (30-44) ===== */
.candy-activity{background:linear-gradient(180deg,#FFE0EE 0%,#FFB6C1 45%,#FF8EC7 100%);color:#7A1750}
.candy-recipe{padding:64px 16px 74px;display:flex;flex-direction:column;align-items:center;gap:10px}
.recipe-card{position:absolute;left:50%;top:52px;transform:translateX(-50%);z-index:6;display:flex;align-items:center;justify-content:center;gap:7px;background:rgba(255,255,255,.9);border-radius:16px;padding:5px 12px 5px 5px;box-shadow:0 3px 8px rgba(0,0,0,.16);max-width:min(58%,320px);pointer-events:none}
.kingdom-activity.finished .recipe-card{opacity:0;pointer-events:none;transition:opacity .3s}
.recipe-card-item{width:38px;height:38px;flex:none;opacity:.55;filter:grayscale(.35) brightness(1.08)}
.recipe-card-item .scaled-object{width:100%!important;height:100%!important}
.recipe-card-title{font-size:.7rem;font-weight:800;color:#B0225A;line-height:1.15;white-space:nowrap}
.recipe-ingredients{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;align-items:stretch;margin-top:108px;position:relative;z-index:8}
.recipe-ingredient{min-width:76px;min-height:96px;border-radius:16px;border:2px solid #FF69B4;background:rgba(255,255,255,.88);color:#7A1750;font-family:'Quicksand',sans-serif;font-weight:700;padding:8px 10px 6px;display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:4px;cursor:pointer;transition:transform .25s,opacity .3s,border-color .3s;box-sizing:border-box}
.recipe-ingredient-emoji{font-size:1.5rem}
.recipe-ingredient-label{font-size:.62rem;text-align:center;min-height:2.3em;margin-top:auto;display:flex;align-items:center;justify-content:center;line-height:1.15;flex:none}
.recipe-ingredient .real-recipe-ingredient,.recipe-ingredient .lollipop-real-ingredient{flex:0 0 52px;width:52px!important;height:52px!important;min-height:52px;max-height:52px;margin:0 auto;left:auto!important;top:auto!important;transform:none!important;display:block;overflow:visible;box-sizing:border-box;position:relative}
.recipe-ingredient.pending{border-color:#FFD700;animation:recipe-ingredient-pulse 1s ease-in-out infinite}
.recipe-ingredient.added{opacity:.45;border-color:#98FB98;transform:scale(.92);cursor:default}
@keyframes recipe-ingredient-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.recipe-flavors{position:relative;z-index:3;width:min(94%,580px);padding:12px 14px 14px;border-radius:22px;background:rgba(255,255,255,.72);border:3px solid rgba(255,105,180,.42);text-align:center;box-shadow:0 10px 22px rgba(140,30,80,.12)}
.recipe-flavors>strong{display:block;margin-bottom:10px;font-size:.85rem;color:#9A1952;text-transform:uppercase;letter-spacing:.08em}
.recipe-flavor-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.recipe-flavor{
  min-height:92px;padding:10px 6px 8px;border:3px solid color-mix(in srgb,var(--flavor-color,#FF69B4),#fff 25%);
  border-radius:18px;color:#5a1040;font-family:'Quicksand',sans-serif;cursor:pointer;
  background:
    radial-gradient(circle at 50% 28%,rgba(255,255,255,.75),transparent 52%),
    linear-gradient(165deg,color-mix(in srgb,var(--flavor-color),#fff 42%),color-mix(in srgb,var(--flavor-color),#fff 12%) 55%,var(--flavor-color));
  box-shadow:0 5px 0 color-mix(in srgb,var(--flavor-color),#000 22%),0 8px 14px rgba(90,20,50,.14);
  transition:transform .2s,border-color .2s,box-shadow .2s,filter .2s
}
.recipe-flavor span{display:block;font-size:2.15rem;line-height:1;filter:drop-shadow(0 2px 2px rgba(60,20,40,.2))}
.recipe-flavor small{display:block;margin-top:6px;font-size:.62rem;font-weight:800;line-height:1.1;color:#4a0e36;text-shadow:0 1px 0 rgba(255,255,255,.45)}
.recipe-flavor:hover,.recipe-flavor:focus-visible{transform:translateY(-3px) scale(1.04);filter:brightness(1.05)}
.recipe-flavor.selected{
  transform:translateY(-4px) scale(1.06);
  border-color:color-mix(in srgb,var(--flavor-color),#3a1028 15%);
  box-shadow:0 0 0 4px color-mix(in srgb,var(--flavor-color),transparent 45%),0 8px 0 color-mix(in srgb,var(--flavor-color),#000 18%),0 12px 18px rgba(90,20,50,.2)
}
.recipe-30 .recipe-flavors{margin-top:6px}
.recipe-30 .recipe-flavor-grid{gap:12px}
.recipe-bowl{position:relative;width:120px;height:90px;border-radius:0 0 50px 50px;border:4px solid #C71585;border-top:none;background:rgba(255,255,255,.4);overflow:hidden;box-shadow:inset 0 6px 10px rgba(0,0,0,.12)}
.recipe-bowl-back-rim,.recipe-bowl-front-rim,.recipe-mixing-stick{display:none}
.recipe-bowl-fill{position:absolute;left:0;bottom:0;width:100%;height:0%;background:linear-gradient(180deg,#FFD1E8,#FF69B4);transition:height .5s ease}
.recipe-bowl-label{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);font-size:.6rem;font-weight:800;color:#7A1750;z-index:2}
.recipe-action{position:relative;z-index:2;min-height:44px;min-width:160px;padding:9px 20px;border-radius:22px;border:2px solid #FFD700;background:#fff;color:#7A1750;font-weight:800;font-family:'Quicksand',sans-serif;cursor:pointer;margin-top:4px}
.recipe-action:disabled{opacity:.45;cursor:default}
.recipe-action.ready{background:linear-gradient(135deg,#FF69B4,#FFD700);color:#fff;animation:recipe-action-ready 1.2s ease-in-out infinite}
@keyframes recipe-action-ready{0%,100%{transform:scale(1)}50%{transform:scale(1.05)}}
.recipe-action.done{background:linear-gradient(135deg,#8e44ad,#f06292);color:#fff;animation:none}
.recipe-count-choice{display:flex;flex-direction:column;align-items:center;gap:2px;min-width:56px}
.recipe-count-dots{font-size:.72rem;line-height:1;max-width:80px}
.recipe-count-number{font-size:.9rem;font-weight:900}
.recipe-finish{min-height:70px;margin-top:6px;text-align:center;opacity:0;transform:translateY(8px);transition:opacity .5s,transform .5s;position:relative;z-index:2}
.candy-recipe.finished .recipe-finish{opacity:1;transform:translateY(0)}
.candy-recipe.activity-teardown,.candy-recipe.activity-teardown .recipe-finish,.candy-recipe.activity-teardown .recipe-styles,.candy-recipe.activity-teardown .big-finished-lollipop,.candy-recipe.activity-teardown .donut-throne-finish,.candy-recipe.activity-teardown .marsh-pillow-finish,.candy-recipe.activity-teardown .peppermint-sword-play,.candy-recipe.activity-teardown .gingerbread-design-studio,.candy-recipe.activity-teardown .gingerbread-figure,.candy-recipe.activity-teardown .cake-design-studio,.candy-recipe.activity-teardown .birthday-cake{opacity:0!important;visibility:hidden!important;pointer-events:none!important;display:none!important;transition:none!important;animation:none!important}
body:not(.on-playroom):not(.on-spot) .kingdom-activity,body:not(.on-playroom):not(.on-spot) .recipe-finish{display:none!important}
.recipe-finish-item{margin:0 auto}
.recipe-finish-item .scaled-object{margin:0 auto}
.recipe-finish-text{font-size:.8rem;font-weight:800;color:#B0225A;margin-top:4px}
.recipe-finish-sparkles{font-size:1.4rem;color:#FFD700;text-shadow:0 0 8px #fff;margin-bottom:3px}
.donut-throne-finish{position:relative;width:200px;height:210px;margin:0 auto 4px;filter:drop-shadow(0 10px 10px rgba(118,24,77,.28));animation:donut-throne-arrive .85s cubic-bezier(.2,.9,.25,1.25)}
@keyframes donut-throne-arrive{0%{transform:translateY(18px) scale(.72);opacity:0}70%{transform:translateY(-4px) scale(1.04)}100%{transform:translateY(0) scale(1);opacity:1}}
.donut-throne-finish .dt-shadow{position:absolute;left:18px;right:18px;bottom:4px;height:12px;border-radius:50%;background:rgba(90,40,60,.18)}
/* Backrest is stacked donuts only — no solid pink slab */
.donut-throne-finish .dt-back{position:absolute;left:52px;top:10px;width:96px;height:120px;background:transparent;box-shadow:none}
.donut-throne-finish .dt-donut{position:absolute;display:block;border-radius:50%;box-sizing:border-box;background:radial-gradient(circle at 35% 30%,var(--dt-dough,#F0C090),var(--dt-dough-deep,#C6864A) 72%);border:3px solid var(--dt-dough-deep,#B8753A);box-shadow:inset 0 4px 0 rgba(255,255,255,.28),inset 0 -5px 8px rgba(80,40,10,.22),0 4px 6px rgba(60,25,20,.28)}
.donut-throne-finish .dt-donut .dt-hole{position:absolute;left:50%;top:48%;width:34%;height:34%;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 50% 40%,#1a1218 0 55%,#0c090b 100%);box-shadow:inset 0 0 0 2px rgba(255,220,170,.2),0 0 0 2px rgba(90,50,20,.35);z-index:2}
.donut-throne-finish .dt-donut .dt-frost{position:absolute;inset:7% 6% 18% 6%;border-radius:50%;background:radial-gradient(ellipse at 40% 28%,var(--dt-glaze-light,#FFB6D9),var(--dt-glaze,#FF69B4) 55%,var(--dt-glaze-deep,#E84F98) 100%);box-shadow:inset 0 3px 0 rgba(255,255,255,.4);clip-path:ellipse(50% 48% at 50% 42%);z-index:1;pointer-events:none}
.donut-throne-finish .dt-donut .dt-frost::after{content:'';position:absolute;left:8%;right:8%;bottom:-10%;height:38%;background:radial-gradient(ellipse at 20% 0,var(--dt-glaze,#FF69B4) 0 18%,transparent 19%),radial-gradient(ellipse at 45% 10%,var(--dt-glaze,#FF69B4) 0 16%,transparent 17%),radial-gradient(ellipse at 70% 0,var(--dt-glaze,#FF69B4) 0 18%,transparent 19%),radial-gradient(ellipse at 88% 8%,var(--dt-glaze,#FF69B4) 0 14%,transparent 15%);opacity:.95}
.donut-throne-finish .back-top{left:18px;top:0;width:60px;height:52px;z-index:3}
.donut-throne-finish .back-mid{left:8px;top:34px;width:80px;height:58px;z-index:2}
.donut-throne-finish .back-low{left:0;top:66px;width:96px;height:54px;z-index:1}
.donut-throne-finish .dt-crown{position:absolute;left:50%;top:2px;width:54px;height:22px;transform:translateX(-50%);z-index:6}
.donut-throne-finish .dt-crown b{position:absolute;bottom:0;width:12px;height:18px;border-radius:4px 4px 2px 2px;background:linear-gradient(180deg,#FFE082,#FFD700 60%,#E0A800);box-shadow:0 0 6px rgba(255,215,0,.55)}
.donut-throne-finish .dt-crown b:nth-child(1){left:4px;height:14px}.donut-throne-finish .dt-crown b:nth-child(2){left:21px;height:20px}.donut-throne-finish .dt-crown b:nth-child(3){right:4px;height:14px}
.donut-throne-finish .dt-arm{position:absolute;top:88px;width:52px;height:70px;z-index:4}
.donut-throne-finish .dt-arm.left{left:2px}.donut-throne-finish .dt-arm.right{right:2px}
.donut-throne-finish .dt-arm .dt-donut{left:4px;width:44px;height:40px}
.donut-throne-finish .dt-arm .dt-donut:first-child{top:0}.donut-throne-finish .dt-arm .dt-donut:last-child{top:28px;width:48px;left:2px;height:42px}
.donut-throne-finish .dt-arm .dt-donut .dt-hole{width:32%;height:32%}
.donut-throne-finish .dt-seat{position:absolute;left:24px;right:24px;bottom:14px;height:100px;z-index:3}
.donut-throne-finish .seat-base{left:0;bottom:0;width:100%;height:42px}
.donut-throne-finish .seat-mid{left:7%;bottom:26px;width:86%;height:38px;z-index:2}
.donut-throne-finish .seat-top{left:14%;bottom:48px;width:72%;height:36px;z-index:3}
.donut-throne-finish .dt-candle{position:absolute;bottom:72px;width:7px;height:18px;border-radius:2px;background:linear-gradient(180deg,#FFF6C0,#FFE082);z-index:5;box-shadow:0 -2px 0 #FF6B6B}
.donut-throne-finish .dt-candle::after{content:'';position:absolute;left:50%;top:-7px;width:8px;height:10px;transform:translateX(-50%);border-radius:50% 50% 40% 40%;background:radial-gradient(circle at 40% 30%,#fff6a0,#ff7a3a 70%);animation:dt-flame .7s ease-in-out infinite alternate}
.donut-throne-finish .dt-candle.c1{left:28%}.donut-throne-finish .dt-candle.c2{left:46%;height:22px}.donut-throne-finish .dt-candle.c3{left:64%}
@keyframes dt-flame{0%{transform:translateX(-50%) scale(.9);opacity:.85}100%{transform:translateX(-50%) scale(1.1);opacity:1}}
.donut-throne-finish .dt-sparkles{position:absolute;inset:0;pointer-events:none;z-index:6}
.donut-throne-finish .dt-sparkles i{position:absolute;width:6px;height:6px;border-radius:50%;background:#FFD700;box-shadow:0 0 8px #FFD700;animation:dt-twinkle 1.4s ease-in-out infinite}
.donut-throne-finish .dt-sparkles i:nth-child(1){left:18%;top:22%}.donut-throne-finish .dt-sparkles i:nth-child(2){right:16%;top:30%;animation-delay:.3s}.donut-throne-finish .dt-sparkles i:nth-child(3){left:12%;top:58%;animation-delay:.55s}.donut-throne-finish .dt-sparkles i:nth-child(4){right:10%;top:62%;animation-delay:.8s}
@keyframes dt-twinkle{0%,100%{opacity:.35;transform:scale(.7)}50%{opacity:1;transform:scale(1.15)}}
.donut-throne-finish.no-crown .dt-crown{display:none}
.donut-throne-finish.no-candles .dt-candle{display:none}
.donut-throne-finish .dt-sprinkle{position:absolute;width:5px;height:9px;border-radius:2px;opacity:0;z-index:6;transform:rotate(20deg)}
.donut-throne-finish.has-sprinkles .dt-sprinkle{opacity:1}
.donut-throne-finish .dt-sprinkle.s1{left:22%;bottom:58px;background:#FF4F8E}.donut-throne-finish .dt-sprinkle.s2{left:38%;bottom:66px;background:#40C4FF;transform:rotate(-25deg)}
.donut-throne-finish .dt-sprinkle.s3{left:55%;bottom:60px;background:#FFD740}.donut-throne-finish .dt-sprinkle.s4{left:70%;bottom:68px;background:#69F0AE;transform:rotate(40deg)}
.donut-throne-finish .dt-sprinkle.s5{left:30%;bottom:48px;background:#7C4DFF;transform:rotate(-10deg)}.donut-throne-finish .dt-sprinkle.s6{left:62%;bottom:50px;background:#FF6E40}
.donut-throne-finish .dt-princess{position:absolute;left:50%;bottom:52px;width:92px;height:110px;margin-left:-46px;z-index:7;opacity:0;transform:translateY(18px) scale(.7);transform-origin:50% 100%;line-height:0;filter:drop-shadow(0 4px 6px rgba(80,30,60,.28));pointer-events:none}
.donut-throne-finish .dt-princess svg{width:100%;height:100%;display:block}
.donut-throne-finish.seated .dt-princess{opacity:1;transform:translateY(0) scale(.88);transition:opacity .45s,transform .55s cubic-bezier(.34,1.2,.4,1)}
.recipe-37.throne-designing .recipe-ingredients,.recipe-37.throne-designing .recipe-styles,.recipe-37.throne-designing .recipe-bowl,.recipe-37.throne-designing .recipe-process{opacity:0;pointer-events:none}
.recipe-37.throne-designing .recipe-finish{
  opacity:1;pointer-events:auto;
  left:50%;top:44%;
  transform:translate(-50%,-50%) scale(1);
  width:min(94%,320px);min-height:0;max-height:calc(100% - 96px);
  padding:10px 12px 12px;overflow-x:hidden;overflow-y:auto;
  background:linear-gradient(160deg,#d8dbe0 0%,#9ea3ab 42%,#6f757e 100%);
  border:5px solid #5c6169;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.35),0 14px 26px rgba(40,20,30,.35)
}
.recipe-37.throne-designing .recipe-action{
  position:absolute;z-index:22;left:50%;bottom:10px;margin:0;
  transform:translateX(-50%);min-width:min(88%,260px);min-height:48px;
  box-shadow:0 8px 16px rgba(108,32,70,.28)
}
.recipe-37.throne-designing .recipe-action.ready{
  animation:throne-sit-ready 1.2s ease-in-out infinite
}
@keyframes throne-sit-ready{
  0%,100%{transform:translateX(-50%) scale(1)}
  50%{transform:translateX(-50%) scale(1.05)}
}
.recipe-37.throne-presented .recipe-action{opacity:0;pointer-events:none;animation:none}
.donut-throne-studio{display:flex;flex-direction:column;align-items:center;gap:8px;width:100%}
/* Oven frame around the throne preview */
.dt-oven{position:relative;width:100%;max-width:280px;margin:0 auto;padding:0 0 10px;border-radius:18px;background:linear-gradient(90deg,#8a8e96,#e8e9ec 38%,#aeb2b9 72%,#757980);border:5px solid #6a6e76;box-shadow:inset 0 0 0 3px rgba(255,255,255,.28),0 10px 18px rgba(40,20,30,.28)}
.recipe-37.throne-designing .dt-oven{max-width:236px;padding-bottom:8px}
.dt-oven-controls{height:34px;display:flex;align-items:center;gap:8px;padding:0 12px;border-bottom:3px solid #5f646c;background:linear-gradient(180deg,#c5c8ce,#9a9ea6)}
.dt-oven-controls i{width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#7a7e86);border:2px solid #555960;box-shadow:inset 0 -2px 0 rgba(0,0,0,.2)}
.dt-oven-controls span{margin-left:auto;padding:2px 7px;border-radius:4px;background:#1a171c;color:#ffcf6b;font-size:.52rem;font-weight:900;letter-spacing:.08em;font-family:'Quicksand',sans-serif}
.dt-oven-window{position:relative;margin:10px 12px 8px;min-height:200px;border-radius:10px;background:radial-gradient(ellipse at 50% 70%,#4a2a1a 0%,#1a1014 55%,#0a0709 100%);border:6px solid #5a5e66;overflow:hidden;box-shadow:inset 0 0 28px rgba(0,0,0,.85),inset 0 0 0 2px rgba(255,180,80,.12)}
.recipe-37.throne-designing .dt-oven-window{min-height:150px;margin:8px 10px 6px}
.dt-oven-glow{position:absolute;left:10%;right:10%;bottom:8%;height:42%;border-radius:50%;background:radial-gradient(ellipse at 50% 80%,rgba(255,140,40,.45),rgba(255,80,20,.12) 45%,transparent 70%);pointer-events:none;animation:dt-oven-warm 2.2s ease-in-out infinite alternate}
@keyframes dt-oven-warm{from{opacity:.55}to{opacity:1}}
.dt-oven-rack{position:absolute;left:10px;right:10px;height:3px;background:linear-gradient(90deg,#6a6e74,#c0c3c8 40%,#5a5e64);box-shadow:0 2px 0 #2a2c30;z-index:1;opacity:.75}
.dt-oven-rack.r1{bottom:28px}.dt-oven-rack.r2{bottom:58px;opacity:.45}
.dt-oven-handle{width:42%;height:8px;margin:0 auto;border-radius:6px;background:linear-gradient(180deg,#dfe2e6,#8a8e96);border:2px solid #5a5e66;box-shadow:0 2px 3px rgba(0,0,0,.25)}
.donut-throne-preview{position:relative;z-index:2;width:180px;height:190px;margin:10px auto 18px}
.recipe-37.throne-designing .donut-throne-preview{width:148px;height:156px;margin:4px auto 8px}
.donut-throne-preview .donut-throne-finish{width:180px;height:190px;animation:none;transform:scale(.92);filter:drop-shadow(0 6px 8px rgba(0,0,0,.45))}
.recipe-37.throne-designing .donut-throne-preview .donut-throne-finish{width:148px;height:156px;transform:scale(.88)}
.donut-throne-panel{width:100%;display:flex;flex-direction:column;gap:7px;padding:8px 8px 9px;border-radius:14px;background:rgba(255,255,255,.94);border:2px solid rgba(90,95,105,.25);box-sizing:border-box}
.donut-throne-group{position:relative;z-index:1}
.donut-throne-group strong{display:block;margin-bottom:4px;font-size:max(.58rem,11px);color:#5a3a48;text-transform:uppercase;letter-spacing:.04em}
.dt-opt-row{display:flex;gap:6px}
.dt-opt-row button{flex:1;min-height:40px;padding:6px 8px;border:2px solid rgba(176,34,90,.25);border-radius:12px;background:rgba(255,255,255,.9);color:#7A1750;font-weight:800;font-size:.7rem;line-height:1.1;cursor:pointer;box-sizing:border-box}
.dt-opt-row button.selected{border-color:#FFD76A;background:#fff6d8;box-shadow:0 0 8px rgba(255,215,106,.4)}
.recipe-37.finished .recipe-finish,.recipe-37.throne-presented .recipe-finish{width:min(92%,300px);min-height:320px;padding:14px;background:linear-gradient(160deg,#d8dbe0 0%,#9ea3ab 42%,#6f757e 100%);border:5px solid #5c6169;box-shadow:inset 0 0 0 3px rgba(255,255,255,.35),0 14px 26px rgba(40,20,30,.35)}
.recipe-37.throne-presented .recipe-finish-text{color:#fff6d8;text-shadow:0 1px 3px rgba(0,0,0,.45)}
.recipe-37.throne-presented .dt-oven{max-width:260px}
.recipe-37.throne-presented .donut-throne-preview{margin:8px auto 12px;width:180px;height:190px}
.recipe-37.throne-presented .donut-throne-preview .donut-throne-finish{
  width:180px;height:190px;transform:scale(1);
  animation:donut-throne-arrive .85s cubic-bezier(.2,.9,.25,1.25)
}
.recipe-37.throne-presented .dt-candle::after{animation:dt-flame .7s ease-in-out infinite alternate}
.recipe-37.throne-presented .dt-sparkles i{animation:dt-twinkle 1.4s ease-in-out infinite}
.recipe-flying-ingredient{position:absolute;z-index:30;width:36px;height:36px;font-size:2rem;line-height:36px;text-align:center;pointer-events:none;filter:drop-shadow(0 5px 5px rgba(109,30,72,.3));transition:left .68s cubic-bezier(.2,.8,.2,1),top .68s cubic-bezier(.2,.8,.2,1),transform .68s,opacity .68s}
.real-recipe-ingredient{position:relative;display:block;width:72px;height:55px;margin:0 auto;filter:drop-shadow(0 5px 4px rgba(71,35,52,.2));box-sizing:border-box}.real-recipe-ingredient i,.real-recipe-ingredient b{position:absolute;display:block;box-sizing:border-box}.real-recipe-ingredient b{font-style:normal;font-size:max(.4rem,9px);line-height:1;color:#71452f;text-align:center}.real-recipe-ingredient b:empty{display:none}.real-fruit b{display:none}
.real-syrup,.real-juice,.real-bottle,.real-dropper,.real-sparkle-jar{position:relative;left:auto;top:auto;width:100%;height:100%;margin:0;transform:none;border:3px solid #9aafb6;border-radius:8px 8px 13px 13px;background:linear-gradient(110deg,rgba(255,255,255,.78),rgba(226,239,241,.38));overflow:hidden;box-sizing:border-box}.real-syrup::after,.real-juice::after,.real-bottle::after,.real-dropper::after,.real-sparkle-jar::after{content:'';position:absolute;left:3px;right:3px;bottom:3px;height:58%;border-radius:4px 4px 9px 9px;background:linear-gradient(#f3bb5f,#b97120);z-index:0}.real-syrup b,.real-juice b,.real-bottle b,.real-sparkle-jar b{left:3px;right:3px;top:28%;padding:2px 0;background:rgba(255,255,255,.82);z-index:1}.real-juice::after{background:linear-gradient(#ef7692,#bf354f)}.real-bottle::after{background:linear-gradient(#865128,#432513)}.real-dropper::before{content:'';position:absolute;left:14%;right:14%;top:0;height:22%;border-radius:0 0 8px 8px;background:#61385f;z-index:1}.real-dropper::after{background:linear-gradient(#ee7eb9,#a92e79);top:20%;bottom:3px;height:auto}.real-sparkle-jar::after{background:radial-gradient(circle,#fff 0 1px,transparent 2px) 0 0/8px 8px,linear-gradient(#fff4b2,#d6a32b)}
.real-bag{position:relative;left:auto;top:auto;width:100%;height:100%;margin:0;transform:none;border:2px solid #b58859;border-radius:5px 5px 10px 10px;background:linear-gradient(90deg,#d8b487,#fff1cf 48%,#c79b6d);box-shadow:inset 0 -8px rgba(128,75,39,.08)}.real-bag::before{content:'';position:absolute;left:5px;right:5px;top:-4px;height:8px;background:#c99f70;border-radius:4px}.real-bag b{left:5px;right:5px;top:30%;padding:3px 1px;background:#fff9e9;border:1px solid #cda878}.real-bag i:first-child{left:18%;bottom:8%;width:64%;height:5px;background:repeating-linear-gradient(90deg,#c39a61 0 2px,transparent 2px 4px)}
.real-eggs{background:linear-gradient(#d4b88d,#aa875c);border-radius:8px 8px 17px 17px;border:2px solid #8f714b;margin-top:13px;height:38px}.real-eggs::before{content:'';position:absolute;inset:-8px 5px auto;height:18px;border:2px solid #aa875c;border-bottom:0;border-radius:50% 50% 0 0;background:#d9c19b}.real-eggs i{top:-12px;width:21px;height:29px;border-radius:50% 50% 45% 45%/58% 58% 42% 42%;background:radial-gradient(circle at 35% 25%,#fff,#ead8b7 72%);border:1px solid #c8b18a}.real-eggs i:nth-child(1){left:8px;transform:rotate(-5deg)}.real-eggs i:nth-child(2){left:26px;top:-15px}.real-eggs i:nth-child(3){right:8px;transform:rotate(6deg)}
.real-carton{width:48px;left:12px;background:linear-gradient(90deg,#f8fbff,#cce9f4);border:2px solid #74a9bd;clip-path:polygon(12% 17%,29% 0,71% 0,88% 17%,88% 100%,12% 100%)}.real-carton::before{content:'';position:absolute;left:13px;top:0;width:19px;height:13px;background:#75b5d0;clip-path:polygon(0 100%,50% 0,100% 100%)}.real-carton b{left:7px;right:7px;top:28px;padding:3px 0;background:#fff;color:#367d9a}.real-carton i:first-child{left:9px;bottom:5px;width:25px;height:8px;background:linear-gradient(90deg,#78c4db,#fff)}
.real-butter{left:5px;top:15px;width:62px;height:31px;border:2px solid #c79b17;border-radius:4px;background:linear-gradient(135deg,#fff5a8,#efc53b);box-shadow:0 5px 5px rgba(74,47,18,.16)}.real-butter::after{content:'';position:absolute;left:-5px;right:-5px;bottom:-6px;height:9px;background:linear-gradient(90deg,#f3f3ed,#c9cfda);clip-path:polygon(0 0,100% 0,94% 100%,6% 100%)}.real-butter b{inset:9px 5px auto;color:#9e7310}
.real-chocolate{left:5px;top:4px;width:62px;height:47px;border:3px solid #542615;border-radius:4px;background:repeating-linear-gradient(90deg,transparent 0 17px,#6d301c 18px 20px),repeating-linear-gradient(0deg,#8e4528 0 19px,#5f2919 20px 22px);transform:rotate(-5deg);box-shadow:5px 6px 0 #4d2115}.real-tin{left:11px;width:50px;border:3px solid #7e4433;border-radius:8px;background:linear-gradient(90deg,#8a4533,#e0a06e 45%,#7b392d)}.real-tin::before{content:'';position:absolute;left:-3px;right:-3px;top:-4px;height:9px;border-radius:50%;background:#b67556;border:2px solid #6e392f}.real-tin b{left:5px;right:5px;top:20px;padding:5px 0;background:#fff0d2;color:#673224}
.real-fruit{position:relative;width:100%;height:100%;left:auto;top:auto;margin:0;transform:none;border-radius:50%;border:2px solid rgba(88,51,35,.25);box-shadow:inset 8px 8px 10px rgba(255,255,255,.3),0 5px 7px rgba(73,41,35,.16)}.real-fruit::before{content:'';position:absolute;left:42%;top:-12%;width:14%;height:24%;border-radius:8px;background:#568d38;transform:rotate(-15deg)}.real-fruit::after{content:'';position:absolute;left:48%;top:-8%;width:36%;height:16%;border-radius:100% 0;background:#71ac43;transform:rotate(-16deg)}.real-fruit.strawberry{border-radius:48% 48% 58% 58%/38% 38% 72% 72%;background:radial-gradient(circle,#ffe5a5 0 1px,transparent 1.5px) 0 0/11px 10px,#e94e61}.real-fruit.orange{background:#f49a32}.real-fruit.lemon{background:#f4d940;transform:scaleX(1.12)}.real-fruit.lime{background:#72bd4f}.real-fruit.raspberry{background:radial-gradient(circle at 30% 30%,#99d9ff 0 5px,#338ed3 6px 10px,transparent 11px) 0 0/17px 17px,#266db5}
.real-beans{background:radial-gradient(ellipse at 15% 35%,#ef4d69 0 8px,transparent 9px),radial-gradient(ellipse at 38% 62%,#f3d04b 0 8px,transparent 9px),radial-gradient(ellipse at 62% 30%,#8051bd 0 8px,transparent 9px),radial-gradient(ellipse at 84% 60%,#48a5dc 0 8px,transparent 9px)}.real-rope::before,.real-rope::after{content:'';position:absolute;left:7px;right:7px;height:16px;border-radius:10px;background:repeating-linear-gradient(135deg,#f04d66 0 7px,#fff5e6 8px 14px);box-shadow:0 3px 4px rgba(88,40,54,.2)}.real-rope::before{top:11px;transform:rotate(9deg)}.real-rope::after{top:31px;transform:rotate(-8deg)}
.real-gems{background:linear-gradient(135deg,transparent 25%,#63d5ff 26% 38%,transparent 39%) 3px 4px/26px 26px,linear-gradient(45deg,transparent 25%,#d97aff 26% 38%,transparent 39%) 20px 20px/29px 29px}.real-gems i{width:25px;height:25px;clip-path:polygon(50% 0,100% 35%,76% 100%,24% 100%,0 35%);background:linear-gradient(135deg,#eaffff,#43a8e8 58%,#175eaa)}.real-gems i:nth-child(1){left:5px;top:18px}.real-gems i:nth-child(2){left:28px;top:3px;background:linear-gradient(135deg,#fff,#db74ef 55%,#7f3cb4)}.real-gems i:nth-child(3){right:2px;top:24px;background:linear-gradient(135deg,#fff8c4,#f1b82d 55%,#b46818)}
.real-mold{
  position:relative;left:auto;top:auto;width:100%;height:100%;margin:0;transform:none;
  border-radius:8px;background:linear-gradient(145deg,#d8dce2,#7c838c);border:3px solid #666c73;
  box-shadow:inset 0 0 0 3px #edf0f3;overflow:hidden
}
.real-mold::after{
  content:'';position:absolute;inset:14% 16%;
  border-radius:45% 45% 40% 40%;background:#555b64;box-shadow:inset 0 5px 7px #262a2f
}
.real-shoe-mold::after{
  inset:12% 10% 10%;
  clip-path:polygon(12% 48%,18% 28%,38% 18%,62% 22%,82% 36%,96% 50%,94% 64%,78% 74%,48% 78%,30% 76%,24% 100%,16% 100%,20% 76%,8% 64%,6% 52%)
}
.real-hilt{
  position:relative;left:auto;top:auto;width:100%;height:100%;margin:0;transform:none;
  background:linear-gradient(90deg,transparent 0 28px,#ba8323 29px 42px,transparent 43px)
}
.real-hilt::before{content:'';position:absolute;left:8px;top:17px;width:56px;height:12px;border-radius:8px;background:linear-gradient(#fff0a6,#c98d27);box-shadow:0 4px 5px rgba(84,49,19,.22)}
.real-hilt::after{content:'';position:absolute;left:27px;top:5px;width:18px;height:46px;border-radius:8px;background:linear-gradient(90deg,#713a60,#d779b0,#612b51)}
.real-star{clip-path:polygon(50% 0,61% 34%,98% 35%,68% 56%,79% 94%,50% 72%,20% 94%,31% 57%,2% 35%,39% 34%);position:relative;left:auto;top:auto;width:100%;height:100%;margin:0;background:linear-gradient(135deg,#fff5a3,#f4b927 65%,#c57b12);filter:drop-shadow(0 0 7px #ffd75b)}
.real-glaze{position:relative;left:auto;top:auto;width:100%;height:72%;margin:14% 0 0;border-radius:5px 5px 25px 25px;background:linear-gradient(#f8a5cf,#d94d95);border:2px solid #a83672}
.real-glaze::before{content:'';position:absolute;left:4px;right:4px;top:-9px;height:17px;border-radius:50%;background:#ffd0e7}
.real-peppermint{background:repeating-conic-gradient(#f04b5f 0 20deg,#fff 21deg 42deg);position:relative;left:auto;top:auto;width:88%;height:88%;margin:6% auto 0;border-radius:50%;border:4px solid rgba(255,255,255,.8);box-shadow:0 5px 7px rgba(65,34,44,.2)}
.real-packet{position:relative;left:auto;top:auto;width:100%;height:100%;margin:0;border-radius:5px;background:linear-gradient(90deg,#d7e7ef,#fff 45%,#b8d0db);border:2px solid #88a8b8}
.real-packet b{left:5px;right:5px;top:21px;padding:5px 0;background:#83bdd4;color:#fff}
.real-seeds{position:relative;left:auto;top:auto;width:100%;height:100%;margin:0;background:radial-gradient(ellipse,#f2efff 0 5px,#7e68bc 6px 8px,transparent 9px) 0 0/23px 19px}
.recipe-flying-ingredient .real-recipe-ingredient{transform:scale(.62);transform-origin:left top}
.recipe-tool-art,.recipe-tool-name{position:absolute;display:block;pointer-events:none}.recipe-tool-name{left:50%;bottom:-22px;transform:translateX(-50%);width:190px;text-align:center;font-size:.58rem;font-weight:900;color:#7a174a}.recipe-tool-art{inset:0;z-index:4}.recipe-tool-art i,.recipe-tool-art b{position:absolute;display:block}
.expanded-candy-recipe{padding:62px 16px 68px;gap:8px;background:radial-gradient(circle at 50% 47%,rgba(255,255,255,.48),transparent 37%),linear-gradient(180deg,#FFE8F2 0%,#FFB8D5 52%,#F78ABE 100%)}
/* Keep prompt, title card, tool label, and process steps in separate vertical bands */
.expanded-candy-recipe .activity-prompt{top:6px;z-index:9;max-width:min(90%,380px);font-size:clamp(.62rem,2vw,.78rem);line-height:1.18;padding:6px 12px}
.expanded-candy-recipe .recipe-card{top:58px;transform:translateX(-50%);z-index:6}
.expanded-candy-recipe .recipe-ingredients{margin-top:132px;gap:9px;width:min(92%,650px);align-items:stretch}
.expanded-candy-recipe .recipe-ingredient{min-width:94px;min-height:102px;padding:8px 7px 6px;border-radius:19px;box-shadow:0 6px 12px rgba(116,31,72,.16)}
.expanded-candy-recipe .recipe-ingredient-emoji{font-size:2rem;filter:drop-shadow(0 3px 3px rgba(0,0,0,.16))}
.expanded-candy-recipe .recipe-ingredient-label{font-size:.67rem;max-width:90px;line-height:1.15;min-height:2.3em}
.expanded-candy-recipe .recipe-bowl{position:relative;z-index:3;width:200px;height:118px;margin-top:18px;margin-bottom:36px;border:6px solid #7c838b;border-top:4px solid #dfe4e8;border-radius:16px 16px 92px 92px;background:linear-gradient(105deg,#7c858d,#edf1f3 18%,#9ba3aa 36%,#f8fafb 52%,#858e96 76%,#d8dfe2);overflow:visible;box-shadow:inset 0 -15px 18px rgba(47,54,61,.28),inset 0 8px 9px rgba(255,255,255,.64),0 10px 16px rgba(90,35,63,.22);transition:transform .45s,filter .45s,box-shadow .45s;cursor:default}.expanded-candy-recipe .recipe-bowl-fill{left:6%;bottom:12px;width:88%;max-height:72%;border-radius:8px 8px 70px 70px;overflow:hidden}.expanded-candy-recipe .recipe-bowl-label{display:none}.expanded-candy-recipe .recipe-workstation.workstation-ready{cursor:pointer;outline:4px solid #ffe36b;outline-offset:5px;animation:recipe-workstation-ready .9s ease-in-out infinite alternate}
.expanded-candy-recipe .recipe-tool-name{bottom:-20px;z-index:2;line-height:1.15;pointer-events:none}
.recipe-process{position:relative;z-index:4;display:flex;align-items:flex-start;justify-content:center;gap:24px;width:min(88%,480px);margin:8px 0 6px}
.expanded-candy-recipe .recipe-process{margin-top:8px;margin-bottom:8px}
.recipe-process::before{content:'';position:absolute;left:12%;right:12%;top:16px;height:4px;background:rgba(176,34,90,.2);border-radius:3px}
.recipe-process-step{position:relative;z-index:2;flex:1;text-align:center;color:#9b4770;transition:transform .3s,color .3s}
.recipe-process-step span{display:flex;align-items:center;justify-content:center;width:34px;height:34px;margin:0 auto 4px;border-radius:50%;background:#fff;border:3px solid #e59abd;font-weight:900;font-size:.75rem;box-shadow:0 3px 7px rgba(0,0,0,.1)}
.recipe-process-step small{display:block;font-size:.55rem;font-weight:800;line-height:1.1}
.recipe-process-step.current{color:#8b1852;transform:scale(1.06)}.recipe-process-step.current span{border-color:#FFD700;box-shadow:0 0 11px rgba(255,215,0,.45)}
.recipe-process-step.completed span{background:#78d69d;border-color:#fff;color:#fff}.recipe-process-step.completed span::after{content:'✓';font-size:.9rem}.recipe-process-step.completed span{font-size:0}
.expanded-candy-recipe .recipe-action{position:relative;z-index:18;min-width:230px;min-height:50px;margin-top:10px;font-size:.82rem;flex:none;box-shadow:0 7px 14px rgba(108,32,70,.18)}
.expanded-candy-recipe .recipe-finish{position:absolute;z-index:12;left:50%;top:51%;width:300px;min-height:250px;margin:0;padding:18px;border-radius:25px;background:rgba(255,255,255,.92);border:3px solid #FFD76A;box-shadow:0 0 28px rgba(255,215,106,.48),0 14px 25px rgba(109,31,73,.22);transform:translate(-50%,-45%) scale(.35);pointer-events:none}
.expanded-candy-recipe.finished .recipe-finish{opacity:1;transform:translate(-50%,-45%) scale(1)}
.expanded-candy-recipe.finished .recipe-ingredients,.expanded-candy-recipe.finished .recipe-bowl,.expanded-candy-recipe.finished .recipe-process,.expanded-candy-recipe.finished .recipe-action{opacity:0;pointer-events:none;transition:opacity .35s}
.expanded-candy-recipe .recipe-finish-item{height:178px;display:flex;align-items:center;justify-content:center}.expanded-candy-recipe .recipe-finish-text{font-size:.95rem}
.recipe-30 .recipe-tool-art,.recipe-30 .recipe-tool-name{display:none}
/* Every recipe uses its own recognizable kitchen tool. */
/* Gingerbread: copper baking pan sitting on a sheet tray underneath */
.recipe-33 .recipe-workstation{
  width:220px;height:148px;margin-top:18px;margin-bottom:52px;
  border-radius:16px;border:4px solid #8a9098;border-top-color:#e8edf2;border-bottom-color:#5a616a;
  background:linear-gradient(160deg,#f3f5f8 0%,#c5ccd4 28%,#9aa3ad 52%,#dfe4ea 74%,#7a838e 100%);
  box-shadow:inset 0 3px 0 rgba(255,255,255,.65),inset 0 -10px 16px rgba(40,50,60,.28),0 12px 18px rgba(60,30,40,.22);
  overflow:visible
}
.recipe-36 .recipe-workstation{border-color:#8b4b28;border-top-color:#f0b67d;background:linear-gradient(105deg,#6f321e,#dc8a50 22%,#8e4529 49%,#efb175 69%,#68301d);box-shadow:inset 0 -14px 18px rgba(67,25,12,.35),inset 0 8px 9px rgba(255,225,188,.42),0 10px 16px rgba(88,40,28,.25)}
.recipe-33 .recipe-bowl-fill{display:none!important}
.recipe-33 .recipe-tool-art.gingerbread-art{inset:0;z-index:5;overflow:visible}
.recipe-33 .gingerbread-art i,.recipe-33 .gingerbread-art b,.recipe-33 .gingerbread-art span{position:absolute;display:block;box-sizing:border-box}
.recipe-33 .gb-sheet{inset:8px;border-radius:10px;background:linear-gradient(180deg,#fff 0%,#e7ebf0 40%,#b8c0ca 100%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.55),inset 0 -6px 10px rgba(60,70,85,.18);z-index:0}
.recipe-33 .gb-sheet .gb-sheet-shine{left:12%;right:12%;top:10%;height:18%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,255,255,.75),transparent 70%);opacity:.7}
.recipe-33 .gb-tray{display:none}
/* Cookie cutter mold — recessed metal cavity */
.recipe-33 .gb-cookie-mold{
  left:50%;top:50%;width:96px;height:108px;margin:-54px 0 0 -48px;z-index:3
}
.recipe-33 .gb-mold-metal,.recipe-33 .gb-mold-cavity,.recipe-33 .gb-mold-fill,.recipe-33 .gb-mold-rim{
  left:50%;bottom:4px;width:78px;height:92px;margin-left:-39px
}
.recipe-33 .gb-mold-metal{
  z-index:1;border-radius:14px 14px 18px 18px;
  background:linear-gradient(145deg,#f7f9fb 0%,#cfd6de 35%,#8e98a4 58%,#e8edf2 78%,#6d7682 100%);
  box-shadow:0 4px 0 #4a525c,0 8px 12px rgba(40,30,40,.28),inset 0 2px 0 rgba(255,255,255,.7);
  clip-path:polygon(32% 0,68% 0,74% 10%,74% 24%,68% 30%,92% 34%,100% 42%,100% 52%,88% 56%,74% 52%,74% 62%,80% 100%,58% 100%,54% 72%,46% 72%,42% 100%,20% 100%,26% 62%,26% 52%,12% 56%,0 52%,0 42%,8% 34%,32% 30%,26% 24%,26% 10%)
}
.recipe-33 .gb-mold-cavity{
  z-index:2;width:66px;height:78px;margin-left:-33px;bottom:10px;border-radius:10px 10px 14px 14px;
  background:
    radial-gradient(ellipse at 40% 28%,rgba(255,255,255,.12),transparent 45%),
    linear-gradient(180deg,#3a2a20 0%,#1a120e 55%,#0e0a08 100%);
  box-shadow:inset 0 6px 10px rgba(0,0,0,.55),inset 0 -2px 4px rgba(255,255,255,.08),0 0 0 3px rgba(180,190,200,.55);
  clip-path:polygon(32% 0,68% 0,74% 10%,74% 24%,68% 30%,92% 34%,100% 42%,100% 52%,88% 56%,74% 52%,74% 62%,80% 100%,58% 100%,54% 72%,46% 72%,42% 100%,20% 100%,26% 62%,26% 52%,12% 56%,0 52%,0 42%,8% 34%,32% 30%,26% 24%,26% 10%)
}
.recipe-33 .gb-mold-rim{
  z-index:4;pointer-events:none;background:transparent;border:0;
  box-shadow:inset 0 0 0 3px rgba(255,255,255,.35),inset 0 0 0 5px rgba(70,80,90,.35);
  clip-path:polygon(32% 0,68% 0,74% 10%,74% 24%,68% 30%,92% 34%,100% 42%,100% 52%,88% 56%,74% 52%,74% 62%,80% 100%,58% 100%,54% 72%,46% 72%,42% 100%,20% 100%,26% 62%,26% 52%,12% 56%,0 52%,0 42%,8% 34%,32% 30%,26% 24%,26% 10%);
  opacity:.9
}
.recipe-33 .gb-mold-fill{
  z-index:3;width:60px;height:72px;margin-left:-30px;bottom:14px;border-radius:8px;
  background:
    radial-gradient(ellipse at 35% 30%,rgba(255,230,180,.45),transparent 50%),
    linear-gradient(180deg,var(--gb-dough,#d4956a),var(--gb-dough-deep,#8b5a2b));
  opacity:0;transform:scaleY(0);transform-origin:50% 100%;
  transition:transform .4s,opacity .3s;
  box-shadow:inset 2px 0 0 rgba(255,255,255,.22),inset -2px 0 0 rgba(0,0,0,.12);
  clip-path:polygon(32% 0,68% 0,74% 10%,74% 24%,68% 30%,92% 34%,100% 42%,100% 52%,88% 56%,74% 52%,74% 62%,80% 100%,58% 100%,54% 72%,46% 72%,42% 100%,20% 100%,26% 62%,26% 52%,12% 56%,0 52%,0 42%,8% 34%,32% 30%,26% 24%,26% 10%)
}
/* Woman mold — skirt silhouette */
.recipe-33[data-gb-mold="woman"] .gb-mold-metal,
.recipe-33[data-gb-mold="woman"] .gb-mold-cavity,
.recipe-33[data-gb-mold="woman"] .gb-mold-rim,
.recipe-33[data-gb-mold="woman"] .gb-mold-fill{
  clip-path:polygon(34% 0,66% 0,72% 10%,72% 22%,66% 28%,90% 32%,100% 40%,100% 50%,86% 54%,72% 50%,72% 58%,100% 100%,0 100%,28% 58%,28% 50%,14% 54%,0 50%,0 40%,10% 32%,34% 28%,28% 22%,28% 10%)
}
.recipe-33[data-gb-mold="woman"] .gb-mold-metal,
.recipe-33[data-gb-mold="woman"] .gb-mold-cavity,
.recipe-33[data-gb-mold="woman"] .gb-mold-rim,
.recipe-33[data-gb-mold="woman"] .gb-mold-fill{height:96px}
.recipe-33[data-gb-mold="woman"] .gb-mold-cavity{height:82px}
.recipe-33[data-gb-mold="woman"] .gb-mold-fill{width:62px;height:76px;margin-left:-31px;bottom:12px}
/* Star / heart / tree / dino molds */
.recipe-33[data-gb-mold="star"] .gb-mold-metal,
.recipe-33[data-gb-mold="star"] .gb-mold-cavity,
.recipe-33[data-gb-mold="star"] .gb-mold-rim,
.recipe-33[data-gb-mold="star"] .gb-mold-fill{
  width:88px;height:88px;margin-left:-44px;bottom:10px;border-radius:0;
  clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)
}
.recipe-33[data-gb-mold="star"] .gb-mold-cavity{width:74px;height:74px;margin-left:-37px;bottom:17px}
.recipe-33[data-gb-mold="star"] .gb-mold-fill{width:70px;height:70px;margin-left:-35px;bottom:19px}
.recipe-33[data-gb-mold="heart"] .gb-mold-metal,
.recipe-33[data-gb-mold="heart"] .gb-mold-cavity,
.recipe-33[data-gb-mold="heart"] .gb-mold-rim,
.recipe-33[data-gb-mold="heart"] .gb-mold-fill{
  width:84px;height:78px;margin-left:-42px;bottom:14px;border-radius:0;
  clip-path:path('M42 76 C16 54 2 38 2 22 C2 9 14 0 26 0 C34 0 39 4 42 11 C45 4 50 0 58 0 C70 0 82 9 82 22 C82 38 68 54 42 76 Z')
}
.recipe-33[data-gb-mold="heart"] .gb-mold-cavity{width:70px;height:66px;margin-left:-35px;bottom:20px}
.recipe-33[data-gb-mold="heart"] .gb-mold-fill{width:66px;height:62px;margin-left:-33px;bottom:22px}
.recipe-33[data-gb-mold="tree"] .gb-mold-metal,
.recipe-33[data-gb-mold="tree"] .gb-mold-cavity,
.recipe-33[data-gb-mold="tree"] .gb-mold-rim,
.recipe-33[data-gb-mold="tree"] .gb-mold-fill{
  width:80px;height:96px;margin-left:-40px;bottom:6px;border-radius:0;
  clip-path:polygon(50% 0,78% 28%,64% 28%,88% 56%,62% 56%,62% 100%,38% 100%,38% 56%,12% 56%,36% 28%,22% 28%)
}
.recipe-33[data-gb-mold="tree"] .gb-mold-cavity{width:68px;height:84px;margin-left:-34px;bottom:12px}
.recipe-33[data-gb-mold="tree"] .gb-mold-fill{width:64px;height:80px;margin-left:-32px;bottom:14px}
.recipe-33[data-gb-mold="dino"] .gb-mold-metal,
.recipe-33[data-gb-mold="dino"] .gb-mold-cavity,
.recipe-33[data-gb-mold="dino"] .gb-mold-rim,
.recipe-33[data-gb-mold="dino"] .gb-mold-fill{
  width:96px;height:72px;margin-left:-48px;bottom:18px;border-radius:0;
  clip-path:polygon(8% 42%,0 52%,4% 68%,18% 72%,22% 100%,34% 100%,36% 74%,58% 74%,60% 100%,72% 100%,74% 72%,88% 64%,100% 48%,96% 28%,78% 18%,72% 0,52% 8%,48% 28%,18% 36%)
}
.recipe-33[data-gb-mold="dino"] .gb-mold-cavity{width:84px;height:62px;margin-left:-42px;bottom:23px}
.recipe-33[data-gb-mold="dino"] .gb-mold-fill{width:80px;height:58px;margin-left:-40px;bottom:25px}
.recipe-33 .gb-whisk{right:10px;top:8px;width:28px;height:28px;border-radius:50%;border:3px solid #8a8a8a;background:radial-gradient(circle at 35% 30%,#fff,#c8c8c8);opacity:0;z-index:8}
.recipe-33 .gb-whisk::after{content:'';position:absolute;right:-18px;top:10px;width:22px;height:5px;border-radius:3px;background:linear-gradient(#8B4513,#A0522D);transform:rotate(-12deg)}
.recipe-33 .gb-pour{left:50%;top:2%;width:14px;height:0;margin-left:-7px;border-radius:6px;background:linear-gradient(180deg,var(--gb-dough,#d4956a),var(--gb-dough-deep,#8b5a2b));opacity:0;z-index:7;box-shadow:0 0 8px rgba(180,100,40,.4)}
.recipe-33 .gb-pour::before{content:'';position:absolute;left:50%;top:-10px;width:28px;height:14px;margin-left:-14px;border-radius:50% 50% 40% 40%;background:linear-gradient(180deg,#e8b878,var(--gb-dough,#d4956a));box-shadow:0 2px 4px rgba(60,30,20,.25)}
.recipe-33 .gb-heat{left:50%;bottom:8px;width:10px;height:16px;margin-left:-5px;border-radius:50% 50% 40% 40%;background:linear-gradient(180deg,#fff7a0,#ff8a30 55%,transparent);opacity:0;filter:blur(1px);z-index:6}
.recipe-33 .gb-heat.h1{margin-left:-28px}.recipe-33 .gb-heat.h2{margin-left:-5px}.recipe-33 .gb-heat.h3{margin-left:18px}
.recipe-33 .gb-cookie{left:50%;top:50%;width:58px;height:72px;margin:-36px 0 0 -29px;opacity:0;transform:scale(.3);z-index:9;background:linear-gradient(145deg,#e8b878,var(--gb-dough,#c68642) 45%,var(--gb-dough-deep,#8b5a2b));clip-path:polygon(32% 0,68% 0,74% 10%,74% 24%,68% 30%,92% 34%,100% 42%,100% 52%,88% 56%,74% 52%,74% 62%,80% 100%,58% 100%,54% 72%,46% 72%,42% 100%,20% 100%,26% 62%,26% 52%,12% 56%,0 52%,0 42%,8% 34%,32% 30%,26% 24%,26% 10%);border-radius:0;box-shadow:inset 3px 0 0 rgba(255,255,255,.25),inset -4px 0 0 rgba(0,0,0,.1),0 4px 6px rgba(60,30,20,.25)}
.recipe-33[data-gb-mold="woman"] .gb-cookie{height:78px;margin-top:-39px;clip-path:polygon(34% 0,66% 0,72% 10%,72% 22%,66% 28%,90% 32%,100% 40%,100% 50%,86% 54%,72% 50%,72% 58%,100% 100%,0 100%,28% 58%,28% 50%,14% 54%,0 50%,0 40%,10% 32%,34% 28%,28% 22%,28% 10%)}
.recipe-33[data-gb-mold="star"] .gb-cookie{width:68px;height:68px;margin:-34px 0 0 -34px;clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%)}
.recipe-33[data-gb-mold="heart"] .gb-cookie{width:64px;height:58px;margin:-29px 0 0 -32px;clip-path:path('M32 56 C12 40 2 28 2 16 C2 7 10 0 18 0 C24 0 29 3 32 8 C35 3 40 0 46 0 C54 0 62 7 62 16 C62 28 52 40 32 56 Z')}
.recipe-33[data-gb-mold="tree"] .gb-cookie{width:60px;height:74px;margin:-37px 0 0 -30px;clip-path:polygon(50% 0,78% 28%,64% 28%,88% 56%,60% 56%,60% 100%,40% 100%,40% 56%,12% 56%,36% 28%,22% 28%)}
.recipe-33[data-gb-mold="dino"] .gb-cookie{width:76px;height:56px;margin:-28px 0 0 -38px;clip-path:polygon(8% 42%,0 52%,4% 68%,18% 72%,22% 100%,34% 100%,36% 74%,58% 74%,60% 100%,72% 100%,74% 72%,88% 64%,100% 48%,96% 28%,78% 18%,72% 0,52% 8%,48% 28%,18% 36%)}
.recipe-33 .gb-spark{width:6px;height:6px;border-radius:50%;background:#FFD700;box-shadow:0 0 6px #FFD700;opacity:0;z-index:10}
.recipe-33 .gb-spark.s1{left:30px;top:18px}.recipe-33 .gb-spark.s2{right:28px;top:26px}.recipe-33 .gb-spark.s3{left:50%;top:8px;margin-left:-3px}
.recipe-33 .recipe-tool-name{bottom:-62px}
.recipe-33 .recipe-bowl.recipe-step-mix,.recipe-33 .recipe-bowl.pour-gingerbread,.recipe-33 .recipe-bowl.recipe-step-heat{animation:none!important}
/* Mix: dough sits in cavity and gets whisked */
.recipe-33[data-gb-stage="idle"] .gb-mold-fill,
.recipe-33[data-gb-stage="ready"] .gb-mold-fill{transform:scaleY(calc(var(--fill,0) * .55));opacity:calc(var(--fill,0) * .95)}
.recipe-33[data-gb-stage="mixing"] .gb-whisk,.recipe-33[data-gb-stage="mixed"] .gb-whisk{opacity:1}
.recipe-33[data-gb-stage="mixing"] .gb-mold-fill,.recipe-33[data-gb-stage="mixed"] .gb-mold-fill{transform:scaleY(calc(.45 + var(--fill,1) * .35));opacity:1}
.recipe-33 .recipe-bowl.recipe-step-mix .gb-whisk{animation:gb-whisk-stir 1.1s ease-in-out}
.recipe-33 .recipe-bowl.recipe-step-mix .gb-mold-fill{animation:gb-dough-squish 1.1s ease-in-out}
.recipe-33 .recipe-bowl.recipe-step-mix .gb-cookie-mold{animation:gb-mold-nudge 1.1s ease-in-out}
@keyframes gb-whisk-stir{0%,100%{transform:rotate(0) translate(0,0)}25%{transform:rotate(-25deg) translate(-6px,4px)}50%{transform:rotate(15deg) translate(4px,-2px)}75%{transform:rotate(-10deg) translate(-3px,2px)}}
@keyframes gb-dough-squish{0%,100%{transform:scaleY(calc(.45 + var(--fill,1) * .35)) scaleX(1)}50%{transform:scaleY(calc(.4 + var(--fill,1) * .32)) scaleX(1.08)}}
@keyframes gb-mold-nudge{0%,100%{transform:translate(0,0)}40%{transform:translate(0,2px)}70%{transform:translate(0,-1px)}}
/* Fill: press dough into the mold cavity */
.recipe-33[data-gb-stage="pouring"] .gb-pour{opacity:1}
.recipe-33 .recipe-bowl.pour-gingerbread .gb-pour{animation:gb-pour-press 1.1s ease-in-out}
.recipe-33 .recipe-bowl.pour-gingerbread .gb-mold-fill{animation:gb-mold-pack 1.1s ease-in-out forwards}
.recipe-33 .recipe-bowl.pour-gingerbread .gb-cookie-mold{animation:gb-mold-press 1.1s ease-in-out}
@keyframes gb-pour-press{0%{height:0;opacity:0;transform:translateY(-8px)}25%{height:36px;opacity:1;transform:translateY(0)}70%{height:44px;opacity:.85}100%{height:0;opacity:0;transform:translateY(12px)}}
@keyframes gb-mold-pack{0%{transform:scaleY(.4);opacity:.9}55%{transform:scaleY(.92);opacity:1}100%{transform:scaleY(1);opacity:1}}
@keyframes gb-mold-press{0%,100%{transform:scale(1)}35%{transform:scale(.97) translateY(3px)}65%{transform:scale(1.02) translateY(-1px)}}
.recipe-33[data-gb-stage="poured"] .gb-mold-fill{transform:scaleY(1);opacity:1}
.recipe-33[data-gb-stage="baking"] .gb-heat,.recipe-33[data-gb-stage="baked"] .gb-heat{opacity:1}
.recipe-33[data-gb-stage="baking"] .gb-heat{animation:cs-flame-flicker .55s ease-in-out infinite alternate}
.recipe-33[data-gb-stage="baking"] .gb-heat.h2{animation-delay:.12s}.recipe-33[data-gb-stage="baking"] .gb-heat.h3{animation-delay:.22s}
.recipe-33 .recipe-bowl.recipe-step-heat .gb-mold-fill{animation:gb-bake-glow 1.1s ease-in-out}
.recipe-33 .recipe-bowl.recipe-step-heat .gb-cookie{animation:gb-cookie-rise 1.1s .3s cubic-bezier(.34,1.4,.4,1) forwards}
.recipe-33 .recipe-bowl.recipe-step-heat .gb-spark{animation:sf-spark-pop .7s ease-out forwards}
.recipe-33 .recipe-bowl.recipe-step-heat .gb-spark.s2{animation-delay:.12s}.recipe-33 .recipe-bowl.recipe-step-heat .gb-spark.s3{animation-delay:.22s}
@keyframes gb-bake-glow{0%,100%{filter:brightness(1);transform:scaleY(1)}50%{filter:brightness(1.15) drop-shadow(0 0 8px #ff9a40);transform:scaleY(1)}}
@keyframes gb-cookie-rise{0%{opacity:0;transform:scale(.3) translateY(20px)}60%{opacity:1;transform:scale(1.06) translateY(-4px)}100%{opacity:1;transform:scale(1) translateY(0)}}
.recipe-33[data-gb-stage="baked"] .gb-mold-fill,.recipe-33[data-gb-stage="done"] .gb-mold-fill{opacity:.18;transform:scaleY(1)}
.recipe-33[data-gb-stage="baked"] .gb-cookie,.recipe-33[data-gb-stage="done"] .gb-cookie{opacity:1;transform:scale(1)}
.recipe-36 .recipe-tool-art i:first-child{right:-104px;top:32px;width:110px;height:18px;border-radius:0 14px 14px 0;background:linear-gradient(#5e6269,#202329);border:3px solid #17191d;transform:rotate(-5deg);box-shadow:0 5px 6px rgba(38,20,16,.25)}.recipe-36 .recipe-tool-art i:nth-child(2){left:35px;right:35px;top:20px;height:15px;border-radius:50%;background:linear-gradient(90deg,#5f2917,#e1a06d,#5d2817);box-shadow:0 5px 8px rgba(49,19,10,.35)}.recipe-36 .recipe-tool-art b:first-of-type{left:72px;top:22px;width:55px;height:60px;background:linear-gradient(#6f321b,#32130c);clip-path:polygon(48% 0,58% 54%,84% 65%,100% 100%,0 100%,18% 65%,42% 54%);opacity:.7}
.recipe-34 .recipe-tool-art i:first-child{left:99px;top:-18px;width:11px;height:78px;border-radius:7px;background:linear-gradient(90deg,#676d74,#eef2f4 45%,#555b62);transform:rotate(17deg);transform-origin:bottom}.recipe-34 .recipe-tool-art i:first-child::after{content:'';position:absolute;left:-13px;bottom:-24px;width:34px;height:42px;border:4px solid #868d94;border-radius:50%}
/* Real carnival cotton-candy spinner — chrome bowl on a motor base */
.recipe-35 .recipe-workstation{width:210px;height:128px;border-radius:18px 18px 22px 22px;border:0;background:transparent;margin-top:40px;box-shadow:none;overflow:visible}.recipe-35 .recipe-bowl-fill{display:none}.recipe-35 .recipe-tool-art.cotton-spinner-art{inset:-28px -14px -10px;z-index:5}
.cotton-spinner-art .cs-machine-stand,.cotton-spinner-art .cs-machine-base,.cotton-spinner-art .cs-bowl,.cotton-spinner-art .cs-bowl-steel,.cotton-spinner-art .cs-bowl-rim,.cotton-spinner-art .cs-ribs,.cotton-spinner-art .cs-head,.cotton-spinner-art .cs-sugar,.cotton-spinner-art .cs-melt,.cotton-spinner-art .cs-heat,.cotton-spinner-art .cs-floss,.cotton-spinner-art .cs-cone,.cotton-spinner-art .cs-cloud,.cotton-spinner-art .cs-paper-cone{position:absolute;box-sizing:border-box}
.cotton-spinner-art .cs-machine-stand{left:58px;right:58px;bottom:0;height:22px;z-index:1}
.cotton-spinner-art .cs-leg{position:absolute;bottom:0;width:10px;height:20px;border-radius:3px;background:linear-gradient(90deg,#7a8088,#d5dbe2 45%,#4e555e);box-shadow:1px 2px 3px rgba(40,20,30,.3)}
.cotton-spinner-art .cs-leg.l{left:4px}.cotton-spinner-art .cs-leg.r{right:4px}
.cotton-spinner-art .cs-machine-base{left:42px;right:42px;bottom:14px;height:28px;border-radius:10px 10px 8px 8px;z-index:2;background:linear-gradient(180deg,#ff6fa8 0%,#e23a78 42%,#a31f52 100%);border:2px solid #7a1740;box-shadow:inset 0 3px 0 rgba(255,255,255,.35),inset 0 -4px 8px rgba(60,10,30,.35),0 5px 8px rgba(60,20,40,.3)}
.cotton-spinner-art .cs-machine-base .cs-panel{left:10px;right:10px;top:5px;height:10px;border-radius:4px;background:linear-gradient(180deg,#2a3038,#11151a);box-shadow:inset 0 1px 0 rgba(255,255,255,.2)}
.cotton-spinner-art .cs-machine-base .cs-knob{left:14px;top:7px;width:8px;height:8px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#c9d0d6 55%,#5a626a);border:1px solid #3a4048;z-index:2}
.cotton-spinner-art .cs-machine-base .cs-switch{right:14px;top:8px;width:14px;height:6px;border-radius:3px;background:linear-gradient(90deg,#7dff9a,#2ecc71);border:1px solid #1a7a3c;z-index:2}
.cotton-spinner-art .cs-bowl{left:10px;right:10px;top:6px;bottom:36px;border-radius:50% 50% 46% 46%;overflow:hidden;z-index:3;background:transparent;box-shadow:0 8px 14px rgba(40,20,30,.28)}
.cotton-spinner-art .cs-bowl-steel{inset:0;border-radius:inherit;background:radial-gradient(ellipse at 50% 18%,rgba(255,255,255,.75) 0 12%,transparent 40%),linear-gradient(165deg,#f4f7fa 0%,#c5ced8 22%,#8e9aa8 48%,#dfe6ee 68%,#6f7b88 100%);box-shadow:inset 0 0 0 3px rgba(255,255,255,.45),inset 0 -14px 18px rgba(40,50,60,.35),inset 0 10px 12px rgba(255,255,255,.35)}
.cotton-spinner-art .cs-bowl-rim{left:4%;right:4%;top:2%;height:12px;border-radius:50%;background:linear-gradient(180deg,#ffffff,#aeb8c4 55%,#6d7682);box-shadow:0 2px 3px rgba(40,40,50,.25);z-index:7}
.cotton-spinner-art .cs-ribs{inset:8% 6% 14%;z-index:2;opacity:.4}
.cotton-spinner-art .cs-ribs i{position:absolute;top:4%;bottom:12%;width:2px;left:50%;margin-left:-1px;border-radius:2px;background:linear-gradient(180deg,rgba(255,255,255,.7),rgba(80,90,100,.45));transform-origin:50% 90%}
.cotton-spinner-art .cs-ribs i:nth-child(1){transform:rotate(-52deg)}.cotton-spinner-art .cs-ribs i:nth-child(2){transform:rotate(-37deg)}.cotton-spinner-art .cs-ribs i:nth-child(3){transform:rotate(-22deg)}.cotton-spinner-art .cs-ribs i:nth-child(4){transform:rotate(-8deg)}.cotton-spinner-art .cs-ribs i:nth-child(5){transform:rotate(8deg)}.cotton-spinner-art .cs-ribs i:nth-child(6){transform:rotate(22deg)}.cotton-spinner-art .cs-ribs i:nth-child(7){transform:rotate(37deg)}.cotton-spinner-art .cs-ribs i:nth-child(8){transform:rotate(52deg)}
.cotton-spinner-art .cs-head{left:50%;top:42%;width:36px;height:36px;margin:-18px 0 0 -18px;border-radius:50%;z-index:5;background:radial-gradient(circle at 32% 28%,#fff,#c5ced8 38%,#5a6570 72%,#2a3038 100%);border:2px solid #3a434c;box-shadow:inset 0 3px 5px rgba(255,255,255,.55),0 2px 6px rgba(30,20,30,.4);transition:transform .4s}
.cotton-spinner-art .cs-head b{position:absolute;left:50%;top:50%;width:5px;height:24px;margin:-12px 0 0 -2.5px;border-radius:2px;background:linear-gradient(90deg,#9aa3ad,#f4f7fa 45%,#5a6570)}
.cotton-spinner-art .cs-head b:last-of-type{transform:rotate(90deg);height:20px;margin-top:-10px}
.cotton-spinner-art .cs-head span{position:absolute;left:50%;top:50%;width:4px;height:11px;margin:-5.5px 0 0 -2px;border-radius:1px;background:#1a1f24;transform-origin:50% 50%}
.cotton-spinner-art .cs-head span:nth-of-type(1){transform:rotate(45deg) translateY(-11px)}.cotton-spinner-art .cs-head span:nth-of-type(2){transform:rotate(135deg) translateY(-11px)}.cotton-spinner-art .cs-head span:nth-of-type(3){transform:rotate(225deg) translateY(-11px)}.cotton-spinner-art .cs-head span:nth-of-type(4){transform:rotate(315deg) translateY(-11px)}
.cotton-spinner-art .cs-sugar{left:50%;top:44%;width:28px;height:20px;margin:-8px 0 0 -14px;z-index:6;opacity:calc(var(--fill,0) * .95);transition:opacity .35s}
.cotton-spinner-art .cs-sugar i{position:absolute;width:7px;height:7px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#ffe9a8 55%,#e8c060);box-shadow:0 0 4px rgba(255,230,150,.7)}
.cotton-spinner-art .cs-sugar i:nth-child(1){left:2px;top:6px}.cotton-spinner-art .cs-sugar i:nth-child(2){left:10px;top:1px}.cotton-spinner-art .cs-sugar i:nth-child(3){left:16px;top:8px}.cotton-spinner-art .cs-sugar i:nth-child(4){left:8px;top:11px;width:5px;height:5px}
.cotton-spinner-art .cs-melt{left:50%;top:46%;width:0;height:0;margin:0;border-radius:50%;z-index:6;background:radial-gradient(circle at 40% 35%,#fff6c8,#ffb84a 45%,#e87420 80%);opacity:0;box-shadow:0 0 0 rgba(255,140,40,0);transition:width .5s,height .5s,margin .5s,opacity .4s}
.cotton-spinner-art .cs-heat{inset:22% 16% 30%;z-index:4;opacity:0;pointer-events:none}
.cotton-spinner-art .cs-heat i{position:absolute;bottom:0;width:8px;height:14px;border-radius:50% 50% 40% 40%;background:linear-gradient(180deg,#fff7a0,#ff8a30 55%,transparent);opacity:0;filter:blur(1px)}
.cotton-spinner-art .cs-heat i:nth-child(1){left:12%}.cotton-spinner-art .cs-heat i:nth-child(2){left:36%}.cotton-spinner-art .cs-heat i:nth-child(3){left:58%}.cotton-spinner-art .cs-heat i:nth-child(4){left:78%}
.cotton-spinner-art .cs-floss{inset:2% 0 12%;z-index:7;opacity:0;transition:opacity .35s;pointer-events:none}
.cotton-spinner-art .cs-floss .strand{position:absolute;left:50%;top:50%;width:78px;height:3px;margin:-1.5px 0 0 -39px;border-radius:40%;opacity:0;transform-origin:50% 50%;filter:blur(.35px)}
.cotton-spinner-art .cs-floss .strand.pink{background:linear-gradient(90deg,transparent,rgba(255,255,255,.9) 18%,#ff9fd0 42%,#ff6eb0 68%,transparent);box-shadow:0 0 4px rgba(255,140,200,.55)}
.cotton-spinner-art .cs-floss .strand.blue{background:linear-gradient(90deg,transparent,rgba(255,255,255,.9) 18%,#9adfff 42%,#5ec8ff 68%,transparent);box-shadow:0 0 4px rgba(100,200,255,.5)}
.cotton-spinner-art .cs-floss .s1{transform:rotate(0deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s2{transform:rotate(18deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s3{transform:rotate(36deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s4{transform:rotate(55deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s5{transform:rotate(74deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s6{transform:rotate(92deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s7{transform:rotate(110deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s8{transform:rotate(128deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s9{transform:rotate(148deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s10{transform:rotate(168deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s11{transform:rotate(188deg) scaleX(.2)}.cotton-spinner-art .cs-floss .s12{transform:rotate(208deg) scaleX(.2)}
.cotton-spinner-art .cs-cone{right:-4px;top:-10px;width:58px;height:100px;z-index:9;opacity:0;transform:translate(8px,12px) rotate(12deg);transition:opacity .4s,transform .5s}
.cotton-spinner-art .cs-paper-cone{left:20px;top:34px;width:18px;height:58px;background:linear-gradient(90deg,#fff8e8,#f0e0c0 48%,#e2c896);clip-path:polygon(32% 0,68% 0,100% 100%,0 100%);box-shadow:1px 2px 3px rgba(80,40,20,.22)}
.cotton-spinner-art .cs-paper-cone::after{content:'';position:absolute;left:35%;top:18%;bottom:8%;width:2px;background:repeating-linear-gradient(#e86a9a 0 4px,transparent 4px 8px);opacity:.55}
.cotton-spinner-art .cs-cloud{left:0;top:0;width:58px;height:48px;opacity:0;transform:scale(.35);transform-origin:50% 90%;transition:opacity .35s,transform .55s cubic-bezier(.2,.9,.25,1.15)}
.cotton-spinner-art .cs-cloud b,.cotton-spinner-art .cs-cloud em{position:absolute;border-radius:50%;pointer-events:none}
.cotton-spinner-art .cs-cloud b{background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.95) 0 18%,#ffc2e2 42%,#8ad4ff 78%);filter:blur(.6px);box-shadow:0 2px 4px rgba(100,40,70,.12);opacity:.9}
.cotton-spinner-art .cs-cloud b:nth-child(1){left:2px;top:12px;width:26px;height:22px}.cotton-spinner-art .cs-cloud b:nth-child(2){left:14px;top:0;width:32px;height:28px}.cotton-spinner-art .cs-cloud b:nth-child(3){left:30px;top:10px;width:26px;height:22px}.cotton-spinner-art .cs-cloud b:nth-child(4){left:8px;top:22px;width:24px;height:20px;background:radial-gradient(circle at 35% 30%,#fff,#b5e8ff 48%,#ff9fd0 85%)}.cotton-spinner-art .cs-cloud b:nth-child(5){left:24px;top:20px;width:22px;height:18px}.cotton-spinner-art .cs-cloud b:nth-child(6){left:18px;top:14px;width:20px;height:16px;opacity:.7}
.cotton-spinner-art .cs-cloud em{left:6px;right:6px;top:8px;bottom:4px;background:repeating-linear-gradient(115deg,transparent 0 3px,rgba(255,255,255,.35) 3px 4px),repeating-linear-gradient(-20deg,transparent 0 4px,rgba(255,160,210,.28) 4px 5px);border-radius:45%;filter:blur(.4px);opacity:.65;mix-blend-mode:soft-light}
.cotton-spinner-art .cs-cloud em:last-of-type{transform:rotate(25deg);opacity:.45;background:repeating-linear-gradient(70deg,transparent 0 3px,rgba(140,210,255,.3) 3px 4px)}
/* Stage: ready — sugar loaded */
.recipe-35[data-cotton-stage="ready"] .cs-sugar,.recipe-35[data-cotton-stage="idle"] .cs-sugar{opacity:calc(var(--fill,0) * .95)}
.recipe-35[data-cotton-stage="ready"] .recipe-workstation{filter:drop-shadow(0 0 8px rgba(255,200,80,.35))}
/* Stage: heating — melt + flames */
.recipe-35[data-cotton-stage="heating"] .cs-sugar{opacity:0;transition:opacity .5s}
.recipe-35[data-cotton-stage="heating"] .cs-melt,.recipe-35[data-cotton-stage="heated"] .cs-melt{width:26px;height:18px;margin:-8px 0 0 -13px;opacity:1;box-shadow:0 0 14px rgba(255,140,40,.75)}
.recipe-35[data-cotton-stage="heating"] .cs-heat{opacity:1}
.recipe-35[data-cotton-stage="heating"] .cs-heat i{animation:cs-flame-flicker .55s ease-in-out infinite alternate}
.recipe-35[data-cotton-stage="heating"] .cs-heat i:nth-child(2){animation-delay:.12s}.recipe-35[data-cotton-stage="heating"] .cs-heat i:nth-child(3){animation-delay:.22s}.recipe-35[data-cotton-stage="heating"] .cs-heat i:nth-child(4){animation-delay:.08s}
.recipe-35[data-cotton-stage="heating"] .cs-head{animation:cs-head-warm 1.05s ease-in-out}
.recipe-35 .recipe-bowl.cotton-heat{animation:cs-bowl-heat 1.45s ease-in-out}
.recipe-35[data-cotton-stage="heated"] .cs-melt{animation:cs-melt-pulse 1.2s ease-in-out infinite}
/* Stage: spinning — floss wraps */
.recipe-35[data-cotton-stage="spinning"] .cs-melt,.recipe-35[data-cotton-stage="spun"] .cs-melt,.recipe-35[data-cotton-stage="shaping"] .cs-melt,.recipe-35[data-cotton-stage="shaped"] .cs-melt{width:14px;height:10px;margin:-4px 0 0 -7px;opacity:.55}
.recipe-35[data-cotton-stage="spinning"] .cs-head{animation:cs-head-spin 1.4s linear}
.recipe-35[data-cotton-stage="spinning"] .cs-floss,.recipe-35[data-cotton-stage="spun"] .cs-floss,.recipe-35[data-cotton-stage="shaping"] .cs-floss,.recipe-35[data-cotton-stage="shaped"] .cs-floss{opacity:1}
.recipe-35[data-cotton-stage="spinning"] .cs-floss .strand{animation:cs-strand-grow 1.35s ease forwards}
.recipe-35[data-cotton-stage="spinning"] .cs-floss .s1{animation-delay:0s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s2{animation-delay:.08s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s3{animation-delay:.16s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s4{animation-delay:.24s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s5{animation-delay:.32s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s6{animation-delay:.4s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s7{animation-delay:.48s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s8{animation-delay:.56s}
.recipe-35[data-cotton-stage="spun"] .cs-floss .strand,.recipe-35[data-cotton-stage="shaping"] .cs-floss .strand,.recipe-35[data-cotton-stage="shaped"] .cs-floss .strand{opacity:.92;transform:rotate(var(--r,0deg)) scaleX(1)}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s1,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s1,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s1{--r:0deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s2,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s2,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s2{--r:18deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s3,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s3,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s3{--r:36deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s4,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s4,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s4{--r:55deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s5,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s5,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s5{--r:74deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s6,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s6,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s6{--r:92deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s7,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s7,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s7{--r:110deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s8,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s8,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s8{--r:128deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s9,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s9,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s9{--r:148deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s10,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s10,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s10{--r:168deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s11,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s11,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s11{--r:188deg}
.recipe-35[data-cotton-stage="spun"] .cs-floss .s12,.recipe-35[data-cotton-stage="shaping"] .cs-floss .s12,.recipe-35[data-cotton-stage="shaped"] .cs-floss .s12{--r:208deg}
.recipe-35 .recipe-bowl.cotton-spin{animation:cs-bowl-spin-glow 1.4s ease}
/* Interactive spin mode — tap to grow floss & cloud */
.cotton-spinner-art .cs-size-meter{position:absolute;left:50%;bottom:-14px;width:88px;height:10px;margin-left:-44px;border-radius:6px;background:rgba(90,20,55,.25);border:2px solid rgba(255,180,220,.55);opacity:0;transform:translateY(6px);transition:opacity .3s,transform .3s;z-index:9;overflow:hidden}
.cotton-spinner-art .cs-size-meter i{display:block;height:100%;width:calc(var(--cotton-grow,0) * 100%);border-radius:4px;background:linear-gradient(90deg,#ff9fd0,#7ad0ff,#fff8b0);box-shadow:0 0 8px rgba(255,160,210,.65);transition:width .28s cubic-bezier(.2,.9,.3,1.2)}
.cotton-spinner-art .cs-size-meter small{position:absolute;left:0;right:0;top:-14px;font-size:8px;font-weight:800;letter-spacing:.06em;text-align:center;color:#9a2f66;text-shadow:0 1px 0 rgba(255,255,255,.7)}
.recipe-35.cotton-spin-mode .cs-size-meter{opacity:1;transform:translateY(0)}
.recipe-35.cotton-spin-mode .recipe-workstation{filter:drop-shadow(0 0 calc(6px + var(--cotton-grow,0) * 22px) rgba(255,142,200,.55)) drop-shadow(0 0 calc(4px + var(--cotton-grow,0) * 14px) rgba(122,208,255,.4))}
.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-head{animation:none!important}
.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .strand{animation:none!important;opacity:calc(.3 + var(--cotton-grow,0) * .65);transform:rotate(var(--r,0deg)) scaleX(calc(.18 + var(--cotton-grow,0) * 1.05));transition:transform .28s cubic-bezier(.2,.9,.3,1.25),opacity .22s}
.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s1{--r:0deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s2{--r:18deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s3{--r:36deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s4{--r:55deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s5{--r:74deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s6{--r:92deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s7{--r:110deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s8{--r:128deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s9{--r:148deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s10{--r:168deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s11{--r:188deg}.recipe-35.cotton-spin-mode[data-cotton-stage="spinning"] .cs-floss .s12{--r:208deg}
.recipe-35.cotton-spin-mode .cs-cone{opacity:calc(.12 + var(--cotton-grow,0) * .92);transform:translate(calc(8px - var(--cotton-grow,0) * 12px),calc(12px - var(--cotton-grow,0) * 14px)) rotate(12deg) scale(calc(.42 + var(--cotton-grow,0) * .68));transition:opacity .25s,transform .32s cubic-bezier(.2,.9,.3,1.15)}
.recipe-35.cotton-spin-mode .cs-cloud{opacity:calc(var(--cotton-grow,0));transform:scale(calc(.18 + var(--cotton-grow,0) * 1.2));transition:opacity .22s,transform .3s cubic-bezier(.2,.9,.3,1.2)}
.recipe-35.cotton-spin-burst .cs-head,.recipe-35 .cs-head.cs-head-spin-tick{animation:cs-head-spin-burst .52s ease-out!important}
.recipe-35.cotton-spin-burst .recipe-workstation{animation:cs-bowl-spin-glow .45s ease}
.recipe-35 .recipe-bowl.cotton-spinning{animation:none!important}
@keyframes cs-head-spin-burst{0%{transform:rotate(0) scale(1)}35%{transform:rotate(200deg) scale(1.06)}100%{transform:rotate(420deg) scale(1)}}
/* Stage: shaping — cone gathers cloud */
.recipe-35[data-cotton-stage="shaping"] .cs-cone,.recipe-35[data-cotton-stage="shaped"] .cs-cone{opacity:1;transform:translate(-4px,-2px) rotate(6deg)}
.recipe-35[data-cotton-stage="shaping"] .cs-cone{animation:cs-cone-gather 1.4s ease}
.recipe-35[data-cotton-stage="shaping"] .cs-cloud,.recipe-35[data-cotton-stage="shaped"] .cs-cloud{opacity:1;transform:scale(calc(.75 + var(--cotton-grow,0) * .45))}
.recipe-35[data-cotton-stage="shaping"] .cs-cloud{animation:cs-cloud-puff-grown 1.35s cubic-bezier(.2,.9,.25,1.15) forwards}
.recipe-35[data-cotton-stage="shaping"] .cs-floss .strand{animation:cs-strand-fade 1.3s ease forwards}
.recipe-35[data-cotton-stage="shaped"] .cs-floss{opacity:.25}
.recipe-35 .recipe-bowl.cotton-shape{animation:cs-bowl-shape 1.4s ease}
.recipe-35.finished .cotton-spinner-art{opacity:0;pointer-events:none;transition:opacity .3s}
/* Finish — fluffy spun-sugar cloud on a paper cone */
.cotton-candy-finish{position:relative;width:170px;height:180px;margin:0 auto;transform:scale(calc(.72 + var(--cotton-finish-grow,.5) * .65));transform-origin:50% 88%}
.cotton-finish-cone{position:absolute;left:50%;bottom:4px;width:28px;height:82px;margin-left:-14px;background:linear-gradient(90deg,#fff8e8,#f3e2b8 48%,#e0c48a);clip-path:polygon(34% 0,66% 0,100% 100%,0 100%);box-shadow:2px 3px 5px rgba(80,40,20,.2);z-index:1}
.cotton-finish-cone::before{content:'';position:absolute;left:38%;top:14%;bottom:10%;width:3px;background:repeating-linear-gradient(#e86a9a 0 5px,transparent 5px 10px);opacity:.55}
.cotton-finish-cone::after{content:'';position:absolute;left:22%;right:22%;top:0;height:10px;background:linear-gradient(180deg,#fff,#ead8a8);border-radius:2px}
.cotton-finish-cloud{position:absolute;left:50%;top:2px;width:150px;height:118px;margin-left:-75px;animation:cs-finish-bob 2.4s ease-in-out infinite;z-index:2;filter:drop-shadow(0 6px 8px rgba(100,40,70,.16))}
.cotton-finish-cloud i,.cotton-finish-cloud em{position:absolute;pointer-events:none}
.cotton-finish-cloud i{border-radius:48%;background:radial-gradient(circle at 34% 30%,rgba(255,255,255,.98) 0 16%,#ffc2e2 40%,#8ad4ff 78%);filter:blur(.8px);opacity:.92}
.cotton-finish-cloud i:nth-child(1){left:6px;top:34px;width:64px;height:56px}.cotton-finish-cloud i:nth-child(2){left:40px;top:6px;width:78px;height:70px}.cotton-finish-cloud i:nth-child(3){left:84px;top:30px;width:58px;height:54px}.cotton-finish-cloud i:nth-child(4){left:28px;top:48px;width:54px;height:48px;background:radial-gradient(circle at 35% 30%,#fff,#b5e8ff 46%,#ff9fd0 82%)}.cotton-finish-cloud i:nth-child(5){left:60px;top:44px;width:48px;height:42px;opacity:.88}.cotton-finish-cloud i:nth-child(6){left:48px;top:22px;width:44px;height:40px;opacity:.7;background:radial-gradient(circle at 40% 35%,#fff,#ffd0ea 50%,#9adfff 85%)}
.cotton-finish-cloud em{inset:10px 8px 8px;border-radius:45%;background:repeating-linear-gradient(118deg,transparent 0 4px,rgba(255,255,255,.4) 4px 5px),repeating-linear-gradient(-24deg,transparent 0 5px,rgba(255,150,205,.32) 5px 6px);filter:blur(.55px);opacity:.7;mix-blend-mode:soft-light}
.cotton-finish-cloud em:nth-of-type(1){transform:rotate(8deg)}.cotton-finish-cloud em:nth-of-type(2){transform:rotate(-18deg);opacity:.5;background:repeating-linear-gradient(70deg,transparent 0 4px,rgba(130,205,255,.35) 4px 5px)}.cotton-finish-cloud em:nth-of-type(3){inset:22px 18px 16px;transform:rotate(32deg);opacity:.4}.cotton-finish-cloud em:nth-of-type(4){inset:16px 24px 20px;transform:rotate(-40deg);opacity:.35;background:repeating-linear-gradient(150deg,transparent 0 3px,rgba(255,180,220,.4) 3px 4px)}
@keyframes cs-flame-flicker{from{opacity:.35;transform:scaleY(.75) translateY(4px)}to{opacity:.95;transform:scaleY(1.15) translateY(0)}}
@keyframes cs-head-warm{0%,100%{filter:none;transform:scale(1)}50%{filter:drop-shadow(0 0 10px #ff9a40);transform:scale(1.08)}}
@keyframes cs-bowl-heat{0%,100%{filter:none}50%{filter:drop-shadow(0 0 16px #ff8a45) brightness(1.08)}}
@keyframes cs-melt-pulse{0%,100%{transform:scale(1);box-shadow:0 0 10px rgba(255,140,40,.55)}50%{transform:scale(1.08);box-shadow:0 0 16px rgba(255,140,40,.85)}}
@keyframes cs-head-spin{0%{transform:rotate(0)}100%{transform:rotate(1080deg)}}
@keyframes cs-strand-grow{0%{opacity:0;transform:rotate(var(--r,0deg)) scaleX(.15)}55%{opacity:.95}100%{opacity:.92;transform:rotate(var(--r,0deg)) scaleX(1)}}
.recipe-35[data-cotton-stage="spinning"] .cs-floss .s1{--r:0deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s2{--r:18deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s3{--r:36deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s4{--r:55deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s5{--r:74deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s6{--r:92deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s7{--r:110deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s8{--r:128deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s9{--r:148deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s10{--r:168deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s11{--r:188deg}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s12{--r:208deg}
.recipe-35[data-cotton-stage="spinning"] .cs-floss .s9{animation-delay:.64s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s10{animation-delay:.72s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s11{animation-delay:.8s}.recipe-35[data-cotton-stage="spinning"] .cs-floss .s12{animation-delay:.88s}
@keyframes cs-bowl-spin-glow{0%,100%{filter:none}40%{filter:drop-shadow(0 0 14px #ff8ec8) drop-shadow(0 0 10px #7ad0ff)}70%{filter:drop-shadow(0 0 18px #7ad0ff)}}
@keyframes cs-cone-gather{0%{transform:translate(14px,10px) rotate(18deg)}40%{transform:translate(-18px,4px) rotate(-4deg)}100%{transform:translate(-4px,-2px) rotate(6deg)}}
@keyframes cs-cloud-puff-grown{0%{opacity:calc(var(--cotton-grow,.5));transform:scale(calc(.2 + var(--cotton-grow,0) * .75))}55%{opacity:1;transform:scale(calc(.95 + var(--cotton-grow,0) * .3))}100%{opacity:1;transform:scale(calc(1 + var(--cotton-grow,0) * .42))}}
@keyframes cs-cloud-puff{0%{opacity:0;transform:scale(.25)}55%{opacity:1;transform:scale(1.12)}100%{opacity:1;transform:scale(1)}}
@keyframes cs-strand-fade{0%{opacity:.92}100%{opacity:.2;transform:rotate(var(--r,0deg)) scaleX(.55)}}
@keyframes cs-bowl-shape{0%,100%{transform:scale(1)}40%{transform:scale(1.04) rotate(-2deg)}70%{transform:scale(.98) rotate(2deg)}}
@keyframes cs-finish-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px)}}
/* Peppermint Sword forge — ropes become a blade, then a sword */
.recipe-36 .recipe-bowl-fill{background:linear-gradient(#ffd0e0,#f08aab)!important;transform-origin:50% 100%}
.recipe-36 .recipe-tool-art.sword-forge-art{inset:0;z-index:5;overflow:visible}
.recipe-36 .sword-forge-art i,.recipe-36 .sword-forge-art b{position:absolute;display:block}
.recipe-36 .sf-handle{right:-100px;top:34px;width:104px;height:16px;border-radius:0 12px 12px 0;background:linear-gradient(#5e6269,#202329);border:3px solid #17191d;transform:rotate(-5deg);box-shadow:0 5px 6px rgba(38,20,16,.25)}
.recipe-36 .sf-melt{left:28px;right:28px;bottom:14px;height:22px;border-radius:50%;background:radial-gradient(ellipse at 40% 30%,#fff,#ffb0c8 55%,#e86a90);opacity:calc(var(--fill,0) * .85);box-shadow:0 0 10px rgba(255,140,170,.35);z-index:2}
.recipe-36 .sf-rope{height:12px;border-radius:8px;z-index:3;transform-origin:50% 50%;opacity:calc(var(--fill,0) * .95)}
.recipe-36 .sf-rope-red{left:30px;right:30px;bottom:28px;background:linear-gradient(180deg,#ff8080,#e53935);box-shadow:inset 0 2px 3px rgba(255,255,255,.4)}
.recipe-36 .sf-rope-white{left:36px;right:36px;bottom:14px;background:linear-gradient(180deg,#fff,#efe6d8);box-shadow:inset 0 2px 3px rgba(255,255,255,.7)}
.recipe-36[data-sword-stage="ready"] .sf-rope,.recipe-36[data-sword-stage="heating"] .sf-rope,.recipe-36[data-sword-stage="heated"] .sf-rope{opacity:1}
.recipe-36 .sf-blade{left:50%;bottom:10px;width:16px;height:0;margin-left:-8px;border-radius:8px 8px 4px 4px;background:repeating-linear-gradient(180deg,#e53935 0 8px,#fff8f0 8px 16px);box-shadow:0 0 8px rgba(255,90,110,.45);opacity:0;transform-origin:50% 100%;z-index:4}
.recipe-36 .sf-blade::before{content:'';position:absolute;left:50%;top:-10px;width:0;height:0;margin-left:-7px;border-left:7px solid transparent;border-right:7px solid transparent;border-bottom:12px solid #e53935}
.recipe-36 .sf-hilt{left:50%;bottom:4px;width:36px;height:10px;margin-left:-18px;border-radius:4px;background:linear-gradient(180deg,#FFE082,#E0A800);opacity:0;z-index:5;box-shadow:0 2px 4px rgba(80,40,20,.25)}
.recipe-36 .sf-hilt::after{content:'';position:absolute;left:50%;top:8px;width:10px;height:14px;margin-left:-5px;border-radius:3px;background:linear-gradient(90deg,#8B4513,#A0522D,#6B3010)}
.recipe-36 .sf-spark{width:6px;height:6px;border-radius:50%;background:#FFD700;box-shadow:0 0 6px #FFD700;opacity:0}
.recipe-36 .sf-spark.s1{left:48px;top:20px}.recipe-36 .sf-spark.s2{left:110px;top:14px}.recipe-36 .sf-spark.s3{left:150px;top:28px}
/* stage visibility */
.recipe-36[data-sword-stage="heating"] .sf-melt,.recipe-36[data-sword-stage="heated"] .sf-melt{opacity:1;filter:brightness(1.1)}
.recipe-36[data-sword-stage="twisting"] .sf-rope,.recipe-36[data-sword-stage="twisted"] .sf-rope{opacity:0}
.recipe-36[data-sword-stage="twisting"] .sf-blade,.recipe-36[data-sword-stage="twisted"] .sf-blade{opacity:1;height:58px}
.recipe-36[data-sword-stage="twisting"] .sf-melt,.recipe-36[data-sword-stage="twisted"] .sf-melt,.recipe-36[data-sword-stage="building"] .sf-melt,.recipe-36[data-sword-stage="done"] .sf-melt{opacity:.2}
.recipe-36[data-sword-stage="building"] .sf-rope,.recipe-36[data-sword-stage="done"] .sf-rope{opacity:0}
.recipe-36[data-sword-stage="building"] .sf-blade,.recipe-36[data-sword-stage="done"] .sf-blade{opacity:1;height:62px}
.recipe-36[data-sword-stage="building"] .sf-hilt,.recipe-36[data-sword-stage="done"] .sf-hilt{opacity:1}
.recipe-36 .recipe-bowl.recipe-step-heat,.recipe-36 .recipe-bowl.twist-sword,.recipe-36 .recipe-bowl.recipe-step-build{animation:none!important;transform:none!important}
/* Heat: melt bubbles & glows */
.recipe-36 .recipe-bowl.recipe-step-heat .sf-melt{animation:sf-melt-bubble 1.1s ease-in-out}
.recipe-36 .recipe-bowl.recipe-step-heat .sf-rope-red,.recipe-36 .recipe-bowl.recipe-step-heat .sf-rope-white{animation:sf-rope-soften 1.1s ease-in-out}
@keyframes sf-melt-bubble{0%,100%{transform:scale(1);filter:brightness(1)}40%{transform:scale(1.12,.9);filter:brightness(1.2)}70%{transform:scale(.95,1.1);filter:brightness(1.1)}}
@keyframes sf-rope-soften{0%{transform:scaleX(1)}50%{transform:scaleX(1.06) translateY(-2px)}100%{transform:scaleX(1)}}
/* Twist: ropes braid into upright striped blade */
.recipe-36 .recipe-bowl.twist-sword .sf-rope-red{animation:sf-rope-twist-red .9s ease-in forwards}
.recipe-36 .recipe-bowl.twist-sword .sf-rope-white{animation:sf-rope-twist-white .9s ease-in forwards}
.recipe-36 .recipe-bowl.twist-sword .sf-blade{animation:sf-blade-rise 1.05s .25s cubic-bezier(.34,1.4,.4,1) forwards}
@keyframes sf-rope-twist-red{0%{transform:translateY(0) rotate(0);opacity:1}55%{transform:translate(20px,-18px) rotate(70deg) scaleX(.6);opacity:.6}100%{transform:translate(40px,-30px) rotate(90deg) scale(.2);opacity:0}}
@keyframes sf-rope-twist-white{0%{transform:translateY(0) rotate(0);opacity:1}55%{transform:translate(-16px,-14px) rotate(-65deg) scaleX(.6);opacity:.6}100%{transform:translate(-36px,-28px) rotate(-90deg) scale(.2);opacity:0}}
@keyframes sf-blade-rise{0%{opacity:0;height:8px;transform:scaleY(.2)}60%{opacity:1;height:54px;transform:scaleY(1.08)}100%{opacity:1;height:58px;transform:scaleY(1)}}
/* Build: hilt snaps on, sparks */
.recipe-36 .recipe-bowl.recipe-step-build .sf-hilt{animation:sf-hilt-snap .7s cubic-bezier(.34,1.56,.64,1) forwards}
.recipe-36 .recipe-bowl.recipe-step-build .sf-blade{animation:sf-blade-polish 1s ease-in-out}
.recipe-36 .recipe-bowl.recipe-step-build .sf-spark{animation:sf-spark-pop .8s ease-out forwards}
.recipe-36 .recipe-bowl.recipe-step-build .sf-spark.s2{animation-delay:.12s}
.recipe-36 .recipe-bowl.recipe-step-build .sf-spark.s3{animation-delay:.22s}
@keyframes sf-hilt-snap{0%{opacity:0;transform:translateY(12px) scale(.5)}100%{opacity:1;transform:translateY(0) scale(1)}}
@keyframes sf-blade-polish{0%,100%{filter:brightness(1)}40%{filter:brightness(1.25) drop-shadow(0 0 8px #fff)}70%{filter:brightness(1.1)}}
@keyframes sf-spark-pop{0%{opacity:0;transform:scale(.2)}40%{opacity:1;transform:scale(1.5)}100%{opacity:0;transform:translateY(-14px) scale(.3)}}
/* Sword play finish — princess holds the Peppermint Sword and swings it */
.peppermint-sword-play{display:flex;flex-direction:column;align-items:center;width:100%}
.psp-stage{position:relative;width:220px;height:210px;margin:2px auto 6px;cursor:pointer;overflow:visible}
.psp-princess{position:absolute;left:50%;bottom:4px;width:150px;height:195px;margin-left:-75px;z-index:2;line-height:0;transform-origin:50% 82%;filter:drop-shadow(0 4px 8px rgba(80,30,50,.28))}
.psp-princess svg{width:100%;height:100%;display:block;overflow:visible}
.psp-slash{position:absolute;left:18px;top:18px;width:90px;height:90px;border:5px solid transparent;border-top-color:rgba(255,215,0,.9);border-right-color:rgba(255,105,180,.55);border-radius:50%;opacity:0;pointer-events:none;transform:rotate(-30deg);z-index:3}
.psp-stage.swinging .psp-princess{animation:psp-sword-swing .95s cubic-bezier(.45,.05,.25,1)}
.psp-stage.slash .psp-slash{animation:psp-slash-arc .75s ease-out}
.psp-swing-btn{min-width:180px;min-height:44px;margin:4px 0 6px;border:3px solid #FFD76A;border-radius:18px;background:linear-gradient(180deg,#fff,#ffe9f2);color:#B0225A;font-family:'Quicksand',sans-serif;font-weight:900;font-size:.85rem;cursor:pointer;box-shadow:0 4px 10px rgba(120,40,70,.2)}
.psp-swing-btn:active{transform:scale(.96)}
.recipe-36.sword-playing .recipe-finish{width:min(92%,320px);min-height:320px;pointer-events:auto}
@keyframes psp-sword-swing{0%{transform:rotate(0)}18%{transform:rotate(-32deg) translate(-6px,-4px)}48%{transform:rotate(26deg) translate(8px,2px)}72%{transform:rotate(-8deg)}100%{transform:rotate(0)}}
@keyframes psp-slash-arc{0%{opacity:0;transform:rotate(-50deg) scale(.45)}30%{opacity:1;transform:rotate(5deg) scale(1.15)}100%{opacity:0;transform:rotate(55deg) scale(1.25) translate(12px,-8px)}}
.recipe-37 .recipe-bowl-fill{background:linear-gradient(var(--dt-dough,#f2ce82),var(--dt-dough-deep,#c98b3d))!important;transform-origin:50% 100%}
.recipe-37 .recipe-tool-art.throne-art{inset:0;z-index:5}
.recipe-37 .throne-art i{position:absolute;display:block}
.recipe-37 .dt-mix-whisk{left:50%;top:-12px;width:10px;height:68px;margin-left:-5px;border-radius:6px;background:linear-gradient(90deg,#676d74,#eef2f4 45%,#555b62);transform:rotate(12deg);transform-origin:50% 92%;z-index:6}
.recipe-37 .dt-mix-whisk::after{content:'';position:absolute;left:50%;bottom:-4px;width:28px;height:28px;margin-left:-14px;border:3px solid #8a9299;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.5),transparent 55%)}
.recipe-37 .dt-dough{left:42px;right:42px;bottom:12px;height:28px;border-radius:50%;background:radial-gradient(ellipse at 40% 35%,var(--dt-dough,#e3b965),var(--dt-dough-deep,#c98b3d));opacity:calc(var(--fill,0) * .95);box-shadow:inset 0 6px 8px rgba(255,245,191,.35);z-index:3}
.recipe-37 .dt-heat{width:10px;height:16px;border-radius:50% 50% 40% 40%;background:radial-gradient(circle at 40% 30%,#fff6a0,#ff7a3a 70%);opacity:0;bottom:8px;z-index:4}
.recipe-37 .dt-heat.h1{left:58px}.recipe-37 .dt-heat.h2{left:108px;height:20px}.recipe-37 .dt-heat.h3{left:148px}
.recipe-37 .dt-stack{left:50%;width:54px;height:42px;margin-left:-27px;border-radius:50%;background:radial-gradient(circle at 35% 30%,var(--dt-dough,#E8A878),var(--dt-dough-deep,#C6864A) 72%);border:3px solid var(--dt-dough-deep,#B8753A);box-sizing:border-box;opacity:0;z-index:5;box-shadow:inset 0 3px 0 rgba(255,255,255,.25),0 3px 5px rgba(60,25,20,.25)}
.recipe-37 .dt-stack::before{content:'';position:absolute;inset:8% 7% 20% 7%;border-radius:50%;background:radial-gradient(ellipse at 40% 28%,var(--dt-glaze-light,#FFB6D9),var(--dt-glaze,#FF69B4) 60%,var(--dt-glaze-deep,#E84F98));clip-path:ellipse(50% 48% at 50% 42%)}
.recipe-37 .dt-stack::after{content:'';position:absolute;left:50%;top:48%;width:30%;height:30%;transform:translate(-50%,-50%);border-radius:50%;background:#1a1218;box-shadow:inset 0 0 0 1px rgba(255,220,170,.25)}
.recipe-37 .dt-stack.s1{bottom:8px}.recipe-37 .dt-stack.s2{bottom:28px;width:46px;height:36px;margin-left:-23px}.recipe-37 .dt-stack.s3{bottom:46px;width:38px;height:32px;margin-left:-19px}
.recipe-37[data-throne-stage="baking"] .dt-mix-whisk,.recipe-37[data-throne-stage="baked"] .dt-mix-whisk,.recipe-37[data-throne-stage="stacking"] .dt-mix-whisk,.recipe-37[data-throne-stage="stacked"] .dt-mix-whisk{opacity:.25}
.recipe-37[data-throne-stage="stacking"] .dt-dough,.recipe-37[data-throne-stage="stacked"] .dt-dough{opacity:0}
.recipe-37[data-throne-stage="stacking"] .dt-stack,.recipe-37[data-throne-stage="stacked"] .dt-stack{opacity:1}
.recipe-37 .recipe-bowl.recipe-step-mix,.recipe-37 .recipe-bowl.recipe-step-heat,.recipe-37 .recipe-bowl.stack-throne{animation:none!important;transform:none!important}
.recipe-37 .recipe-bowl.recipe-step-mix .dt-mix-whisk{animation:throne-whisk 1.1s cubic-bezier(.45,.05,.25,1)}
.recipe-37 .recipe-bowl.recipe-step-mix .dt-dough,.recipe-37 .recipe-bowl.recipe-step-mix .recipe-bowl-fill{animation:throne-dough-mix 1.1s ease-in-out}
@keyframes throne-whisk{0%{transform:rotate(12deg)}20%{transform:rotate(-35deg) translate(-8px,4px)}45%{transform:rotate(40deg) translate(10px,6px)}70%{transform:rotate(-28deg) translate(-6px,4px)}100%{transform:rotate(12deg)}}
@keyframes throne-dough-mix{0%{transform:scale(1) rotate(0)}30%{transform:scale(1.08,.92) rotate(-8deg)}60%{transform:scale(.94,1.1) rotate(10deg)}100%{transform:scale(1) rotate(0)}}
.recipe-37 .recipe-bowl.recipe-step-heat .dt-heat{opacity:1;animation:throne-flame .55s ease-in-out infinite alternate}
.recipe-37 .recipe-bowl.recipe-step-heat .dt-heat.h2{animation-delay:.12s}.recipe-37 .recipe-bowl.recipe-step-heat .dt-heat.h3{animation-delay:.22s}
.recipe-37 .recipe-bowl.recipe-step-heat .dt-dough{animation:throne-bake-rise 1.1s ease-out}
@keyframes throne-flame{from{transform:scaleY(.85);filter:brightness(1)}to{transform:scaleY(1.15);filter:brightness(1.25)}}
@keyframes throne-bake-rise{0%{transform:scale(1);filter:brightness(1)}50%{transform:scale(1.12);filter:brightness(1.15)}100%{transform:scale(1.06);filter:brightness(1.08)}}
.recipe-37 .recipe-bowl.stack-throne .dt-stack.s1{animation:throne-stack-in .55s cubic-bezier(.34,1.56,.64,1) forwards}
.recipe-37 .recipe-bowl.stack-throne .dt-stack.s2{animation:throne-stack-in .55s .18s cubic-bezier(.34,1.56,.64,1) forwards}
.recipe-37 .recipe-bowl.stack-throne .dt-stack.s3{animation:throne-stack-in .55s .36s cubic-bezier(.34,1.56,.64,1) forwards}
@keyframes throne-stack-in{0%{opacity:0;transform:translateY(16px) scale(.6)}100%{opacity:1;transform:translateY(0) scale(1)}}
/* Style picker */
.recipe-styles{position:relative;z-index:9;width:min(92%,560px);margin:8px auto 0;padding:10px 12px;border-radius:18px;background:rgba(255,255,255,.55);border:2px solid rgba(255,105,180,.4);text-align:center}
.recipe-styles>strong{display:block;margin-bottom:8px;font-size:.72rem;color:#9A1952;text-transform:uppercase;letter-spacing:.06em}
.recipe-style-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:7px}
.recipe-style{min-height:64px;padding:6px 3px;border:2px solid rgba(176,34,90,.22);border-radius:14px;background:rgba(255,255,255,.9);color:#7A1750;font-family:'Quicksand',sans-serif;cursor:pointer;box-shadow:inset 0 -5px 0 color-mix(in srgb,var(--style-color,#FF69B4),transparent 65%);transition:transform .2s,border-color .2s,box-shadow .2s}
.recipe-style span{display:block;font-size:1.5rem}.recipe-style small{display:block;font-size:.48rem;font-weight:800;line-height:1.1}
.recipe-style.selected{transform:translateY(-2px) scale(1.05);border-color:var(--style-color);box-shadow:0 0 12px color-mix(in srgb,var(--style-color),transparent 35%),inset 0 -6px 0 color-mix(in srgb,var(--style-color),transparent 50%)}
.recipe-37.style-chosen .recipe-styles{display:none}
.recipe-37.awaiting-style .recipe-card{opacity:.85}
.recipe-37.awaiting-style .recipe-styles{margin-top:140px}
/* Gingerbread friend — big fun mold picker */
.recipe-33 .activity-prompt{top:6px;z-index:12;max-width:min(86%,340px)}
.recipe-33 .recipe-card{top:58px;z-index:7}
.recipe-33.awaiting-style .recipe-card{opacity:.55;pointer-events:none}
.recipe-33.awaiting-style .recipe-styles{
  position:absolute;z-index:10;left:50%;top:50%;transform:translate(-50%,-50%);
  width:min(96%,560px);margin:0;padding:18px 16px 20px;
  border-radius:28px;background:rgba(255,255,255,.94);border:3px solid rgba(196,105,60,.48);
  box-shadow:0 16px 32px rgba(120,50,30,.2),inset 0 0 0 2px rgba(255,255,255,.55)
}
.recipe-33.awaiting-style .recipe-styles>strong{font-size:1rem;margin-bottom:14px;color:#8B3A16;letter-spacing:.1em}
.recipe-33.awaiting-style .recipe-style-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.recipe-33.style-chosen .recipe-styles{display:none}
.recipe-33.style-chosen .recipe-card{top:56px}
.recipe-33.style-chosen .recipe-ingredients{margin-top:108px}
.gb-mold-icon{position:relative;display:block;width:86px;height:90px;margin:0 auto 8px;filter:drop-shadow(0 4px 4px rgba(74,36,20,.3));animation:gb-mold-wiggle 2.8s ease-in-out infinite}
.recipe-33 .recipe-style:nth-child(2) .gb-mold-icon{animation-delay:.15s}
.recipe-33 .recipe-style:nth-child(3) .gb-mold-icon{animation-delay:.3s}
.recipe-33 .recipe-style:nth-child(4) .gb-mold-icon{animation-delay:.45s}
.recipe-33 .recipe-style:nth-child(5) .gb-mold-icon{animation-delay:.6s}
.recipe-33 .recipe-style:nth-child(6) .gb-mold-icon{animation-delay:.75s}
@keyframes gb-mold-wiggle{0%,100%{transform:rotate(-2deg) translateY(0)}50%{transform:rotate(2deg) translateY(-3px)}}
.gb-mold-icon i{position:absolute;display:block;background:linear-gradient(145deg,#e8b878,#C68642 48%,#8B5A2B);box-shadow:inset 2px 0 0 rgba(255,255,255,.25),inset -2px 0 0 rgba(0,0,0,.1)}
.gb-mold-icon .gb-mi-head{left:50%;top:4px;width:30px;height:30px;margin-left:-15px;border-radius:50%}
.gb-mold-icon .gb-mi-torso{left:50%;top:32px;width:32px;height:28px;margin-left:-16px;border-radius:9px}
.gb-mold-icon .gb-mi-arm{top:34px;width:20px;height:9px;border-radius:5px}
.gb-mold-icon .gb-mi-arm.l{left:2px;transform:rotate(28deg)}.gb-mold-icon .gb-mi-arm.r{right:2px;transform:rotate(-28deg)}
.gb-mold-icon .gb-mi-leg{top:58px;width:10px;height:28px;border-radius:5px}
.gb-mold-icon .gb-mi-leg.l{left:26px}.gb-mold-icon .gb-mi-leg.r{right:26px}
.gb-mold-icon[data-mold="woman"] .gb-mi-bow{left:50%;top:0;width:26px;height:12px;margin-left:-13px;background:linear-gradient(135deg,#ff8ec4,#e4458f);border-radius:50% 50% 40% 40%;box-shadow:none}
.gb-mold-icon[data-mold="woman"] .gb-mi-skirt{left:50%;top:52px;width:40px;height:22px;margin-left:-20px;background:linear-gradient(180deg,#C68642,#8B5A2B);clip-path:polygon(14% 0,86% 0,100% 100%,0 100%);border-radius:0 0 4px 4px;box-shadow:none}
.gb-mold-icon[data-mold="woman"] .gb-mi-leg{top:70px;height:18px}
.gb-mold-icon[data-mold="woman"]{--gb-dough:#D4956A}
.gb-mold-icon[data-mold="woman"] i:not(.gb-mi-bow){background:linear-gradient(145deg,#e8b878,#D4956A 48%,#A66B3A)}
.gb-mold-icon .gb-mi-star{left:50%;top:10px;width:70px;height:70px;margin-left:-35px;background:linear-gradient(145deg,#f0c878,#E0A050 48%,#B8732E);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);box-shadow:none}
.gb-mold-icon .gb-mi-heart{left:50%;top:14px;width:62px;height:56px;margin-left:-31px;background:linear-gradient(145deg,#f0b090,#D4876A 48%,#A85A3A);border-radius:0;clip-path:path('M31 52 C12 36 2 24 2 14 C2 6 9 0 17 0 C24 0 28 4 31 9 C34 4 38 0 45 0 C53 0 60 6 60 14 C60 24 50 36 31 52 Z');box-shadow:none}
.gb-mold-icon .gb-mi-tree-top{left:50%;top:4px;width:0;height:0;margin-left:-22px;border-left:22px solid transparent;border-right:22px solid transparent;border-bottom:26px solid #C89A4A;background:none;box-shadow:none}
.gb-mold-icon .gb-mi-tree-mid{left:50%;top:24px;width:0;height:0;margin-left:-28px;border-left:28px solid transparent;border-right:28px solid transparent;border-bottom:30px solid #B88940;background:none;box-shadow:none}
.gb-mold-icon .gb-mi-tree-trunk{left:50%;top:52px;width:14px;height:22px;margin-left:-7px;border-radius:3px;background:linear-gradient(180deg,#A67C3A,#6E4A1E)}
.gb-mold-icon .gb-mi-dino-body{left:16px;top:32px;width:42px;height:28px;border-radius:16px 20px 14px 14px;background:linear-gradient(145deg,#e0b878,#C49A58 48%,#8B6530)}
.gb-mold-icon .gb-mi-dino-head{left:44px;top:16px;width:28px;height:26px;border-radius:50% 60% 40% 50%;background:linear-gradient(145deg,#e0b878,#C49A58 48%,#8B6530)}
.gb-mold-icon .gb-mi-dino-tail{left:2px;top:34px;width:22px;height:12px;border-radius:50% 0 40% 50%;background:linear-gradient(145deg,#e0b878,#C49A58);transform:rotate(-20deg)}
.gb-mold-icon .gb-mi-dino-leg{top:56px;width:9px;height:18px;border-radius:4px;background:linear-gradient(180deg,#C49A58,#8B6530)}
.gb-mold-icon .gb-mi-dino-leg.a{left:24px}.gb-mold-icon .gb-mi-dino-leg.b{left:42px}
.recipe-33 .recipe-style{
  min-width:0;min-height:148px;padding:14px 8px 12px;border-radius:22px;border-width:3px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:2px;
  background:linear-gradient(180deg,#fff,#fff8f0);box-shadow:0 8px 16px rgba(120,50,30,.14);transition:transform .2s,border-color .2s,box-shadow .2s,background .2s
}
.recipe-33 .recipe-style small{font-size:.78rem;margin-top:4px;line-height:1.15;font-weight:800}
.recipe-33 .recipe-style:hover,.recipe-33 .recipe-style:focus-visible{transform:translateY(-4px) scale(1.04);border-color:#c68642;background:#fffaf2}
.recipe-33 .recipe-style:hover .gb-mold-icon,.recipe-33 .recipe-style:focus-visible .gb-mold-icon{animation:none;transform:scale(1.08) rotate(0)}
.recipe-33 .recipe-style.selected{border-color:#8B5A2B;background:#fff4e0;transform:translateY(-4px) scale(1.06);box-shadow:0 0 0 4px rgba(198,134,66,.35),0 12px 20px rgba(120,50,30,.18)}
@media (max-width:420px){
  .recipe-33.awaiting-style .recipe-styles{width:min(98%,360px);padding:12px 10px 14px}
  .recipe-33.awaiting-style .recipe-style-grid{gap:8px}
  .recipe-33 .recipe-style{min-height:118px;padding:8px 4px}
  .gb-mold-icon{width:64px;height:70px;margin-bottom:4px}
  .recipe-33 .recipe-style small{font-size:.62rem}
}
.real-syrup.molasses::after{background:linear-gradient(#6b3a1a,#3e1f0c)}
.real-syrup.molasses b{color:#3e1f0c;font-size:.34rem}
.real-beans.candy-buttons{background:radial-gradient(circle at 18% 40%,#ff6b6b 0 7px,transparent 8px),radial-gradient(circle at 48% 28%,#4CAF50 0 7px,transparent 8px),radial-gradient(circle at 78% 42%,#42A5F5 0 7px,transparent 8px),radial-gradient(circle at 34% 68%,#FFD54F 0 7px,transparent 8px),radial-gradient(circle at 66% 72%,#AB47BC 0 7px,transparent 8px)}
.recipe-38 .recipe-workstation,.recipe-40 .recipe-workstation,.recipe-41 .recipe-workstation,.recipe-43 .recipe-workstation{width:226px;height:100px;border-radius:14px;border:6px solid #686e76;background:linear-gradient(145deg,#e4e7ea,#8d949b);box-shadow:inset 0 0 0 4px #f5f7f8,0 10px 16px rgba(70,35,54,.22)}.recipe-38 .recipe-bowl-fill,.recipe-40 .recipe-bowl-fill,.recipe-41 .recipe-bowl-fill,.recipe-43 .recipe-bowl-fill{display:none}
.recipe-38 .recipe-tool-art{background:repeating-linear-gradient(90deg,transparent 0 42px,#767d84 43px 47px)}.recipe-38 .recipe-tool-art i{width:22px;height:31px;border-radius:50% 45% 50% 42%;box-shadow:inset 5px 5px 5px rgba(255,255,255,.35),0 4px 4px rgba(63,31,47,.18)}.recipe-38 .recipe-tool-art i:nth-child(1){left:20px;top:25px;background:#e84e69}.recipe-38 .recipe-tool-art i:nth-child(2){left:78px;top:40px;background:#f0ca3d}.recipe-38 .recipe-tool-art i:nth-child(3){left:136px;top:22px;background:#7148b0}.recipe-38 .recipe-tool-art b:first-of-type{right:15px;top:39px;width:28px;height:20px;border-radius:50%;background:#3e9bd2}
.recipe-39 .recipe-workstation{border-color:#aeb4ba;background:linear-gradient(105deg,#727a81,#f5f7f8 25%,#8e969d 54%,#e2e6e8 78%,#666d74);overflow:visible}.recipe-39 .recipe-bowl-fill{background:linear-gradient(#fff,#f5e9ef)!important;transform-origin:50% 100%}
/* Marshmallow Pillow mixer — art changes per step */
.recipe-39 .recipe-tool-art.pillow-art{inset:0;z-index:5}
.recipe-39 .pillow-art i,.recipe-39 .pillow-art b{position:absolute;display:block}
.recipe-39 .mp-whisk{left:50%;top:-14px;width:10px;height:72px;margin-left:-5px;border-radius:6px;background:linear-gradient(90deg,#676d74,#eef2f4 45%,#555b62);transform:rotate(14deg);transform-origin:50% 92%;box-shadow:1px 2px 3px rgba(60,30,45,.2);z-index:6}
.recipe-39 .mp-whisk::after{content:'';position:absolute;left:50%;bottom:-6px;width:32px;height:32px;margin-left:-16px;border:3px solid #8a9299;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.55),transparent 55%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
.recipe-39 .mp-fluff{left:28px;right:28px;bottom:10px;height:38px;border-radius:50% 50% 40% 40%;background:radial-gradient(ellipse at 40% 30%,var(--mp-light,#fff),var(--mp-color,#ffe6f2) 55%,var(--mp-deep,#f5c0d8));opacity:calc(var(--fill,0) * .9);transform:scale(calc(.55 + var(--fill,0) * .45));transform-origin:50% 100%;box-shadow:inset 0 -6px 10px rgba(200,120,160,.18),0 0 10px rgba(255,255,255,.45);z-index:3}
.recipe-39 .mp-bubble{width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,color-mix(in srgb,var(--mp-color,#ffd2e6),transparent 45%));opacity:0;z-index:4}
.recipe-39 .mp-bubble.b1{left:48px;bottom:28px}.recipe-39 .mp-bubble.b2{left:92px;bottom:36px}.recipe-39 .mp-bubble.b3{left:128px;bottom:24px}.recipe-39 .mp-bubble.b4{left:72px;bottom:44px;width:7px;height:7px}
.recipe-39 .mp-pillow{left:36px;right:36px;bottom:8px;height:46px;border-radius:22px;background:linear-gradient(160deg,var(--mp-light,#fff),var(--mp-color,#ffe8f2) 45%,var(--mp-deep,#f4bdd6));box-shadow:inset 0 8px 12px rgba(255,255,255,.75),inset 0 -8px 10px color-mix(in srgb,var(--mp-deep,#d282aa),transparent 78%),0 6px 10px rgba(120,60,90,.18);opacity:0;transform:scale(.4);transform-origin:50% 100%;z-index:5}
.recipe-39 .mp-pillow b{left:18px;top:10px;width:36px;height:16px;border-radius:50%;background:radial-gradient(ellipse,#fff,transparent 70%);opacity:.55}
.recipe-39 .mp-dust{width:6px;height:6px;border-radius:50%;background:#fff;box-shadow:0 0 6px #fff;opacity:0}
.recipe-39 .mp-dust.d1{left:52px;top:18px}.recipe-39 .mp-dust.d2{left:110px;top:12px}.recipe-39 .mp-dust.d3{left:148px;top:22px}
/* stage visibility */
.recipe-39[data-pillow-stage="puffing"] .mp-whisk,.recipe-39[data-pillow-stage="puffed"] .mp-whisk,.recipe-39[data-pillow-stage="shaping"] .mp-whisk,.recipe-39[data-pillow-stage="done"] .mp-whisk{opacity:.35}
.recipe-39[data-pillow-stage="puffing"] .mp-fluff,.recipe-39[data-pillow-stage="puffed"] .mp-fluff{opacity:1;transform:scale(1.15)}
.recipe-39[data-pillow-stage="shaping"] .mp-fluff,.recipe-39[data-pillow-stage="done"] .mp-fluff{opacity:0;transform:scale(.2)}
.recipe-39[data-pillow-stage="shaping"] .mp-pillow,.recipe-39[data-pillow-stage="done"] .mp-pillow{opacity:1;transform:scale(1)}
.recipe-39[data-pillow-stage="done"] .mp-whisk{opacity:0}
/* keep bowl steady — animate the marshmallow parts */
.recipe-39 .recipe-bowl.recipe-step-mix,.recipe-39 .recipe-bowl.puff-pillow,.recipe-39 .recipe-bowl.recipe-step-shape{animation:none!important;transform:none!important}
/* STEP 1 — Whisk: only the whisk moves; liquid/fluff stay put in the bowl */
.recipe-39 .recipe-bowl.recipe-step-mix .mp-whisk{animation:pillow-whisk-stir 1.1s cubic-bezier(.45,.05,.25,1)}
.recipe-39 .recipe-bowl.recipe-step-mix .mp-whisk::after{animation:pillow-whisk-head 1.1s ease-in-out}
.recipe-39 .recipe-bowl.recipe-step-mix .mp-fluff,
.recipe-39 .recipe-bowl.recipe-step-mix .recipe-bowl-fill{animation:none!important;transform:scale(calc(.55 + var(--fill,0) * .45))!important}
.recipe-39 .recipe-bowl.recipe-step-mix .mp-bubble{animation:pillow-whisk-bubble .9s ease-out both}
.recipe-39 .recipe-bowl.recipe-step-mix .mp-bubble.b2{animation-delay:.12s}
.recipe-39 .recipe-bowl.recipe-step-mix .mp-bubble.b3{animation-delay:.24s}
.recipe-39 .recipe-bowl.recipe-step-mix .mp-bubble.b4{animation-delay:.36s}
@keyframes pillow-whisk-stir{0%{transform:rotate(14deg) translate(0,0)}12%{transform:rotate(-36deg) translate(-14px,6px)}28%{transform:rotate(48deg) translate(14px,8px)}44%{transform:rotate(-44deg) translate(-14px,10px)}60%{transform:rotate(52deg) translate(12px,4px)}78%{transform:rotate(-22deg) translate(-8px,5px)}100%{transform:rotate(14deg) translate(0,0)}}
@keyframes pillow-whisk-head{0%,100%{transform:scale(1)}30%{transform:scale(1.12)}55%{transform:scale(.94)}80%{transform:scale(1.08)}}
@keyframes pillow-whisk-bubble{0%{opacity:0;transform:translateY(4px) scale(.4)}35%{opacity:.85;transform:translateY(-6px) scale(1)}100%{opacity:0;transform:translateY(-16px) scale(.6)}}
@keyframes pillow-fluff-swirl{0%{transform:scale(calc(.55 + var(--fill,0) * .45)) rotate(0);filter:brightness(1)}25%{transform:scale(calc(.7 + var(--fill,0) * .4)) rotate(-12deg);filter:brightness(1.08)}55%{transform:scale(calc(.85 + var(--fill,0) * .35)) rotate(14deg);filter:brightness(1.12)}100%{transform:scale(calc(.9 + var(--fill,0) * .35)) rotate(0);filter:brightness(1.05)}}
/* STEP 2 — Puff: mixture expands with rising bubbles */
.recipe-39 .recipe-bowl.puff-pillow .mp-fluff{animation:pillow-puff-grow 1.1s cubic-bezier(.2,1.2,.3,1) forwards}
.recipe-39 .recipe-bowl.puff-pillow .mp-bubble{animation:pillow-bubble-rise .95s ease-out forwards}
.recipe-39 .recipe-bowl.puff-pillow .mp-bubble.b2{animation-delay:.12s}
.recipe-39 .recipe-bowl.puff-pillow .mp-bubble.b3{animation-delay:.22s}
.recipe-39 .recipe-bowl.puff-pillow .mp-bubble.b4{animation-delay:.32s}
.recipe-39 .recipe-bowl.puff-pillow .recipe-bowl-fill{animation:pillow-bowl-puff 1.1s ease-out}
@keyframes pillow-puff-grow{0%{opacity:1;transform:scale(.9)}40%{transform:scale(1.35)}70%{transform:scale(1.18)}100%{opacity:1;transform:scale(1.22)}}
@keyframes pillow-bubble-rise{0%{opacity:0;transform:translateY(8px) scale(.4)}25%{opacity:1;transform:translateY(-6px) scale(1.1)}70%{opacity:.7;transform:translateY(-28px) scale(.9)}100%{opacity:0;transform:translateY(-42px) scale(.3)}}
@keyframes pillow-bowl-puff{0%{transform:scaleY(1)}45%{transform:scaleY(1.35)}100%{transform:scaleY(1.15)}}
/* STEP 3 — Shape: pillow forms, dream dust sparkles */
.recipe-39 .recipe-bowl.recipe-step-shape .mp-pillow{animation:pillow-shape-form 1.05s cubic-bezier(.34,1.56,.64,1) forwards}
.recipe-39 .recipe-bowl.recipe-step-shape .mp-fluff{animation:pillow-fluff-fade .55s ease forwards}
.recipe-39 .recipe-bowl.recipe-step-shape .mp-dust{animation:pillow-dust-pop .85s ease-out forwards}
.recipe-39 .recipe-bowl.recipe-step-shape .mp-dust.d2{animation-delay:.12s}
.recipe-39 .recipe-bowl.recipe-step-shape .mp-dust.d3{animation-delay:.22s}
@keyframes pillow-shape-form{0%{opacity:0;transform:scale(.35) translateY(12px)}55%{opacity:1;transform:scale(1.08) translateY(-2px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes pillow-fluff-fade{0%{opacity:1;transform:scale(1.15)}100%{opacity:0;transform:scale(.3)}}
@keyframes pillow-dust-pop{0%{opacity:0;transform:translateY(6px) scale(.2)}35%{opacity:1;transform:translateY(-8px) scale(1.4)}100%{opacity:0;transform:translateY(-22px) scale(.4)}}
/* Finish scene — princess lays on pillow, bites, says Yum! */
.marsh-pillow-finish{position:relative;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center}
.mpf-scene{position:relative;width:220px;height:168px;margin:4px auto 8px}
.mpf-pillow{position:absolute;left:18px;right:18px;bottom:18px;height:72px;z-index:1}
.mpf-pillow i{position:absolute;display:block}
.mpf-pillow .mpf-body{inset:0;border-radius:28px;background:linear-gradient(165deg,var(--mp-light,#fff) 0%,var(--mp-color,#ffe8f2) 42%,var(--mp-deep,#f3b9d4) 100%);box-shadow:inset 0 10px 14px rgba(255,255,255,.8),inset 0 -10px 12px color-mix(in srgb,var(--mp-deep,#c86e96),transparent 78%),0 8px 14px rgba(120,50,80,.2)}
.mpf-pillow .mpf-shine{left:22px;top:12px;width:58px;height:22px;border-radius:50%;background:radial-gradient(ellipse,#fff,transparent 70%);opacity:.65}
.mpf-pillow .mpf-bite{right:28px;top:8px;width:28px;height:22px;border-radius:50%;background:radial-gradient(circle at 40% 40%,var(--mp-color,#f7a8c6),var(--mp-deep,#e878a8));box-shadow:inset 2px 2px 4px rgba(160,60,100,.25);opacity:0;transform:scale(0)}
.mpf-pillow .mpf-crumb{width:7px;height:7px;border-radius:50%;background:var(--mp-light,#ffe0ee);opacity:0}
/* Marshmallow Pillow — choose style first, centered */
.recipe-39 .activity-prompt{top:6px;z-index:12;max-width:min(86%,340px)}
.recipe-39 .recipe-card{top:58px;z-index:7}
.recipe-39.awaiting-style .activity-princess{opacity:.35}
.recipe-39.awaiting-style .recipe-card{opacity:.55;pointer-events:none}
.recipe-39.awaiting-style .recipe-styles{
  position:absolute;z-index:20;left:50%;top:48%;transform:translate(-50%,-50%);
  width:min(94%,420px);margin:0;padding:18px 16px 20px;
  border-radius:28px;background:rgba(255,255,255,.96);border:3px solid rgba(196,80,140,.42);
  box-shadow:0 16px 32px rgba(120,40,80,.2),inset 0 0 0 2px rgba(255,255,255,.55);
  text-align:center
}
.recipe-39.awaiting-style .recipe-styles>strong{font-size:.95rem;margin-bottom:14px;color:#a82962;letter-spacing:.06em;text-transform:none}
.recipe-39.awaiting-style .recipe-style-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.recipe-39.awaiting-style .recipe-style{
  min-height:96px;min-width:0;padding:10px 6px;border-radius:18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:linear-gradient(180deg,#fff,#fff5fa)
}
.recipe-39.awaiting-style .recipe-style small{font-size:.72rem;margin-top:2px;line-height:1.15}
.recipe-39.awaiting-style .recipe-style.selected{border-color:#c4508c;background:#fff0f6;box-shadow:0 0 0 3px rgba(196,80,140,.28),0 8px 14px rgba(120,40,80,.14)}
.recipe-39.style-chosen .recipe-styles{display:none}
.recipe-39.style-chosen .recipe-card{top:56px}
.recipe-39.style-chosen .recipe-ingredients{margin-top:132px;width:min(92%,650px);justify-content:center}
.recipe-39.style-chosen .recipe-bowl{margin-top:18px;margin-bottom:36px}
.mp-style-swatch{
  display:block;width:42px;height:34px;margin:0 auto 6px;border-radius:16px;
  background:linear-gradient(160deg,var(--swatch-light,var(--swatch)),var(--swatch));
  border:2px solid rgba(255,255,255,.85);
  box-shadow:inset 0 6px 8px rgba(255,255,255,.55),0 4px 8px rgba(90,40,70,.18)
}
@media (max-width:420px){
  .recipe-39.awaiting-style .recipe-styles{width:min(98%,360px);padding:12px 10px 14px;top:50%}
  .recipe-39.awaiting-style .recipe-style-grid{gap:8px}
  .recipe-39.awaiting-style .recipe-style{min-height:86px;padding:8px 4px}
  .recipe-39.awaiting-style .recipe-style small{font-size:.58rem}
  .mp-style-swatch{width:36px;height:28px}
}
.mpf-pillow .mpf-crumb.c1{right:22px;top:0}.mpf-pillow .mpf-crumb.c2{right:40px;top:-6px}.mpf-pillow .mpf-crumb.c3{right:14px;top:10px}
.mpf-princess{position:absolute;left:50%;bottom:42px;width:118px;height:140px;margin-left:-59px;z-index:2;opacity:0;transform:translateY(24px) rotate(-8deg) scale(.72);transform-origin:50% 90%;transition:opacity .45s,transform .55s cubic-bezier(.34,1.2,.4,1);line-height:0;filter:drop-shadow(0 4px 8px rgba(90,40,70,.25))}
.mpf-princess svg{width:100%;height:100%;display:block}
.marsh-pillow-finish.lying .mpf-princess{opacity:1;transform:translateY(0) rotate(-72deg) scale(.9);bottom:58px}
.marsh-pillow-finish.biting .mpf-princess{transform:translateY(2px) rotate(-68deg) scale(.92)}
.marsh-pillow-finish.biting .mpf-bite{animation:mpf-bite-reveal .45s cubic-bezier(.34,1.56,.64,1) forwards}
.marsh-pillow-finish.biting .mpf-crumb{animation:mpf-crumb-pop .7s ease-out forwards}
.marsh-pillow-finish.biting .mpf-crumb.c2{animation-delay:.08s}
.marsh-pillow-finish.biting .mpf-crumb.c3{animation-delay:.14s}
.mpf-bubble{position:absolute;right:6px;top:8px;z-index:3;background:#fff;border:3px solid #FFD76A;border-radius:18px;padding:6px 12px;font-weight:900;font-size:1.05rem;color:#B0225A;box-shadow:0 4px 12px rgba(120,50,80,.2);opacity:0;transform:scale(.3) translateY(8px);transform-origin:30% 100%}
.mpf-bubble::after{content:'';position:absolute;left:18px;bottom:-10px;border:8px solid transparent;border-top-color:#FFD76A;border-bottom:0}
.marsh-pillow-finish.yum .mpf-bubble{animation:mpf-yum-pop .55s cubic-bezier(.34,1.56,.64,1) forwards}
@keyframes mpf-bite-reveal{0%{opacity:0;transform:scale(0)}100%{opacity:1;transform:scale(1)}}
@keyframes mpf-crumb-pop{0%{opacity:0;transform:translate(0,0) scale(.3)}40%{opacity:1;transform:translate(4px,-10px) scale(1.2)}100%{opacity:0;transform:translate(8px,-18px) scale(.4)}}
@keyframes mpf-yum-pop{0%{opacity:0;transform:scale(.3) translateY(8px)}100%{opacity:1;transform:scale(1) translateY(0)}}
.recipe-39.finished .recipe-finish{width:min(92%,300px);min-height:280px}
/* Recipe 40: peppermint rolling slab + mini candy-cane wand preview */
/* ===== Candy Cane Wand workshop (recipe 40) — art changes per step ===== */
.recipe-40 .recipe-tool-art.wand-art{inset:0;z-index:4}
.recipe-40 .wand-art i,.recipe-40 .wand-art b{position:absolute;display:block}
/* rolling slab / worktable (always visible — flatter so it isn't mistaken for a rope) */
.recipe-40 .wand-slab{left:22px;right:22px;top:72px;height:10px;border-radius:4px;background:repeating-linear-gradient(90deg,#e2c49a 0 10px,#c9965e 11px 14px),linear-gradient(#e8c9a0,#9a6938);box-shadow:0 4px 0 rgba(107,52,65,.14),inset 0 2px 3px rgba(255,255,255,.4);z-index:1}
/* progressive ingredient pieces (hidden until added) */
.recipe-40 .wand-sugar{left:52px;top:48px;width:120px;height:22px;opacity:0;transform:scale(.4);transform-origin:50% 80%;z-index:2;pointer-events:none}
.recipe-40 .wand-sugar b{position:absolute;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#f4efe4 60%,#e3d8c4);box-shadow:0 1px 2px rgba(90,50,40,.18)}
.recipe-40 .wand-sugar b:nth-child(1){left:8px;top:6px;width:28px;height:16px}.recipe-40 .wand-sugar b:nth-child(2){left:40px;top:2px;width:42px;height:20px}.recipe-40 .wand-sugar b:nth-child(3){left:84px;top:7px;width:26px;height:14px}
.recipe-40 .wand-mint{width:16px;height:16px;border-radius:50%;opacity:0;transform:scale(.2);background:repeating-conic-gradient(#f04b5f 0 20deg,#fff 21deg 42deg);border:2px solid rgba(255,255,255,.85);box-shadow:0 2px 3px rgba(90,30,40,.2);z-index:3}
.recipe-40 .wand-mint.m1{left:58px;top:44px}.recipe-40 .wand-mint.m2{left:104px;top:40px}.recipe-40 .wand-mint.m3{left:148px;top:46px}
.recipe-40 .wand-color-drop{left:104px;top:18px;width:16px;height:22px;border-radius:40% 40% 55% 55%;background:linear-gradient(180deg,#ff8a8a,#e53935);opacity:0;transform:translateY(-10px) scale(.3);z-index:5;box-shadow:0 0 8px rgba(229,57,53,.45)}
.recipe-40 .wand-star-ready{left:178px;top:28px;width:22px;height:22px;background:radial-gradient(circle at 40% 32%,#fff3b0,#FFD700 55%,#f0b400);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(0 2px 2px rgba(120,60,20,.25));opacity:0;transform:scale(0) rotate(-30deg);z-index:6}
/* candy ropes (rolling stage) — appear when their ingredients are added */
.recipe-40 .wand-rope{left:49px;width:128px;height:13px;border-radius:8px;transform-origin:50% 50%;opacity:0;z-index:4}
.recipe-40 .wand-rope-red{top:40px;background:linear-gradient(180deg,#ff8080,#e53935);box-shadow:inset 0 3px 3px rgba(255,255,255,.4),0 3px 4px rgba(120,30,30,.22)}
.recipe-40 .wand-rope-white{top:55px;background:linear-gradient(180deg,#fff,#e7e0d4);box-shadow:inset 0 3px 3px rgba(255,255,255,.7),0 3px 4px rgba(120,90,60,.18)}
.recipe-40.wand-has-sugar .wand-sugar{opacity:1;transform:scale(1);animation:wand-ing-pop .55s cubic-bezier(.2,.9,.25,1.3)}
.recipe-40.wand-has-mint .wand-mint{opacity:1;transform:scale(1);animation:wand-mint-pop .5s cubic-bezier(.2,.9,.25,1.3) both}
.recipe-40.wand-has-mint .wand-mint.m2{animation-delay:.08s}.recipe-40.wand-has-mint .wand-mint.m3{animation-delay:.16s}
.recipe-40.wand-has-red .wand-color-drop{opacity:1;animation:wand-drop-pour .55s ease-out both}
.recipe-40.wand-has-red .wand-rope-red{opacity:1;animation:wand-rope-land .6s .2s cubic-bezier(.2,.9,.25,1.25) both}
.recipe-40.wand-has-red .wand-sugar{opacity:.35;filter:saturate(1.2) hue-rotate(-10deg)}
.recipe-40.wand-has-white .wand-rope-white{opacity:1;animation:wand-rope-land .6s cubic-bezier(.2,.9,.25,1.25) both}
.recipe-40.wand-has-white .wand-mint{opacity:.25;transform:scale(.7)}
.recipe-40.wand-has-star .wand-star-ready{opacity:.95;transform:scale(1) rotate(0);animation:wand-star-ready-pop .65s cubic-bezier(.34,1.56,.64,1)}
@keyframes wand-ing-pop{0%{opacity:0;transform:scale(.3) translateY(10px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes wand-mint-pop{0%{opacity:0;transform:scale(.1) rotate(-40deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes wand-drop-pour{0%{opacity:0;transform:translateY(-14px) scale(.2)}40%{opacity:1;transform:translateY(0) scale(1.1)}100%{opacity:0;transform:translateY(18px) scale(.4)}}
@keyframes wand-rope-land{0%{opacity:0;transform:scaleX(.35) translateY(-12px)}60%{opacity:1;transform:scaleX(1.06) translateY(2px)}100%{opacity:1;transform:scaleX(1) translateY(0)}}
@keyframes wand-star-ready-pop{0%{opacity:0;transform:scale(0) rotate(-80deg)}70%{opacity:1;transform:scale(1.2) rotate(8deg)}100%{opacity:.95;transform:scale(1) rotate(0)}}
/* twisted striped stick (twist stage) */
.recipe-40 .wand-stripe{left:99px;top:16px;width:16px;height:64px;border-radius:9px;background:repeating-linear-gradient(48deg,#e53935 0 9px,#fff8f0 9px 18px);box-shadow:inset 0 0 4px rgba(120,40,40,.2),0 4px 5px rgba(70,39,23,.2);transform-origin:50% 50%;opacity:0}
/* bent candy cane (bend stage) */
.recipe-40 .wand-cane{left:96px;top:10px;width:15px;height:68px;border-radius:9px;background:repeating-linear-gradient(180deg,#e53935 0 9px,#fff8f0 9px 18px);box-shadow:0 4px 5px rgba(70,39,23,.2);transform-origin:50% 96%;opacity:0}
.recipe-40 .wand-cane::before{content:'';position:absolute;left:6px;top:0;width:30px;height:15px;border-radius:0 15px 15px 0;background:repeating-linear-gradient(90deg,#e53935 0 8px,#fff8f0 8px 16px);box-shadow:0 3px 4px rgba(70,39,23,.18)}
/* star topper */
.recipe-40 .wand-star{left:118px;top:-6px;width:25px;height:25px;background:radial-gradient(circle at 40% 32%,#fff3b0,#FFD700 55%,#f0b400);clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);filter:drop-shadow(0 2px 2px rgba(120,60,20,.25));transform-origin:50% 50%;opacity:0;transform:scale(0)}
/* sparkles for the finale */
.recipe-40 .wand-sparkle{width:7px;height:7px;background:radial-gradient(circle,#fff,rgba(255,240,170,0));border-radius:50%;opacity:0}
.recipe-40 .wand-sparkle.s1{left:112px;top:2px}.recipe-40 .wand-sparkle.s2{left:140px;top:14px}.recipe-40 .wand-sparkle.s3{left:126px;top:-8px}
/* per-stage visibility */
.recipe-40[data-wand-stage="twisting"] .wand-rope,.recipe-40[data-wand-stage="twisted"] .wand-rope,
.recipe-40[data-wand-stage="twisting"] .wand-sugar,.recipe-40[data-wand-stage="twisted"] .wand-sugar,
.recipe-40[data-wand-stage="twisting"] .wand-mint,.recipe-40[data-wand-stage="twisted"] .wand-mint{opacity:0!important}
.recipe-40[data-wand-stage="twisting"] .wand-stripe,.recipe-40[data-wand-stage="twisted"] .wand-stripe{opacity:1}
.recipe-40[data-wand-stage="bending"] .wand-rope,.recipe-40[data-wand-stage="done"] .wand-rope,
.recipe-40[data-wand-stage="bending"] .wand-sugar,.recipe-40[data-wand-stage="done"] .wand-sugar,
.recipe-40[data-wand-stage="bending"] .wand-mint,.recipe-40[data-wand-stage="done"] .wand-mint,
.recipe-40[data-wand-stage="bending"] .wand-star-ready,.recipe-40[data-wand-stage="done"] .wand-star-ready{opacity:0!important}
.recipe-40[data-wand-stage="bending"] .wand-stripe,.recipe-40[data-wand-stage="done"] .wand-stripe{opacity:0}
.recipe-40[data-wand-stage="bending"] .wand-cane,.recipe-40[data-wand-stage="done"] .wand-cane{opacity:1}
.recipe-40[data-wand-stage="bending"] .wand-star,.recipe-40[data-wand-stage="done"] .wand-star{opacity:1;transform:scale(1)}
/* keep the table steady — animate the candy, not the whole station */
.recipe-40 .recipe-bowl.recipe-step-roll,.recipe-40 .recipe-bowl.twist-sword,.recipe-40 .recipe-bowl.bend-wand{animation:none!important;transform:none!important}
/* STEP 1 — Roll the Ropes: two ropes roll back & forth and stretch out */
.recipe-40 .recipe-bowl.recipe-step-roll .wand-rope-red{animation:wand-roll-red 1.1s ease-in-out}
.recipe-40 .recipe-bowl.recipe-step-roll .wand-rope-white{animation:wand-roll-white 1.1s ease-in-out}
@keyframes wand-roll-red{0%{transform:translateX(6px) scaleX(.72) rotate(0)}22%{transform:translateX(-12px) scaleX(.95) rotate(-3deg)}48%{transform:translateX(14px) scaleX(1.08) rotate(3deg)}72%{transform:translateX(-8px) scaleX(1) rotate(-1.5deg)}100%{transform:translateX(0) scaleX(1) rotate(0)}}
@keyframes wand-roll-white{0%{transform:translateX(-6px) scaleX(.72) rotate(0)}22%{transform:translateX(12px) scaleX(.95) rotate(3deg)}48%{transform:translateX(-14px) scaleX(1.08) rotate(-3deg)}72%{transform:translateX(8px) scaleX(1) rotate(1.5deg)}100%{transform:translateX(0) scaleX(1) rotate(0)}}
/* STEP 2 — Twist the Stripes: barber-pole twist (scaleX pulse + rock) */
.recipe-40 .recipe-bowl.twist-sword .wand-stripe{animation:wand-twist 1.1s cubic-bezier(.45,.05,.35,1)}
@keyframes wand-twist{0%{transform:scaleX(.28) rotate(-9deg);filter:brightness(1)}14%{transform:scaleX(1) rotate(7deg);filter:brightness(1.12)}30%{transform:scaleX(.4) rotate(-7deg);filter:brightness(1)}46%{transform:scaleX(1) rotate(8deg);filter:brightness(1.12)}62%{transform:scaleX(.45) rotate(-5deg);filter:brightness(1)}78%{transform:scaleX(1) rotate(4deg);filter:brightness(1.08)}100%{transform:scaleX(1) rotate(0);filter:brightness(1)}}
/* STEP 3 — Bend & Add Star: springy bend, then the star pops on with sparkles */
.recipe-40 .recipe-bowl.bend-wand .wand-cane{animation:wand-bend 1.1s cubic-bezier(.34,1.56,.64,1)}
@keyframes wand-bend{0%{transform:rotate(-2deg) scaleY(1.14) translateY(6px)}30%{transform:rotate(3deg) scaleY(.94) translateY(-3px)}55%{transform:rotate(-6deg) scaleY(1.04)}78%{transform:rotate(3deg) scaleY(.99)}100%{transform:rotate(0) scaleY(1)}}
.recipe-40 .recipe-bowl.bend-wand .wand-star{animation:wand-star-pop 1.05s .32s cubic-bezier(.34,1.56,.64,1) both}
@keyframes wand-star-pop{0%{opacity:0;transform:scale(0) rotate(-120deg)}55%{opacity:1;transform:scale(1.35) rotate(12deg)}78%{transform:scale(.92) rotate(-4deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
.recipe-40 .recipe-bowl.bend-wand .wand-sparkle{animation:wand-sparkle-pop .8s ease-out both}
.recipe-40 .recipe-bowl.bend-wand .wand-sparkle.s1{animation-delay:.5s}
.recipe-40 .recipe-bowl.bend-wand .wand-sparkle.s2{animation-delay:.66s}
.recipe-40 .recipe-bowl.bend-wand .wand-sparkle.s3{animation-delay:.58s}
@keyframes wand-sparkle-pop{0%{opacity:0;transform:scale(.2)}40%{opacity:1;transform:scale(1.6)}100%{opacity:0;transform:scale(.4)}}
.candy-cane-finish .scaled-object{filter:drop-shadow(0 6px 10px rgba(120,40,55,.28))}
.recipe-41 .recipe-tool-art::before,.recipe-41 .recipe-tool-art::after,.recipe-41 .recipe-tool-art i,.recipe-41 .recipe-tool-art b{display:none!important}
.recipe-41 .gummy-mold-art{display:flex;align-items:center;justify-content:center;inset:0;z-index:4}
.recipe-41 .gummy-mold-svg{display:block;filter:drop-shadow(0 3px 4px rgba(30,20,25,.28))}
.recipe-41 .gummy-mold-fill,.recipe-41 .gummy-mold-shine,.recipe-41 .gummy-mold-face{opacity:calc(var(--fill,0) * 1);transition:opacity .35s ease}
.recipe-41 .recipe-bowl.pop-gummy .gummy-mold-fill{animation:gummy-pop-shine .7s cubic-bezier(.34,1.56,.64,1)}
@keyframes gummy-pop-shine{0%{filter:brightness(1) saturate(1)}40%{filter:brightness(1.25) saturate(1.2)}100%{filter:brightness(1.08) saturate(1.05)}}
.recipe-42 .recipe-bowl-fill{background:linear-gradient(#ffd7e9,#ed79ad)!important;transform-origin:50% 80%}
/* Frosting mixer: whisk stays inside the bowl (no stray translucent triangle on the right) */
.recipe-42 .recipe-tool-art i:nth-child(2),.recipe-42 .recipe-tool-art i:nth-child(3),.recipe-42 .recipe-tool-art b{display:none}
.recipe-42 .recipe-tool-art i:first-child{left:50%;top:14px;width:9px;height:58px;margin-left:-4px;border-radius:5px;background:linear-gradient(90deg,#7a828a,#f2f5f7 48%,#5c636a);transform:rotate(-14deg);transform-origin:50% 92%;box-shadow:1px 2px 3px rgba(60,30,45,.2);z-index:6}
.recipe-42 .recipe-tool-art i:first-child::after{content:'';position:absolute;left:50%;bottom:-4px;width:30px;height:30px;margin-left:-15px;border:3px solid #8a9299;border-radius:50%;background:radial-gradient(circle at 40% 35%,rgba(255,255,255,.55),transparent 55%);box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}
/* Whip frosting: bowl stays put; whisk stirs and frosting swirls */
.recipe-42 .recipe-bowl.recipe-step-mix{animation:none!important;transform:none!important}
.recipe-42 .recipe-bowl.recipe-step-mix .recipe-tool-art i:first-child{animation:frosting-whisk-stir 1.1s cubic-bezier(.45,.05,.25,1)}
.recipe-42 .recipe-bowl.recipe-step-mix .recipe-bowl-fill{animation:frosting-whip-swirl 1.1s ease-in-out}
.recipe-42 .recipe-bowl.recipe-step-mix .recipe-tool-art i:first-child::after{animation:frosting-whisk-head 1.1s ease-in-out}
@keyframes frosting-whisk-stir{0%{transform:rotate(-14deg) translate(0,0)}12%{transform:rotate(22deg) translate(12px,4px)}25%{transform:rotate(48deg) translate(8px,10px)}38%{transform:rotate(6deg) translate(-10px,8px)}50%{transform:rotate(-40deg) translate(-16px,4px)}62%{transform:rotate(-52deg) translate(-6px,-2px)}75%{transform:rotate(-8deg) translate(12px,4px)}88%{transform:rotate(18deg) translate(14px,6px)}100%{transform:rotate(-14deg) translate(0,0)}}
@keyframes frosting-whip-swirl{0%{transform:rotate(0) scale(1);filter:brightness(1) saturate(1)}18%{transform:rotate(-18deg) scale(1.04,.94);filter:brightness(1.06) saturate(1.1)}40%{transform:rotate(28deg) scale(.94,1.08);filter:brightness(1.12) saturate(1.18)}62%{transform:rotate(-32deg) scale(1.06,.92);filter:brightness(1.08) saturate(1.14)}82%{transform:rotate(14deg) scale(.97,1.04);filter:brightness(1.04) saturate(1.06)}100%{transform:rotate(0) scale(1);filter:brightness(1) saturate(1)}}
@keyframes frosting-whisk-head{0%,100%{transform:scale(1);box-shadow:inset 0 0 0 2px rgba(255,255,255,.25)}30%{transform:scale(1.12);box-shadow:inset 0 0 0 2px rgba(255,255,255,.45),0 0 10px rgba(255,182,217,.55)}55%{transform:scale(.92);box-shadow:inset 0 0 0 2px rgba(255,255,255,.3)}80%{transform:scale(1.08);box-shadow:inset 0 0 0 2px rgba(255,255,255,.4),0 0 8px rgba(255,182,217,.4)}}
/* Frosting Fountain finish — SVG tiered fountain (matches treasure icon) */
.frosting-fountain-finish{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}
.frosting-fountain-finish .fff-scene{position:relative;width:200px;height:200px;margin:0 auto;filter:drop-shadow(0 12px 16px rgba(120,30,70,.24));animation:fff-arrive .7s cubic-bezier(.2,.9,.25,1.2)}
.frosting-fountain-finish .fff-svg{width:200px;height:200px;display:block;overflow:visible}
.frosting-fountain-finish .recipe-finish-text{margin-top:2px;font-size:1rem;line-height:1.25;max-width:16em}
.fff-main-jet{transform-origin:100px 58px;animation:fff-jet-pulse 1.1s ease-in-out infinite}
.fff-arc{stroke-dasharray:40;animation:fff-arc-flow 1.4s linear infinite}
.fff-arc.a2,.fff-arc.a4{animation-delay:.2s}
.fff-drip{stroke-dasharray:28;animation:fff-drip-flow 1.05s linear infinite}
.fff-drip.d2{animation-delay:.15s}.fff-drip.d3{animation-delay:.3s}.fff-drip.d4{animation-delay:.45s}
.fff-ripple{transform-origin:100px 160px;animation:fff-ripple-svg 2.2s ease-out infinite}
.fff-ripple.r2{animation-delay:1.1s}
.fff-drop{animation:fff-drop-bob 1.6s ease-in-out infinite}
.fff-drop.p2{animation-delay:.2s}.fff-drop.p3{animation-delay:.4s}.fff-drop.p4{animation-delay:.55s}.fff-drop.p5{animation-delay:.1s}
.fff-stars{animation:fff-star-twinkle 1.8s ease-in-out infinite;transform-origin:100px 70px}
@keyframes fff-arrive{0%{transform:translateY(18px) scale(.55);opacity:0;filter:brightness(1.35)}65%{transform:translateY(-4px) scale(1.04);opacity:1}100%{transform:translateY(0) scale(1);opacity:1;filter:brightness(1)}}
@keyframes fff-jet-pulse{0%,100%{transform:scaleY(.88);opacity:.85}50%{transform:scaleY(1.08);opacity:1}}
@keyframes fff-arc-flow{0%{stroke-dashoffset:40;opacity:.35}40%{opacity:.95}100%{stroke-dashoffset:0;opacity:.45}}
@keyframes fff-drip-flow{0%{stroke-dashoffset:28;opacity:.25}35%{opacity:1}100%{stroke-dashoffset:-8;opacity:.2}}
@keyframes fff-ripple-svg{0%{transform:scale(.4);opacity:.7}100%{transform:scale(2.2);opacity:0}}
@keyframes fff-drop-bob{0%,100%{transform:translateY(0);opacity:.85}50%{transform:translateY(-6px);opacity:1}}
@keyframes fff-star-twinkle{0%,100%{opacity:.55;filter:brightness(1)}50%{opacity:1;filter:brightness(1.35)}}
.recipe-42.finished .recipe-finish{width:min(92%,300px);min-height:280px;padding:16px 14px 18px;display:flex;align-items:center;justify-content:center}
.recipe-43 .recipe-tool-art::before{content:'';position:absolute;left:25px;top:21px;width:172px;height:57px;border-radius:12px;background:#525860;box-shadow:inset 0 7px 12px #272b30}
.recipe-43 .recipe-tool-art::after{
  content:'';position:absolute;left:48px;top:24px;width:128px;height:52px;
  background:linear-gradient(135deg,#ffffff 0%,var(--cs-light,#dff8ff) 28%,var(--cs-color,#6dc7e8) 62%,var(--cs-mid,#baf4ff) 100%);
  clip-path:polygon(12% 48%,18% 28%,38% 18%,62% 22%,82% 36%,96% 50%,94% 64%,78% 74%,48% 78%,30% 76%,24% 100%,16% 100%,20% 76%,8% 64%,6% 52%);
  filter:drop-shadow(0 0 8px color-mix(in srgb,var(--cs-color,#b8f5ff),transparent 35%));
  transform-origin:50% 88%;opacity:calc(.12 + var(--fill,0) * .88);transform:scale(calc(.08 + var(--fill,0) * .92));
  box-shadow:inset 0 0 10px rgba(255,255,255,.55)
}
/* Sugar Crystal Shoes — choose style first */
.recipe-43 .activity-prompt{top:6px;z-index:12;max-width:min(86%,340px)}
.recipe-43 .recipe-card{top:58px;z-index:7}
.recipe-43.awaiting-style .activity-princess{opacity:.35}
.recipe-43.awaiting-style .recipe-card{opacity:.55;pointer-events:none}
.recipe-43.awaiting-style .recipe-styles{
  position:absolute;z-index:20;left:50%;top:48%;transform:translate(-50%,-50%);
  width:min(94%,420px);margin:0;padding:18px 16px 20px;
  border-radius:28px;background:rgba(255,255,255,.96);border:3px solid rgba(110,180,220,.5);
  box-shadow:0 16px 32px rgba(40,80,120,.18),inset 0 0 0 2px rgba(255,255,255,.55);
  text-align:center
}
.recipe-43.awaiting-style .recipe-styles>strong{font-size:.95rem;margin-bottom:14px;color:#2E6BB0;letter-spacing:.06em;text-transform:none}
.recipe-43.awaiting-style .recipe-style-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}
.recipe-43.awaiting-style .recipe-style{
  min-height:96px;min-width:0;padding:10px 6px;border-radius:18px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;gap:4px;
  background:linear-gradient(180deg,#fff,#f0f9ff)
}
.recipe-43.awaiting-style .recipe-style small{font-size:.72rem;margin-top:2px;line-height:1.15}
.recipe-43.awaiting-style .recipe-style.selected{border-color:#4A90D9;background:#e8f4ff;box-shadow:0 0 0 3px rgba(74,144,217,.28),0 8px 14px rgba(40,80,120,.14)}
.recipe-43.style-chosen .recipe-styles{display:none}
.recipe-43.style-chosen .recipe-ingredients{margin-top:132px;width:min(92%,650px);justify-content:center}
/* Longer finish slippers + taller ready card */
.crystal-shoes-finish{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center}
.crystal-shoes-finish .csf-pair{position:relative;width:240px;height:200px;margin:0 auto;filter:drop-shadow(0 12px 16px rgba(90,40,80,.22))}
.crystal-shoes-finish .csf-slipper{position:absolute;left:50%;bottom:8px}
.crystal-shoes-finish .csf-slipper.back{transform:translate(-82%,-10px) scale(.86) rotate(-10deg);opacity:.78;z-index:1;filter:saturate(.92) brightness(.97)}
.crystal-shoes-finish .csf-slipper.front{transform:translate(-38%,0) rotate(7deg);z-index:2;animation:csf-arrive .85s cubic-bezier(.2,.9,.25,1.25)}
.crystal-shoes-finish .csf-svg{width:200px;height:186px;display:block;overflow:visible}
.crystal-shoes-finish .csf-svg.mirror{transform:scaleX(-1)}
.crystal-shoes-finish .recipe-finish-text{margin-top:2px;font-size:1rem;line-height:1.25;max-width:15em}
@keyframes csf-arrive{0%{transform:translate(-38%,22px) rotate(7deg) scale(.55);opacity:0;filter:brightness(1.4)}60%{transform:translate(-38%,-6px) rotate(7deg) scale(1.05);opacity:1}100%{transform:translate(-38%,0) rotate(7deg) scale(1);opacity:1}}
.recipe-43.finished .recipe-finish{width:min(92%,300px);min-height:340px;padding:18px 14px 20px;display:flex;align-items:center;justify-content:center}
@media (max-width:420px){
  .recipe-43.awaiting-style .recipe-styles{width:min(98%,360px);padding:12px 10px 14px;top:50%}
  .recipe-43.awaiting-style .recipe-style-grid{gap:8px}
  .recipe-43.awaiting-style .recipe-style{min-height:86px;padding:8px 4px}
  .recipe-43.awaiting-style .recipe-style small{font-size:.58rem}
  .crystal-shoes-finish .csf-pair{width:210px;height:176px}
  .crystal-shoes-finish .csf-svg{width:176px;height:164px}
}
.recipe-43 .recipe-tool-art i{width:9px;height:9px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#8ee8ff 55%,#4ab8e8);box-shadow:0 0 7px #6ed4ff;opacity:calc(var(--fill,0) * .85);transform:scale(calc(.4 + var(--fill,0) * .6))}
.recipe-43 .recipe-tool-art i:nth-child(1){left:68px;top:50px}.recipe-43 .recipe-tool-art i:nth-child(2){left:108px;top:44px}.recipe-43 .recipe-tool-art i:nth-child(3){left:148px;top:52px}
.recipe-43 .recipe-tool-art b{width:5px;height:14px;border-radius:3px;background:linear-gradient(180deg,#fff,rgba(184,245,255,.2));opacity:0}
.recipe-43 .recipe-tool-art b:first-of-type{left:92px;top:38px}.recipe-43 .recipe-tool-art b:nth-of-type(2){left:126px;top:34px}
/* Grow the crystals: bowl stays still, shoe sprouts upward from seeds */
.recipe-43 .recipe-bowl.grow-shoes{animation:none!important;transform:none!important}
.recipe-43 .recipe-bowl.grow-shoes .recipe-tool-art::before{animation:crystal-mold-glow 1.1s ease-in-out}
.recipe-43 .recipe-bowl.grow-shoes .recipe-tool-art::after{animation:crystal-shoe-grow 1.1s cubic-bezier(.2,1.15,.28,1) forwards}
.recipe-43 .recipe-bowl.grow-shoes .recipe-tool-art i{animation:crystal-seed-burst .9s ease-out forwards}
.recipe-43 .recipe-bowl.grow-shoes .recipe-tool-art i:nth-child(2){animation-delay:.12s}
.recipe-43 .recipe-bowl.grow-shoes .recipe-tool-art i:nth-child(3){animation-delay:.24s}
.recipe-43 .recipe-bowl.grow-shoes .recipe-tool-art b{animation:crystal-facet-rise 1s ease-out forwards}
.recipe-43 .recipe-bowl.grow-shoes .recipe-tool-art b:nth-of-type(2){animation-delay:.18s}
@keyframes crystal-mold-glow{0%,100%{box-shadow:inset 0 7px 12px #272b30}35%,65%{box-shadow:inset 0 7px 12px #272b30,0 0 18px rgba(110,220,255,.55)}}
@keyframes crystal-shoe-grow{0%{transform:scale(.06);opacity:.15;filter:drop-shadow(0 0 2px #9be9ff) brightness(1)}18%{transform:scale(.22);opacity:.45;filter:drop-shadow(0 0 8px #6ed4ff) brightness(1.12)}42%{transform:scale(.58);opacity:.78;filter:drop-shadow(0 0 14px #4ec8ff) brightness(1.22)}68%{transform:scale(.92);opacity:.95;filter:drop-shadow(0 0 20px #fff) brightness(1.32)}86%{transform:scale(1.06);opacity:1;filter:drop-shadow(0 0 24px #e8fcff) brightness(1.38)}100%{transform:scale(1);opacity:1;filter:drop-shadow(0 0 14px #b8f5ff) brightness(1.18)}}
@keyframes crystal-seed-burst{0%{opacity:1;transform:scale(1)}25%{opacity:1;transform:scale(2.2)}55%{opacity:.6;transform:scale(1.4)}100%{opacity:0;transform:scale(.3)}}
@keyframes crystal-facet-rise{0%{opacity:0;transform:translateY(8px) scaleY(.2)}30%{opacity:.9;transform:translateY(-6px) scaleY(1.1)}60%{opacity:.7;transform:translateY(-14px) scaleY(.8)}100%{opacity:0;transform:translateY(-22px) scaleY(.4)}}
.recipe-44 .recipe-workstation{
  width:205px;height:122px;border-radius:28px 28px 70px 70px;border-color:#6f7e8d;
  background:linear-gradient(105deg,#7b8995,#eef5f8 25%,#98a8b2 55%,#e2edf0 78%,#64727e)
}
.recipe-44 .recipe-bowl-fill{background:linear-gradient(180deg,#e8eef2,#d5dde3);opacity:.35}
.recipe-44 .recipe-tool-art.sherbet-art{inset:0;z-index:5;overflow:visible}
.recipe-44 .sherbet-mix{
  position:absolute;left:22px;right:22px;top:14px;height:50px;border-radius:50%;
  overflow:hidden;z-index:2;
  box-shadow:inset 0 7px 9px rgba(255,255,255,.5),inset 0 -4px 6px rgba(47,43,67,.18),0 4px 6px rgba(47,43,67,.16);
  background:#dfe7ec
}
.recipe-44 .sherbet-mix-swirl{
  position:absolute;left:-30%;top:-40%;width:160%;height:180%;border-radius:50%;
  background:conic-gradient(from 0deg,var(--sherbet-conic,#dfe7ec,#cfd8df));
  opacity:calc(var(--fill,0) * .98);transform-origin:50% 50%;
  transition:opacity .3s ease
}
.recipe-44 .sherbet-spoon{
  left:97px;top:-12px;width:11px;height:62px;border-radius:7px;z-index:4;
  background:linear-gradient(90deg,#727981,#eff3f5,#565d64);transform:rotate(13deg);transform-origin:50% 88%;
  box-shadow:1px 2px 3px rgba(60,30,45,.2)
}
.recipe-44 .sherbet-spoon::after{
  content:'';position:absolute;left:-16px;bottom:-18px;width:37px;height:30px;
  border:5px solid #7b838a;border-top:0;border-radius:0 0 50% 50%;
  background:radial-gradient(circle at 40% 30%,rgba(255,255,255,.45),transparent 60%)
}
/* Bowl chrome stays still — only sherbet mix + spoon animate */
.recipe-44 .recipe-bowl.swirl-sherbet,
.recipe-44 .recipe-bowl.recipe-step-chill,
.recipe-44 .recipe-bowl.recipe-step-scoop{
  animation:none!important;transform:none!important;filter:none!important
}
.recipe-44 .recipe-bowl.swirl-sherbet .sherbet-mix-swirl{animation:sherbet-rainbow-spin 1.15s cubic-bezier(.4,.05,.2,1)}
.recipe-44 .recipe-bowl.swirl-sherbet .sherbet-spoon{animation:sherbet-spoon-stir 1.15s cubic-bezier(.45,.05,.25,1)}
.recipe-44 .recipe-bowl.recipe-step-chill .sherbet-mix{animation:sherbet-chill-glow 1.05s ease-in-out}
.recipe-44 .recipe-bowl.recipe-step-scoop .sherbet-spoon{animation:sherbet-spoon-scoop .7s ease-in-out}
.recipe-44 .recipe-bowl.recipe-step-scoop .sherbet-mix-swirl{animation:sherbet-scoop-bob .7s ease-in-out}
@keyframes sherbet-rainbow-spin{
  0%{transform:rotate(0)}
  100%{transform:rotate(720deg)}
}
@keyframes sherbet-spoon-stir{
  0%{transform:rotate(13deg) translate(0,0)}
  12%{transform:rotate(-18deg) translate(-10px,4px)}
  25%{transform:rotate(-36deg) translate(-6px,10px)}
  40%{transform:rotate(8deg) translate(8px,8px)}
  55%{transform:rotate(40deg) translate(12px,2px)}
  70%{transform:rotate(10deg) translate(-8px,4px)}
  85%{transform:rotate(-20deg) translate(-10px,6px)}
  100%{transform:rotate(13deg) translate(0,0)}
}
@keyframes sherbet-chill-glow{
  0%,100%{box-shadow:inset 0 7px 9px rgba(255,255,255,.5),inset 0 -4px 6px rgba(47,43,67,.18),0 4px 6px rgba(47,43,67,.16);filter:none}
  50%{box-shadow:inset 0 7px 9px rgba(255,255,255,.65),0 0 18px rgba(155,233,255,.7),0 4px 6px rgba(47,43,67,.16);filter:saturate(1.15) brightness(1.08)}
}
@keyframes sherbet-spoon-scoop{
  0%,100%{transform:rotate(13deg) translateY(0)}
  40%{transform:rotate(-8deg) translateY(-16px)}
  70%{transform:rotate(20deg) translateY(4px)}
}
@keyframes sherbet-scoop-bob{
  0%,100%{transform:rotate(0) scale(1)}
  40%{transform:rotate(-12deg) scale(.94)}
  70%{transform:rotate(8deg) scale(1.04)}
}
/* Soft-serve cone finish */
.rainbow-sherbet-finish{position:relative;width:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center}
.rainbow-sherbet-finish .rsb-scene{position:relative;width:180px;height:234px;margin:0 auto;filter:drop-shadow(0 12px 16px rgba(90,40,70,.22));animation:rsb-arrive .75s cubic-bezier(.2,.9,.25,1.2)}
.rainbow-sherbet-finish .rsb-svg{width:180px;height:234px;display:block;overflow:visible}
.rainbow-sherbet-finish .recipe-finish-text{margin-top:2px;font-size:1rem;line-height:1.25;max-width:15em}
.rainbow-sherbet-finish .rsb-softserve{transform-origin:50px 60px;animation:rsb-swirl-idle 2.4s ease-in-out infinite}
@keyframes rsb-arrive{0%{transform:translateY(18px) scale(.55);opacity:0}65%{transform:translateY(-4px) scale(1.04);opacity:1}100%{transform:translateY(0) scale(1);opacity:1}}
@keyframes rsb-swirl-idle{0%,100%{transform:rotate(-2deg)}50%{transform:rotate(2deg)}}
.recipe-44.finished .recipe-finish{width:min(92%,300px);min-height:340px;padding:16px 14px 18px;display:flex;align-items:center;justify-content:center}
.recipe-bowl.recipe-processing{box-shadow:0 0 24px rgba(255,215,0,.45),inset 0 8px 12px rgba(0,0,0,.1)}
.recipe-bowl.recipe-step-mix{animation:expanded-recipe-mix .38s ease-in-out 3 alternate}
.recipe-bowl.recipe-step-heat{animation:expanded-recipe-heat 1.05s ease-in-out}
.recipe-bowl.recipe-step-decorate{animation:expanded-recipe-decorate .55s ease-in-out 2 alternate}
.recipe-bowl.recipe-step-shape{animation:expanded-recipe-shape .85s cubic-bezier(.2,.9,.25,1.2)}
.recipe-bowl.recipe-step-build{animation:expanded-recipe-build .55s ease-in-out 2 alternate}
.recipe-bowl.recipe-step-sort{animation:expanded-recipe-sort .7s ease-in-out}
.recipe-bowl.recipe-step-roll{animation:expanded-recipe-roll .8s ease-in-out}
.recipe-bowl.recipe-step-pour{animation:expanded-recipe-pour .9s ease-in-out}
.recipe-bowl.recipe-step-chill{animation:expanded-recipe-chill 1.05s ease-in-out}
.recipe-bowl.recipe-step-scoop{animation:expanded-recipe-scoop .7s ease-in-out}
@keyframes recipe-workstation-ready{from{filter:brightness(1);box-shadow:0 0 7px rgba(255,220,65,.4),0 10px 16px rgba(90,35,63,.22)}to{filter:brightness(1.12);box-shadow:0 0 26px rgba(255,220,65,.95),0 12px 18px rgba(90,35,63,.25)}}
@keyframes expanded-recipe-mix{from{transform:rotate(-6deg) translateX(-6px)}to{transform:rotate(6deg) translateX(6px)}}
@keyframes expanded-recipe-heat{0%,100%{filter:none;transform:scale(1)}50%{filter:drop-shadow(0 0 17px #ff8a45);transform:scale(1.08);background:#ffd09c}}
@keyframes expanded-recipe-decorate{from{transform:translateY(0) rotate(-3deg)}to{transform:translateY(-8px) rotate(4deg);filter:drop-shadow(0 0 12px #FFD700)}}
@keyframes expanded-recipe-shape{0%{transform:scaleX(1)}35%{transform:scaleX(.65) scaleY(1.18)}70%{transform:scaleX(1.16) scaleY(.84)}100%{transform:scale(1)}}
@keyframes expanded-recipe-build{from{transform:translateY(5px) scale(.96)}to{transform:translateY(-7px) scale(1.06)}}
@keyframes expanded-recipe-sort{0%{transform:translateX(-12px)}35%{transform:translateX(12px)}70%{transform:translateX(-5px)}100%{transform:translateX(0)}}
@keyframes expanded-recipe-roll{0%{transform:rotate(0)}100%{transform:rotate(720deg)}}
@keyframes expanded-recipe-pour{0%,100%{transform:rotate(0)}45%{transform:rotate(-28deg) translate(-12px,-8px)}}
@keyframes expanded-recipe-chill{0%,100%{filter:none}50%{filter:hue-rotate(155deg) brightness(1.18);box-shadow:0 0 23px #9be9ff}}
@keyframes expanded-recipe-scoop{0%,100%{transform:translateY(0)}35%{transform:translateY(-13px) scale(.92)}70%{transform:translateY(5px) scale(1.08)}}
.recipe-30{gap:8px;background:radial-gradient(circle at 50% 55%,rgba(255,255,255,.5),transparent 38%),linear-gradient(180deg,#FFE2F0 0%,#FFB4D2 52%,#FF86BF 100%)}
.recipe-30 .recipe-card{transform:translateX(-50%)}
.recipe-30 .recipe-ingredients{margin-top:118px;gap:14px}
.recipe-30 .recipe-ingredient{min-width:118px;min-height:105px;padding:8px 8px 6px;border-radius:20px;background:linear-gradient(180deg,#fff,#fff6fa);box-shadow:0 8px 16px rgba(106,28,70,.16),inset 0 -5px 0 rgba(255,170,208,.18)}.recipe-30 .recipe-ingredient-label{font-size:.72rem;margin-top:3px}
.lollipop-real-ingredient{position:relative;display:block;width:88px;height:67px;margin:0 auto;filter:drop-shadow(0 5px 4px rgba(76,37,60,.25))}
.lollipop-sugar-jar .sugar-glass{position:absolute;left:17px;top:14px;width:55px;height:48px;border:3px solid #a8c5d1;border-radius:8px 8px 14px 14px;background:linear-gradient(105deg,rgba(255,255,255,.88),rgba(210,239,247,.5) 32%,rgba(255,255,255,.8));box-shadow:inset 0 -25px 0 rgba(252,250,242,.92),inset 8px 0 7px rgba(255,255,255,.7)}.lollipop-sugar-jar .sugar-glass::after{content:'';position:absolute;left:6px;right:6px;bottom:5px;height:18px;background:radial-gradient(circle,#d9d5c9 0 1px,transparent 1.8px);background-size:7px 6px;opacity:.9}.sugar-lid{position:absolute;z-index:3;left:14px;top:7px;width:61px;height:14px;border-radius:6px;background:repeating-linear-gradient(90deg,#b77f52 0 4px,#8e5f3d 5px 7px);border:2px solid #70472f}.sugar-scoop{position:absolute;z-index:4;right:2px;top:18px;width:35px;height:7px;border-radius:5px;background:linear-gradient(#d8dce1,#858c98);transform:rotate(-26deg);transform-origin:right}.sugar-scoop::before{content:'';position:absolute;left:-13px;top:-5px;width:19px;height:16px;border-radius:50%;background:linear-gradient(135deg,#f8fafc,#9aa1ad);box-shadow:inset 3px 3px 4px rgba(255,255,255,.7)}
.lollipop-dropper-bottle .dropper-glass{position:absolute;left:24px;top:24px;width:42px;height:39px;border:3px solid #9ebdc8;border-radius:7px 7px 14px 14px;background:linear-gradient(110deg,rgba(255,255,255,.8),rgba(249,160,199,.46));overflow:hidden}.lollipop-dropper-bottle .dropper-glass b{position:absolute;left:3px;right:3px;bottom:3px;height:24px;border-radius:4px 4px 10px 10px;background:linear-gradient(180deg,#ff7fba,#c83981);box-shadow:inset 7px 0 7px rgba(255,255,255,.3)}.dropper-neck{position:absolute;z-index:2;left:33px;top:15px;width:25px;height:14px;border-radius:4px;background:linear-gradient(90deg,#dae8ed,#8daab4,#e9f4f6);border:2px solid #78949f}.dropper-bulb{position:absolute;z-index:3;left:29px;top:1px;width:33px;height:24px;border-radius:50% 50% 35% 35%;background:linear-gradient(135deg,#7f3e72,#381f50);box-shadow:inset 6px 5px 6px rgba(255,255,255,.18)}.falling-flavor-drop{position:absolute;right:8px;top:42px;width:11px;height:15px;border-radius:70% 35% 65% 35%;background:#ef4d99;transform:rotate(45deg);box-shadow:0 0 5px rgba(239,77,153,.55);animation:lollipop-drop-fall 1.4s ease-in infinite}
.lollipop-color-bottles{width:100px}.color-bottle{position:absolute;bottom:4px;width:27px;height:48px;border:2px solid #a6bdc5;border-radius:6px 6px 9px 9px;background:linear-gradient(110deg,rgba(255,255,255,.8),rgba(214,234,240,.48));overflow:hidden}.color-bottle::before{content:'';position:absolute;left:5px;right:5px;top:-8px;height:15px;border-radius:4px;background:#eceff2;border:2px solid #9ca9b0}.color-bottle b{position:absolute;left:3px;right:3px;bottom:3px;height:34px;border-radius:4px 4px 7px 7px;box-shadow:inset 5px 0 5px rgba(255,255,255,.3)}.bottle-red{left:6px;transform:rotate(-9deg)}.bottle-blue{left:36px;bottom:7px}.bottle-yellow{right:5px;transform:rotate(9deg)}.bottle-red b{background:#ec4365}.bottle-blue b{background:#45aee8}.bottle-yellow b{background:#f3cf43}
.recipe-real-pour .lollipop-real-ingredient{transform:scale(.72);transform-origin:center center}
.recipe-30 .recipe-bowl{width:225px;height:142px;border:0;border-radius:48% 48% 46% 46% / 20% 20% 82% 82%;background:linear-gradient(105deg,#7f8790 0%,#eef3f5 15%,#9ca4ac 31%,#f9fbfc 50%,#8a939c 73%,#dce2e5 89%,#6b747d 100%);overflow:visible;box-shadow:inset 0 -18px 22px rgba(55,63,72,.3),inset 0 9px 10px rgba(255,255,255,.75),0 12px 18px rgba(92,34,65,.28)}
.recipe-30 .recipe-bowl::after{content:'';position:absolute;left:18px;top:24px;width:24px;height:84px;border-radius:50%;background:linear-gradient(90deg,rgba(255,255,255,.72),transparent);transform:rotate(14deg);pointer-events:none}
.recipe-30 .recipe-bowl-back-rim,.recipe-30 .recipe-bowl-front-rim,.recipe-30 .recipe-mixing-stick{display:block;position:absolute}.recipe-30 .recipe-bowl-back-rim{z-index:1;left:-4px;right:-4px;top:-5px;height:36px;border-radius:50%;background:linear-gradient(180deg,#f8fbfc,#737d86 48%,#dce3e6 52%,#5e6871);box-shadow:0 4px 7px rgba(40,45,53,.36)}.recipe-30 .recipe-bowl-front-rim{z-index:5;left:-5px;right:-5px;top:7px;height:25px;border-radius:0 0 50% 50%;border-bottom:8px solid #e9eef0;box-shadow:0 7px 7px rgba(45,50,58,.28);pointer-events:none}.recipe-30 .recipe-mixing-stick{z-index:6;left:50%;right:auto;top:-52px;width:13px;height:118px;margin-left:-6px;border-radius:8px;background:linear-gradient(90deg,#89542d,#d49356 48%,#704321);transform:rotate(18deg);transform-origin:50% 92%;box-shadow:3px 3px 5px rgba(61,35,26,.28)}
.recipe-30 .recipe-bowl-fill{z-index:3;left:7%;bottom:17px;width:86%;max-height:74%;border-radius:10% 10% 48% 48% / 12% 12% 75% 75%;background:linear-gradient(180deg,#fffdf5,#e9e2d6);box-shadow:inset 0 8px 9px rgba(255,255,255,.58);overflow:hidden}.recipe-30 .recipe-bowl-fill::before{content:'';position:absolute;z-index:2;left:0;right:0;top:0;height:16px;border-radius:50%;background:inherit;filter:brightness(1.1);box-shadow:inset 0 3px 5px rgba(255,255,255,.7),0 3px 5px rgba(72,42,59,.18)}
.recipe-30 .recipe-syrup-ribbon,.recipe-30 .recipe-syrup-shine{position:absolute;pointer-events:none;opacity:0}
.recipe-30 .recipe-syrup-ribbon{z-index:1;left:10%;top:10%;width:80%;height:72%;border-radius:50%;border:5px solid transparent;border-top-color:rgba(255,255,255,.82);border-right-color:color-mix(in srgb,var(--lollipop-color-2,#FF9AB5),#fff 30%);box-shadow:inset 0 0 12px rgba(255,255,255,.25);transform:rotate(-28deg) scale(.72)}
.recipe-30 .recipe-syrup-ribbon.alt{left:18%;top:22%;width:64%;height:55%;border-width:4px;border-top-color:color-mix(in srgb,var(--lollipop-color,#FF4F7B),#fff 18%);border-left-color:rgba(255,255,255,.55);border-right-color:transparent;transform:rotate(42deg) scale(.65)}
.recipe-30 .recipe-syrup-shine{z-index:2;left:42%;top:18%;width:46px;height:46px;margin-left:-23px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.85) 0%,rgba(255,255,255,.35) 42%,transparent 72%);filter:blur(.2px)}
.recipe-30.lollipop-ingredient-1 .recipe-bowl-fill{background:linear-gradient(180deg,#fffdf8,#e9e1d4)}.recipe-30.lollipop-ingredient-2 .recipe-bowl-fill{background:linear-gradient(180deg,#ffc2df,#e96ca9)}.recipe-30 .recipe-bowl-label{display:none}.recipe-30 .recipe-action{min-width:230px;min-height:52px;font-size:.9rem}
.recipe-30 .recipe-bowl.spin-lollipop{animation:none!important;transform:none!important}
.recipe-30 .recipe-bowl.spin-lollipop .recipe-mixing-stick{animation:lollipop-stick-stir 1s cubic-bezier(.45,.05,.25,1)}
.recipe-30 .recipe-bowl.spin-lollipop .recipe-bowl-fill{animation:lollipop-syrup-swirl 1s ease-in-out}
.recipe-30 .recipe-bowl.spin-lollipop .recipe-bowl-fill::before{animation:lollipop-syrup-surface 1s ease-in-out}
.recipe-30 .recipe-bowl.spin-lollipop .recipe-syrup-ribbon{opacity:1;animation:lollipop-ribbon-spin 1s cubic-bezier(.4,.05,.2,1)}
.recipe-30 .recipe-bowl.spin-lollipop .recipe-syrup-ribbon.alt{animation-name:lollipop-ribbon-spin-alt}
.recipe-30 .recipe-bowl.spin-lollipop .recipe-syrup-shine{opacity:1;animation:lollipop-shine-orbit 1s ease-in-out}
@keyframes lollipop-drop-fall{0%{transform:translateY(-8px) rotate(45deg);opacity:0}35%{opacity:1}100%{transform:translateY(28px) rotate(45deg);opacity:0}}
@keyframes lollipop-stick-stir{0%{transform:rotate(18deg) translate(0,0)}12%{transform:rotate(-12deg) translate(-16px,4px)}25%{transform:rotate(-38deg) translate(-10px,10px)}38%{transform:rotate(-8deg) translate(12px,12px)}50%{transform:rotate(36deg) translate(18px,6px)}62%{transform:rotate(48deg) translate(8px,-2px)}75%{transform:rotate(10deg) translate(-14px,2px)}88%{transform:rotate(-20deg) translate(-18px,8px)}100%{transform:rotate(18deg) translate(0,0)}}
@keyframes lollipop-syrup-swirl{0%,100%{filter:brightness(1) saturate(1);transform:scale(1) rotate(0deg)}20%{filter:brightness(1.08) saturate(1.15);transform:scale(1.04,.94) rotate(6deg)}45%{filter:brightness(1.12) saturate(1.2);transform:scale(.95,1.06) rotate(-8deg)}70%{filter:brightness(1.06) saturate(1.1);transform:scale(1.05,.93) rotate(5deg)}}
@keyframes lollipop-syrup-surface{0%,100%{transform:translateX(0) scaleX(1)}25%{transform:translateX(6px) scaleX(1.08)}50%{transform:translateX(-8px) scaleX(.92)}75%{transform:translateX(5px) scaleX(1.05)}}
@keyframes lollipop-ribbon-spin{0%{transform:rotate(-50deg) scale(.55);opacity:0}18%{opacity:1}100%{transform:rotate(310deg) scale(1.08);opacity:.9}}
@keyframes lollipop-ribbon-spin-alt{0%{transform:rotate(60deg) scale(.5);opacity:0}22%{opacity:1}100%{transform:rotate(-290deg) scale(1.12);opacity:.75}}
@keyframes lollipop-shine-orbit{0%{transform:translate(-8px,0);opacity:0}12%{opacity:.95}25%{transform:translate(28px,10px)}50%{transform:translate(4px,26px)}75%{transform:translate(-30px,12px)}100%{transform:translate(-8px,0);opacity:.35}}
.recipe-30 .recipe-finish{position:absolute;z-index:8;left:50%;top:50%;width:300px;min-height:245px;margin:0;transform:translate(-50%,-42%) scale(.72);pointer-events:none}
.recipe-30.finished .recipe-finish{opacity:1;transform:translate(-50%,-42%) scale(1)}
.recipe-30.finished .recipe-ingredients,.recipe-30.finished .recipe-flavors,.recipe-30.finished .recipe-bowl,.recipe-30.finished .recipe-action{opacity:0;pointer-events:none;transition:opacity .35s}
.big-finished-lollipop{position:relative;width:190px;height:218px;margin:0 auto;filter:drop-shadow(0 10px 9px rgba(118,24,77,.28));animation:big-lollipop-arrive .85s cubic-bezier(.2,.9,.25,1.3)}
.big-lollipop-candy{position:absolute;left:15px;top:0;width:160px;height:160px;border-radius:50%;background:repeating-conic-gradient(var(--lollipop-color,#FF4F7B) 0 24deg,var(--lollipop-color-2,#FF9AB5) 25deg 47deg,#fff7df 48deg 58deg);border:7px solid rgba(255,255,255,.78);box-shadow:inset 0 0 18px rgba(255,255,255,.65),0 0 0 4px var(--lollipop-color,#FF4F7B),0 0 22px color-mix(in srgb,var(--lollipop-color,#FF4F7B),transparent 35%);animation:big-lollipop-swirl 4s linear infinite}
.big-lollipop-candy::after{content:'';position:absolute;left:25px;top:20px;width:43px;height:28px;border-radius:50%;background:rgba(255,255,255,.42);transform:rotate(-28deg)}
.big-lollipop-candy i{position:absolute;width:9px;height:9px;border-radius:50%;background:#fff;box-shadow:0 0 8px #fff}.big-lollipop-candy i:nth-child(1){left:68px;top:33px}.big-lollipop-candy i:nth-child(2){left:112px;top:76px}.big-lollipop-candy i:nth-child(3){left:45px;top:108px}
.big-lollipop-stick{position:absolute;left:88px;top:157px;width:15px;height:61px;border-radius:0 0 8px 8px;background:linear-gradient(90deg,#e7d1ad,#fff7db 48%,#cdb68e);box-shadow:0 5px 5px rgba(0,0,0,.18)}
.big-lollipop-bow{position:absolute;z-index:2;left:68px;top:151px;font-size:2.5rem}
@keyframes big-lollipop-arrive{0%{opacity:0;transform:scale(.25) rotate(-25deg)}65%{transform:scale(1.12) rotate(4deg)}100%{opacity:1;transform:scale(1) rotate(0)}}
@keyframes big-lollipop-swirl{to{transform:rotate(360deg)}}

/* Cupcake Crown style studio — always-open swatches + Wear It */
.cupcake-crown-studio-activity{padding:58px 16px 18px;background:radial-gradient(circle at 50% 28%,#ffe0ef 0%,#ffb0d4 48%,#f278b4 100%)}
.cupcake-crown-studio{position:relative;width:100%;height:100%;min-height:315px;display:flex;align-items:center;justify-content:center;gap:28px}
.cupcake-crown-princess{width:210px;height:285px;flex:0 0 auto;filter:drop-shadow(0 8px 16px rgba(120,30,70,.28));transition:transform .45s}
.cupcake-crown-princess svg{width:100%;height:100%;display:block}
.wearing-cupcake-crown .cupcake-crown-princess{animation:tiara-princess-celebrate .7s ease-out}
.cupcake-crown-design-panel{
  width:250px;min-height:290px;padding:12px 14px;border-radius:22px;
  background:rgba(255,255,255,.88);border:3px solid rgba(218,84,145,.4);
  box-shadow:0 10px 22px rgba(120,30,70,.18);text-align:center
}
.cupcake-crown-preview{height:118px;display:flex;align-items:center;justify-content:center;filter:drop-shadow(0 0 10px rgba(255,105,180,.35))}
.cupcake-crown-preview .scaled-object{width:130px!important;height:150px!important}
.cupcake-crown-style-name{font-family:'Cinzel Decorative',serif;font-weight:900;color:#a82962;font-size:.82rem;margin:0 0 8px}
.cupcake-crown-swatches{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}
.cupcake-crown-swatch{
  min-width:45px;min-height:58px;border-radius:13px;border:2px solid rgba(168,41,98,.22);
  background:linear-gradient(180deg,#fff,#fff5f9);padding:5px 2px;color:#8a2a58;cursor:pointer;font-family:'Quicksand',sans-serif
}
.cupcake-crown-swatch span{
  display:block;width:28px;height:28px;margin:0 auto 3px;border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#fff,var(--swatch) 40%,color-mix(in srgb,var(--swatch),#5a2038 28%));
  box-shadow:0 2px 7px rgba(120,30,70,.22)
}
.cupcake-crown-swatch small{display:block;font-size:.48rem;line-height:1;font-weight:800}
.cupcake-crown-swatch.selected{border-color:#ffd76a;background:#fff6d8;box-shadow:0 0 12px rgba(255,215,106,.45);transform:translateY(-2px)}
.cupcake-crown-wear-btn{
  margin-top:10px;width:100%;min-height:42px;padding:8px 18px;border-radius:20px;border:2px solid #ffd76a;
  background:linear-gradient(135deg,#e94e9b,#ffbd4f);color:#fff;font-family:'Quicksand',sans-serif;font-weight:900;cursor:pointer
}
.cupcake-crown-wear-btn.ready{animation:tiara-wear-ready .8s ease-in-out infinite alternate}
.cupcake-crown-wear-btn.worn{animation:none;background:linear-gradient(180deg,#fff,#ffe8f2);color:#a82962}
.cupcake-crown-bake-btn{
  margin-top:8px;width:100%;min-height:36px;padding:6px 12px;border-radius:16px;border:2px solid rgba(168,41,98,.28);
  background:#fff;color:#8a2a58;font-family:'Quicksand',sans-serif;font-weight:800;font-size:.72rem;cursor:pointer
}
.cupcake-crown-back-btn{
  position:absolute;z-index:20;left:10px;top:10px;min-height:34px;padding:6px 12px;border-radius:14px;
  border:2px solid rgba(168,41,98,.35);background:rgba(255,255,255,.94);color:#8a2a58;
  font-family:'Quicksand',sans-serif;font-weight:800;font-size:.7rem;cursor:pointer
}

/* Full Cupcake Crown baking demo */
.cupcake-baking-activity{background:linear-gradient(180deg,#ffeaf3 0%,#ffc4dc 53%,#f589ba 100%);overflow:hidden}
.baking-kitchen{position:absolute;inset:0}.baking-window{position:absolute;left:4%;top:12%;width:112px;height:130px;border:7px solid #dd8eb1;border-radius:50px 50px 8px 8px;background:linear-gradient(180deg,#9ee8ff,#fff4d7 60%,#a9df8c);box-shadow:inset 0 0 0 3px rgba(255,255,255,.5)}
.baking-window::before,.baking-window::after{content:'';position:absolute;background:#e7a4c1}.baking-window::before{left:49%;top:0;width:5px;height:100%}.baking-window::after{left:0;top:48%;width:100%;height:5px}.baking-window span{position:absolute;left:14px;bottom:12px;width:24px;height:36px;background:#7fcf72;clip-path:polygon(50% 0,100% 100%,0 100%);box-shadow:32px 7px 0 #68b85e,65px -2px 0 #8ada79}
.baking-cabinets{position:absolute;left:0;right:0;bottom:0;height:27%;background:repeating-linear-gradient(90deg,#cb6f9d 0 2px,#e58eb7 3px 155px,#b95d8a 156px 159px)}
.baking-counter{position:absolute;left:0;right:0;bottom:27%;height:28px;background:linear-gradient(180deg,#fff9e8,#e7d2c7);box-shadow:0 7px 12px rgba(109,43,78,.25)}
.baking-princess{position:absolute;z-index:7;left:3%;bottom:3%;width:125px;height:180px;filter:drop-shadow(0 8px 10px rgba(102,34,73,.28))}
.baking-princess svg{width:100%;height:100%;display:block}
.baking-ingredients{position:absolute;z-index:8;left:18%;right:4%;top:12%;display:flex;justify-content:center;gap:10px}
.baking-ingredient{width:105px;min-height:112px;padding:7px 5px;border:3px solid rgba(206,62,126,.38);border-radius:18px;background:rgba(255,255,255,.9);color:#7a174a;font-family:'Quicksand',sans-serif;cursor:pointer;box-shadow:0 7px 14px rgba(126,36,77,.18);transition:opacity .3s,transform .3s,border-color .3s}
.baking-ingredient strong,.baking-ingredient small{display:block}.baking-ingredient strong{font-size:.65rem;margin-top:4px}.baking-ingredient small{font-size:.5rem;opacity:.72}.baking-ingredient.added{opacity:.42;transform:scale(.9);border-color:#82c987;pointer-events:none}
.baking-real-ingredient{position:relative;display:block;width:60px;height:64px;margin:0 auto}
.flour-bag{width:54px;height:60px;border-radius:8px 8px 12px 12px;background:linear-gradient(90deg,#e5c397,#fff2d2 45%,#d6ae7d);border:2px solid #b88752;box-shadow:inset 0 -8px 0 rgba(158,98,48,.1)}.flour-bag::before{content:'';position:absolute;left:5px;right:5px;top:-5px;height:11px;border-radius:5px;background:#d3a974}.flour-bag i{position:absolute;left:7px;right:7px;top:22px;padding:3px 0;border-radius:4px;background:#fff;color:#8d6238;font-size:.48rem;font-style:normal;font-weight:900}
.fresh-egg{width:45px;height:59px;border-radius:50% 50% 46% 46%/58% 58% 42% 42%;background:radial-gradient(circle at 35% 27%,#fff,#f4e0bd 72%);border:2px solid #d6bd91;transform:rotate(8deg);box-shadow:0 5px 7px rgba(0,0,0,.16)}.fresh-egg i{position:absolute;left:13px;top:17px;width:15px;height:19px;border-radius:50%;background:#f6b72b;opacity:.3}
.milk-carton{width:50px;height:61px;background:linear-gradient(90deg,#f7fbff,#cdeeff);border:2px solid #75afd0;clip-path:polygon(13% 15%,30% 0,70% 0,87% 15%,87% 100%,13% 100%)}.milk-carton::before{content:'';position:absolute;left:14px;top:0;width:22px;height:13px;background:#77b8df;clip-path:polygon(0 100%,50% 0,100% 100%)}.milk-carton i{position:absolute;left:8px;right:8px;top:28px;padding:3px 0;background:#fff;color:#3784b2;font-size:.48rem;font-style:normal;font-weight:900}
.butter-block{width:58px;height:35px;margin-top:18px;border-radius:5px;background:linear-gradient(135deg,#fff4a8,#f5c83d);border:2px solid #d7a917;box-shadow:0 5px 6px rgba(0,0,0,.15)}.butter-block::before{content:'BUTTER';position:absolute;inset:6px 4px auto;color:#aa7c0b;font-size:.42rem;font-weight:900}.butter-block i{position:absolute;right:8px;top:-7px;width:22px;height:7px;border-radius:50%;background:rgba(255,255,255,.55)}
.sugar-bowl{width:60px;height:38px;margin-top:20px;border-radius:5px 5px 28px 28px;background:linear-gradient(180deg,#f7bfd8,#d87ca9);border:2px solid #ad507d}.sugar-bowl::before{content:'';position:absolute;left:5px;right:5px;top:-13px;height:22px;border-radius:50%;background:radial-gradient(circle,#fff 0 2px,transparent 2.5px) 0 0/8px 8px,#fdf6f0;box-shadow:inset 0 -4px 5px rgba(0,0,0,.08)}
.baking-flying-ingredient{position:absolute;z-index:20;width:56px;height:56px;transition:left .68s cubic-bezier(.2,.8,.2,1),top .68s cubic-bezier(.2,.8,.2,1),transform .68s,opacity .68s;pointer-events:none}
.baking-mixing-station{position:absolute;z-index:7;left:18%;bottom:calc(27% + 30px);top:auto;width:180px;text-align:center}
.baking-bowl{position:relative;width:170px;height:118px;margin:0 auto;border:7px solid #ba3975;border-top:5px solid #ed8eb8;border-radius:18px 18px 90px 90px;background:linear-gradient(90deg,rgba(255,255,255,.65),rgba(236,118,172,.32));overflow:hidden;box-shadow:inset 0 8px 15px rgba(124,39,78,.13),0 9px 15px rgba(113,36,73,.18);transform-origin:50% 80%}
.baking-batter{position:absolute;left:0;right:0;bottom:0;height:12%;background:linear-gradient(180deg,#ffe3a4,#eebd62);transition:height .5s;box-shadow:inset 0 8px 8px rgba(255,255,255,.25)}
.baking-whisk{position:absolute;z-index:3;left:92px;top:-18px;width:9px;height:92px;border-radius:5px;background:#8d8b96;transform:rotate(16deg);transform-origin:50% 100%}.baking-whisk::after{content:'';position:absolute;left:-15px;bottom:-21px;width:35px;height:42px;border:4px solid #a3a1ac;border-radius:50%}
.baking-bowl.mixing .baking-whisk{animation:baking-whisk-mix .28s ease-in-out 6 alternate}.baking-bowl.mixing .baking-batter{animation:baking-batter-swirl .42s linear infinite}
.baking-step-label{font-size:.7rem;font-weight:900;color:#8d2759;margin-top:6px}
.cupcake-pan{
  position:absolute;z-index:6;left:40%;bottom:calc(27% + 28px);top:auto;
  width:210px;height:88px;padding:12px 10px 14px;display:flex;gap:7px;align-items:flex-end;justify-content:center;
  border-radius:16px;background:linear-gradient(145deg,#d5d8de,#8a8f99 55%,#6a6f78);
  border:5px solid #5c616a;box-shadow:0 8px 13px rgba(0,0,0,.22),inset 0 2px 0 rgba(255,255,255,.45),inset 0 -6px 10px rgba(0,0,0,.18);
  opacity:.28;transform:scale(.85);transition:opacity .5s,transform .6s,left 1s,bottom 1s,top 1s
}
.cupcake-pan::before{content:'';position:absolute;left:10px;right:10px;top:7px;height:4px;border-radius:3px;background:rgba(255,255,255,.28);pointer-events:none}
.cupcake-well{
  position:relative;flex:none;width:34px;height:40px;
  border-radius:50% 50% 46% 46%;
  background:radial-gradient(ellipse at 50% 28%,#6a6f78,#2e3238 68%);
  box-shadow:inset 0 5px 8px rgba(0,0,0,.55),inset 0 -2px 0 rgba(255,255,255,.12),0 2px 0 rgba(255,255,255,.2);
  overflow:visible
}
.cupcake-well .cc-liner{
  position:absolute;left:-3px;right:-3px;top:10px;bottom:-1px;border-radius:42% 42% 48% 48%;
  background:
    repeating-linear-gradient(90deg,#ff9ec8 0 3px,#fff6fb 3px 5px,#ffc0dc 5px 8px,#fff 8px 10px);
  box-shadow:inset 0 -4px 6px rgba(160,40,90,.18),0 2px 3px rgba(80,20,50,.15);z-index:1
}
.cupcake-well .cc-batter{
  position:absolute;left:4px;right:4px;bottom:8px;height:0;border-radius:50%;
  background:radial-gradient(circle at 40% 30%,#ffe7b0,#f0b84a 55%,#d4922a);
  box-shadow:inset 0 2px 3px rgba(255,255,255,.45),0 1px 2px rgba(100,50,10,.2);
  z-index:2;transition:height .55s cubic-bezier(.2,.9,.3,1.1),bottom .55s;opacity:0
}
.cupcake-pan.visible{opacity:1;transform:scale(1)}
.cupcake-pan.filled .cupcake-well .cc-batter{height:20px;bottom:14px;opacity:1}
.cupcake-pan.filled .cupcake-well:nth-child(2) .cc-batter{transition-delay:.08s}
.cupcake-pan.filled .cupcake-well:nth-child(3) .cc-batter{transition-delay:.16s}
.cupcake-pan.filled .cupcake-well:nth-child(4) .cc-batter{transition-delay:.24s}
.cupcake-pan.filled .cupcake-well:nth-child(5) .cc-batter{transition-delay:.32s}
.cupcake-pan.into-oven{left:68%;bottom:calc(27% + 90px);top:auto;transform:scale(.42);opacity:0}
/* Shared mini cupcake art (oven + crown) */
.mini-cupcake,.crown-cupcake{position:relative;display:inline-block;width:28px;height:34px;vertical-align:bottom}
.mini-cupcake i,.crown-cupcake i{position:absolute;display:block;box-sizing:border-box}
.mini-cupcake .mc-wrap,.crown-cupcake .mc-wrap{
  left:2px;right:2px;bottom:0;height:16px;border-radius:3px 3px 8px 8px;
  background:repeating-linear-gradient(90deg,#ff9ec8 0 3px,#fff 3px 5px,#ffc0dc 5px 8px);
  box-shadow:inset 0 -3px 4px rgba(140,30,80,.2)
}
.mini-cupcake .mc-cake,.crown-cupcake .mc-cake{
  left:5px;right:5px;bottom:12px;height:10px;border-radius:50% 50% 30% 30%;
  background:linear-gradient(180deg,#f6c56a,#d4922a)
}
.mini-cupcake .mc-frost,.crown-cupcake .mc-frost{
  left:3px;right:3px;bottom:16px;height:14px;border-radius:50% 50% 40% 40%;
  background:radial-gradient(circle at 40% 30%,#fff,#ff8ec8 55%,#e4458f);
  box-shadow:0 2px 3px rgba(140,30,80,.2)
}
.mini-cupcake .mc-jewel,.crown-cupcake .mc-jewel{
  left:50%;top:2px;width:7px;height:7px;margin-left:-3.5px;border-radius:50%;
  background:radial-gradient(circle at 30% 30%,#fff,#ffd76a 45%,#e8a020);box-shadow:0 0 4px #ffd76a
}
.crown-cupcake{width:42px;height:52px}
.crown-cupcake .mc-wrap{height:22px}.crown-cupcake .mc-cake{bottom:18px;height:14px}
.crown-cupcake .mc-frost{bottom:24px;height:20px}.crown-cupcake .mc-jewel{width:10px;height:10px;margin-left:-5px;top:0}
.crown-cupcake:nth-child(1) .mc-frost,.crown-cupcake:nth-child(5) .mc-frost{background:radial-gradient(circle at 40% 30%,#fff,#ffb6e0 55%,#ff69b4)}
.crown-cupcake:nth-child(2) .mc-frost,.crown-cupcake:nth-child(4) .mc-frost{background:radial-gradient(circle at 40% 30%,#fff,#c9a0ff 55%,#9b59d6)}
.crown-cupcake:nth-child(3) .mc-frost{background:radial-gradient(circle at 40% 30%,#fff,#ffe08a 55%,#f0b429)}
.baking-oven{position:absolute;z-index:5;right:3%;bottom:calc(27% + 28px);top:auto;width:168px;height:230px;border-radius:18px;background:linear-gradient(90deg,#c9cbd0,#f1f1f2 42%,#aeb1b8);border:6px solid #858991;box-shadow:0 12px 20px rgba(0,0,0,.25)}
.baking-bowl[role="button"],.cupcake-pan[role="button"],.baking-oven[role="button"]{outline:0}.baking-bowl.kitchen-control-ready,.cupcake-pan.kitchen-control-ready,.baking-oven.kitchen-control-ready{cursor:pointer;outline:4px solid #fff0a3;outline-offset:5px;animation:baking-control-ready 1s ease-in-out infinite alternate}.cupcake-pan.kitchen-control-ready{opacity:1;transform:scale(1)}.baking-bowl[role="button"]:focus-visible,.cupcake-pan[role="button"]:focus-visible,.baking-oven[role="button"]:focus-visible{outline:5px solid #fff;outline-offset:5px}
.oven-controls{height:42px;border-bottom:4px solid #777b84;display:flex;align-items:center;gap:10px;padding:0 11px}.oven-controls i{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#7f838c);border:2px solid #676b73}.oven-controls span{margin-left:auto;padding:3px 6px;border-radius:5px;background:#231f28;color:#ffcf6b;font-size:.58rem;font-weight:900}
.oven-window{position:absolute;left:14px;right:14px;top:60px;height:128px;border-radius:8px;background:linear-gradient(180deg,#29232d,#100d13);border:7px solid #737780;overflow:hidden;box-shadow:inset 0 0 17px rgba(0,0,0,.8)}.oven-rack{position:absolute;left:8px;right:8px;bottom:28px;height:4px;background:#9b9da3;box-shadow:0 9px 0 #5d6067}.oven-cupcakes{position:absolute;left:12px;right:12px;bottom:30px;display:flex;justify-content:space-around;align-items:flex-end;opacity:0}.oven-cupcakes .mini-cupcake{transform:scale(.55);transform-origin:50% 100%}
.oven-handle{position:absolute;left:22px;right:22px;top:50px;height:7px;border-radius:5px;background:#4e5158;box-shadow:0 3px 3px rgba(0,0,0,.35)}
.oven-heat{position:absolute;inset:50px 8px 12px;opacity:0;pointer-events:none}.oven-heat i{position:absolute;left:28%;bottom:22px;width:6px;height:70px;border-radius:50%;background:linear-gradient(transparent,#ffb13b,transparent);filter:blur(3px);animation:oven-heat-rise 1.2s linear infinite}.oven-heat i:nth-child(2){left:50%;animation-delay:.35s}.oven-heat i:nth-child(3){left:72%;animation-delay:.7s}
.oven-baking .oven-window{box-shadow:inset 0 0 45px rgba(255,119,30,.72)}.oven-baking .oven-heat{opacity:1}.oven-baking .oven-cupcakes{opacity:1}.oven-baking .oven-cupcakes .mini-cupcake{animation:cupcake-rise 3.6s ease-out forwards}.oven-baking .oven-cupcakes .mini-cupcake:nth-child(2){animation-delay:.2s}.oven-baking .oven-cupcakes .mini-cupcake:nth-child(3){animation-delay:.4s}
.baking-next-btn{position:absolute;z-index:9;left:43%;bottom:6%;min-width:240px;min-height:52px;border-radius:24px;border:3px solid #FFD76A;background:#fff;color:#8d2759;font-family:'Quicksand',sans-serif;font-weight:900;cursor:pointer;box-shadow:0 7px 14px rgba(119,35,75,.22)}.baking-next-btn:disabled{opacity:.45;cursor:default}.baking-next-btn.ready{background:linear-gradient(135deg,#e54e99,#ffbd4f);color:#fff;animation:recipe-action-ready 1s ease-in-out infinite}
.cupcake-crown-result{position:absolute;z-index:15;left:50%;top:53%;width:370px;padding:20px;transform:translate(-50%,-50%) scale(.2);opacity:0;border-radius:28px;background:rgba(255,255,255,.94);border:4px solid #FFD76A;text-align:center;box-shadow:0 0 35px rgba(255,215,106,.62),0 16px 28px rgba(102,33,69,.28)}
.cupcake-crown-row{display:flex;align-items:flex-end;justify-content:center;gap:2px}.cupcake-crown-row .crown-cupcake{margin:0 -2px}.cupcake-crown-row .crown-cupcake:nth-child(2),.cupcake-crown-row .crown-cupcake:nth-child(4){transform:translateY(-17px)}.cupcake-crown-row .crown-cupcake:nth-child(3){transform:translateY(-34px)}.cupcake-crown-jewels{font-size:1.5rem;margin-top:4px}.cupcake-crown-result strong{display:block;margin-top:7px;font-family:'Cinzel Decorative',serif;color:#a82962}
.baking-finished .cupcake-crown-result{opacity:1;transform:translate(-50%,-50%) scale(1);transition:opacity .4s,transform .75s cubic-bezier(.2,.9,.25,1.25)}.baking-finished .baking-ingredients,.baking-finished .baking-mixing-station,.baking-finished .cupcake-pan,.baking-finished .baking-oven,.baking-finished .baking-next-btn{opacity:0;pointer-events:none;transition:opacity .35s}
@keyframes baking-whisk-mix{from{transform:rotate(-18deg) translateX(-18px)}to{transform:rotate(27deg) translateX(16px)}}
@keyframes baking-batter-swirl{to{filter:hue-rotate(18deg);transform:scaleX(1.05)}}
@keyframes oven-heat-rise{0%{transform:translateY(15px);opacity:0}35%{opacity:1}100%{transform:translateY(-40px);opacity:0}}
@keyframes cupcake-rise{0%{transform:scale(.35) translateY(14px);opacity:.4}65%{transform:scale(.62) translateY(-3px);opacity:1}100%{transform:scale(.55) translateY(0);opacity:1}}
@keyframes baking-control-ready{from{filter:brightness(1);box-shadow:0 0 8px rgba(255,223,104,.35)}to{filter:brightness(1.12);box-shadow:0 0 25px rgba(255,223,104,.9)}}

/* Gumdrop Carriage four-wheel drag-and-drop workshop */
.gumdrop-carriage-activity{--carriage-color:#EF5FA3;--carriage-light:#FFB7D7;background:linear-gradient(180deg,#fff0f7 0%,#ffc5df 54%,#f18abb 100%);overflow:hidden;touch-action:none}
.carriage-workshop{position:absolute;inset:0}.carriage-workshop::before{content:'';position:absolute;inset:0 0 28%;background:radial-gradient(circle at 18% 22%,rgba(255,255,255,.75),transparent 20%),linear-gradient(180deg,#ffeef8,#f9c9e2)}
.carriage-clouds{position:absolute;left:5%;right:5%;top:15%;height:80px;background:radial-gradient(ellipse at 10% 60%,rgba(255,255,255,.72) 0 34px,transparent 35px),radial-gradient(ellipse at 65% 35%,rgba(255,255,255,.58) 0 42px,transparent 43px),radial-gradient(ellipse at 90% 65%,rgba(255,255,255,.65) 0 30px,transparent 31px)}
.carriage-road{position:absolute;left:0;right:0;bottom:0;height:29%;background:linear-gradient(180deg,#d69dbe,#a9618d);border-top:9px solid #fff0cd;box-shadow:inset 0 13px 0 rgba(255,255,255,.16);overflow:hidden}
.carriage-road::after{content:'';position:absolute;left:0;top:28%;width:200%;height:8px;background:repeating-linear-gradient(90deg,#fff0cd 0 36px,transparent 36px 64px);opacity:.85;transform:translateX(var(--road-shift,0px));transition:transform .05s linear}
.carriage-princess{position:absolute;z-index:9;left:2%;bottom:3%;width:120px;height:175px;filter:drop-shadow(0 8px 10px rgba(105,32,71,.3))}
.carriage-princess svg{width:100%;height:100%;display:block}
.gumdrop-carriage{position:absolute;z-index:7;left:19%;top:auto;bottom:3%;width:430px;height:285px;filter:drop-shadow(0 15px 13px rgba(104,35,73,.3));will-change:left,transform;transform-origin:50% 100%}
.gumdrop-carriage.drivable .carriage-body,.gumdrop-carriage.drivable .carriage-canopy,.gumdrop-carriage.drivable .carriage-pole{cursor:grab}
.gumdrop-carriage.driving .carriage-body,.gumdrop-carriage.driving .carriage-canopy,.gumdrop-carriage.driving .carriage-pole{cursor:grabbing}
.gumdrop-carriage.driving{animation:carriage-drive-bob .35s ease-in-out infinite}
@keyframes carriage-drive-bob{0%,100%{transform:translateY(0) rotate(var(--carriage-lean,0deg))}50%{transform:translateY(-4px) rotate(var(--carriage-lean,0deg))}}
.carriage-parade{position:absolute;z-index:5;left:0;right:0;bottom:4%;height:110px;pointer-events:none;overflow:visible;opacity:0}
.carriage-parade-track{display:flex;align-items:flex-end;gap:28px;width:max-content;padding-left:8px}
.carriage-rolling .carriage-parade{opacity:1}
.carriage-rolling .carriage-parade-track{animation:carriage-parade-march 4.2s linear}
.parade-unit{position:relative;flex:none;display:flex;flex-direction:column;align-items:center;filter:drop-shadow(0 6px 6px rgba(90,25,60,.28))}
.parade-unit-balloon{font-size:1.7rem;line-height:1;animation:parade-bob 1s ease-in-out infinite}
.parade-unit:nth-child(2n) .parade-unit-balloon{animation-delay:.2s}
.parade-unit:nth-child(3n) .parade-unit-balloon{animation-delay:.4s}
.parade-mini-carriage{position:relative;width:78px;height:52px}
.parade-mini-body{position:absolute;left:8px;bottom:14px;width:58px;height:28px;border-radius:40% 40% 30% 30%;background:linear-gradient(145deg,var(--p-light,#FFB7D7),var(--p-color,#EF5FA3));border:3px solid rgba(255,255,255,.75);box-shadow:inset 0 -6px 8px rgba(90,20,50,.15)}
.parade-mini-canopy{position:absolute;left:18px;bottom:34px;width:38px;height:18px;border-radius:50% 50% 4px 4px;background:linear-gradient(180deg,var(--p-light,#FFB7D7),var(--p-color,#EF5FA3));border:3px solid rgba(255,255,255,.7)}
.parade-mini-wheel{position:absolute;bottom:2px;width:16px;height:16px;border-radius:50%;background:repeating-conic-gradient(#F24F75 0 40deg,#FF9CB2 41deg 70deg,#fff 71deg 80deg);border:2px solid #c43a5a;box-sizing:border-box}
.parade-mini-wheel.w1{left:10px}.parade-mini-wheel.w2{right:10px}
.carriage-rolling .parade-mini-wheel{animation:gumdrop-wheel-spin .35s linear infinite}
.parade-unit-label{margin-top:2px;font-family:'Quicksand',sans-serif;font-size:.55rem;font-weight:900;color:#7a174a;text-shadow:0 1px 0 rgba(255,255,255,.6)}
@keyframes carriage-parade-march{0%{transform:translateX(105%)}100%{transform:translateX(-110%)}}
@keyframes parade-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}
.carriage-body{position:absolute;z-index:3;left:58px;top:81px;width:315px;height:142px;border-radius:48% 48% 38% 38%;background:linear-gradient(145deg,var(--carriage-light),var(--carriage-color) 52%,color-mix(in srgb,var(--carriage-color),#64204b 32%));border:7px solid rgba(255,255,255,.7);box-shadow:inset 0 0 0 5px rgba(255,215,0,.32),inset 0 -18px 25px rgba(113,30,73,.2)}
.carriage-body::before{content:'';position:absolute;left:15px;right:15px;top:13px;height:22px;border-radius:50%;background:rgba(255,255,255,.18)}
.carriage-window{position:absolute;left:46px;top:25px;width:82px;height:76px;border-radius:42px 42px 14px 14px;background:linear-gradient(180deg,#b9eeff,#e8f9ff);border:6px solid #ffd76a;box-shadow:inset 0 0 14px rgba(73,135,170,.24)}
.carriage-window::before,.carriage-window::after{content:'';position:absolute;background:#ffd76a}.carriage-window::before{left:47%;top:0;width:5px;height:100%}.carriage-window::after{left:0;top:47%;width:100%;height:5px}
.carriage-door{position:absolute;right:48px;top:24px;width:72px;height:103px;border-radius:36px 36px 11px 11px;background:color-mix(in srgb,var(--carriage-color),#fff 20%);border:5px solid #ffd76a;box-shadow:inset 0 0 0 3px rgba(255,255,255,.2)}.carriage-door::after{content:'';position:absolute;right:9px;top:52px;width:10px;height:10px;border-radius:50%;background:#fff0a8;box-shadow:0 0 6px #fff}
.carriage-lights{position:absolute;left:20px;top:58px;width:15px;height:24px;border-radius:50%;background:#fff2a0;box-shadow:0 0 12px #ffd76a,260px 0 0 #fff2a0,260px 0 12px #ffd76a}
.carriage-decoration{position:absolute;left:50%;bottom:6px;transform:translateX(-50%);font-size:1.8rem;filter:drop-shadow(0 0 5px #fff)}
.carriage-canopy{position:absolute;z-index:4;left:104px;top:24px;width:220px;height:94px;border-radius:50% 50% 15px 15px;background:linear-gradient(180deg,var(--carriage-light),var(--carriage-color));border:7px solid rgba(255,255,255,.72);box-shadow:inset 0 -11px 0 rgba(255,215,0,.22);transition:clip-path .35s,border-radius .35s}
.carriage-canopy span{position:absolute;left:50%;top:-22px;width:32px;height:32px;transform:translateX(-50%) rotate(45deg);background:#ffd76a;border:4px solid #fff2ac;box-shadow:0 0 12px rgba(255,215,0,.55)}
.gumdrop-carriage-activity[data-canopy="crown"] .carriage-canopy{clip-path:polygon(0 100%,0 36%,17% 4%,34% 36%,50% 0,66% 36%,83% 4%,100% 36%,100% 100%);border-radius:8px;padding-top:18px}
.gumdrop-carriage-activity[data-canopy="heart"] .carriage-canopy{border-radius:50% 50% 28% 28%;clip-path:polygon(50% 100%,5% 48%,5% 25%,18% 7%,38% 5%,50% 20%,62% 5%,82% 7%,95% 25%,95% 48%)}
.carriage-pole{position:absolute;z-index:2;left:356px;top:176px;width:164px;height:11px;border-radius:8px;background:linear-gradient(#fff7bf,#d7a42e 58%,#9d731d);transform:rotate(-8deg);transform-origin:8px 50%;box-shadow:0 5px 9px rgba(110,57,20,.22)}
.carriage-pole::before{content:'';position:absolute;left:-9px;top:50%;width:22px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff6bc,#ffd76a 54%,#b97d1e);border:4px solid rgba(255,255,255,.7);transform:translateY(-50%);box-shadow:0 0 0 3px rgba(255,215,106,.25)}
.wheel-socket{position:absolute;width:78px;height:78px;border-radius:50%;border:4px dashed rgba(110,39,77,.48);background:rgba(255,255,255,.26);display:flex;align-items:center;justify-content:center;box-sizing:border-box}
.wheel-socket>small{font-size:1rem;font-weight:900;color:rgba(110,39,77,.52)}.wheel-socket.filled{border-style:solid;border-color:rgba(255,215,0,.55);background:transparent}.wheel-socket.filled>small{display:none}
.carriage-back-wheels{position:absolute;z-index:2;inset:0;pointer-events:none}.carriage-front-wheels{position:absolute;z-index:5;inset:0;pointer-events:none}
.carriage-back-wheels .wheel-socket,.carriage-front-wheels .wheel-socket{pointer-events:auto}
/* Far axle (behind body) + near axle (in front) — clearly separated front/rear */
.socket-0{left:48px;top:168px;transform:scale(.72)} /* rear far */
.socket-1{left:268px;top:168px;transform:scale(.72)} /* front far */
.socket-2{left:88px;top:198px} /* rear near */
.socket-3{left:308px;top:198px} /* front near */
.carriage-wheel-piece{position:relative;width:70px;height:70px;border-radius:50%;background:repeating-conic-gradient(var(--wheel-color) 0 25deg,var(--wheel-light) 26deg 49deg,#fff 50deg 57deg);border:5px solid var(--wheel-color);box-shadow:inset 0 0 0 5px rgba(255,255,255,.52),0 6px 9px rgba(99,30,68,.25);cursor:grab;touch-action:none;box-sizing:border-box;z-index:3;transform:rotate(var(--spin,0deg))}
.carriage-wheel-piece i{position:absolute;left:50%;top:50%;width:22px;height:22px;border-radius:50%;transform:translate(-50%,-50%);background:#ffd76a;border:4px solid #fff0a2}.carriage-wheel-piece span{position:absolute;inset:8px;border-radius:50%;border:3px dotted rgba(255,255,255,.72)}
.carriage-wheel-piece small{position:absolute;left:50%;top:72px;transform:translateX(-50%);width:82px;text-align:center;font-size:.48rem;font-weight:900;color:#7a174a}.wheel-socket .carriage-wheel-piece small{display:none}
.carriage-wheel-piece.dragging{z-index:50;cursor:grabbing;transform:scale(1.18) rotate(8deg);box-shadow:0 14px 25px rgba(84,28,61,.4);pointer-events:none}
.carriage-dust{position:absolute;z-index:6;left:40px;bottom:12px;width:120px;height:28px;pointer-events:none;opacity:0}
.carriage-dust i{position:absolute;bottom:0;width:14px;height:14px;border-radius:50%;background:rgba(255,240,210,.75);filter:blur(1px)}
.carriage-dust i:nth-child(1){left:8px}.carriage-dust i:nth-child(2){left:36px;width:10px;height:10px}.carriage-dust i:nth-child(3){left:58px;width:16px;height:16px}.carriage-dust i:nth-child(4){left:88px;width:11px;height:11px}
.gumdrop-carriage.driving .carriage-dust,.carriage-rolling .carriage-dust{opacity:1}
.gumdrop-carriage.driving .carriage-dust i,.carriage-rolling .carriage-dust i{animation:carriage-dust-puff .55s ease-out infinite}
.gumdrop-carriage.driving .carriage-dust i:nth-child(2){animation-delay:.08s}.gumdrop-carriage.driving .carriage-dust i:nth-child(3){animation-delay:.16s}.gumdrop-carriage.driving .carriage-dust i:nth-child(4){animation-delay:.24s}
.carriage-rolling .carriage-dust i:nth-child(2){animation-delay:.08s}.carriage-rolling .carriage-dust i:nth-child(3){animation-delay:.16s}.carriage-rolling .carriage-dust i:nth-child(4){animation-delay:.24s}
@keyframes carriage-dust-puff{0%{opacity:0;transform:translate(0,0) scale(.4)}40%{opacity:.9;transform:translate(-10px,-8px) scale(1)}100%{opacity:0;transform:translate(-28px,-4px) scale(1.3)}}
.carriage-wheel-tray{position:absolute;z-index:10;left:16%;bottom:2%;width:390px;min-height:105px;padding:8px 14px;border-radius:20px;background:rgba(255,255,255,.72);border:3px solid rgba(218,84,145,.35);text-align:center;transition:opacity .35s,transform .35s}.carriage-wheel-tray>strong{display:block;margin-bottom:5px;font-size:.65rem;color:#8d2759}.carriage-wheel-pieces{display:flex;justify-content:center;gap:20px;min-height:78px}
.gumdrop-carriage-activity.wheels-ready .carriage-wheel-tray{opacity:0;transform:translateY(16px);pointer-events:none}
.carriage-design-panel{position:absolute;z-index:9;right:2%;top:14%;width:220px;padding:12px;border-radius:21px;background:rgba(255,255,255,.8);border:3px solid rgba(218,84,145,.35);box-shadow:0 8px 17px rgba(111,34,74,.18)}
.carriage-design-group{margin-bottom:10px}.carriage-design-group:last-child{margin-bottom:0}.carriage-design-group>strong{display:block;margin-bottom:5px;color:#8d2759;font-size:.65rem;text-transform:uppercase}.carriage-design-group>div{display:flex;gap:5px;justify-content:center}
.carriage-color-options button{width:34px;height:34px;border-radius:50%;border:3px solid #fff;background:var(--swatch);box-shadow:0 2px 5px rgba(0,0,0,.2);cursor:pointer}.carriage-color-options button.selected{outline:3px solid #ffd76a;transform:scale(1.08)}
.carriage-canopy-options button,.carriage-decor-options button{flex:1;min-height:36px;padding:4px;border:2px solid rgba(170,56,108,.25);border-radius:10px;background:#fff;color:#7a174a;font-family:'Quicksand',sans-serif;font-size:.5rem;font-weight:800;cursor:pointer}.carriage-decor-options button{font-size:1rem}.carriage-canopy-options button.selected,.carriage-decor-options button.selected{border-color:#ffd76a;background:#fff4c9}
.carriage-roll-btn{position:absolute;z-index:10;right:3%;bottom:5%;min-width:220px;min-height:52px;border-radius:24px;border:3px solid #ffd76a;background:#fff;color:#8d2759;font-family:'Quicksand',sans-serif;font-weight:900}.carriage-roll-btn:disabled{opacity:.5}.carriage-roll-btn.ready{background:linear-gradient(135deg,#e94e9b,#ffbd4f);color:#fff;animation:recipe-action-ready 1s ease-in-out infinite;cursor:pointer}
.carriage-rolling .gumdrop-carriage{animation:gumdrop-carriage-roll 4.2s cubic-bezier(.45,.05,.25,1)}
.carriage-rolling .carriage-wheel-piece{animation:gumdrop-wheel-spin .4s linear infinite}
.carriage-rolling .carriage-road::after,.carriage-rolling .carriage-clouds{animation:carriage-scenery-scroll 4.2s linear}
.carriage-rolling .carriage-body{animation:carriage-body-jiggle 4.2s ease-in-out}
.carriage-rolling .carriage-pole{animation:carriage-pole-wag 4.2s ease-in-out}
.carriage-rolling .carriage-decoration{animation:carriage-decor-bounce 4.2s ease-in-out}
@keyframes gumdrop-carriage-roll{
  0%{left:-48%;transform:translateY(0) rotate(-3deg) scale(.9)}
  12%{left:2%;transform:translateY(-6px) rotate(2deg) scale(1)}
  22%{left:14%;transform:translateY(0) rotate(-1deg) scale(1)}
  38%{left:30%;transform:translateY(-8px) rotate(2deg) scale(1.02)}
  50%{left:42%;transform:translateY(0) rotate(-2deg) scale(1)}
  66%{left:58%;transform:translateY(-5px) rotate(2deg) scale(1.01)}
  80%{left:48%;transform:translateY(0) rotate(-1deg) scale(.98)}
  100%{left:19%;transform:translateY(0) rotate(0) scale(1)}
}
@keyframes gumdrop-wheel-spin{to{transform:rotate(360deg)}}
@keyframes carriage-scenery-scroll{0%{transform:translateX(0)}100%{transform:translateX(-40%)}}
@keyframes carriage-body-jiggle{0%,100%{transform:none}20%{transform:rotate(-2deg)}45%{transform:rotate(2.5deg)}70%{transform:rotate(-1.5deg)}}
@keyframes carriage-pole-wag{0%,100%{transform:rotate(-8deg)}30%{transform:rotate(-2deg)}60%{transform:rotate(-14deg)}}
@keyframes carriage-decor-bounce{0%,100%{transform:translateX(-50%) scale(1)}40%{transform:translateX(-50%) scale(1.25) translateY(-6px)}70%{transform:translateX(-50%) scale(.95)}}

/* Distinct making animations, one per recipe */
.recipe-bowl.spin-lollipop{animation:none}
@keyframes recipe-spin-lollipop{0%,100%{transform:none}}
.recipe-bowl.stack-crown{animation:recipe-stack-crown .8s cubic-bezier(.34,1.56,.64,1)}
@keyframes recipe-stack-crown{0%{transform:scaleY(.6) translateY(20px)}60%{transform:scaleY(1.15) translateY(-6px)}100%{transform:scaleY(1) translateY(0)}}
.recipe-bowl.roll-carriage{animation:recipe-roll-carriage .9s ease}
@keyframes recipe-roll-carriage{0%{transform:translateX(0) rotate(0)}50%{transform:translateX(18px) rotate(180deg)}100%{transform:translateX(0) rotate(360deg)}}
.recipe-bowl.pour-gingerbread{animation:recipe-pour-gingerbread .9s ease}
@keyframes recipe-pour-gingerbread{0%,100%{transform:scale(1)}40%{transform:scale(1.04) translateY(-3px)}70%{transform:scale(.98)}}

/* Gingerbread friend — bake & decorate studio (recipe 33) */
.recipe-33.gingerbread-designing .recipe-ingredients,
.recipe-33.gingerbread-designing .recipe-bowl,
.recipe-33.gingerbread-designing .recipe-process{opacity:0;pointer-events:none;transition:opacity .35s}
.recipe-33.gingerbread-designing .recipe-card{opacity:.35}
.recipe-33.gingerbread-designing .recipe-finish{
  position:absolute;z-index:14;left:50%;top:52%;width:min(94%,560px);min-height:0;margin:0;padding:0;
  background:transparent;border:0;box-shadow:none;opacity:1;pointer-events:auto;
  transform:translate(-50%,-50%) scale(1)
}
.recipe-33.gingerbread-designing .recipe-action{position:absolute;z-index:20;left:50%;bottom:4%;transform:translateX(-50%);min-width:240px}
.gingerbread-design-studio{display:flex;align-items:center;justify-content:center;gap:18px;width:100%}
.gb-preview-stage{
  position:relative;flex:none;width:190px;height:270px;
  display:flex;align-items:center;justify-content:center;
  border-radius:28px;background:radial-gradient(circle at 50% 28%,rgba(255,248,230,.98),rgba(255,220,180,.55) 42%,rgba(255,200,160,.2));
  border:3px solid rgba(196,122,58,.4);box-shadow:inset 0 0 28px rgba(255,255,255,.45),0 10px 22px rgba(92,40,28,.16);
  overflow:hidden;touch-action:none
}
.gb-preview-stage.celebrate{width:200px;height:250px;margin:0 auto 8px;animation:gb-present-pop .85s cubic-bezier(.2,.9,.25,1.25)}
.gb-preview-stage.decor-drop-ready{outline:3px dashed #c68642;outline-offset:-4px}
.recipe-33.finished .recipe-finish{width:min(88%,320px);min-height:300px;padding:16px 14px 18px;pointer-events:none}
.recipe-33.gingerbread-presented .recipe-action{opacity:0;pointer-events:none}
.gb-design-panel{
  flex:1;min-width:0;max-width:300px;padding:12px;border-radius:22px;
  background:rgba(255,255,255,.9);border:3px solid rgba(196,122,58,.4);box-shadow:0 10px 20px rgba(92,40,28,.14);text-align:center
}
.gb-design-group{margin-bottom:9px}.gb-design-group:last-child{margin-bottom:0}
.gb-design-group>strong{display:block;margin-bottom:5px;color:#7a3b16;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}
.gb-design-group>div{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}
.gb-design-group button{
  flex:1;min-width:0;min-height:38px;padding:4px 3px;border:2px solid rgba(122,59,22,.22);border-radius:11px;
  background:#fff;color:#6b2e12;font-family:'Quicksand',sans-serif;font-size:.48rem;font-weight:800;cursor:pointer;transition:transform .2s,border-color .2s,background .2s
}
.gb-paint-hint{margin:0;font-size:.58rem;font-weight:700;color:#8a4a2a;line-height:1.3}
.gb-icing-swatch{min-width:48px;background:linear-gradient(180deg,color-mix(in srgb,var(--swatch),#fff 18%),var(--swatch));border-color:var(--swatch-stroke)!important;color:#5a2038}
.gb-icing-swatch.selected{outline:2px solid #ffd76a}
.gb-decor-options{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.gb-decor-options button.gb-decor-btn{
  flex:0 0 52px;width:52px;height:52px;min-width:52px;min-height:52px;padding:0;
  display:flex;align-items:center;justify-content:center;border:2.5px solid rgba(122,59,22,.28);border-radius:14px;
  background:linear-gradient(180deg,#fff,#fff8f0);cursor:grab;box-shadow:0 3px 0 rgba(122,59,22,.12),0 4px 10px rgba(92,40,28,.1);
  touch-action:none;-webkit-user-select:none;user-select:none
}
.gb-decor-options button.gb-decor-btn:hover,.gb-decor-options button.gb-decor-btn:focus-visible{transform:translateY(-2px) scale(1.06);border-color:#c68642}
.gb-decor-options button.gb-decor-btn:active,.gb-decor-options button.gb-decor-btn.dragging{cursor:grabbing;transform:scale(.94);opacity:.75}
.gb-decor-options button.gb-decor-btn.just-used,.gb-decor-options button.gb-decor-btn.selected{border-color:#ffd76a;background:#fff6d8;box-shadow:0 0 10px rgba(255,215,106,.5)}
.gb-decor-options .gb-decor-icon{font-size:1.75rem;line-height:1;pointer-events:none;filter:drop-shadow(0 2px 1px rgba(80,40,20,.18))}
.gb-decor-ghost{position:fixed;z-index:9999;pointer-events:none;font-size:2rem;line-height:1;transform:translate(-50%,-50%) scale(1.15);filter:drop-shadow(0 6px 8px rgba(80,40,20,.35))}
.gb-clear-row{display:flex;gap:6px;justify-content:center}
.gb-clear-row button{flex:1;min-height:32px;font-size:.5rem;background:#fff8f0;border-color:rgba(122,59,22,.28)}
.gingerbread-figure{--gb-dough:#C68642;--gb-dough-deep:#8B5A2B;position:relative;width:120px;height:170px;filter:drop-shadow(0 8px 8px rgba(74,36,20,.22))}
.gingerbread-figure .gb-cookie-body{position:absolute;inset:0;z-index:2}
.gingerbread-figure .gb-head{position:absolute;left:50%;top:8px;width:44px;height:44px;margin-left:-22px;border-radius:50%;background:linear-gradient(145deg,#e8b878,var(--gb-dough) 48%,var(--gb-dough-deep));box-shadow:inset 3px 0 0 rgba(255,255,255,.28),inset -3px 0 0 rgba(0,0,0,.1)}
.gingerbread-figure .gb-eye{position:absolute;top:24px;width:6px;height:6px;border-radius:50%;background:#3e1c0e;z-index:3}
.gingerbread-figure .gb-eye-l{left:38px}.gingerbread-figure .gb-eye-r{right:38px}
.gingerbread-figure .gb-smile{position:absolute;left:50%;top:38px;width:16px;height:8px;margin-left:-8px;border:3px solid #3e1c0e;border-top:none;border-radius:0 0 12px 12px;z-index:3}
.gingerbread-figure .gb-bow-hair{display:none;position:absolute;left:50%;top:2px;width:28px;height:14px;margin-left:-14px;z-index:4}
.gingerbread-figure .gb-bow-hair::before,.gingerbread-figure .gb-bow-hair::after{content:'';position:absolute;top:2px;width:14px;height:12px;border-radius:50% 50% 40% 40%;background:linear-gradient(135deg,#ff8ec4,#e4458f)}
.gingerbread-figure .gb-bow-hair::before{left:0;transform:rotate(-18deg)}.gingerbread-figure .gb-bow-hair::after{right:0;transform:rotate(18deg)}
.gingerbread-figure[data-gb-mold="woman"] .gb-bow-hair{display:block}
.gingerbread-figure .gb-torso{position:absolute;left:50%;top:48px;width:52px;height:48px;margin-left:-26px;border-radius:18px 18px 14px 14px;background:linear-gradient(145deg,#e8b878,var(--gb-dough) 48%,var(--gb-dough-deep));box-shadow:inset 3px 0 0 rgba(255,255,255,.22),inset -3px 0 0 rgba(0,0,0,.1)}
.gingerbread-figure .gb-skirt{display:none;position:absolute;left:50%;top:88px;width:64px;height:36px;margin-left:-32px;z-index:1;background:linear-gradient(180deg,var(--gb-dough),var(--gb-dough-deep));clip-path:polygon(12% 0,88% 0,100% 100%,0 100%);border-radius:0 0 8px 8px}
.gingerbread-figure[data-gb-mold="woman"] .gb-skirt{display:block}
.gingerbread-figure[data-gb-mold="woman"] .gb-torso{height:42px;border-radius:18px 18px 8px 8px}
.gingerbread-figure .gb-arm{position:absolute;top:54px;width:34px;height:12px;border-radius:8px;background:linear-gradient(180deg,#e8b878,var(--gb-dough) 55%,var(--gb-dough-deep));z-index:1}
.gingerbread-figure .gb-arm-l{left:4px;transform:rotate(28deg)}.gingerbread-figure .gb-arm-r{right:4px;transform:rotate(-28deg)}
.gingerbread-figure .gb-leg{position:absolute;top:92px;width:14px;height:42px;border-radius:8px;background:linear-gradient(180deg,var(--gb-dough),var(--gb-dough-deep));z-index:1}
.gingerbread-figure[data-gb-mold="woman"] .gb-leg{top:118px;height:36px}
.gingerbread-figure .gb-leg-l{left:34px}.gingerbread-figure .gb-leg-r{right:34px}
.gingerbread-figure .gb-button{position:absolute;width:10px;height:10px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff,#ff6b6b 55%,#c62828);border:1px solid rgba(255,255,255,.5);z-index:3;box-shadow:0 1px 2px rgba(0,0,0,.15)}
.gingerbread-figure .gb-button.b1{left:50%;top:58px;margin-left:-5px}.gingerbread-figure .gb-button.b2{left:50%;top:72px;margin-left:-5px}.gingerbread-figure .gb-button.b3{left:50%;top:86px;margin-left:-5px}
.gingerbread-figure[data-gb-mold="woman"] .gb-button.b3{display:none}
/* Fun shape cookies */
.gingerbread-figure .gb-shape-star{position:absolute;left:50%;top:18px;width:100px;height:100px;margin-left:-50px;background:linear-gradient(145deg,#e8b878,var(--gb-dough) 48%,var(--gb-dough-deep));clip-path:polygon(50% 0,61% 35%,98% 35%,68% 57%,79% 91%,50% 70%,21% 91%,32% 57%,2% 35%,39% 35%);box-shadow:inset 3px 0 0 rgba(255,255,255,.2)}
.gingerbread-figure[data-gb-mold="star"] .gb-eye-l{left:40px;top:52px}.gingerbread-figure[data-gb-mold="star"] .gb-eye-r{right:40px;top:52px;left:auto}
.gingerbread-figure[data-gb-mold="star"] .gb-smile{top:66px}
.gingerbread-figure .gb-shape-heart{position:absolute;left:50%;top:28px;width:96px;height:90px;margin-left:-48px;background:linear-gradient(145deg,#e8b878,var(--gb-dough) 48%,var(--gb-dough-deep));clip-path:path('M48 88 C18 62 4 42 4 24 C4 10 16 0 30 0 C39 0 45 5 48 12 C51 5 57 0 66 0 C80 0 92 10 92 24 C92 42 78 62 48 88 Z')}
.gingerbread-figure[data-gb-mold="heart"] .gb-eye-l{left:36px;top:48px}.gingerbread-figure[data-gb-mold="heart"] .gb-eye-r{right:36px;top:48px;left:auto}
.gingerbread-figure[data-gb-mold="heart"] .gb-smile{top:62px}
.gingerbread-figure .gb-shape-tree-top,.gingerbread-figure .gb-shape-tree-mid,.gingerbread-figure .gb-shape-tree-base{position:absolute;left:50%;width:0;height:0;border-left-style:solid;border-right-style:solid;border-left-color:transparent;border-right-color:transparent;border-bottom-style:solid;background:none;z-index:1}
.gingerbread-figure .gb-shape-tree-top{top:10px;margin-left:-28px;border-left-width:28px;border-right-width:28px;border-bottom-width:34px;border-bottom-color:var(--gb-dough)}
.gingerbread-figure .gb-shape-tree-mid{top:36px;margin-left:-38px;border-left-width:38px;border-right-width:38px;border-bottom-width:40px;border-bottom-color:var(--gb-dough-deep)}
.gingerbread-figure .gb-shape-tree-base{top:68px;margin-left:-46px;border-left-width:46px;border-right-width:46px;border-bottom-width:44px;border-bottom-color:var(--gb-dough)}
.gingerbread-figure .gb-shape-tree-trunk{position:absolute;left:50%;top:108px;width:18px;height:28px;margin-left:-9px;border-radius:4px;background:linear-gradient(180deg,var(--gb-dough),var(--gb-dough-deep));z-index:1}
.gingerbread-figure[data-gb-mold="tree"] .gb-eye-l{left:42px;top:78px}.gingerbread-figure[data-gb-mold="tree"] .gb-eye-r{right:42px;top:78px;left:auto}
.gingerbread-figure[data-gb-mold="tree"] .gb-smile{top:92px}
.gingerbread-figure[data-gb-mold="tree"] .gb-button.b1{top:48px}.gingerbread-figure[data-gb-mold="tree"] .gb-button.b2{top:68px}.gingerbread-figure[data-gb-mold="tree"] .gb-button.b3{top:88px}
.gingerbread-figure .gb-shape-dino-body{position:absolute;left:18px;top:62px;width:70px;height:42px;border-radius:22px 28px 18px 16px;background:linear-gradient(145deg,#e8b878,var(--gb-dough) 48%,var(--gb-dough-deep));z-index:1}
.gingerbread-figure .gb-shape-dino-head{position:absolute;left:66px;top:34px;width:42px;height:38px;border-radius:50% 60% 40% 45%;background:linear-gradient(145deg,#e8b878,var(--gb-dough) 48%,var(--gb-dough-deep));z-index:2}
.gingerbread-figure .gb-shape-dino-tail{position:absolute;left:2px;top:68px;width:28px;height:16px;border-radius:50% 0 40% 50%;background:linear-gradient(145deg,#e8b878,var(--gb-dough));transform:rotate(-18deg);z-index:1}
.gingerbread-figure .gb-shape-dino-leg{position:absolute;top:98px;width:12px;height:28px;border-radius:6px;background:linear-gradient(180deg,var(--gb-dough),var(--gb-dough-deep));z-index:1}
.gingerbread-figure .gb-shape-dino-leg.a{left:34px}.gingerbread-figure .gb-shape-dino-leg.b{left:58px}
.gingerbread-figure[data-gb-mold="dino"] .gb-eye-l{left:78px;top:46px}.gingerbread-figure[data-gb-mold="dino"] .gb-eye-r{left:92px;top:46px;right:auto}
.gingerbread-figure[data-gb-mold="dino"] .gb-smile{left:84px;top:58px;margin-left:0}
.gingerbread-figure[data-gb-mold="dino"] .gb-button.b1{left:42px;top:74px;margin-left:0}.gingerbread-figure[data-gb-mold="dino"] .gb-button.b2{left:58px;top:74px;margin-left:0}
.gb-icing-canvas{position:absolute;left:50%;top:6px;width:120px;height:150px;transform:translateX(-50%);z-index:5;cursor:crosshair;touch-action:none}
.gb-decors{position:absolute;inset:0;z-index:6;pointer-events:none}
.gb-decor-piece{position:absolute;transform:translate(-50%,-120%) scale(.4);opacity:0;font-size:1.5rem;line-height:1;filter:drop-shadow(0 3px 2px rgba(0,0,0,.2));transition:transform .55s cubic-bezier(.2,.85,.25,1.2),opacity .35s}
.gb-decor-piece.dropping{opacity:1}.gb-decor-piece.landed{transform:translate(-50%,0) scale(1);opacity:1}
.gb-decor-sprinkle{width:36px;height:28px;font-size:0}
.gb-decor-sprinkle i{position:absolute;left:50%;top:50%;width:6px;height:4px;border-radius:2px;background:var(--sc,#FF6B9D);transform:translate(var(--sx,0),var(--sy,0)) rotate(28deg)}
.gingerbread-figure .gb-sparkles{position:absolute;inset:0;z-index:4;pointer-events:none;opacity:0;transition:opacity .4s}
.gingerbread-figure.has-icing .gb-sparkles,.gingerbread-figure.has-decors .gb-sparkles{opacity:1}
.gingerbread-figure .gb-sparkles i{position:absolute;width:8px;height:8px;background:#fff6b0;clip-path:polygon(50% 0,61% 35%,100% 50%,61% 65%,50% 100%,39% 65%,0 50%,39% 35%);animation:gb-sparkle-twinkle 1.4s ease-in-out infinite;filter:drop-shadow(0 0 4px #ffe36b)}
.gingerbread-figure .gb-sparkles i:nth-child(1){left:4px;top:30px}.gingerbread-figure .gb-sparkles i:nth-child(2){right:4px;top:50px;animation-delay:.3s}.gingerbread-figure .gb-sparkles i:nth-child(3){left:10px;top:100px;animation-delay:.55s}
@keyframes gb-sparkle-twinkle{0%,100%{transform:scale(.7) rotate(0);opacity:.4}50%{transform:scale(1.2) rotate(16deg);opacity:1}}
@keyframes gb-present-pop{0%{transform:scale(.4) translateY(20px);opacity:0}60%{transform:scale(1.08) translateY(-4px)}100%{transform:scale(1) translateY(0);opacity:1}}

/* Birthday Cake decorate studio (recipe 34) — frost-only */
.recipe-34.cake-decorating .recipe-ingredients,
.recipe-34.cake-decorating .recipe-bowl,
.recipe-34.cake-decorating .recipe-process{display:none!important}
.recipe-34.cake-decorating .recipe-card{opacity:.4}
.recipe-34.cake-decorating .recipe-finish{
  position:absolute;z-index:14;left:50%;top:50%;width:min(96%,580px);min-height:0;margin:0;padding:0;
  background:transparent;border:0;box-shadow:none;opacity:1;pointer-events:auto;
  transform:translate(-50%,-50%) scale(1)
}
.recipe-34.cake-decorating .recipe-action{position:absolute;z-index:20;left:50%;bottom:3%;transform:translateX(-50%);min-width:240px}
.cake-design-studio{display:flex;align-items:center;justify-content:center;gap:18px;width:100%}
.cake-preview-stage{
  position:relative;flex:none;width:210px;height:270px;
  display:flex;align-items:flex-end;justify-content:center;
  border-radius:30px;background:
    radial-gradient(circle at 50% 18%,rgba(255,252,235,1),transparent 42%),
    radial-gradient(circle at 50% 70%,rgba(255,200,220,.55),rgba(255,170,200,.12) 55%,transparent),
    linear-gradient(180deg,#fff8fb,#ffe0ec);
  border:3px solid rgba(196,80,120,.35);box-shadow:inset 0 0 30px rgba(255,255,255,.5),0 12px 24px rgba(120,30,70,.16);
  overflow:hidden;touch-action:none
}
.cake-stage-enter{animation:cake-stage-in .55s cubic-bezier(.2,.9,.25,1.15)}
.cake-panel-enter{animation:cake-panel-in .55s .08s both cubic-bezier(.2,.9,.25,1.15)}
.cake-preview-stage.celebrate{width:220px;height:260px;margin:0 auto 8px;animation:cake-present-pop .85s cubic-bezier(.2,.9,.25,1.25)}
.recipe-34.finished .recipe-finish{width:min(88%,320px);min-height:300px;padding:16px 14px 18px;pointer-events:none}
.recipe-34.cake-presented .recipe-action{opacity:0;pointer-events:none}
.cake-design-panel{
  flex:1;min-width:0;max-width:300px;padding:12px;border-radius:22px;
  background:rgba(255,255,255,.94);border:3px solid rgba(196,80,120,.35);box-shadow:0 10px 20px rgba(120,30,70,.14);text-align:center
}
.cake-design-group{margin-bottom:9px}.cake-design-group:last-child{margin-bottom:0}
.cake-design-group>strong{display:block;margin-bottom:5px;color:#a82962;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}
.cake-design-group>div{display:flex;gap:5px;justify-content:center;flex-wrap:wrap}
.cake-paint-hint{margin:0;font-size:.58rem;font-weight:700;color:#8a3a5c;line-height:1.3}
.cake-design-group button{
  flex:1;min-width:0;min-height:38px;padding:4px 3px;border:2px solid rgba(168,41,98,.2);border-radius:11px;
  background:#fff;color:#8a2a58;font-family:'Quicksand',sans-serif;font-size:.48rem;font-weight:800;cursor:pointer;transition:transform .2s,border-color .2s,background .2s
}
.cake-design-group button.selected,.cake-design-group button.just-used{border-color:#ffd76a;background:#fff6d8;transform:translateY(-1px);box-shadow:0 0 8px rgba(255,215,106,.45)}
.cake-frost-swatch{min-width:48px;background:linear-gradient(180deg,color-mix(in srgb,var(--swatch),#fff 18%),var(--swatch));border-color:var(--swatch-stroke)!important;color:#5a2038}
.cake-frost-swatch.selected{outline:2px solid #ffd76a;animation:cake-swatch-pop .35s ease}
.cake-frost-swatch[aria-label*="Chocolate"]{color:#fff;text-shadow:0 1px 2px rgba(0,0,0,.35)}
.cake-decor-options{display:flex;gap:8px;justify-content:center;flex-wrap:wrap}
.cake-decor-options button.cake-decor-btn{
  flex:0 0 58px;width:58px;height:58px;min-width:58px;min-height:58px;padding:0;
  display:flex;align-items:center;justify-content:center;
  border:2.5px solid rgba(168,41,98,.28);border-radius:16px;
  background:linear-gradient(180deg,#fff,#fff5f9);cursor:grab;
  box-shadow:0 3px 0 rgba(168,41,98,.12),0 4px 10px rgba(120,30,70,.1);
  transition:transform .18s,border-color .18s,background .18s,box-shadow .18s
}
.cake-decor-options button.cake-decor-btn:hover,
.cake-decor-options button.cake-decor-btn:focus-visible{
  transform:translateY(-2px) scale(1.06);
  border-color:#ff8fc4;background:#fff8fc;
  box-shadow:0 5px 0 rgba(168,41,98,.14),0 8px 14px rgba(120,30,70,.14)
}
.cake-decor-options button.cake-decor-btn:active,
.cake-decor-options button.cake-decor-btn.dragging{cursor:grabbing;transform:scale(.94);opacity:.75}
.cake-decor-options button.cake-decor-btn.just-used,
.cake-decor-options button.cake-decor-btn.selected{
  border-color:#ffd76a;background:#fff6d8;
  box-shadow:0 0 10px rgba(255,215,106,.5)
}
.cake-decor-options .cake-decor-icon{display:block;font-size:2rem;line-height:1;pointer-events:none;filter:drop-shadow(0 2px 1px rgba(80,20,50,.18))}
.cake-decor-ghost{
  position:fixed;z-index:9999;pointer-events:none;font-size:2.2rem;line-height:1;
  transform:translate(-50%,-50%) scale(1.15);filter:drop-shadow(0 6px 8px rgba(80,20,50,.35));
  transition:none
}
.cake-preview-stage.decor-drop-ready{outline:3px dashed #ff8fc4;outline-offset:-4px;background:radial-gradient(circle at 50% 22%,rgba(255,248,230,1),rgba(255,200,230,.7) 45%,rgba(255,180,210,.3))}
.cake-decor-options button.cake-decor-btn{touch-action:none;-webkit-user-select:none;user-select:none}
.cake-clear-row{display:flex;gap:6px;justify-content:center}
.cake-clear-row button{flex:1;min-height:32px;font-size:.5rem;background:#fff0f5;border-color:rgba(168,41,98,.28)}

.birthday-cake{
  --cake-frosting:#FFB6D9;--cake-frosting-stroke:#FF8FC4;
  position:relative;width:176px;height:220px;margin-bottom:6px;
  filter:drop-shadow(0 12px 10px rgba(120,30,70,.24));
  animation:cake-idle-bob 3.2s ease-in-out infinite
}
.birthday-cake.frosting-active{animation:none}
.birthday-cake.frost-color-pulse .cake-frosting-cap,
.birthday-cake.frost-color-pulse .cake-frosting-ring,
.birthday-cake.frost-color-pulse .cake-side-frost,
.birthday-cake.frost-color-pulse .cake-drip{animation:cake-frost-recolor .42s ease}
.cake-shadow{position:absolute;left:50%;bottom:2px;width:120px;height:16px;transform:translateX(-50%);border-radius:50%;background:rgba(90,30,50,.2);filter:blur(2.5px);z-index:0}
.cake-plate{
  position:absolute;left:50%;bottom:10px;width:154px;height:20px;transform:translateX(-50%);z-index:1;
  border-radius:50%;background:linear-gradient(180deg,#fff,#efeaf6 50%,#d4cde0);border:2px solid #ddd6e8;
  box-shadow:0 5px 8px rgba(0,0,0,.14),inset 0 3px 4px rgba(255,255,255,.7)
}
.cake-plate b{position:absolute;left:18%;right:18%;top:3px;height:5px;border-radius:50%;background:rgba(255,255,255,.55)}
.cake-tier{
  position:absolute;left:50%;transform:translateX(-50%);z-index:2;overflow:visible;
  border-radius:10px 10px 12px 12px;
  box-shadow:inset 5px 0 0 rgba(255,255,255,.32),inset -6px 0 0 rgba(0,0,0,.1),0 4px 6px rgba(0,0,0,.14)
}
.cake-sponge{position:absolute;inset:0;border-radius:inherit;pointer-events:none;
  background:repeating-linear-gradient(90deg,transparent 0 7px,rgba(255,255,255,.12) 7px 8px),
    radial-gradient(circle at 20% 30%,rgba(255,255,255,.2) 0 2px,transparent 3px)}
.cake-base{
  bottom:26px;width:136px;height:50px;z-index:2;
  background:linear-gradient(180deg,#ffd992,#f0b85a 48%,#d4923a)
}
.cake-mid{
  bottom:68px;width:112px;height:44px;z-index:3;
  background:linear-gradient(180deg,#ffc2d6,#f48eae 48%,#d96a8a)
}
.cake-top{
  bottom:104px;width:92px;height:54px;z-index:4;
  background:linear-gradient(180deg,#ffe9a8,#f2c96a 48%,#d9a840)
}
.cake-side-frost{
  position:absolute;inset:0;border-radius:inherit;pointer-events:none;z-index:2;opacity:0;
  background:linear-gradient(180deg,var(--cake-frosting) 0 38%,transparent 72%);
  transition:opacity .45s ease,background .3s
}
.birthday-cake.frost-sides .cake-top .cake-side-frost{opacity:.72}
.birthday-cake.frost-drips .cake-mid .cake-side-frost{opacity:.65}
.birthday-cake.frost-full .cake-base .cake-side-frost{opacity:.55}
.cake-frosting-ring,.cake-frosting-cap,.cake-drip{
  position:absolute;pointer-events:none;background:var(--cake-frosting);
  transition:background .3s,opacity .35s,transform .35s
}
.cake-frosting-ring{
  left:3px;right:3px;top:-7px;height:15px;border-radius:45%;
  box-shadow:0 2px 0 var(--cake-frosting-stroke),inset 0 3px 4px rgba(255,255,255,.45);opacity:0;z-index:3;transform:scale(.7)
}
.birthday-cake.frost-sides .cake-mid .cake-frosting-ring,
.birthday-cake.frost-drips .cake-base .cake-frosting-ring{opacity:.95;transform:scale(1)}
.cake-frosting-cap{
  left:-3px;right:-3px;top:-12px;height:24px;border-radius:50% 50% 42% 42%;opacity:0;transform:scale(.6);
  box-shadow:inset 0 -3px 0 rgba(0,0,0,.05),0 2px 0 var(--cake-frosting-stroke),inset 0 4px 6px rgba(255,255,255,.5);z-index:3
}
.cake-frosting-cap b{position:absolute;left:18%;right:28%;top:4px;height:7px;border-radius:50%;background:rgba(255,255,255,.4)}
.birthday-cake.has-frosting .cake-frosting-cap{opacity:1;transform:scale(1);animation:cake-cap-plop .45s cubic-bezier(.2,.9,.25,1.3)}
.cake-drip{
  left:6px;right:6px;top:8px;height:22px;z-index:2;opacity:0;transform:scaleY(.2);transform-origin:50% 0;
  background:
    radial-gradient(ellipse at 16% 0,var(--cake-frosting) 0 58%,transparent 59%),
    radial-gradient(ellipse at 40% 0,var(--cake-frosting) 0 50%,transparent 51%),
    radial-gradient(ellipse at 64% 0,var(--cake-frosting) 0 60%,transparent 61%),
    radial-gradient(ellipse at 86% 0,var(--cake-frosting) 0 52%,transparent 53%)
}
.birthday-cake.frost-drips .cake-drip,.birthday-cake.frost-full .cake-drip{opacity:.92;transform:scaleY(1);transition:opacity .4s,transform .55s cubic-bezier(.2,.9,.25,1.15),background .3s}
.cake-paint-canvas{
  position:absolute;left:50%;bottom:118px;width:170px;height:62px;transform:translateX(-50%);
  z-index:6;cursor:crosshair;touch-action:none;border-radius:50% 50% 42% 42%;
  clip-path:ellipse(48% 44% at 50% 48%)
}
.cake-frost-spray{position:absolute;inset:0;z-index:7;pointer-events:none}
.cake-frost-spray i{position:absolute;width:8px;height:8px;margin:-4px 0 0 -4px;border-radius:50%;
  box-shadow:0 0 5px rgba(255,255,255,.6);animation:cake-spray-fall .5s ease-out forwards}
.cake-decors{position:absolute;inset:0;z-index:8;pointer-events:none}
.cake-decor-piece{
  position:absolute;transform:translate(-50%,-140%) scale(.3) rotate(-12deg);opacity:0;
  font-size:1.7rem;line-height:1;filter:drop-shadow(0 3px 2px rgba(0,0,0,.22));
  transition:transform .6s cubic-bezier(.34,1.4,.48,1),opacity .3s
}
.cake-decor-piece.dropping{opacity:1}
.cake-decor-piece.landed{transform:translate(-50%,0) scale(1) rotate(0);opacity:1}
.cake-decor-candle{font-size:1;z-index:9;width:18px;height:36px}
.cake-candle{position:relative;display:block;width:14px;height:34px}
.cake-candle-stick{position:absolute;left:4px;bottom:0;width:6px;height:24px;border-radius:2px;
  background:linear-gradient(90deg,#fff6d8,#ffe082 45%,#f0c45a);box-shadow:inset 1px 0 #fff}
.cake-candle-flame{position:absolute;left:3px;top:0;width:8px;height:14px;border-radius:50% 50% 45% 45%;
  background:radial-gradient(circle at 40% 60%,#fff6b0,#ffb347 45%,#ff6b3d 80%);
  box-shadow:0 0 8px #ff9a3c;animation:cake-flame-flicker .55s ease-in-out infinite alternate;transform-origin:50% 100%}
.cake-decor-sprinkles{width:46px;height:34px}
.cake-decor-sprinkles i{
  position:absolute;left:50%;top:50%;width:8px;height:4px;border-radius:2px;
  background:var(--sc,#FF6B9D);transform:translate(var(--sx,0),var(--sy,0)) rotate(28deg);
  box-shadow:0 1px 1px rgba(0,0,0,.15);animation:cake-sprinkle-pop .45s ease both
}
.cake-sparkles{position:absolute;inset:0;z-index:7;pointer-events:none;opacity:0;transition:opacity .4s}
.birthday-cake.has-frosting .cake-sparkles,
.birthday-cake.has-decors .cake-sparkles{opacity:1}
.cake-sparkles i{position:absolute;width:8px;height:8px;background:#fff6b0;clip-path:polygon(50% 0,61% 35%,100% 50%,61% 65%,50% 100%,39% 65%,0 50%,39% 35%);animation:cake-sparkle-twinkle 1.4s ease-in-out infinite;filter:drop-shadow(0 0 4px #ffe36b)}
.cake-sparkles i:nth-child(1){left:10px;top:40px}.cake-sparkles i:nth-child(2){right:12px;top:56px;animation-delay:.3s}
.cake-sparkles i:nth-child(3){left:18px;top:110px;animation-delay:.55s}.cake-sparkles i:nth-child(4){right:20px;top:130px;animation-delay:.8s}
.cake-sparkles i:nth-child(5){left:40px;top:24px;animation-delay:.2s}.cake-sparkles i:nth-child(6){right:38px;top:90px;animation-delay:1s}
@keyframes cake-sparkle-twinkle{0%,100%{transform:scale(.7) rotate(0);opacity:.4}50%{transform:scale(1.2) rotate(16deg);opacity:1}}
@keyframes cake-present-pop{0%{transform:scale(.4) translateY(20px);opacity:0}60%{transform:scale(1.08) translateY(-4px)}100%{transform:scale(1) translateY(0);opacity:1}}
@keyframes cake-stage-in{0%{opacity:0;transform:translateY(16px) scale(.92)}100%{opacity:1;transform:none}}
@keyframes cake-panel-in{0%{opacity:0;transform:translateX(18px)}100%{opacity:1;transform:none}}
@keyframes cake-idle-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}
@keyframes cake-cap-plop{0%{opacity:0;transform:scale(.4) translateY(-8px)}70%{transform:scale(1.08) translateY(1px)}100%{opacity:1;transform:scale(1) translateY(0)}}
@keyframes cake-frost-recolor{0%{filter:brightness(1.25) saturate(1.2)}100%{filter:none}}
@keyframes cake-spray-fall{0%{transform:translate(0,0) scale(1);opacity:.95}100%{transform:translate(0,18px) scale(.4);opacity:0}}
@keyframes cake-flame-flicker{0%{transform:scaleY(1) scaleX(1) rotate(-4deg);filter:brightness(1)}100%{transform:scaleY(1.15) scaleX(.85) rotate(5deg);filter:brightness(1.2)}}
@keyframes cake-sprinkle-pop{0%{opacity:0;transform:translate(var(--sx,0),calc(var(--sy,0) - 12px)) scale(.2)}100%{opacity:1;transform:translate(var(--sx,0),var(--sy,0)) rotate(28deg) scale(1)}}
@keyframes cake-swatch-pop{0%{transform:scale(.9)}50%{transform:scale(1.08)}100%{transform:scale(1)}}

/* Candy Necklace stringing studio (recipe 38) */
.recipe-38.necklace-designing .recipe-ingredients,
.recipe-38.necklace-designing .recipe-bowl,
.recipe-38.necklace-designing .recipe-process{opacity:0;pointer-events:none;transition:opacity .35s}
.recipe-38.necklace-designing .recipe-card{opacity:.35}
.recipe-38.necklace-designing .recipe-finish{
  position:absolute;z-index:14;left:50%;top:50%;width:min(96%,580px);min-height:0;margin:0;padding:0;
  background:transparent;border:0;box-shadow:none;opacity:1;pointer-events:auto;
  transform:translate(-50%,-50%) scale(1)
}
.recipe-38.necklace-designing .recipe-action{position:absolute;z-index:20;left:50%;bottom:3%;transform:translateX(-50%);min-width:240px}
.recipe-38.necklace-presented .recipe-action{opacity:0;pointer-events:none}
.recipe-38.finished .recipe-finish,
.recipe-38.necklace-presented .recipe-finish{
  left:50%;top:50%;
  transform:translate(-50%,-50%) scale(1);
  width:min(88%,300px);min-height:0;
  padding:18px 16px 20px;
  display:flex;flex-direction:column;align-items:center;justify-content:center;
  text-align:center;box-sizing:border-box;pointer-events:none
}
.recipe-38.necklace-presented .recipe-finish-sparkles,
.recipe-38.necklace-presented .recipe-finish-text{
  width:100%;text-align:center;margin-left:0;margin-right:0
}
.recipe-38.necklace-presented .recipe-finish-text{margin-top:8px}
.candy-necklace-studio{display:flex;align-items:center;justify-content:center;gap:14px;width:100%;touch-action:none}
.candy-necklace-stage{
  position:relative;flex:none;width:250px;height:260px;
  display:flex;align-items:center;justify-content:center;
  border-radius:28px;background:radial-gradient(circle at 50% 30%,rgba(255,248,220,.98),rgba(255,200,230,.5) 48%,rgba(255,170,210,.18));
  border:3px solid rgba(196,80,140,.35);box-shadow:inset 0 0 28px rgba(255,255,255,.4),0 10px 22px rgba(120,30,70,.16);
  box-sizing:border-box;overflow:visible
}
.candy-necklace-stage.celebrate{
  width:210px;height:220px;margin:4px auto 0;
  display:flex;align-items:center;justify-content:center;
  animation:candy-necklace-present-pop .85s cubic-bezier(.2,.9,.25,1.25)
}
.candy-necklace-board{position:relative;width:100%;height:100%}
.candy-necklace-board-title{position:absolute;left:0;right:0;top:10px;text-align:center;font-family:'Cinzel Decorative',serif;font-size:.72rem;color:#B0225A;text-shadow:0 0 8px rgba(255,255,255,.6)}
.candy-necklace-string{
  position:absolute;left:12%;right:12%;top:48px;height:155px;
  border:4px solid #f4d46a;border-top:0;border-radius:0 0 50% 50%;
  filter:drop-shadow(0 0 4px rgba(255,215,106,.55));pointer-events:none
}
.candy-necklace-slots{position:absolute;inset:0}
.candy-necklace-bead-slot{
  position:absolute;width:40px;height:40px;transform:translate(-50%,-50%);
  border:2px dashed rgba(176,34,90,.35);border-radius:50%;background:rgba(255,255,255,.35);
  padding:0;cursor:pointer;display:flex;align-items:center;justify-content:center
}
.candy-necklace-bead-slot.filled{border-style:solid;border-color:transparent;background:transparent;animation:candy-necklace-bead-pop .35s cubic-bezier(.2,.9,.25,1.3)}
.candy-necklace-empty-help{position:absolute;left:0;right:0;bottom:14px;text-align:center;font-size:.62rem;font-weight:800;color:rgba(176,34,90,.7)}
.necklace-has-beads .candy-necklace-empty-help{display:none}
.candy-necklace-panel{
  flex:1;min-width:0;max-width:280px;padding:10px;border-radius:22px;
  background:rgba(255,255,255,.9);border:3px solid rgba(196,80,140,.35);box-shadow:0 10px 20px rgba(120,30,70,.14);text-align:center
}
.candy-necklace-panel>strong{display:block;margin-bottom:6px;color:#a82962;font-size:.62rem;text-transform:uppercase;letter-spacing:.04em}
.candy-necklace-palette{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;margin-bottom:8px}
.candy-necklace-option{
  min-width:0;min-height:62px;padding:4px 2px;border:2px solid rgba(168,41,98,.2);border-radius:12px;
  background:#fff;color:#8a2a58;font-family:'Quicksand',sans-serif;cursor:pointer
}
.candy-necklace-option.selected{border-color:#ffd76a;background:#fff6d8;box-shadow:0 0 8px rgba(255,215,106,.45)}
.candy-necklace-option .candy-bead{width:26px;height:26px;margin:0 auto}
.candy-necklace-option small{display:block;margin-top:2px;font-size:.4rem;font-weight:800;line-height:1.05}
.candy-necklace-drag-tray{margin:6px 0;padding:6px;border-radius:14px;background:rgba(255,240,248,.85);border:2px dashed rgba(196,80,140,.3)}
.candy-necklace-drag-tray>strong{display:block;margin-bottom:4px;font-size:.55rem;color:#a82962;text-transform:uppercase;letter-spacing:.04em}
.candy-necklace-drag-pieces{display:flex;justify-content:center;gap:10px;min-height:58px}
.candy-necklace-drag-piece{
  width:64px;text-align:center;cursor:grab;touch-action:none;user-select:none;
  filter:drop-shadow(0 4px 4px rgba(120,30,70,.2))
}
.candy-necklace-drag-piece.dragging{z-index:40;cursor:grabbing;opacity:.95;filter:drop-shadow(0 8px 10px rgba(120,30,70,.35))}
.candy-necklace-drag-piece .candy-bead{width:36px;height:36px;margin:0 auto}
.candy-necklace-drag-piece small{display:block;margin-top:2px;font-size:.42rem;font-weight:800;color:#8a2a58;line-height:1}
.candy-necklace-edit-actions{display:flex;gap:6px;margin-top:6px}
.candy-necklace-edit-actions button{
  flex:1;min-height:34px;border-radius:12px;border:2px solid rgba(168,41,98,.25);
  background:#fff0f5;color:#8a2a58;font-family:'Quicksand',sans-serif;font-weight:800;cursor:pointer
}
.candy-necklace-hint{margin:6px 0 0;font-size:.52rem;font-weight:700;color:#8a3a5c;line-height:1.25}

.candy-bead{
  --bead:#FF69B4;--bead-light:#FFC0DC;
  position:relative;display:block;width:34px;height:34px
}
.candy-bead i{position:absolute;inset:0;box-sizing:border-box;pointer-events:none}
.candy-bead.shape-bean i:first-child,.candy-bead.shape-oval i:first-child{
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%,var(--bead-light),var(--bead) 55%,color-mix(in srgb,var(--bead),#000 22%));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.45)
}
.candy-bead.shape-bean i:first-child{border-radius:50% 50% 50% 50%/60% 60% 40% 40%;transform:rotate(-18deg)}
.candy-bead.shape-oval i:first-child{transform:scaleX(1.15)}
.candy-bead.shape-round i:first-child{
  border-radius:50%;
  background:radial-gradient(circle at 32% 28%,var(--bead-light),var(--bead) 55%,color-mix(in srgb,var(--bead),#000 22%));
  box-shadow:inset 0 0 0 1px rgba(255,255,255,.5)
}
.candy-bead.shape-gem i:first-child{
  clip-path:polygon(50% 0,100% 35%,76% 100%,24% 100%,0 35%);
  background:linear-gradient(145deg,var(--bead-light),var(--bead) 55%,color-mix(in srgb,var(--bead),#000 25%));
  filter:drop-shadow(0 2px 2px rgba(0,0,0,.15))
}
.candy-bead.shape-mint i:first-child{
  border-radius:50%;
  background:repeating-conic-gradient(var(--bead) 0 20deg,var(--bead-light) 21deg 42deg);
  border:2px solid rgba(255,255,255,.85);box-shadow:0 2px 4px rgba(0,0,0,.12)
}
.candy-bead.shape-drop i:first-child{
  border-radius:50% 50% 50% 50%/40% 40% 60% 60%;
  background:radial-gradient(circle at 35% 25%,var(--bead-light),var(--bead) 52%,color-mix(in srgb,var(--bead),#000 28%));
  transform:scaleY(1.12)
}
.candy-bead.shape-heart{
  overflow:visible
}
.candy-bead.shape-heart i:first-child{
  inset:auto;left:50%;top:54%;width:18px;height:18px;
  background:linear-gradient(145deg,var(--bead-light),var(--bead) 55%,color-mix(in srgb,var(--bead),#000 20%));
  transform:translate(-50%,-50%) rotate(-45deg);
  border-radius:3px 14px 3px 3px;
  box-shadow:0 0 0 1px rgba(255,255,255,.25)
}
.candy-bead.shape-heart i:first-child::before,
.candy-bead.shape-heart i:first-child::after{
  content:'';position:absolute;width:18px;height:18px;border-radius:50%;
  background:inherit
}
.candy-bead.shape-heart i:first-child::before{left:0;top:-9px}
.candy-bead.shape-heart i:first-child::after{left:9px;top:0}
.candy-bead i:nth-child(2){inset:18% 28% auto;height:22%;border-radius:50%;background:rgba(255,255,255,.45);filter:blur(.5px)}
.candy-bead.shape-gem i:nth-child(2),.candy-bead.shape-mint i:nth-child(2),.candy-bead.shape-heart i:nth-child(2){display:none}

.candy-necklace-preview{position:relative;width:180px;height:190px;margin:0 auto;flex:none}
.candy-necklace-preview .candy-necklace-string{left:14%;right:14%;top:34px;height:128px;box-sizing:border-box}
.candy-necklace-preview .candy-necklace-clasp{
  position:absolute;left:50%;top:26px;width:14px;height:14px;transform:translateX(-50%);
  border-radius:50%;background:linear-gradient(145deg,#fff6b0,#e2b23a);border:2px solid #f7e08a;z-index:2
}
.candy-necklace-preview .candy-necklace-beads{position:absolute;inset:0}
.candy-necklace-preview .candy-necklace-bead-slot{
  border:0;background:transparent;pointer-events:none;width:34px;height:34px;
  transform:translate(-50%,-50%)
}
.candy-necklace-sparkles{position:absolute;inset:0;pointer-events:none;z-index:3}
.candy-necklace-sparkles i{position:absolute;width:8px;height:8px;background:#FFD700;clip-path:polygon(50% 0,61% 35%,100% 35%,68% 57%,79% 100%,50% 72%,21% 100%,32% 57%,0 35%,39% 35%);animation:candy-necklace-sparkle 1.4s ease-in-out infinite}
.candy-necklace-sparkles i:nth-child(1){left:10%;top:18%}.candy-necklace-sparkles i:nth-child(2){right:10%;top:22%;left:auto;animation-delay:.25s}
.candy-necklace-sparkles i:nth-child(3){left:14%;top:58%;animation-delay:.5s}.candy-necklace-sparkles i:nth-child(4){right:14%;top:62%;left:auto;animation-delay:.75s}
@keyframes candy-necklace-bead-pop{0%{transform:translate(-50%,-50%) scale(0)}70%{transform:translate(-50%,-50%) scale(1.2)}100%{transform:translate(-50%,-50%) scale(1)}}
@keyframes candy-necklace-present-pop{0%{transform:scale(.4) rotate(-8deg);opacity:0}60%{transform:scale(1.08) rotate(3deg)}100%{transform:scale(1) rotate(0);opacity:1}}
@keyframes candy-necklace-sparkle{0%,100%{transform:scale(.7) rotate(0);opacity:.4}50%{transform:scale(1.25) rotate(18deg);opacity:1}}

.recipe-bowl.stack-cake{animation:recipe-stack-cake .85s cubic-bezier(.34,1.56,.64,1)}
@keyframes recipe-stack-cake{0%{transform:scaleY(.5)}60%{transform:scaleY(1.2)}100%{transform:scaleY(1)}}
.recipe-bowl.spin-cotton{animation:recipe-spin-cotton 1.1s ease}
@keyframes recipe-spin-cotton{0%{transform:rotate(0) scale(1)}50%{transform:rotate(360deg) scale(1.25)}100%{transform:rotate(720deg) scale(1)}}
.recipe-bowl.twist-sword{animation:recipe-twist-sword .9s ease}
@keyframes recipe-twist-sword{0%{transform:skewX(0) rotate(0)}25%{transform:skewX(12deg) rotate(-8deg)}75%{transform:skewX(-12deg) rotate(8deg)}100%{transform:skewX(0) rotate(0)}}
.recipe-bowl.stack-throne{animation:recipe-stack-throne .85s cubic-bezier(.34,1.56,.64,1)}
@keyframes recipe-stack-throne{0%{transform:translateY(16px) scale(.85)}60%{transform:translateY(-6px) scale(1.08)}100%{transform:translateY(0) scale(1)}}
.recipe-bowl.string-necklace{animation:recipe-string-necklace 1s ease}
@keyframes recipe-string-necklace{0%,100%{transform:translateX(0)}20%{transform:translateX(-8px)}40%{transform:translateX(8px)}60%{transform:translateX(-6px)}80%{transform:translateX(6px)}}
.recipe-bowl.puff-pillow{animation:recipe-puff-pillow .9s ease}
@keyframes recipe-puff-pillow{0%{transform:scale(1)}50%{transform:scale(1.3)}100%{transform:scale(1)}}
.recipe-bowl.bend-wand{animation:recipe-bend-wand .9s ease}
@keyframes recipe-bend-wand{0%{transform:rotate(0)}30%{transform:rotate(20deg)}60%{transform:rotate(-14deg)}100%{transform:rotate(0)}}
.recipe-bowl.pop-gummy{animation:recipe-pop-gummy .7s cubic-bezier(.34,1.56,.64,1)}
@keyframes recipe-pop-gummy{0%{transform:scale(.6)}60%{transform:scale(1.25)}100%{transform:scale(1)}}
.recipe-bowl.connect-fountain{animation:recipe-connect-fountain .9s ease}
@keyframes recipe-connect-fountain{0%{transform:scaleX(.6)}60%{transform:scaleX(1.2)}100%{transform:scaleX(1)}}
.recipe-bowl.grow-shoes{animation:none}
/* legacy fallback if grow-shoes is used outside recipe-43 */
@keyframes recipe-grow-shoes{0%,100%{transform:none}}
.recipe-bowl.swirl-sherbet{animation:none}
/* legacy fallback if swirl-sherbet is used outside recipe-44 */
@keyframes recipe-swirl-sherbet{0%,100%{transform:none}}

@media (max-width:520px){
  .recipe-card{left:50%;top:48px;max-width:min(70%,240px);padding:4px 8px 4px 4px}.recipe-card-item{width:32px;height:32px}.recipe-card-title{font-size:.58rem;white-space:normal}
  .recipe-ingredients{margin-top:112px}
  .recipe-ingredient{min-width:64px;min-height:58px}
  .recipe-bowl{width:100px;height:76px}
  .recipe-flavor-grid{grid-template-columns:repeat(4,1fr);gap:6px}.recipe-flavor{min-height:74px;padding:7px 3px 6px;border-radius:14px}.recipe-flavor span{font-size:1.7rem}.recipe-flavor small{font-size:.5rem;margin-top:3px}
  .recipe-30 .recipe-ingredients{margin-top:118px;gap:6px}.recipe-30 .recipe-ingredient{min-width:88px;min-height:83px;padding:4px}.recipe-30 .lollipop-real-ingredient{height:55px;transform:scale(.76);transform-origin:center bottom;margin-top:-8px}.recipe-30 .recipe-ingredient-label{font-size:.58rem}.recipe-30 .recipe-bowl{width:175px;height:112px}.recipe-30 .recipe-mixing-stick{left:50%;right:auto;top:-42px;height:94px;width:10px;margin-left:-5px}.recipe-30 .recipe-action{min-width:190px}.recipe-30 .recipe-finish{width:240px;min-height:215px}.big-finished-lollipop{transform:scale(.83);transform-origin:top center}
  .expanded-candy-recipe .activity-prompt{top:4px;max-width:min(88%,280px);padding:5px 9px;font-size:clamp(.56rem,2.4vw,.68rem)}.expanded-candy-recipe .recipe-card{top:52px}.expanded-candy-recipe .recipe-ingredients{margin-top:126px;gap:5px;width:96%;position:relative;z-index:8}.expanded-candy-recipe .recipe-ingredient{min-width:72px;min-height:76px;padding:5px 3px}.expanded-candy-recipe .real-recipe-ingredient{transform:scale(.82);transform-origin:center bottom;margin-top:-6px}.expanded-candy-recipe .recipe-ingredient-label{font-size:.52rem;max-width:68px}.expanded-candy-recipe .recipe-bowl{width:165px;height:96px;margin-top:22px;margin-bottom:32px}.expanded-candy-recipe .recipe-tool-art{transform:scale(.82);transform-origin:center center}.expanded-candy-recipe .recipe-tool-name{bottom:-18px;font-size:.5rem}.recipe-35 .recipe-workstation{margin-top:24px}.recipe-38 .recipe-workstation,.recipe-40 .recipe-workstation,.recipe-41 .recipe-workstation,.recipe-43 .recipe-workstation{width:185px;height:86px}.recipe-process{gap:8px;width:90%;margin-top:6px}.expanded-candy-recipe .recipe-process{margin-top:6px;margin-bottom:6px}.recipe-process-step small{font-size:.47rem}.expanded-candy-recipe .recipe-action{min-width:190px;z-index:23;margin-top:8px}.expanded-candy-recipe .recipe-finish{width:250px}
  .recipe-33.gingerbread-designing .recipe-finish{width:min(96%,360px);top:48%}
  .gingerbread-design-studio{flex-direction:column;gap:10px}
  .gb-preview-stage{width:150px;height:220px}
  .gingerbread-figure{transform:scale(.88);transform-origin:center center}
  .gb-design-panel{max-width:100%;width:100%;padding:8px}
  .gb-design-group button{min-height:34px;font-size:.42rem}
  .gb-decor-options button.gb-decor-btn{flex:0 0 48px;width:48px;height:48px;min-width:48px;min-height:48px}
  .gb-decor-options .gb-decor-icon{font-size:1.55rem}
  .recipe-33.gingerbread-designing .recipe-action{bottom:2%;min-width:200px;font-size:.72rem}
  .recipe-33.finished .recipe-finish{min-height:270px;width:min(90%,270px)}
  .recipe-34.cake-decorating .recipe-finish{width:min(96%,360px);top:48%}
  .cake-design-studio{flex-direction:column;gap:10px}
  .cake-preview-stage{width:150px;height:210px}
  .birthday-cake{transform:scale(.82);transform-origin:center bottom}
  .cake-design-panel{max-width:100%;width:100%;padding:8px}
  .cake-design-group button{min-height:34px;font-size:.42rem}
  .cake-frost-swatch{min-width:42px}
  .cake-decor-options button.cake-decor-btn{flex:0 0 52px;width:52px;height:52px;min-width:52px;min-height:52px;border-radius:14px}
  .cake-decor-options .cake-decor-icon{font-size:1.75rem}
  .recipe-34.cake-decorating .recipe-action{bottom:2%;min-width:200px;font-size:.72rem}
  .recipe-34.finished .recipe-finish{min-height:270px;width:min(90%,270px)}
  .recipe-38.necklace-designing .recipe-finish{width:min(96%,360px);top:48%}
  .candy-necklace-studio{flex-direction:column;gap:8px}
  .candy-necklace-stage{width:210px;height:200px}
  .candy-necklace-board-title{font-size:.62rem;top:6px}
  .candy-necklace-string{top:36px;height:120px}
  .candy-necklace-bead-slot{width:34px;height:34px}
  .candy-necklace-panel{max-width:100%;width:100%;padding:8px}
  .candy-necklace-option{min-height:54px}.candy-necklace-option small{font-size:.36rem}
  .candy-necklace-drag-piece{width:56px}.candy-necklace-drag-piece .candy-bead{width:30px;height:30px}
  .recipe-38.necklace-designing .recipe-action{bottom:2%;min-width:200px;font-size:.72rem}
  .recipe-38.finished .recipe-finish,.recipe-38.necklace-presented .recipe-finish{min-height:0;width:min(90%,270px);padding:14px 12px 16px}
  .cupcake-crown-studio{gap:10px}.cupcake-crown-princess{width:140px;height:210px}.cupcake-crown-design-panel{width:190px;padding:10px 8px}.cupcake-crown-swatch{min-width:38px}.cupcake-crown-swatch small{font-size:.42rem}
  .baking-ingredients{left:16%;right:2%;gap:4px}.baking-ingredient{width:76px;min-height:94px}.baking-real-ingredient{transform:scale(.78);transform-origin:bottom center}.baking-mixing-station{left:14%;width:150px;bottom:calc(27% + 26px)}.baking-bowl{width:132px;height:96px}.baking-whisk{left:72px;height:78px}.cupcake-pan{left:38%;width:168px;height:72px;padding:8px 6px 10px;gap:4px;bottom:calc(27% + 28px)}.cupcake-well{width:28px;height:34px}.baking-oven{width:128px;height:188px;right:2%;bottom:calc(27% + 24px)}.oven-window{top:52px;height:100px}.oven-handle{top:44px}.baking-next-btn{left:36%;min-width:195px}.cupcake-crown-result{width:285px}.crown-cupcake{width:34px;height:44px}
  .gumdrop-carriage{left:8%;top:auto;bottom:1%;transform:scale(.72);transform-origin:left bottom}.carriage-design-panel{width:178px;padding:8px}.carriage-color-options button{width:27px;height:27px}.carriage-wheel-tray{left:12%;width:310px}.carriage-wheel-pieces{gap:8px}.carriage-wheel-piece{width:62px;height:62px}.carriage-roll-btn{right:2%;min-width:175px}.carriage-princess{width:95px;height:140px}.carriage-parade{height:80px;bottom:2%}.parade-mini-carriage{width:58px;height:40px}.parade-unit-balloon{font-size:1.3rem}
}

/* ===== Undersea Kingdom activities (45-59) ===== */
.undersea-activity{background:linear-gradient(180deg,#0B3D5C 0%,#146B8C 45%,#2FB0C9 100%);color:#fff;padding:56px 14px 70px;box-sizing:border-box;display:flex;flex-direction:column;align-items:center;gap:10px}
.undersea-activity .activity-choices{position:static;transform:none;left:auto;bottom:auto;margin-top:4px}
.undersea-activity .activity-prompt{position:absolute}

/* Mermaid swim course (51) */
.mermaid-swim-activity{padding:0;overflow:hidden;background:linear-gradient(180deg,#063653 0%,#0e7599 56%,#28b8c3 100%)}
.mermaid-swim-activity::before{content:'';position:absolute;z-index:2;inset:0;pointer-events:none;background:repeating-conic-gradient(from 74deg at 50% -8%,transparent 0 11deg,rgba(190,248,255,.1) 12deg 22deg,transparent 23deg 35deg)}
.swim-course{position:absolute;z-index:1;inset:0;width:100%;max-width:none;height:100%;margin:0;border-radius:24px;overflow:hidden;background:radial-gradient(circle at 50% 20%,rgba(71,193,216,.54),transparent 37%),linear-gradient(180deg,#063653 0%,#0e7599 56%,#28b8c3 100%);touch-action:none;box-shadow:inset 0 0 45px rgba(0,34,60,.4)}
.mermaid-player{position:absolute;bottom:4%;left:50%;width:88px;height:116px;transform:translateX(-50%);z-index:6;transition:filter .3s}
.mermaid-player svg{width:100%;height:100%;display:block}
.mermaid-player.slowed{filter:grayscale(.4) brightness(.75)}
.swim-item{position:absolute;width:58px;height:58px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;font-size:2rem;z-index:3;filter:drop-shadow(0 0 8px rgba(255,255,255,.45))}
.swim-ring{border:6px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(255,255,255,.06)}
.swim-ring.collected{border-color:#FFD700;box-shadow:0 0 14px 2px #FFD700;opacity:.4}
.swim-pearl::before{content:'\1F48E'}
.swim-pearl.collected{opacity:0;transform:translate(-50%,-50%) scale(1.6)}
.swim-seaweed::before{content:'\1F33F'}
.swim-seaweed.hit{animation:swim-seaweed-shake .4s ease}
@keyframes swim-seaweed-shake{0%,100%{transform:translate(-50%,-50%) rotate(0)}50%{transform:translate(-50%,-50%) rotate(12deg)}}
.swim-hud{position:absolute;z-index:9;left:50%;top:58px;transform:translateX(-50%);padding:6px 14px;border-radius:15px;background:rgba(4,55,80,.72);border:2px solid rgba(190,247,255,.6);box-shadow:0 5px 11px rgba(0,37,58,.25);font-size:.78rem;font-weight:900;color:#FFF6C0;white-space:nowrap}

/* Shared boat scene/controls (49,54,58) */
.boat-activity{padding-top:52px}
.boat-scene{position:relative;width:100%;max-width:420px;height:150px;margin:0 auto;border-radius:18px;overflow:hidden;background:linear-gradient(180deg,#4FC3D9 0%,#1D7BA0 70%,#0B3D5C 100%)}
.boat-track{position:relative;width:100%;height:100%}
.boat-token{position:absolute;bottom:14%;left:4%;font-size:2rem;transform:translateX(-50%);transition:left .3s ease,bottom .3s ease}
.boat-token.stroke{animation:boat-stroke .3s ease}
@keyframes boat-stroke{0%,100%{transform:translateX(-50%) translateY(0)}50%{transform:translateX(-50%) translateY(-6px)}}
.boat-controls{display:flex;gap:10px;justify-content:center;flex-wrap:wrap;margin-top:6px;position:relative;z-index:2}
.boat-control{min-height:44px;min-width:64px;padding:9px 16px;border-radius:20px;border:2px solid #FFD700;background:#fff;color:#0B3D5C;font-weight:800;font-family:'Quicksand',sans-serif;cursor:pointer}
.boat-control:active{transform:scale(.95)}
.boat-control:disabled{opacity:.45;cursor:default}
.boat-activity.stall .boat-scene{animation:boat-stall-shake .26s ease}
@keyframes boat-stall-shake{0%,100%{transform:translateX(0)}50%{transform:translateX(-6px)}}
.boat-activity.miss-flash .boat-scene{animation:boat-stall-shake .26s ease}

/* Seahorse coral slalom (46) */
.seahorse-activity{padding-top:52px;background:linear-gradient(180deg,#04506d 0%,#0a7a96 55%,#2ab8b0 100%)}
.seahorse-reef{position:relative;width:min(94%,720px);height:410px;margin:0 auto;border:5px solid #9ff0e4;border-radius:27px;overflow:hidden;cursor:ns-resize;outline:none;touch-action:none;background:radial-gradient(ellipse at 20% 10%,rgba(127,255,212,.35),transparent 32%),radial-gradient(ellipse at 80% 0%,rgba(255,215,0,.18),transparent 28%),linear-gradient(180deg,#0a5f7c 0%,#128fa8 48%,#08706a 100%);box-shadow:inset 0 0 40px rgba(0,40,60,.4),0 12px 22px rgba(0,40,55,.28)}
.seahorse-sunbeams{position:absolute;inset:-15% 0 30%;background:repeating-conic-gradient(from 80deg at 50% 0,transparent 0 12deg,rgba(200,255,240,.1) 13deg 20deg,transparent 21deg 34deg);pointer-events:none;animation:trident-rays 6s ease-in-out infinite alternate}
.seahorse-bubbles{position:absolute;z-index:2;inset:0;pointer-events:none}.seahorse-bubbles i{position:absolute;width:14px;height:14px;border:2px solid rgba(220,255,250,.65);border-radius:50%;animation:seahorse-bubble-rise 3.4s linear infinite}.seahorse-bubbles i:nth-child(1){left:18%;bottom:-8%;animation-delay:0s}.seahorse-bubbles i:nth-child(2){left:48%;bottom:-12%;width:10px;height:10px;animation-delay:1.1s}.seahorse-bubbles i:nth-child(3){left:78%;bottom:-6%;width:18px;height:18px;animation-delay:2s}
.seahorse-floor{position:absolute;z-index:2;left:0;right:0;bottom:0;height:22%;display:flex;justify-content:space-around;align-items:flex-end;padding:0 6% 6px;background:linear-gradient(transparent,#0a5a52 65%,#074040);font-size:2.6rem;pointer-events:none;opacity:.85}
.seahorse-gates{position:absolute;z-index:5;inset:0;pointer-events:none}
.seahorse-gate{position:absolute;top:0;bottom:0;width:72px;transform:translateX(-50%)}
.gate-coral{position:absolute;left:8px;right:8px;border-radius:18px;background:linear-gradient(180deg,#ff7f7a 0%,#e85a6a 40%,#c4455a 100%);box-shadow:inset 0 0 0 4px rgba(255,200,180,.35),0 0 14px rgba(255,120,110,.35);overflow:hidden}
.gate-coral::before{content:'\1F9A0';position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:1.8rem;opacity:.75}
.gate-top{top:0;border-radius:0 0 22px 22px}.gate-bottom{border-radius:22px 22px 0 0}
.gate-opening{position:absolute;left:0;right:0;border:3px dashed rgba(255,246,160,.85);border-radius:16px;background:rgba(255,255,255,.08);box-shadow:0 0 18px rgba(255,240,150,.35)}
.gate-pearl{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:1.2rem;filter:drop-shadow(0 0 6px #fff);opacity:.0;transition:opacity .2s}
.seahorse-gate.cleared .gate-opening{border-color:#7FFFD4;box-shadow:0 0 22px #7FFFD4;background:rgba(127,255,212,.2)}
.seahorse-gate.cleared .gate-pearl{opacity:1;animation:treasure-collected .55s ease forwards}
.seahorse-gate.missed .gate-coral{filter:grayscale(.3) brightness(.85)}
.seahorse-rider{position:absolute;z-index:12;left:18%;top:50%;width:150px;height:150px;transform:translate(-50%,-50%);transition:top .18s ease-out;filter:drop-shadow(0 8px 8px rgba(0,30,40,.4));pointer-events:none}
.seahorse-mount{position:absolute;left:0;bottom:0;width:140px;height:140px;display:block;animation:seahorse-swim-bob 1.4s ease-in-out infinite}
.seahorse-mount svg{width:100%;height:100%;display:block}
.seahorse-princess{position:absolute;z-index:3;left:48px;top:8px;width:72px;height:100px;filter:drop-shadow(0 4px 4px rgba(0,30,40,.35))}
.seahorse-princess svg{width:100%;height:100%;display:block}
.seahorse-wake{position:absolute;z-index:1;left:-36px;top:58%;width:48px;height:22px;border-radius:50%;border-top:5px solid rgba(220,255,250,.7);opacity:.7;animation:seahorse-wake-pulse .9s ease-in-out infinite}
.seahorse-rider.nudge .seahorse-mount{animation:seahorse-nudge .28s ease}
.seahorse-counter{position:absolute;z-index:20;right:12px;top:12px;min-width:120px;padding:8px 12px;border:3px solid #ffe067;border-radius:16px;background:rgba(3,50,70,.84);color:#fff;font-size:.85rem;font-weight:800;box-shadow:0 5px 9px rgba(0,30,40,.28)}.seahorse-counter strong{color:#fff39a;font-size:1.2rem}
.seahorse-finish-flag{position:absolute;z-index:4;right:-4%;top:12%;padding:8px 14px;border-radius:14px;background:rgba(255,255,255,.88);color:#0a5a6e;font-weight:900;font-size:.72rem;box-shadow:0 6px 12px rgba(0,40,50,.25);opacity:0;transform:translateX(20px);transition:opacity .4s,transform .4s,right .6s}
.seahorse-won .seahorse-finish-flag{opacity:1;right:8%;transform:translateX(0)}
.seahorse-won .seahorse-reef{box-shadow:inset 0 0 55px rgba(255,240,100,.45),0 0 25px #fff190}
.seahorse-won .seahorse-counter{background:#6546a1;animation:treasure-glow 1s ease-in-out infinite}
.seahorse-bump .seahorse-reef{animation:sailing-danger .45s ease}
.seahorse-controls{display:flex;gap:12px;justify-content:center;margin-top:12px}.seahorse-controls .boat-control{min-width:140px;min-height:52px;font-size:.95rem;border-width:3px;box-shadow:0 7px 12px rgba(0,40,55,.22)}
@keyframes seahorse-bubble-rise{from{transform:translateY(0);opacity:.8}to{transform:translateY(-420px);opacity:0}}
@keyframes seahorse-swim-bob{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-8px) rotate(3deg)}}
@keyframes seahorse-wake-pulse{0%,100%{transform:scaleX(.75);opacity:.4}50%{transform:scaleX(1.2);opacity:.9}}
@keyframes seahorse-nudge{0%,100%{transform:translateY(0)}50%{transform:translateY(-6px) scale(1.04)}}

/* Bubble Castle (49) */
.bubble-castle-activity{padding-top:52px;background:linear-gradient(180deg,#034a66 0%,#0a7f96 50%,#1aa8a0 100%)}
.bubble-castle-stage{position:relative;width:min(94%,720px);height:420px;margin:0 auto;border:5px solid #a8f5ee;border-radius:28px;overflow:hidden;background:radial-gradient(ellipse at 50% 20%,rgba(127,255,212,.28),transparent 40%),linear-gradient(180deg,#05607a 0%,#0b8a9c 45%,#087a72 100%);box-shadow:inset 0 0 40px rgba(0,35,55,.4),0 12px 22px rgba(0,40,55,.28)}
.bubble-castle-current{position:absolute;inset:0;pointer-events:none;z-index:2;overflow:hidden}
.bubble-castle-current i{position:absolute;left:-20%;width:140%;height:28px;border-top:3px solid rgba(200,255,250,.28);border-radius:50%;animation:bubble-current-flow 2.8s linear infinite}.bubble-castle-current i:nth-child(1){top:22%}.bubble-castle-current i:nth-child(2){top:48%;animation-delay:.9s}.bubble-castle-current i:nth-child(3){top:72%;animation-delay:1.7s}
.current-surge .bubble-castle-current i{border-top-color:rgba(255,240,150,.7);animation-duration:1.1s}
.bubble-castle-reef{position:absolute;z-index:1;left:0;right:0;bottom:0;height:18%;background:linear-gradient(transparent,#0a5550 60%,#063e3c);pointer-events:none}
.bubble-castle-foundation{position:absolute;z-index:3;left:12%;right:12%;bottom:16%;height:12px;border-radius:10px;background:linear-gradient(90deg,rgba(255,255,255,.15),rgba(200,255,250,.35),rgba(255,255,255,.15));box-shadow:0 0 18px rgba(160,255,240,.35);pointer-events:none}
.bubble-castle-pads{position:absolute;z-index:6;inset:0}
.bubble-pad{position:absolute;width:72px;height:78px;transform:translate(-50%,-50%);border:3px dashed rgba(255,246,160,.65);border-radius:50% 50% 42% 42%;background:rgba(255,255,255,.1);color:#fff;cursor:pointer;padding:0;display:flex;flex-direction:column;align-items:center;justify-content:center;box-shadow:0 0 14px rgba(255,240,150,.2);transition:transform .2s,box-shadow .2s,border-color .2s}
.bubble-pad small{font-size:.48rem;font-weight:800;letter-spacing:.04em;text-transform:uppercase;opacity:.8;margin-top:2px}
.bubble-pad.filled{border-style:solid;border-color:rgba(127,255,212,.75);background:rgba(255,255,255,.16)}
.bubble-pad.unlocked{animation:bubble-pad-wobble 1.1s ease-in-out infinite;border-color:#ffe67a;box-shadow:0 0 16px rgba(255,220,100,.45)}
.bubble-pad.locked{border-color:#FFD700;background:rgba(255,255,255,.22);box-shadow:0 0 18px rgba(255,215,0,.45);animation:none}
.bubble-pad.pad-mismatch{animation:sailing-danger .4s ease}
.bubble-pad.drifting{animation:bubble-room-drift .52s ease forwards}
.pad-ghost{display:block;width:34px;height:34px;border-radius:50%;border:2px dashed rgba(255,255,255,.35);opacity:.55}
.pad-ghost.room-tower,.pad-ghost.room-spire{border-radius:12px 12px 8px 8px;height:40px}
.pad-lock{position:absolute;right:2px;top:2px;font-size:.85rem;filter:drop-shadow(0 0 4px #fff)}
.pad-unlock-hint{position:absolute;left:50%;bottom:-2px;transform:translateX(-50%);white-space:nowrap;font-size:.42rem;font-weight:900;color:#fff6c0;text-shadow:0 1px 3px rgba(0,30,40,.6)}
.bubble-room-art{position:relative;display:block;width:46px;height:52px}
.bubble-room-art i,.bubble-room-art b{position:absolute;left:50%;transform:translateX(-50%);border:3px solid rgba(255,255,255,.55);background:radial-gradient(circle at 35% 30%,rgba(255,255,255,.55),rgba(127,255,212,.45) 45%,rgba(70,180,200,.55));box-shadow:inset 0 -6px 10px rgba(0,60,80,.15),0 0 10px rgba(160,255,240,.35)}
.room-tower i{bottom:0;width:28px;height:42px;border-radius:10px 10px 6px 6px}.room-tower b{top:2px;width:34px;height:10px;border-radius:4px}
.room-keep i{bottom:0;width:40px;height:34px;border-radius:12px}.room-keep b{top:0;width:28px;height:22px;border-radius:50% 50% 8px 8px}
.room-gate i{bottom:0;width:40px;height:36px;border-radius:10px}.room-gate b{bottom:0;width:14px;height:20px;border-radius:8px 8px 0 0;background:rgba(8,70,90,.45);border-color:rgba(255,255,255,.25)}
.room-balcony i{bottom:8px;width:36px;height:28px;border-radius:50%}.room-balcony b{bottom:0;width:42px;height:12px;border-radius:6px}
.room-spire i{bottom:0;width:22px;height:36px;border-radius:8px}.room-spire b{top:0;width:0;height:0;border:none;background:transparent;border-left:12px solid transparent;border-right:12px solid transparent;border-bottom:18px solid rgba(127,255,212,.75);box-shadow:none;transform:translateX(-50%)}
.room-dome i{bottom:4px;width:40px;height:28px;border-radius:50% 50% 12px 12px}.room-dome b{top:2px;width:24px;height:18px;border-radius:50%}
.bubble-castle-harbor{position:absolute;z-index:8;left:0;right:0;bottom:0;height:26%;pointer-events:none;overflow:hidden}
.bubble-launch-boat{position:absolute;left:-18%;bottom:8%;width:82px;height:105px;opacity:0;filter:drop-shadow(0 6px 6px rgba(0,30,40,.4))}
.bubble-launch-boat.sailing{opacity:1;animation:bubble-boat-launch 3.2s ease-in-out forwards}
.bubble-castle-complete .bubble-castle-stage{box-shadow:inset 0 0 55px rgba(255,240,100,.4),0 0 24px #fff190}
.bubble-castle-complete .bubble-pad.locked{animation:treasure-glow 1.2s ease-in-out infinite}
.bubble-castle-counter{position:absolute;z-index:20;right:12px;top:12px;min-width:130px;padding:8px 12px;border:3px solid #ffe067;border-radius:16px;background:rgba(3,50,70,.84);color:#fff;font-size:.82rem;font-weight:800;box-shadow:0 5px 9px rgba(0,30,40,.28)}.bubble-castle-counter strong{color:#fff39a;font-size:1.15rem}
.bubble-room-palette{display:flex;flex-wrap:wrap;gap:8px;justify-content:center;max-width:720px;margin:10px auto 0}
.bubble-room-choice{min-width:84px;min-height:86px;padding:8px 6px 6px;border:3px solid rgba(255,255,255,.35);border-radius:18px;background:rgba(255,255,255,.14);color:#fff;cursor:pointer;display:flex;flex-direction:column;align-items:center;gap:4px;font-family:'Quicksand',sans-serif}
.bubble-room-choice small{font-size:.62rem;font-weight:800}
.bubble-room-choice.selected{border-color:#FFD700;background:rgba(255,246,160,.22);box-shadow:0 0 14px rgba(255,215,0,.4)}
.bubble-castle-replay{margin-top:8px}
@keyframes bubble-current-flow{from{transform:translateX(0)}to{transform:translateX(8%)}}
@keyframes bubble-pad-wobble{0%,100%{transform:translate(-50%,-50%) rotate(-2deg)}50%{transform:translate(-50%,-52%) rotate(2deg)}}
@keyframes bubble-room-drift{to{transform:translate(40%,-80%) scale(.4) rotate(25deg);opacity:0}}
@keyframes bubble-boat-launch{0%{left:-18%;opacity:0;transform:translateY(10px)}12%{opacity:1}55%{left:42%;transform:translateY(0)}100%{left:112%;opacity:.85;transform:translateY(-4px)}}

/* Shell Sailboat visuals (launch boat reuse) */
.sailboat-activity{padding-top:52px}.sailboat-ocean{position:relative;width:min(94%,720px);height:455px;margin:0 auto;border:5px solid #d8f7ff;border-radius:27px;overflow:hidden;cursor:crosshair;outline:none;background:radial-gradient(ellipse at 30% 15%,rgba(154,242,255,.46),transparent 28%),repeating-radial-gradient(ellipse at 50% 115%,rgba(255,255,255,.19) 0 2px,transparent 3px 22px),linear-gradient(180deg,#35bbd4 0%,#1285b2 47%,#075e94 100%);box-shadow:inset 0 0 35px rgba(0,44,92,.35),0 12px 24px rgba(0,43,78,.24)}
.sailboat-ocean::after{content:'';position:absolute;z-index:2;inset:0;pointer-events:none;background:repeating-linear-gradient(174deg,transparent 0 29px,rgba(255,255,255,.13) 30px 33px,transparent 34px 57px);animation:ocean-current 5s linear infinite}
.sailing-sun{position:absolute;z-index:1;right:2%;top:2%;font-size:3.2rem;filter:drop-shadow(0 0 13px #fff6a0)}.sailing-cloud{position:absolute;z-index:1;color:#fff;font-size:2.7rem;opacity:.7}.cloud-one{left:4%;top:1%;animation:sailing-cloud-drift 11s linear infinite}.cloud-two{left:52%;top:9%;font-size:2rem;animation:sailing-cloud-drift 14s linear infinite reverse}
.sailing-island{position:absolute;z-index:5;width:125px;height:95px;text-align:center;pointer-events:none;filter:drop-shadow(0 7px 5px rgba(0,50,70,.3))}.sailing-island::before{content:'';position:absolute;left:4px;right:4px;bottom:3px;height:39px;border-radius:50%;background:radial-gradient(ellipse,#ffe88a 0 57%,#d8a74c 60% 68%,transparent 70%)}.sailing-island span{position:relative;z-index:2;font-size:4.6rem;line-height:1}.sailing-island b{position:absolute;z-index:3;left:50%;bottom:0;transform:translateX(-50%);white-space:nowrap;padding:2px 7px;border-radius:8px;background:rgba(255,255,255,.85);color:#07527a;font-size:.55rem}.island-one{left:12%;top:15%}.island-two{left:66%;top:13%}.island-three{left:67%;top:66%}
.passing-boat{position:absolute;z-index:4;font-size:2.5rem;filter:drop-shadow(0 5px 4px rgba(0,44,70,.35));pointer-events:none}.passing-one{left:-10%;top:43%;animation:passing-boat-east 13s linear infinite}.passing-two{right:-10%;top:57%;transform:scaleX(-1);animation:passing-boat-west 17s linear infinite 3s}
.sailing-treasure{position:absolute;z-index:8;width:52px;height:44px;transform:translate(-50%,-50%);border:4px solid #77451d;border-radius:7px 7px 11px 11px;background:linear-gradient(90deg,#9a5b24 0 43%,#ffd85b 44% 57%,#9a5b24 58%);color:#fff8b6;font-size:1.15rem;line-height:36px;cursor:pointer;box-shadow:inset 0 -7px 0 #70401f,0 0 0 3px #f4c54a,0 5px 8px rgba(0,33,63,.35);animation:treasure-glow 1.4s ease-in-out infinite}.sailing-treasure::before{content:'';position:absolute;left:-4px;right:-4px;top:-13px;height:20px;border:4px solid #77451d;border-radius:25px 25px 4px 4px;background:linear-gradient(90deg,#a66127 0 43%,#ffe271 44% 57%,#a66127 58%)}.sailing-treasure.collected{animation:treasure-collected .55s ease forwards;pointer-events:none}
.player-sailboat{position:absolute;z-index:12;left:49%;top:77%;width:82px;height:105px;transform:translate(-50%,-50%);transition:left .3s ease,top .3s ease,transform .3s ease;filter:drop-shadow(0 8px 6px rgba(0,31,61,.38));pointer-events:none}.sailboat-hull{position:absolute;z-index:5;left:14px;bottom:3px;width:55px;height:32px;border:4px solid #653722;border-radius:7px 7px 30px 30px;background:linear-gradient(#e89245,#874324)}.sailboat-mast{position:absolute;z-index:3;left:40px;top:7px;width:5px;height:75px;border-radius:3px;background:#6b3c23}.sailboat-main-sail{position:absolute;z-index:4;left:1px;top:13px;width:37px;height:57px;background:linear-gradient(135deg,#fff7c9,#ff737e);clip-path:polygon(100% 0,100% 100%,0 83%);border-radius:40% 0 0 8px}.sailboat-small-sail{position:absolute;z-index:4;left:46px;top:23px;width:29px;height:45px;background:linear-gradient(135deg,#fff,#ffe773);clip-path:polygon(0 0,100% 82%,0 100%)}.sailboat-flag{position:absolute;z-index:4;left:43px;top:3px;width:24px;height:15px;background:#8f43c5;clip-path:polygon(0 0,100% 50%,0 100%)}.player-wake{position:absolute;left:11px;bottom:-9px;width:64px;height:18px;border-bottom:5px solid rgba(255,255,255,.75);border-radius:50%;opacity:.75}.player-sailboat.moving .player-wake{animation:sailboat-wake .35s ease}
.sailing-sea-monster{position:absolute;z-index:10;width:92px;height:92px;transform:translate(-50%,-50%);transition:left .5s linear,top .5s ease;pointer-events:none;filter:drop-shadow(0 0 9px rgba(34,255,163,.6))}.monster-head{position:absolute;z-index:3;left:17px;top:0;font-size:4rem;animation:monster-bob 1.1s ease-in-out infinite}.sailing-sea-monster strong{position:absolute;left:50%;top:76px;transform:translateX(-50%);padding:2px 6px;border-radius:7px;background:#ff5252;color:#fff;font-size:.48rem;letter-spacing:.08em}.monster-tentacle{position:absolute;z-index:1;top:48px;width:57px;height:25px;border:9px solid #3bd68e;border-top:0;border-radius:0 0 50% 50%}.tentacle-one{left:-2px;transform:rotate(18deg);animation:monster-tentacle 1s ease-in-out infinite}.tentacle-two{right:-2px;transform:rotate(-18deg) scaleX(-1);animation:monster-tentacle 1s ease-in-out infinite reverse}
.sailing-counter{position:absolute;z-index:20;right:12px;bottom:10px;padding:7px 12px;border:3px solid #ffd75b;border-radius:15px;background:rgba(3,50,90,.82);color:#fff;font-weight:900;font-size:.9rem;box-shadow:0 4px 8px rgba(0,0,0,.25)}
.sailing-direction-controls{display:flex;flex-direction:column;align-items:center;gap:3px;margin:8px auto 0}.sailing-direction-controls>div{display:flex;gap:5px}.sailing-direction-controls button{width:54px;height:44px;border:3px solid #ffd85e;border-radius:15px;background:linear-gradient(#fff,#dffaff);color:#07547b;font-size:1.35rem;font-weight:900;box-shadow:0 5px 8px rgba(0,44,70,.24);cursor:pointer}.sailing-direction-controls button:active{transform:translateY(2px) scale(.96)}
.sailboat-danger .sailboat-ocean{animation:sailing-danger .55s ease}.sailboat-bump .player-sailboat{animation:sailboat-bump .35s ease}.sailing-winner .sailing-counter{animation:treasure-glow 1s ease-in-out infinite;background:#6d3fa2}
@keyframes ocean-current{to{background-position:100px 0}}@keyframes sailing-cloud-drift{from{transform:translateX(-80px)}to{transform:translateX(540px)}}@keyframes passing-boat-east{from{left:-10%}to{left:110%}}@keyframes passing-boat-west{from{right:-10%}to{right:110%}}@keyframes treasure-glow{50%{filter:drop-shadow(0 0 11px #fff06a);transform:translate(-50%,-50%) scale(1.09)}}@keyframes treasure-collected{to{transform:translate(-50%,-120%) scale(1.8) rotate(12deg);opacity:0}}@keyframes sailboat-wake{50%{transform:scaleX(1.45);opacity:1}}@keyframes monster-bob{50%{transform:translateY(-8px) rotate(4deg)}}@keyframes monster-tentacle{50%{transform:rotate(-13deg) scaleX(1.15)}}@keyframes sailing-danger{25%,75%{filter:hue-rotate(90deg);transform:translateX(-7px)}50%{transform:translateX(7px)}}@keyframes sailboat-bump{50%{transform:translate(-50%,-50%) rotate(18deg) scale(.9)}}

/* Dolphin Chariot (54) */
.dolphin-chariot-activity{padding-top:52px}.dolphin-course{position:relative;width:min(94%,720px);height:410px;margin:0 auto;border:5px solid #b9f5ff;border-radius:27px;overflow:hidden;cursor:pointer;outline:none;background:radial-gradient(circle at 50% -5%,rgba(185,248,255,.65),transparent 35%),linear-gradient(180deg,#29b6d0 0%,#0b7ca9 48%,#075280 100%);box-shadow:inset 0 0 38px rgba(0,36,81,.38),0 12px 22px rgba(0,42,72,.25)}
.dolphin-course::after{content:'';position:absolute;z-index:1;left:-10%;right:-10%;top:44%;height:18px;background:repeating-radial-gradient(ellipse at 50% 100%,transparent 0 17px,rgba(255,255,255,.43) 18px 21px,transparent 22px 38px);animation:dolphin-wave-flow 2.3s linear infinite}.dolphin-sunbeams{position:absolute;inset:-20% 0 25%;background:repeating-conic-gradient(from 76deg at 50% 0,transparent 0 10deg,rgba(210,251,255,.12) 11deg 19deg,transparent 20deg 31deg);animation:trident-rays 5s ease-in-out infinite alternate}.dolphin-bubble-trail{position:absolute;z-index:3;left:7%;bottom:37%;width:13px;height:13px;border:2px solid rgba(220,253,255,.7);border-radius:50%;box-shadow:35px 20px 0 -3px rgba(220,253,255,.55),72px -9px 0 3px rgba(220,253,255,.46),120px 25px 0 -4px rgba(220,253,255,.6);animation:dolphin-bubbles 3s linear infinite}
.dolphin-course-floor{position:absolute;z-index:2;left:0;right:0;bottom:0;height:25%;display:flex;justify-content:space-around;align-items:flex-end;padding:0 7% 8px;background:linear-gradient(transparent,#0b6c74 70%,#085162);font-size:3rem}.dolphin-course-floor span:nth-child(2){font-size:2.2rem}.dolphin-course-floor span:nth-child(4){font-size:4rem}
.dolphin-runner{position:absolute;z-index:12;left:21%;bottom:66px;width:145px;height:125px;transform:translateX(-50%);filter:drop-shadow(0 9px 6px rgba(0,38,70,.35))}.dolphin-mount{position:absolute;z-index:4;left:0;top:8px;width:130px;height:115px;transform-origin:52% 72%;animation:dolphin-swimming .75s ease-in-out infinite}.dolphin-body{position:absolute;z-index:1;left:4px;top:20px;font-size:5.7rem;line-height:1;transform:scaleX(-1);pointer-events:none}.dolphin-rider{position:absolute;z-index:3;left:36px;top:18px;width:30px;height:42px;filter:drop-shadow(0 3px 3px rgba(0,35,66,.28));transform:rotate(28deg);transform-origin:55% 88%;pointer-events:none}.dolphin-rider svg{display:block;width:100%;height:100%;overflow:visible}.dolphin-speed-lines{position:absolute;left:-68px;top:69px;width:85px;height:29px;border-top:4px solid rgba(255,255,255,.6);border-bottom:3px solid rgba(255,255,255,.35);transform:skewX(-25deg);animation:dolphin-speed 1s linear infinite}.dolphin-runner.jumping{animation:dolphin-course-jump .76s cubic-bezier(.28,.65,.35,1)}
.dolphin-obstacles{position:absolute;z-index:9;inset:0}.dolphin-obstacle{position:absolute;left:108%;bottom:62px;width:78px;height:100px;transform:translateX(-50%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;pointer-events:none;filter:drop-shadow(0 7px 5px rgba(0,38,66,.35))}.dolphin-obstacle span{font-size:4.7rem;line-height:1}.dolphin-obstacle b{margin-top:2px;padding:2px 6px;border-radius:7px;background:rgba(2,50,80,.8);color:#fff;font-size:.48rem;letter-spacing:.06em}.obstacle-net span{font-size:4.1rem}.obstacle-jelly span{animation:monster-bob 1.1s ease-in-out infinite}.dolphin-obstacle.cleared{animation:obstacle-cleared .55s ease forwards}.dolphin-obstacle.hit{animation:obstacle-hit .6s ease forwards}
.dolphin-jump-counter{position:absolute;z-index:20;right:14px;top:13px;min-width:130px;padding:9px 13px;border:3px solid #ffe067;border-radius:17px;background:rgba(3,50,87,.84);color:#fff;font-size:.85rem;font-weight:800;box-shadow:0 5px 9px rgba(0,35,65,.28)}.dolphin-jump-counter strong{display:inline-block;color:#fff39a;font-size:1.25rem;min-width:20px}.dolphin-chariot-activity .jump-btn{min-width:180px;min-height:54px;border-width:3px;font-size:1rem;box-shadow:0 7px 12px rgba(0,40,70,.25)}.dolphin-course-hit .dolphin-course{animation:sailing-danger .55s ease}.dolphin-course-won .dolphin-course{box-shadow:inset 0 0 55px rgba(255,240,100,.5),0 0 25px #fff190}.dolphin-course-won .dolphin-jump-counter{background:#6546a1;animation:treasure-glow 1s ease-in-out infinite}
@keyframes dolphin-swimming{0%,100%{transform:rotate(-4deg) translateY(2px)}50%{transform:rotate(5deg) translateY(-7px)}}@keyframes dolphin-speed{from{transform:translateX(30px) skewX(-25deg);opacity:0}50%{opacity:1}to{transform:translateX(-25px) skewX(-25deg);opacity:0}}@keyframes dolphin-course-jump{0%,100%{transform:translateX(-50%) translateY(0) rotate(0)}45%{transform:translateX(-50%) translateY(-145px) rotate(-12deg)}}@keyframes dolphin-wave-flow{to{transform:translateX(-76px)}}@keyframes dolphin-bubbles{to{transform:translate(-90px,-115px);opacity:0}}@keyframes obstacle-cleared{to{transform:translateX(-50%) translateY(55px) rotate(20deg);opacity:.2}}@keyframes obstacle-hit{50%{transform:translateX(-50%) scale(1.2);filter:drop-shadow(0 0 15px #ff5e78)}to{opacity:.35}}

/* Lighthouse Rescue (58) */
.lighthouse-rescue-activity{padding-top:52px}.lighthouse-rescue-scene{position:relative;width:min(94%,740px);height:450px;margin:0 auto;border:5px solid #a9ddec;border-radius:28px;overflow:hidden;background:radial-gradient(circle at 18% 8%,#314e83 0,#152d5d 37%,#071838 72%),linear-gradient(#102b58,#06162f);box-shadow:inset 0 0 38px rgba(0,10,37,.65),0 12px 22px rgba(0,35,65,.27)}
.lighthouse-night-sky{position:absolute;z-index:1;inset:0 0 46%;background:radial-gradient(circle at 15% 20%,rgba(124,151,213,.25),transparent 27%)}.lighthouse-moon{position:absolute;left:8%;top:7%;font-size:3.8rem;filter:drop-shadow(0 0 14px #fff9b4)}.lighthouse-stars{position:absolute;left:25%;right:10%;top:8%;color:#fff8ad;font-size:1.6rem;word-spacing:42px;text-shadow:70px 70px 0 #fff,220px 25px 0 #dff8ff,340px 90px 0 #fff}
.lighthouse-ocean-waves{position:absolute;z-index:2;left:-8%;right:-8%;top:39%;bottom:0;background:repeating-radial-gradient(ellipse at 50% 0,transparent 0 20px,rgba(176,228,244,.23) 21px 24px,transparent 25px 44px),linear-gradient(180deg,#0b4c78,#07375f 65%,#052944);animation:lighthouse-water 4s linear infinite}
.lighthouse-shore{position:absolute;z-index:4;right:-3%;bottom:-3%;width:33%;height:34%;border-radius:60% 0 0 0;background:radial-gradient(ellipse at 55% 85%,#e7c77a 0 54%,#967145 56% 65%,transparent 67%);color:#573f27;text-align:center}.lighthouse-shore::before{content:'';position:absolute;left:0;right:0;top:-7px;height:24px;border-top:8px solid rgba(224,249,255,.8);border-radius:50%;transform:rotate(-12deg)}.shore-palms{position:absolute;right:5%;bottom:34%;font-size:4.2rem;filter:drop-shadow(0 6px 5px rgba(0,25,45,.4))}.lighthouse-shore strong{position:absolute;right:10%;bottom:12%;font-size:.56rem;letter-spacing:.08em}
.real-lighthouse{position:absolute;z-index:12;right:7%;bottom:12%;width:130px;height:285px;filter:drop-shadow(0 10px 7px rgba(0,18,38,.48))}.lighthouse-tower-body{position:absolute;z-index:4;left:31px;bottom:7px;width:73px;height:216px;border:5px solid #6b3340;clip-path:polygon(18% 0,82% 0,100% 100%,0 100%);background:repeating-linear-gradient(180deg,#f8f1dc 0 35px,#d85b5d 36px 69px);box-shadow:inset -12px 0 0 rgba(80,25,34,.12)}.lighthouse-tower-body i{position:absolute;left:50%;width:17px;height:26px;transform:translateX(-50%);border:4px solid #512c3d;border-radius:9px 9px 2px 2px;background:#ffe876;box-shadow:0 0 10px #fff186}.lighthouse-tower-body i:nth-child(1){top:28px}.lighthouse-tower-body i:nth-child(2){top:94px}.lighthouse-tower-body i:nth-child(3){top:157px}.lighthouse-gallery{position:absolute;z-index:8;left:19px;top:50px;width:99px;height:15px;border:5px solid #572e39;border-radius:4px;background:#e5d9c5;box-shadow:0 8px 0 #6f3440}.lighthouse-lantern{position:absolute;z-index:7;left:37px;top:10px;width:62px;height:52px;border:6px solid #572e39;border-radius:7px;background:radial-gradient(circle,#fff 0 15%,#fff186 24%,#ffb733 67%);box-shadow:0 0 28px 9px rgba(255,235,113,.85)}.lighthouse-lantern i{position:absolute;left:50%;top:10px;width:10px;height:28px;transform:translateX(-50%);border-radius:5px;background:#fff;box-shadow:0 0 16px #fff}.lighthouse-roof{position:absolute;z-index:9;left:27px;top:-7px;width:82px;height:32px;background:#873647;clip-path:polygon(50% 0,100% 100%,0 100%)}.lighthouse-door{position:absolute;z-index:9;left:53px;bottom:7px;width:33px;height:48px;border:5px solid #542d37;border-radius:18px 18px 2px 2px;background:#79404a}
.lighthouse-beam{position:absolute;z-index:7;right:12%;top:27%;width:82%;height:145px;transform-origin:100% 50%;clip-path:polygon(0 29%,100% 47%,100% 53%,0 71%);background:linear-gradient(90deg,rgba(255,244,153,.08),rgba(255,246,164,.36) 54%,rgba(255,255,224,.95));filter:drop-shadow(0 0 10px #fff49a);pointer-events:none;transition:transform .8s cubic-bezier(.2,.7,.25,1)}.lighthouse-beam.celebrate{background:linear-gradient(90deg,rgba(255,247,157,.2),rgba(255,255,220,.95));animation:lighthouse-celebrate-beam 1s ease-in-out infinite}
.rescue-ships{position:absolute;z-index:9;inset:0}.lighthouse-rescue-ship{position:absolute;width:82px;height:105px;margin:0;padding:0;border:0;background:transparent;transform:translate(-50%,-50%);filter:grayscale(1) brightness(.14) drop-shadow(0 6px 5px rgba(0,0,0,.55));cursor:pointer;transition:left 1.7s cubic-bezier(.2,.7,.2,1),top 1.7s cubic-bezier(.2,.7,.2,1),filter .45s,transform .45s;animation:dark-ship-bob 1.7s ease-in-out infinite}.lighthouse-rescue-ship::after{content:'';position:absolute;left:7px;bottom:-6px;width:70px;height:17px;border-bottom:5px solid rgba(180,231,247,.34);border-radius:50%}.lighthouse-rescue-ship.beam-lit{z-index:11;filter:grayscale(.25) brightness(1.15) drop-shadow(0 0 15px #fff3a0);transform:translate(-50%,-50%) scale(1.12)}.lighthouse-rescue-ship.rescued{z-index:10;filter:grayscale(0) brightness(1.2) drop-shadow(0 0 10px #ffe77a);animation:rescued-ship-sail .55s ease-in-out infinite alternate}.rescue-ship-lamp{position:absolute;z-index:8;left:34px;top:52px;width:12px;height:12px;border-radius:50%;background:#2e3545}.beam-lit .rescue-ship-lamp,.rescued .rescue-ship-lamp{background:#fff9a6;box-shadow:0 0 12px 5px #ffe979}
.lighthouse-rescue-counter{position:absolute;z-index:20;left:13px;bottom:12px;min-width:145px;padding:9px 12px;border:3px solid #ffe36d;border-radius:16px;background:rgba(3,28,65,.86);color:#fff;font-size:.78rem;font-weight:800}.lighthouse-rescue-counter strong{color:#fff3a0;font-size:1.2rem}.lighthouse-replay-btn{display:block;margin:8px auto}.all-ships-safe .lighthouse-rescue-counter{background:#48683d;box-shadow:0 0 14px #fff28e}.real-lighthouse.celebrating{animation:lighthouse-celebrate 1s ease-in-out infinite alternate}
@keyframes lighthouse-water{to{background-position:90px 0}}@keyframes dark-ship-bob{50%{margin-top:-7px;rotate:3deg}}@keyframes rescued-ship-sail{to{margin-top:-8px;rotate:-3deg}}@keyframes lighthouse-celebrate{to{filter:drop-shadow(0 0 23px #fff39a) brightness(1.2)}}@keyframes lighthouse-celebrate-beam{50%{filter:drop-shadow(0 0 22px #fff) brightness(1.35)}}

/* Octopus Umbrella tic-tac-toe (56) */
.octopus-ttt-activity{padding-top:52px}
.octopus-ttt-stage{display:flex;align-items:center;justify-content:center;gap:24px;width:min(94%,760px);min-height:365px;margin:0 auto;padding:18px;border:5px solid #99e6ec;border-radius:28px;background:radial-gradient(circle at 50% 25%,#2da7bd,#0c648e 68%,#08446f);box-shadow:inset 0 0 32px rgba(0,33,72,.38),0 10px 20px rgba(0,35,65,.24)}
.undersea-board{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;width:min(38vw,315px);margin:0;position:relative;z-index:5}
.ttt-cell{aspect-ratio:1;min-height:58px;border-radius:17px;border:3px solid rgba(255,255,255,.62);background:rgba(255,255,255,.14);font-size:1.8rem;color:#fff;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:0;box-shadow:inset 0 0 12px rgba(255,255,255,.08),0 4px 6px rgba(0,37,65,.2)}
.ttt-cell.pending{animation:ttt-pending-pulse 1s ease-in-out infinite}
@keyframes ttt-pending-pulse{0%,100%{opacity:1}50%{opacity:.55}}
.ttt-cell.cell-pearl{background:rgba(255,230,132,.25);border-color:#ffe46d}.ttt-cell.cell-octopus{background:rgba(206,113,231,.28);border-color:#e8a3ff}
.ttt-pearl-piece{display:block;width:48%;height:48%;border-radius:50%;background:radial-gradient(circle at 32% 27%,#fff 0 12%,#fffbdc 13% 29%,#e8d5ef 57%,#ad91ca 100%);box-shadow:0 0 13px #fff,0 6px 6px rgba(0,32,65,.3);animation:ttt-piece-pop .35s cubic-bezier(.2,.8,.3,1.4)}.ttt-octopus-piece{font-size:2.7rem;filter:drop-shadow(0 4px 3px rgba(0,30,60,.35));animation:ttt-piece-pop .35s cubic-bezier(.2,.8,.3,1.4)}
.ttt-cell.win-cell{background:rgba(46,204,113,.4);border-color:#2ecc71}
.ttt-cell.loss-cell{background:rgba(231,76,60,.35);border-color:#e74c3c}
.ttt-cell:disabled{cursor:default}
.ttt-player-side{width:82px;display:flex;flex-direction:column;align-items:center;gap:9px;color:#fff;font-size:.68rem;letter-spacing:.1em}.ttt-player-pearl{width:58px;height:58px;border-radius:50%;background:radial-gradient(circle at 32% 27%,#fff 0 12%,#fffbdc 13% 29%,#e8d5ef 57%,#ad91ca 100%);box-shadow:0 0 17px #fff,0 7px 8px rgba(0,35,65,.3)}
.octopus-opponent{position:relative;width:195px;height:260px;display:flex;flex-direction:column;align-items:center;justify-content:flex-end;color:#fff;font-size:.67rem;letter-spacing:.08em}.octopus-speech{position:absolute;z-index:12;left:50%;top:0;transform:translateX(-50%);min-width:145px;padding:8px 10px;border:3px solid #9a5bbd;border-radius:17px;background:#fff;color:#5a3273;font-size:.64rem;font-weight:900;letter-spacing:0;text-align:center;box-shadow:0 5px 8px rgba(0,30,60,.25)}.octopus-speech::after{content:'';position:absolute;left:50%;bottom:-11px;width:17px;height:17px;background:#fff;border-right:3px solid #9a5bbd;border-bottom:3px solid #9a5bbd;transform:translateX(-50%) rotate(45deg)}
.game-octopus{position:relative;width:180px;height:178px;margin-bottom:4px;filter:drop-shadow(0 8px 7px rgba(0,31,65,.35));animation:game-octopus-float 2s ease-in-out infinite}.octopus-head{position:absolute;z-index:5;left:24px;top:7px;width:132px;height:112px;border:5px solid #76348e;border-radius:52% 52% 45% 45%;background:radial-gradient(circle at 37% 25%,#efb8ff 0 7%,#ca6ee1 35%,#9043b2 78%);box-shadow:inset -12px -10px 0 rgba(80,23,106,.16)}.octopus-eye{position:absolute;top:38px;width:25px;height:31px;border-radius:50%;background:#fff;border:3px solid #62317b}.octopus-eye::after{content:'';position:absolute;left:8px;top:10px;width:9px;height:12px;border-radius:50%;background:#263b68}.octopus-eye.eye-left{left:31px}.octopus-eye.eye-right{right:31px}.octopus-smile{position:absolute;left:50%;top:76px;width:35px;height:17px;border-bottom:5px solid #603179;border-radius:0 0 50% 50%;transform:translateX(-50%)}
.octopus-tentacles{position:absolute;z-index:3;left:7px;right:7px;bottom:0;height:91px}.octopus-tentacles i{position:absolute;top:0;width:27px;height:83px;border:4px solid #71338d;border-top:0;border-radius:0 0 18px 18px;background:linear-gradient(90deg,#9a43b6,#d778e7 55%,#83369f);transform-origin:50% 0}.octopus-tentacles i:nth-child(1){left:5px;transform:rotate(34deg)}.octopus-tentacles i:nth-child(2){left:26px;transform:rotate(23deg)}.octopus-tentacles i:nth-child(3){left:47px;transform:rotate(12deg)}.octopus-tentacles i:nth-child(4){left:68px;transform:rotate(3deg)}.octopus-tentacles i:nth-child(5){left:89px;transform:rotate(-4deg)}.octopus-tentacles i:nth-child(6){left:110px;transform:rotate(-14deg)}.octopus-tentacles i:nth-child(7){left:131px;transform:rotate(-25deg)}.octopus-tentacles i:nth-child(8){left:148px;transform:rotate(-35deg)}
.ttt-octopus-key{position:absolute;right:9px;bottom:0;font-size:1.6rem}.game-octopus.thinking .octopus-eye::after{animation:octopus-eyes-think .7s ease-in-out infinite alternate}.game-octopus.played .octopus-tentacles{animation:octopus-play-wave .5s ease}.game-octopus.surprised .octopus-smile{width:24px;height:24px;border:5px solid #603179;border-radius:50%;top:72px}.game-octopus.celebrating{animation:octopus-celebrate .6s ease-in-out infinite alternate}
.ttt-result{min-height:24px;font-weight:800;text-align:center;font-size:.82rem}
.ttt-result.ttt-win{color:#7CFFB2}
.ttt-result.ttt-loss{color:#FFAFA3}
.ttt-result.ttt-draw{color:#FFE08A}
.ttt-replay-btn{min-height:44px;padding:8px 20px;border-radius:20px;border:2px solid #FFD700;background:#fff;color:#0B3D5C;font-weight:800;font-family:'Quicksand',sans-serif;cursor:pointer}
@keyframes ttt-piece-pop{from{transform:scale(.2) rotate(-25deg);opacity:0}to{transform:scale(1);opacity:1}}@keyframes game-octopus-float{50%{transform:translateY(-8px) rotate(2deg)}}@keyframes octopus-eyes-think{from{transform:translateX(-5px)}to{transform:translateX(5px)}}@keyframes octopus-play-wave{50%{transform:rotate(-12deg) scale(1.08)}}@keyframes octopus-celebrate{to{transform:translateY(-17px) rotate(7deg) scale(1.05)}}

/* Pearl Necklace Designer (45) */
.pearl-necklace-designer{position:relative;padding:56px 12px 16px;background:radial-gradient(circle at 45% 35%,#2eb7cb 0%,#0e6f91 45%,#073e63 100%);overflow:hidden}
.pearl-necklace-designer::before{content:'';position:absolute;inset:0;background:radial-gradient(circle at 8% 18%,rgba(255,255,255,.55) 0 3px,transparent 4px),radial-gradient(circle at 18% 44%,rgba(255,255,255,.4) 0 5px,transparent 6px),radial-gradient(circle at 72% 20%,rgba(255,255,255,.45) 0 4px,transparent 5px),radial-gradient(circle at 88% 62%,rgba(255,255,255,.38) 0 6px,transparent 7px);animation:necklace-water-shimmer 4s ease-in-out infinite alternate}
.necklace-designer-princess{position:absolute;z-index:8;left:4%;bottom:5%;width:158px;height:236px;filter:drop-shadow(0 9px 12px rgba(0,33,54,.35))}
.necklace-princess-art,.necklace-princess-art svg{width:100%;height:100%;display:block}
.worn-pearl-necklace{position:absolute;z-index:10;left:50%;top:34%;width:40%;height:16%;transform:translateX(-50%);pointer-events:none;opacity:0;transition:opacity .4s}
.wearing-necklace .worn-pearl-necklace{opacity:1;animation:worn-necklace-sparkle .8s ease-out}
.worn-necklace-chain{position:absolute;left:10%;right:10%;top:6%;height:62%;border:2px solid #f4ead3;border-top:0;border-radius:0 0 50% 50%;filter:drop-shadow(0 0 3px #fff)}
.worn-necklace-bead{position:absolute;width:8px;height:8px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle at 32% 27%,var(--bead-light),var(--bead) 55%,color-mix(in srgb,var(--bead),#123 30%));border:1px solid rgba(255,255,255,.8);font-size:.38rem;line-height:7px;text-align:center;color:#fff;text-shadow:0 0 3px #fff}
.worn-necklace-bead.shape-gem{border-radius:2px;transform:translate(-50%,-50%) rotate(45deg)}.worn-necklace-bead.shape-symbol{background:transparent;border:0;font-size:.55rem}
.worn-necklace-pendant{position:absolute;left:50%;top:82%;transform:translate(-50%,-50%);font-size:.72rem;filter:drop-shadow(0 0 4px #fff)}.worn-necklace-pendant::before{content:'';position:absolute;left:50%;top:-5px;width:2px;height:6px;background:#f4ead3;transform:translateX(-50%);z-index:-1}
.necklace-design-board{position:absolute;z-index:5;left:21%;top:13%;width:430px;height:355px;border-radius:32px;background:radial-gradient(circle at 50% 40%,rgba(255,255,255,.25),rgba(4,72,105,.62));border:4px solid rgba(169,239,245,.55);box-shadow:inset 0 0 35px rgba(255,255,255,.1),0 13px 26px rgba(0,31,52,.3)}
.necklace-design-board::before,.necklace-design-board::after{content:'';position:absolute;border-radius:50%;border:2px solid rgba(209,250,255,.34)}.necklace-design-board::before{width:28px;height:28px;left:17px;bottom:22px}.necklace-design-board::after{width:15px;height:15px;right:24px;top:54px}
.necklace-board-title{position:absolute;left:0;right:0;top:12px;text-align:center;font-family:'Cinzel Decorative',serif;font-size:.82rem;color:#FFF2B0;text-shadow:0 0 8px rgba(255,255,255,.4)}
.necklace-design-string{position:absolute;left:10%;right:10%;top:55px;height:220px;border:5px solid #f4ead3;border-top:0;border-radius:0 0 50% 50%;filter:drop-shadow(0 0 5px rgba(255,255,255,.55))}
.necklace-designer-beads{position:absolute;inset:0}
.placed-necklace-bead{position:absolute;width:42px;height:42px;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;cursor:pointer;animation:necklace-bead-pop .35s cubic-bezier(.2,.9,.25,1.3)}
.designer-bead{display:block;width:32px;height:32px;margin:auto;border-radius:50%;background:radial-gradient(circle at 32% 27%,var(--bead-light),var(--bead) 55%,color-mix(in srgb,var(--bead),#123 28%));border:3px solid rgba(255,255,255,.82);box-shadow:0 4px 7px rgba(0,31,52,.28),inset 0 0 5px rgba(255,255,255,.38);font-style:normal;color:#fff;text-align:center;line-height:29px;text-shadow:0 0 5px #fff}
.designer-bead.shape-gem{border-radius:7px;transform:rotate(45deg)}.designer-bead.shape-symbol{background:transparent;border:0;box-shadow:none;font-size:1.8rem;line-height:32px}
.necklace-design-pendant{position:absolute;z-index:6;left:50%;top:86%;transform:translate(-50%,-50%);font-size:3.4rem;filter:drop-shadow(0 0 9px #fff)}.necklace-design-pendant::before{content:'';position:absolute;left:50%;top:-19px;width:4px;height:22px;border-radius:3px;background:#f4ead3;transform:translateX(-50%);z-index:-1;box-shadow:0 0 4px #fff}
.necklace-empty-help{position:absolute;left:0;right:0;bottom:18px;text-align:center;font-size:.68rem;font-weight:800;color:rgba(255,255,255,.72)}
.necklace-has-beads .necklace-empty-help{display:none}
.necklace-palette{position:absolute;z-index:7;right:2%;top:12%;width:235px;padding:12px;border-radius:23px;background:rgba(238,253,255,.9);border:3px solid rgba(111,220,231,.75);box-shadow:0 10px 22px rgba(0,31,52,.28);color:#075478;text-align:center}
.necklace-palette>strong{display:block;margin:3px 0 7px;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em}
.necklace-bead-options{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:10px}
.necklace-bead-option{min-width:0;min-height:67px;padding:5px 2px;border:2px solid rgba(14,111,145,.18);border-radius:13px;background:#fff;color:#075478;font-family:'Quicksand',sans-serif;cursor:pointer}.necklace-bead-option .designer-bead{width:27px;height:27px;line-height:24px;border-width:2px}.necklace-bead-option .shape-symbol{font-size:1.5rem}.necklace-bead-option small{display:block;margin-top:3px;font-size:.42rem;font-weight:800;line-height:1}
.necklace-pendant-options{display:grid;grid-template-columns:repeat(4,1fr);gap:5px}.necklace-pendant-option{min-height:49px;padding:4px 2px;border:2px solid rgba(14,111,145,.18);border-radius:11px;background:#fff;color:#075478;font-family:'Quicksand',sans-serif;cursor:pointer}.necklace-pendant-option span{display:block;font-size:1.3rem}.necklace-pendant-option small{display:block;font-size:.39rem;font-weight:800}.necklace-pendant-option.selected{border-color:#FFD75F;background:#fff8cf;box-shadow:0 0 8px rgba(255,215,95,.45)}
.necklace-edit-actions{display:flex;gap:7px;margin-top:9px}.necklace-edit-actions button{flex:1;min-height:36px;border-radius:12px;border:2px solid rgba(14,111,145,.25);background:#e8fbff;color:#075478;font-family:'Quicksand',sans-serif;font-weight:800;cursor:pointer}
.necklace-wear-btn{width:100%;min-height:45px;margin-top:8px;border-radius:18px;border:3px solid #FFD75F;background:linear-gradient(180deg,#fff,#fff0a2);color:#075478;font-family:'Quicksand',sans-serif;font-weight:900;cursor:pointer}.necklace-wear-btn:disabled{opacity:.45;cursor:default}.necklace-wear-btn:not(:disabled){animation:necklace-wear-ready .85s ease-in-out infinite alternate}
@keyframes necklace-bead-pop{0%{transform:translate(-50%,-50%) scale(0)}70%{transform:translate(-50%,-50%) scale(1.2)}100%{transform:translate(-50%,-50%) scale(1)}}
@keyframes necklace-water-shimmer{to{transform:translateY(-12px);opacity:.65}}
@keyframes necklace-wear-ready{to{transform:scale(1.04);box-shadow:0 0 13px rgba(255,215,95,.55)}}
@keyframes worn-necklace-sparkle{0%{opacity:0;transform:translateX(-50%) scale(.4)}70%{transform:translateX(-50%) scale(1.12)}100%{opacity:1;transform:translateX(-50%) scale(1)}}

/* Trident (47) */
.trident-activity{padding-top:52px}
.trident-range{position:relative;width:min(92%,720px);max-width:720px;height:430px;margin:0 auto;border-radius:26px;overflow:hidden;background:radial-gradient(circle at 50% 25%,#269ec4 0%,#0d668f 47%,#073c65 78%,#042d50 100%);box-shadow:inset 0 0 38px rgba(0,35,65,.38),0 12px 24px rgba(0,38,64,.26)}
.trident-water-rays{position:absolute;left:-10%;right:-10%;top:-15%;height:78%;background:repeating-conic-gradient(from 72deg at 50% 0,transparent 0 9deg,rgba(175,245,255,.14) 10deg 18deg,transparent 19deg 30deg);filter:blur(3px);animation:trident-rays 4s ease-in-out infinite alternate}
.trident-seaweed{position:absolute;left:0;right:0;bottom:0;height:27%;background:repeating-linear-gradient(105deg,transparent 0 48px,rgba(42,158,111,.6) 49px 60px,transparent 61px 102px);clip-path:polygon(0 100%,0 65%,5% 24%,9% 100%,16% 48%,21% 100%,29% 18%,34% 100%,43% 55%,48% 100%,58% 29%,63% 100%,72% 44%,77% 100%,87% 17%,92% 100%,100% 51%,100% 100%)}
.trident-bubbles{position:absolute;left:8%;bottom:15%;width:17px;height:17px;border:2px solid rgba(214,251,255,.7);border-radius:50%;box-shadow:62px -70px 0 -4px rgba(214,251,255,.65),170px -16px 0 3px rgba(214,251,255,.45),420px -82px 0 -2px rgba(214,251,255,.62),555px 9px 0 5px rgba(214,251,255,.42);animation:trident-bubbles-rise 3s ease-in-out infinite}
.trident-target{position:absolute;z-index:6;right:5%;top:35px;width:106px;height:106px;filter:drop-shadow(0 0 13px rgba(255,238,113,.55));animation:trident-target-bob 2.15s ease-in-out infinite alternate}
.target-ring{position:absolute;border-radius:50%;left:50%;top:50%;transform:translate(-50%,-50%)}.target-ring.ring-outer{width:110px;height:110px;border:7px solid #FF6B76;background:rgba(255,255,255,.12);box-shadow:inset 0 0 0 8px rgba(255,255,255,.85)}.target-ring.ring-middle{width:65px;height:65px;border:7px solid #FFD75F;background:#fff4ad}
.target-center{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);font-size:2rem;z-index:2}
.trident-target::after{display:none;content:none}
.trident-target.hit-flash{filter:drop-shadow(0 0 25px #FFD700)}.trident-target.hit-flash .ring-outer{animation:trident-hit .55s ease}
@keyframes trident-hit{0%,100%{transform:translate(-50%,-50%) scale(1)}42%{transform:translate(-50%,-50%) scale(1.3) rotate(8deg)}}
.full-size-trident,.thrown-full-trident{position:absolute;z-index:7;left:82px;top:-25px;width:120px;height:265px;transform:rotate(90deg) scale(.72);transform-origin:50% 50%;filter:drop-shadow(0 7px 7px rgba(0,30,55,.38))}
.full-size-trident{animation:trident-weapon-bob 2.85s ease-in-out infinite alternate}
.trident-shaft{position:absolute;left:53px;top:62px;width:15px;height:198px;border-radius:8px;background:linear-gradient(90deg,#a87508,#fff0a2 38%,#e6b62f 62%,#8e6400);border:2px solid #966c0d}
.trident-grip{position:absolute;left:44px;bottom:4px;width:33px;height:72px;border-radius:15px;background:repeating-linear-gradient(0deg,#74452c 0 7px,#d79451 8px 14px);border:3px solid #603821}
.trident-crossbar{position:absolute;left:13px;top:57px;width:94px;height:15px;border-radius:9px;background:linear-gradient(#fff0a0,#d4a521);border:2px solid #98700e}
.trident-prong{position:absolute;top:0;width:15px;height:78px;border-radius:10px 10px 3px 3px;background:linear-gradient(90deg,#b7840c,#fff4aa 42%,#dcae22 68%,#8f6500);border:2px solid #956c08;clip-path:polygon(50% 0,100% 22%,100% 100%,0 100%,0 22%)}.prong-left{left:15px;transform:rotate(-14deg);transform-origin:50% 100%}.prong-center{left:52px;height:91px}.prong-right{right:15px;transform:rotate(14deg);transform-origin:50% 100%}
.trident-jewel{position:absolute;z-index:3;left:50%;top:57px;transform:translate(-50%,-50%);font-size:1.7rem;filter:drop-shadow(0 0 7px #fff)}
.trident-aim-beam{position:absolute;z-index:5;left:205px;right:130px;top:107px;height:3px;background:linear-gradient(90deg,rgba(255,244,159,.85),rgba(255,255,255,.45),transparent);border-top:2px dashed rgba(255,255,255,.5);opacity:.52;animation:trident-beam-bob 2.85s ease-in-out infinite alternate}
.thrown-full-trident{z-index:12;opacity:1}.thrown-full-trident.fly{animation:full-trident-throw .55s cubic-bezier(.18,.7,.25,1) forwards}.full-size-trident.throw-recoil{filter:drop-shadow(0 0 14px #fff0a0)}
.trident-throw-btn{min-height:52px;min-width:165px;padding:9px 18px;border-radius:22px;border:3px solid #FFD700;background:linear-gradient(180deg,#fff,#fff2ad);color:#0B3D5C;font-weight:900;font-family:'Quicksand',sans-serif;cursor:pointer;box-shadow:0 7px 13px rgba(0,42,68,.24)}
@keyframes trident-rays{to{transform:translateX(6%) rotate(4deg);opacity:.65}}
@keyframes trident-bubbles-rise{to{transform:translate(18px,-170px);opacity:0}}
@keyframes trident-weapon-bob{from{top:-25px}to{top:190px}}
@keyframes trident-target-bob{from{top:35px}to{top:275px}}
@keyframes trident-beam-bob{from{top:107px}to{top:322px}}
@keyframes full-trident-throw{0%{left:82px;transform:rotate(90deg) scale(.72);opacity:1}75%{opacity:1}100%{left:calc(100% - 180px);transform:rotate(90deg) scale(.72);opacity:0}}

/* Shell Collector (48) */
.shell-diary-activity{padding-top:52px}
.shell-collector-activity{background:linear-gradient(180deg,#0b5676 0%,#1588a6 58%,#42bdc7 100%)}
.shell-collector-board{position:relative;width:min(90%,470px);height:300px;margin:0 auto;border-radius:24px;overflow:hidden;background:linear-gradient(180deg,#075170 0%,#0e7898 55%,#c99e68 56%,#e7c58a 100%);box-shadow:inset 0 0 32px rgba(0,41,68,.45),0 12px 23px rgba(0,42,64,.25)}
.shell-collector-light{position:absolute;inset:-18% -10% 38%;background:repeating-conic-gradient(from 72deg at 50% 0,transparent 0 10deg,rgba(215,252,255,.18) 11deg 20deg,transparent 21deg 34deg);filter:blur(2px);animation:trident-rays 5s ease-in-out infinite alternate}
.shell-collector-sand{position:absolute;left:0;right:0;bottom:0;height:47%;background:radial-gradient(circle at 18% 76%,rgba(255,255,255,.34) 0 3px,transparent 4px),radial-gradient(circle at 61% 82%,rgba(135,92,49,.24) 0 5px,transparent 6px),linear-gradient(180deg,#dcb178,#f0d196);box-shadow:inset 0 12px 16px rgba(119,76,37,.18)}
.shell-collector-seaweed{position:absolute;left:0;right:0;bottom:34%;height:90px;background:repeating-linear-gradient(105deg,transparent 0 43px,rgba(41,151,101,.58) 44px 54px,transparent 55px 100px);clip-path:polygon(0 100%,0 78%,4% 35%,8% 100%,18% 55%,22% 100%,34% 38%,39% 100%,51% 61%,56% 100%,68% 31%,73% 100%,84% 50%,89% 100%,100% 62%,100% 100%);opacity:.78}
.shell-collector-shells{position:absolute;inset:0}
.shell-collector-item{position:absolute;z-index:5;width:62px;height:52px;transform:translate(-50%,-50%);border:0;background:transparent;padding:0;cursor:pointer;filter:drop-shadow(0 7px 6px rgba(52,39,31,.24));transition:transform .28s,opacity .3s}
.shell-collector-item:hover,.shell-collector-item:active{transform:translate(-50%,-55%) scale(1.08)}.shell-collector-item.collected{opacity:0;pointer-events:none;transform:translate(-50%,-78%) scale(.25) rotate(18deg)}
.shell-zoom-preview{position:absolute;z-index:24;left:50%;top:47%;width:190px;height:190px;transform:translate(-50%,-50%);display:flex;align-items:center;justify-content:center;pointer-events:none;opacity:0}
.shell-zoom-preview::before{content:'';position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.96) 0 33%,rgba(139,235,246,.72) 54%,rgba(56,182,211,.18) 69%,transparent 72%);box-shadow:0 0 34px rgba(205,252,255,.9)}
.shell-zoom-card{position:relative;z-index:2;width:150px;height:150px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:11px;padding:12px;border-radius:50%;box-sizing:border-box}
.shell-zoom-art{width:100px;height:82px;display:flex;align-items:center;justify-content:center}.shell-zoom-art .collector-shell{transform:scale(1.7);filter:drop-shadow(0 9px 8px rgba(27,67,82,.28))}
.shell-zoom-card strong{padding:5px 11px;border-radius:12px;background:rgba(5,77,108,.86);color:#fff;font-size:.68rem;white-space:nowrap;box-shadow:0 4px 8px rgba(0,43,65,.24)}
.shell-zoom-preview.show{opacity:1;animation:shell-preview-glow .9s ease-out both}.shell-zoom-preview.show .shell-zoom-card{animation:shell-preview-spin .9s cubic-bezier(.18,.76,.24,1) both}
@keyframes shell-preview-spin{0%{opacity:0;transform:scale(.2) rotate(-180deg)}55%{opacity:1;transform:scale(1.2) rotate(210deg)}78%{transform:scale(.96) rotate(330deg)}100%{opacity:1;transform:scale(1) rotate(360deg)}}
@keyframes shell-preview-glow{0%{filter:brightness(1.7);transform:translate(-50%,-50%) scale(.45)}45%{filter:brightness(1.1);transform:translate(-50%,-50%) scale(1.08)}100%{filter:none;transform:translate(-50%,-50%) scale(1)}}
.collector-shell{position:relative;display:block;width:56px;height:46px;margin:auto}.collector-shell i{position:absolute;display:block}
.shell-scallop{border-radius:55% 55% 12px 12px;background:repeating-radial-gradient(ellipse at 50% 100%,#ff9fbc 0 5px,#ffd8e6 6px 10px);border:3px solid #bd5d7e;clip-path:polygon(50% 0,100% 45%,88% 100%,12% 100%,0 45%)}.shell-scallop i:first-child{left:50%;bottom:2px;width:4px;height:34px;background:rgba(151,67,96,.45);box-shadow:-13px -2px 0 rgba(151,67,96,.26),13px -2px 0 rgba(151,67,96,.26);transform:translateX(-50%)}
.shell-conch{width:58px;height:42px;border-radius:50% 42% 48% 38%;background:linear-gradient(135deg,#ffe1b9,#c77955 58%,#8e493c);border:3px solid #854232;transform:rotate(-12deg)}.shell-conch::after{content:'';position:absolute;right:-8px;top:8px;width:24px;height:22px;border-radius:50%;background:radial-gradient(circle at 35% 45%,#fff0d0,#a56152 65%,#5c2d29);border:3px solid #7e4138}.shell-conch i:first-child{left:8px;top:8px;width:37px;height:5px;border-radius:6px;background:#fff1ce;box-shadow:4px 10px 0 rgba(255,241,206,.75),7px 20px 0 rgba(255,241,206,.55)}
.shell-oyster{width:58px;height:42px;border-radius:50% 50% 44% 44%;background:linear-gradient(135deg,#d9ecf0,#8fa6b2 56%,#516978);border:3px solid #d5eef3;box-shadow:inset 0 0 0 5px rgba(255,255,255,.22)}.shell-oyster::after{content:'';position:absolute;left:21px;top:12px;width:16px;height:16px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#f3e2c7 75%);box-shadow:0 0 8px #fff}
.shell-cowrie{width:48px;height:42px;border-radius:50%;background:radial-gradient(ellipse at 50% 50%,#7c503f 0 4px,#fff2d5 5px 9px,transparent 10px),linear-gradient(135deg,#fff2d5,#b07a56 68%,#6d4338);border:3px solid #8d5b46}.shell-cowrie::after{content:'';position:absolute;left:50%;top:6px;width:7px;height:29px;border-radius:7px;background:#6d4338;transform:translateX(-50%);box-shadow:0 0 0 3px rgba(255,244,219,.55)}
.shell-spiral{width:48px;height:45px;border-radius:50%;background:conic-gradient(#f7d08a,#bf7650,#fff0bd,#9a5d48,#f7d08a);border:4px solid #8e5742}.shell-spiral::after{content:'';position:absolute;left:11px;top:11px;width:23px;height:23px;border-radius:50%;border:5px solid #fff0bd;border-left-color:#9a5d48;transform:rotate(-25deg)}
.shell-clam{width:56px;height:42px;border-radius:54% 54% 12px 12px;background:repeating-radial-gradient(ellipse at 50% 100%,#d8eff5 0 6px,#96c8d7 7px 12px);border:3px solid #6a9daf;clip-path:polygon(50% 0,100% 36%,92% 100%,8% 100%,0 36%)}
.shell-abalone{width:57px;height:42px;border-radius:60% 45% 55% 40%;background:linear-gradient(135deg,#95f0e6,#ba8dff 35%,#5ac0db 64%,#fff5b0);border:3px solid #438393;transform:rotate(10deg)}.shell-abalone::after{content:'';position:absolute;right:8px;top:9px;width:8px;height:8px;border-radius:50%;background:#fff;box-shadow:-12px 7px 0 rgba(255,255,255,.8),-25px 12px 0 rgba(255,255,255,.65)}
.shell-pearl{width:56px;height:41px;border-radius:50% 50% 12px 12px;background:linear-gradient(135deg,#f0d0b5,#9e6a58);border:3px solid #815142}.shell-pearl::before{content:'';position:absolute;left:5px;right:5px;top:8px;height:21px;border-radius:50%;background:linear-gradient(135deg,#fff6de,#d09a7f);transform:rotate(-7deg)}.shell-pearl::after{content:'';position:absolute;left:22px;top:12px;width:14px;height:14px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff,#f2dcc0);box-shadow:0 0 7px #fff}
.shell-collection-tray{width:min(90%,470px);min-height:96px;margin:8px auto 0;padding:8px 12px;border-radius:19px;background:rgba(235,253,255,.88);border:3px solid rgba(113,218,229,.7);box-shadow:0 8px 15px rgba(0,38,60,.2);text-align:center;color:#075478}.shell-collection-tray strong{display:block;font-size:.65rem;text-transform:uppercase;letter-spacing:.08em;margin-bottom:5px}.shell-tray-slots{display:flex;justify-content:center;align-items:flex-start;gap:8px;flex-wrap:wrap;min-height:58px}.shell-tray-shell{width:54px;text-align:center;animation:necklace-bead-pop .35s ease}.shell-tray-shell .collector-shell{transform:scale(.74);transform-origin:top center;height:42px;margin:-2px auto 0}.shell-tray-shell small{display:block;margin-top:-6px;font-size:.39rem;font-weight:900;line-height:1;color:#075478}

/* Coral Tiara catching (50) */
.coral-catch-activity{padding:0;overflow:hidden;background:linear-gradient(180deg,#073553 0%,#0b7899 55%,#27b4bd 100%)}
.coral-catch-activity::before{content:'';position:absolute;z-index:2;inset:0;pointer-events:none;background:repeating-conic-gradient(from 72deg at 50% -8%,transparent 0 10deg,rgba(186,246,255,.1) 11deg 20deg,transparent 21deg 33deg)}
.catch-pool{position:absolute;z-index:1;inset:0;width:100%;max-width:none;height:100%;margin:0;border-radius:24px;overflow:hidden;background:radial-gradient(circle at 50% 18%,rgba(65,190,214,.56),transparent 36%),linear-gradient(180deg,#073553 0%,#0b7899 55%,#27b4bd 100%);box-shadow:inset 0 0 45px rgba(0,34,60,.38);touch-action:none;cursor:grab}
.catch-pool:active{cursor:grabbing}
.catch-player{position:absolute;bottom:4%;left:50%;width:88px;height:116px;transform:translateX(-50%);z-index:6;pointer-events:none;filter:drop-shadow(0 4px 10px rgba(0,30,60,.45))}
.catch-player svg{width:100%;height:100%;display:block}
.catch-gem{position:absolute;z-index:4;transform:translate(-50%,-50%);width:54px;height:54px;min-width:54px;min-height:54px;border:none;background:transparent;font-size:2rem;cursor:pointer;filter:drop-shadow(0 0 9px rgba(255,255,255,.75));transition:opacity .25s,transform .25s}
.catch-gem.caught{opacity:0;transform:translate(-50%,-50%) scale(1.6)}
.catch-gem.sunk{opacity:0;transform:translate(-50%,-50%) scale(.6)}
.catch-hud{position:absolute;z-index:9;left:50%;top:58px;transform:translateX(-50%);padding:6px 14px;border-radius:15px;background:rgba(4,55,80,.72);border:2px solid rgba(190,247,255,.6);box-shadow:0 5px 11px rgba(0,37,58,.25);font-size:.78rem;font-weight:900;color:#FFF6C0;white-space:nowrap;pointer-events:none}

/* Starfish Friend copy sequence (52) */
.starfish-copy-activity{padding-top:52px}
.copy-pool{display:grid;grid-template-columns:repeat(2,1fr);gap:12px;width:min(70vw,220px);margin:0 auto}
.copy-spot{aspect-ratio:1;border-radius:16px;border:2px solid rgba(255,255,255,.4);background:rgba(255,255,255,.12);font-size:1.6rem;cursor:pointer;filter:brightness(.65);transition:filter .25s,transform .2s}
.copy-spot.lit{filter:brightness(1.4);transform:scale(1.08);box-shadow:0 0 12px 2px #fff}
.copy-watch-btn{min-height:40px;padding:7px 16px;border-radius:18px;border:2px solid rgba(255,255,255,.5);background:rgba(255,255,255,.15);color:#fff;font-weight:700;font-family:'Quicksand',sans-serif;cursor:pointer}

/* Treasure Chest branching paths (53) */
.treasure-branch-activity{padding-top:52px}
.branch-options{display:flex;gap:12px;flex-wrap:wrap;justify-content:center}
.branch-choice-btn{min-width:110px;min-height:44px;border-radius:16px;border:2px solid rgba(255,215,0,.6);background:rgba(255,255,255,.14);color:#fff;font-weight:700;padding:10px 12px;display:flex;flex-direction:column;align-items:center;gap:4px;cursor:pointer;font-family:'Quicksand',sans-serif}
.branch-choice-emoji{font-size:1.6rem}
.branch-choice-btn.chosen{border-color:#FFD700;background:rgba(255,215,0,.28)}
.branch-choice-btn:disabled{opacity:.5;cursor:default}
.branch-reveal{min-height:60px;text-align:center;opacity:0;transform:translateY(6px);transition:opacity .4s,transform .4s}
.branch-reveal.show{opacity:1;transform:translateY(0)}
.branch-reveal-emoji{font-size:2rem}
.branch-reveal-text{font-size:.78rem;font-weight:700;max-width:280px;margin:4px auto 8px}
.branch-restart-btn{min-height:40px;padding:7px 16px;border-radius:18px;border:2px solid #FFD700;background:#fff;color:#0B3D5C;font-weight:800;font-family:'Quicksand',sans-serif;cursor:pointer}
.treasure-maze-wrap{display:none;width:min(92%,500px);margin:0 auto;text-align:center}.treasure-maze-wrap.show{display:block}.treasure-maze-grid{position:relative;display:grid;grid-template-columns:repeat(7,1fr);width:min(78vw,420px);aspect-ratio:1;margin:0 auto 8px;padding:10px;gap:3px;border:7px solid #63d8da;border-radius:25px;background:radial-gradient(circle at 30% 20%,#35c8d4,#0875a0 64%,#064975);box-shadow:inset 0 0 25px rgba(0,25,65,.45),0 10px 18px rgba(0,34,67,.25);outline:none;overflow:hidden}
.treasure-maze-grid::before{content:'';position:absolute;inset:0;pointer-events:none;background:repeating-radial-gradient(ellipse at 20% 110%,rgba(255,255,255,.13) 0 2px,transparent 3px 30px);animation:ocean-current 5s linear infinite}.maze-cave .treasure-maze-grid{border-color:#9b8ddd;background:radial-gradient(circle at 50% 45%,#235a82,#172d5c 72%,#10183e)}.maze-ship .treasure-maze-grid{border-color:#c69761;background:radial-gradient(circle at 50% 25%,#287d96,#164e6d 63%,#342b43)}.maze-anemone .treasure-maze-grid{border-color:#ff90ca;background:radial-gradient(circle at 35% 30%,#36bfc7,#7961ac 75%)}
.treasure-maze-cell{position:relative;z-index:2;min-width:0;min-height:0;border:0;border-radius:9px;display:flex;align-items:center;justify-content:center;padding:0}.maze-water{cursor:pointer;background:rgba(152,243,255,.08);box-shadow:inset 0 0 0 1px rgba(255,255,255,.09)}.maze-water:hover{background:rgba(255,255,255,.19)}.maze-wall{overflow:hidden;background:linear-gradient(135deg,#ff8277,#d94272 55%,#8e315f);border:2px solid rgba(255,190,157,.7);box-shadow:inset 0 0 0 3px rgba(255,118,138,.3),0 2px 4px rgba(0,38,64,.3)}.maze-wall::before,.maze-wall::after{content:'';position:absolute;border-radius:50%;background:#ffb065}.maze-wall::before{width:12px;height:24px;left:6px;bottom:-6px;box-shadow:20px -10px 0 #ff7b8b,34px 3px 0 #e95b98}.maze-wall::after{width:8px;height:18px;right:6px;top:-5px;background:#baef76;box-shadow:-19px 10px 0 #ffdc7a}
.maze-cave .maze-wall{background:linear-gradient(135deg,#675d98,#29284f);border-color:#9388cf}.maze-ship .maze-wall{background:repeating-linear-gradient(90deg,#82502f 0 8px,#a66a3d 9px 17px);border-color:#e2aa63}.maze-anemone .maze-wall{background:linear-gradient(135deg,#ff78c4,#a240a7);border-color:#ffc4ec}
.treasure-maze-swimmer{position:relative;z-index:8;font-size:2.1rem;filter:drop-shadow(0 3px 3px rgba(0,30,60,.4));animation:maze-swimmer 1s ease-in-out infinite}.maze-goal{overflow:visible;background:radial-gradient(circle,#fff3a0,rgba(255,211,56,.18) 55%,transparent 70%)}
.real-treasure-chest{position:relative;display:block;width:54px;height:48px;filter:drop-shadow(0 0 10px #ffe56a)}.real-chest-box{position:absolute;z-index:3;left:2px;right:2px;bottom:1px;height:28px;border:3px solid #663716;border-radius:3px 3px 9px 9px;background:linear-gradient(90deg,#a65d23 0 39%,#ffd451 40% 59%,#a65d23 60%);box-shadow:inset 0 -7px #713b1c}.real-chest-lid{position:absolute;z-index:4;left:1px;right:1px;top:4px;height:20px;border:3px solid #663716;border-radius:24px 24px 3px 3px;background:linear-gradient(90deg,#bd6a28 0 39%,#ffe06a 40% 59%,#bd6a28 60%);transform-origin:50% 100%;transition:transform .7s ease,top .7s ease}.real-chest-lock{position:absolute;z-index:5;left:21px;top:22px;width:12px;height:12px;border:2px solid #9b6b08;border-radius:2px;background:#ffe375}.real-chest-riches{position:absolute;z-index:6;left:50%;top:0;transform:translateX(-50%) scale(.35);opacity:0;white-space:nowrap;font-size:1.85rem;letter-spacing:.06em;line-height:1;filter:drop-shadow(0 2px 4px rgba(0,30,60,.35));transition:transform .7s .2s,opacity .4s .2s;pointer-events:none}
.treasure-found .treasure-maze-grid{overflow:visible}.treasure-found .real-chest-lid{top:-11px;transform:rotateX(150deg)}.treasure-found .real-chest-riches{opacity:1;transform:translateX(-62%) translateY(-30px) scale(1.55)}.treasure-found .maze-goal{animation:treasure-goal-glow 1s ease-in-out infinite;overflow:visible;z-index:9}.treasure-found .treasure-maze-swimmer{font-size:1.55rem;opacity:.85}.treasure-maze-controls{display:flex;flex-direction:column;align-items:center;gap:3px}.treasure-maze-controls>div{display:flex;gap:4px}.treasure-maze-controls button{width:50px;height:36px;border:3px solid #ffdc5d;border-radius:13px;background:linear-gradient(#fff,#dffaff);color:#07527b;font-size:1.15rem;cursor:pointer;box-shadow:0 4px 7px rgba(0,38,66,.25)}.treasure-maze-controls button:active{transform:translateY(2px)}.maze-bump .treasure-maze-grid{animation:maze-bump .3s ease}
@keyframes maze-swimmer{50%{transform:translateY(-4px) rotate(4deg)}}@keyframes treasure-goal-glow{50%{filter:brightness(1.35);box-shadow:inset 0 0 20px #fff4a4}}@keyframes maze-bump{25%,75%{transform:translateX(-5px)}50%{transform:translateX(5px)}}

/* Sea Glass Wand path drawing (55) */
.sea-glass-draw-activity{padding:52px 3% 66px;background:radial-gradient(circle at 50% 4%,rgba(181,247,255,.28),transparent 35%),linear-gradient(180deg,#064b68 0%,#0c7d9c 56%,#28b7bd 100%)}
.draw-board{position:relative;width:min(94%,760px);height:calc(100% - 62px);min-height:430px;margin:0 auto;border:5px solid rgba(190,248,255,.78);border-radius:28px;overflow:hidden;background:radial-gradient(circle at 50% 8%,rgba(113,224,238,.5),transparent 36%),linear-gradient(180deg,#073f64 0%,#087c9e 56%,#20adba 100%);box-shadow:inset 0 0 42px rgba(0,34,67,.4),0 12px 24px rgba(0,48,72,.25);touch-action:none;cursor:crosshair}
.draw-board::before{content:'';position:absolute;z-index:1;inset:0;background:repeating-conic-gradient(from 75deg at 50% -10%,transparent 0 11deg,rgba(210,252,255,.1) 12deg 21deg,transparent 22deg 34deg),radial-gradient(circle at 8% 72%,transparent 0 7px,rgba(215,252,255,.55) 8px 10px,transparent 11px),radial-gradient(circle at 88% 32%,transparent 0 5px,rgba(215,252,255,.45) 6px 8px,transparent 9px);pointer-events:none}
.draw-board::after{content:'🪸  🐚       🌿        🪸';position:absolute;z-index:1;left:0;right:0;bottom:-9px;color:#fff;font-size:2.8rem;word-spacing:5.2rem;text-align:center;filter:drop-shadow(0 7px 5px rgba(0,48,65,.32));pointer-events:none}
.draw-svg{position:absolute;z-index:2;inset:0;width:100%;height:100%}
.draw-polyline{stroke:#8CFFE2;stroke-width:2.2;fill:none;stroke-linecap:round;stroke-linejoin:round;filter:drop-shadow(0 0 2px #fff) drop-shadow(0 0 5px #49e7d0)}
.draw-fish{position:absolute;transform:translate(-50%,-50%);font-size:3.4rem;z-index:4;transition:none;filter:drop-shadow(0 5px 5px rgba(0,38,65,.35))}
.draw-target{position:absolute;transform:translate(-50%,-50%);font-size:3.5rem;z-index:3;filter:drop-shadow(0 0 12px rgba(255,238,111,.9));animation:draw-treasure-glow 1.4s ease-in-out infinite}
.draw-target::before{content:'';position:absolute;left:50%;top:50%;width:72px;height:72px;border:3px dashed rgba(255,245,153,.75);border-radius:50%;transform:translate(-50%,-50%);animation:draw-target-ring 3s linear infinite}
.draw-clear-btn{position:absolute;z-index:8;left:50%;bottom:14px;transform:translateX(-50%);min-width:150px;min-height:44px;padding:8px 20px;border-radius:20px;border:3px solid rgba(255,255,255,.65);background:rgba(3,72,102,.72);box-shadow:0 6px 12px rgba(0,41,65,.24);color:#fff;font-size:.78rem;font-weight:800;font-family:'Quicksand',sans-serif;cursor:pointer}
.draw-clear-btn:hover{background:rgba(6,103,132,.9);transform:translateX(-50%) scale(1.04)}
@keyframes draw-treasure-glow{50%{transform:translate(-50%,-50%) scale(1.12);filter:drop-shadow(0 0 19px #fff17b)}}@keyframes draw-target-ring{to{transform:translate(-50%,-50%) rotate(360deg)}}

/* Kelp Cape color weaving (57) */
.kelp-weave-activity{padding:52px 3% 14px;background:radial-gradient(circle at 50% 18%,rgba(177,246,255,.24),transparent 40%),linear-gradient(180deg,#064b68 0%,#0c7d9c 56%,#28b7bd 100%)}
.kelp-weave-stage{width:min(94%,690px);min-height:430px;margin:0 auto;padding:14px 18px 18px;box-sizing:border-box;border:5px solid rgba(181,247,255,.72);border-radius:28px;background:radial-gradient(circle at 50% 18%,rgba(111,222,224,.28),transparent 35%),linear-gradient(180deg,rgba(4,52,82,.8),rgba(7,96,121,.86));box-shadow:inset 0 0 34px rgba(0,36,64,.42),0 12px 22px rgba(0,42,67,.25)}
.kelp-pattern-panel{display:flex;align-items:center;justify-content:center;gap:15px;min-height:58px;padding:6px 12px;border-radius:18px;background:rgba(2,54,78,.58);color:#fff;font-size:.72rem;font-weight:900}.kelp-pattern{display:flex;align-items:center;gap:9px}
.kelp-pattern-dot{position:relative;width:26px;height:26px;border:3px solid rgba(255,255,255,.7);border-radius:50%;background:var(--kelp-color);box-shadow:inset 5px 4px 6px rgba(255,255,255,.35),0 3px 5px rgba(0,35,55,.3);transition:transform .2s,opacity .2s}.kelp-pattern-dot.current{transform:scale(1.25);border-color:#fff5a1;box-shadow:0 0 0 5px rgba(255,235,103,.24),0 0 15px #fff18a}.kelp-pattern-dot.done{opacity:.36;transform:scale(.78)}.kelp-pattern-dot.done::after{content:'✓';position:absolute;inset:0;color:#fff;font-size:.82rem;line-height:26px;text-align:center;text-shadow:0 1px 3px #075}
.kelp-cape-workshop{display:grid;grid-template-columns:minmax(240px,1.25fr) minmax(175px,.75fr);gap:18px;align-items:center;padding:14px 8px 0}.kelp-loom{position:relative;height:318px;border:12px solid #a86e3d;border-top-width:18px;border-bottom-width:20px;border-radius:18px;background:repeating-linear-gradient(90deg,rgba(226,250,245,.18) 0 3px,transparent 4px 27px),linear-gradient(180deg,rgba(180,238,235,.22),rgba(8,77,92,.18));box-shadow:inset 0 0 0 4px #e8b776,0 9px 15px rgba(0,38,56,.28)}.kelp-loom-top{position:absolute;z-index:4;left:50%;top:-14px;width:115px;height:12px;border-radius:7px;background:#f2ca88;transform:translateX(-50%);box-shadow:0 0 0 3px #7c4d2c}
.kelp-cape{position:absolute;z-index:2;left:50%;top:25px;width:220px;height:270px;transform:translateX(-50%);clip-path:polygon(35% 0,65% 0,72% 13%,96% 100%,4% 100%,28% 13%);overflow:hidden;background:linear-gradient(90deg,#176f57,#39ba7a 48%,#176f57);filter:drop-shadow(0 8px 7px rgba(0,33,47,.38))}.kelp-cape::before{content:'';position:absolute;z-index:5;inset:0;background:repeating-linear-gradient(76deg,transparent 0 19px,rgba(255,255,255,.08) 20px 23px,transparent 24px 40px);pointer-events:none}.kelp-cape::after{content:'';position:absolute;z-index:6;left:13%;right:13%;bottom:5px;height:12px;border-bottom:7px dotted #d8ffdc;opacity:.7}
.kelp-cape-clasp{position:absolute;z-index:8;left:50%;top:8px;transform:translateX(-50%);font-size:1.4rem;filter:drop-shadow(0 0 5px #fff)}.kelp-woven-rows{position:absolute;inset:40px 0 0}.kelp-woven-row{position:absolute;z-index:3;left:7%;right:7%;top:calc(var(--row) * 34px + 9px);height:27px;border-radius:50%;background:repeating-linear-gradient(105deg,var(--kelp-color) 0 18px,var(--kelp-light) 19px 23px,var(--kelp-color) 24px 39px);box-shadow:inset 0 5px 5px rgba(255,255,255,.25),0 3px 5px rgba(0,44,49,.2);animation:kelp-row-weave .55s cubic-bezier(.2,.9,.3,1.25) both}
.kelp-needle{position:absolute;z-index:7;left:53%;top:62px;font-size:2rem;opacity:0;filter:drop-shadow(0 3px 3px rgba(0,30,50,.35))}.kelp-needle.stitching{animation:kelp-needle-stitch .55s ease}.kelp-color-tray{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.kelp-color-choice{min-height:108px;padding:9px 5px;border:4px solid rgba(226,253,255,.8);border-radius:20px;background:linear-gradient(180deg,rgba(255,255,255,.26),rgba(2,72,93,.45));color:#fff;font-family:'Quicksand',sans-serif;font-size:.62rem;font-weight:900;cursor:pointer;box-shadow:0 6px 10px rgba(0,38,60,.24)}.kelp-color-choice:hover{transform:translateY(-3px);box-shadow:0 9px 14px rgba(0,38,60,.3)}.kelp-ribbon-swatch{display:block;width:42px;height:65px;margin:0 auto 5px;border-radius:70% 28% 65% 32%;background:repeating-linear-gradient(105deg,var(--kelp-color) 0 12px,var(--kelp-light) 13px 16px,var(--kelp-color) 17px 27px);box-shadow:inset 7px 4px 8px rgba(255,255,255,.3),0 4px 7px rgba(0,32,52,.3);transform:rotate(8deg)}.kelp-color-choice:nth-child(even) .kelp-ribbon-swatch{transform:rotate(-8deg)}
.kelp-weave-activity.miss-flash .kelp-weave-stage{animation:sailing-danger .42s ease}.kelp-weave-activity.cape-complete .kelp-cape{animation:kelp-cape-finish 1s ease-in-out infinite alternate;filter:drop-shadow(0 0 14px #fff38d)}
@keyframes kelp-row-weave{0%{opacity:0;transform:translateX(-110%) scaleX(.3)}70%{opacity:1;transform:translateX(5%) scaleX(1.05)}100%{transform:none}}@keyframes kelp-needle-stitch{0%{opacity:0;transform:translate(-110px,-18px) rotate(-65deg)}20%{opacity:1}80%{opacity:1}100%{opacity:0;transform:translate(100px,28px) rotate(35deg)}}@keyframes kelp-cape-finish{to{transform:translateX(-50%) scale(1.035);filter:drop-shadow(0 0 22px #fff49a) brightness(1.12)}}

/* Ocean Crown rhythm conducting (59) */
.ocean-crown-rhythm-activity{padding-top:52px;background:radial-gradient(circle at 50% 30%,rgba(177,246,255,.22),transparent 40%),linear-gradient(180deg,#064b68 0%,#0c7d9c 56%,#28b7bd 100%)}
.rhythm-stage{position:relative;width:min(92%,560px);min-height:300px;margin:0 auto 12px;padding:15px 16px 22px;border-radius:26px;background:radial-gradient(circle at 50% 18%,rgba(255,240,120,.28),transparent 34%),linear-gradient(180deg,rgba(4,52,82,.72),rgba(7,96,121,.82));border:5px solid rgba(181,247,255,.72);box-shadow:inset 0 0 30px rgba(0,36,64,.42),0 12px 22px rgba(0,42,67,.25);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px}
.rhythm-conductor{position:relative;width:120px;height:120px;display:flex;align-items:center;justify-content:center}
.rhythm-crown-icon{position:relative;z-index:2;font-size:4.6rem;filter:drop-shadow(0 0 14px rgba(255,215,0,.75))}
.rhythm-beat-pulse{position:absolute;inset:0;border-radius:50%;background:radial-gradient(circle,rgba(255,215,0,.55) 0 42%,transparent 43%);box-shadow:0 0 0 0 rgba(255,215,0,.65)}
.rhythm-beat-pulse.pulse{animation:rhythm-pulse .3s ease}
@keyframes rhythm-pulse{0%{transform:scale(.7);opacity:.45}40%{transform:scale(1.15);opacity:1;box-shadow:0 0 28px 10px rgba(255,215,0,.75)}100%{transform:scale(.85);opacity:.55}}
.rhythm-music-status{padding:4px 12px;border-radius:13px;background:rgba(2,51,78,.58);color:#d8fbff;font-size:.62rem;font-weight:900;letter-spacing:.03em}.rhythm-music-playing .rhythm-music-status{color:#fff39a;box-shadow:0 0 12px rgba(255,236,112,.35);animation:rhythm-music-glow 1.2s ease-in-out infinite}
.rhythm-fish-row{display:flex;gap:10px;align-items:center;justify-content:center;min-height:94px;padding:10px 12px;border-radius:18px;background:linear-gradient(180deg,rgba(2,48,72,.28),rgba(255,255,255,.1));box-shadow:inset 0 0 18px rgba(0,38,65,.24)}
.rhythm-fish{position:relative;width:78px;height:58px;display:inline-block;flex:none;filter:drop-shadow(0 5px 4px rgba(0,35,60,.3))}
.rhythm-fish-tail{position:absolute;z-index:1;left:0;top:15px;width:27px;height:32px;background:linear-gradient(135deg,var(--fish-light),var(--fish-color));clip-path:polygon(100% 50%,0 0,18% 50%,0 100%);transform-origin:100% 50%;animation:rhythm-tail-swim .75s ease-in-out infinite}
.rhythm-fish-body{position:absolute;z-index:2;left:18px;top:13px;width:48px;height:34px;border-radius:55% 46% 48% 52%;background:radial-gradient(circle at 35% 27%,var(--fish-light) 0 12%,var(--fish-color) 45%,color-mix(in srgb,var(--fish-color),#06465e 30%) 100%);box-shadow:inset 0 -5px 7px rgba(0,45,62,.2),inset 0 4px 5px rgba(255,255,255,.25)}.rhythm-fish-fin{position:absolute;left:19px;top:12px;width:18px;height:15px;border-radius:80% 10% 80% 10%;background:var(--fish-light);opacity:.72;transform:rotate(20deg)}
.rhythm-fish-head{position:absolute;z-index:4;right:0;top:12px;width:29px;height:36px;border-radius:42% 58% 54% 46%;background:radial-gradient(circle at 36% 24%,var(--fish-light),var(--fish-color) 48%,color-mix(in srgb,var(--fish-color),#06465e 25%));box-shadow:inset -4px -4px 6px rgba(0,38,55,.18);transform-origin:15% 50%;transform:perspective(80px) rotateY(-32deg)}
.rhythm-fish-eye{position:absolute;z-index:2;top:8px;width:6px;height:6px;border:2px solid #fff;border-radius:50%;box-sizing:border-box;background:#163c51}.rhythm-fish-eye.eye-one{right:5px}.rhythm-fish-eye.eye-two{left:5px;opacity:0}
.rhythm-fish-mouth{position:absolute;right:-2px;bottom:7px;width:9px;height:4px;border:2px solid #7f2444;border-left:0;border-radius:0 80% 80% 0;background:#ffb1bd;box-sizing:border-box}
.rhythm-fish.sing{z-index:6;animation:rhythm-fish-bass-bob .62s ease}.rhythm-fish.sing .rhythm-fish-head{animation:rhythm-fish-face-out .62s ease forwards}.rhythm-fish.sing .rhythm-fish-eye.eye-two{animation:rhythm-second-eye .62s ease forwards}.rhythm-fish.sing .rhythm-fish-mouth{animation:rhythm-fish-sing-mouth .18s .19s ease-in-out 2 alternate}
@keyframes rhythm-tail-swim{50%{transform:scaleX(.65) skewY(8deg)}}@keyframes rhythm-fish-bass-bob{0%,100%{transform:translateY(0)}42%{transform:translateY(-12px) scale(1.05)}}@keyframes rhythm-fish-face-out{0%,100%{transform:perspective(80px) rotateY(-32deg)}35%,72%{width:35px;border-radius:50%;transform:translate(-6px,-5px) perspective(80px) rotateY(0) scale(1.18);box-shadow:0 0 12px rgba(255,255,255,.55)}}@keyframes rhythm-second-eye{0%,24%,100%{opacity:0}35%,72%{opacity:1}}@keyframes rhythm-fish-sing-mouth{to{right:8px;bottom:4px;width:15px;height:11px;border-left:2px solid #7f2444;border-radius:50%;background:#671c38}}@keyframes rhythm-music-glow{50%{transform:scale(1.04);filter:brightness(1.15)}}
.rhythm-tap-btn{min-width:240px;min-height:68px;padding:12px 30px;border-radius:28px;border:4px solid #FFD700;background:linear-gradient(135deg,#8e44ad,#f06292);color:#fff;font-size:1.15rem;font-weight:900;font-family:'Quicksand',sans-serif;cursor:pointer;box-shadow:0 8px 16px rgba(0,42,67,.28);display:inline-flex;align-items:center;justify-content:center;gap:10px}
.rhythm-tap-crown{font-size:1.8rem;filter:drop-shadow(0 0 6px rgba(255,215,0,.8))}
.rhythm-combo{font-size:.95rem;font-weight:900;color:#FFF6C0;margin-top:4px}
.rhythm-combo-num{font-size:1.35rem;color:#FFE45E}

@media (max-width:520px){
  .swim-course{height:240px}
  .boat-scene{height:130px}
  .sailboat-ocean{width:96%;height:390px}
  .sailing-island{transform:scale(.76)}
  .island-one{left:7%}.island-two{left:61%}.island-three{left:62%}
  .passing-boat{font-size:2rem}
  .player-sailboat{scale:.82}
  .sailing-direction-controls button{width:48px;height:39px}
  .dolphin-course{width:96%;height:350px}
  .dolphin-runner{left:23%;scale:.78}
  .dolphin-obstacle{scale:.82}
  .dolphin-jump-counter{right:8px;top:8px;min-width:110px;padding:6px 9px}
  .seahorse-reef{width:96%;height:350px}
  .seahorse-rider{left:20%;scale:.78}
  .seahorse-gate{width:58px}
  .seahorse-controls .boat-control{min-width:120px;min-height:48px}
  .bubble-castle-stage{width:96%;height:360px}
  .bubble-pad{width:58px;height:64px}
  .bubble-room-art{width:36px;height:40px}
  .bubble-room-choice{min-width:68px;min-height:74px}
  .octopus-ttt-stage{width:96%;min-height:330px;gap:7px;padding:9px}
  .ttt-player-side{display:none}
  .undersea-board{width:min(57vw,240px);gap:5px}
  .ttt-cell{border-radius:12px;min-height:48px}
  .kelp-weave-activity{padding-left:1%;padding-right:1%}
  .kelp-weave-stage{width:97%;min-height:385px;padding:9px 7px 11px;border-width:4px}
  .kelp-pattern-panel{gap:7px;min-height:48px;padding:4px 6px;font-size:.52rem}.kelp-pattern{gap:5px}.kelp-pattern-dot{width:19px;height:19px;border-width:2px}.kelp-pattern-dot.done::after{line-height:19px;font-size:.62rem}
  .kelp-cape-workshop{grid-template-columns:58% 42%;gap:5px;padding:9px 0 0}.kelp-loom{height:282px;border-width:8px;border-top-width:14px;border-bottom-width:14px}.kelp-cape{width:180px;height:240px;top:20px}.kelp-woven-row{top:calc(var(--row) * 30px + 7px);height:23px}.kelp-color-tray{gap:5px}.kelp-color-choice{min-height:82px;padding:5px 2px;border-width:3px;font-size:.48rem}.kelp-ribbon-swatch{width:31px;height:47px;margin-bottom:3px}
  .rhythm-stage{width:96%;min-height:260px;padding:12px 7px 16px}.rhythm-crown-icon{font-size:3.8rem}.rhythm-fish-row{gap:2px;padding:8px 3px}.rhythm-fish{width:58px;scale:.76}.rhythm-tap-btn{min-width:210px;min-height:60px;font-size:1rem}
  .octopus-opponent{width:118px;height:245px}
  .game-octopus{scale:.68;transform-origin:50% 100%}
  .octopus-speech{min-width:105px;font-size:.53rem;padding:6px}
  .lighthouse-rescue-scene{width:96%;height:390px}
  .real-lighthouse{right:1%;bottom:8%;scale:.76;transform-origin:100% 100%}
  .lighthouse-shore{width:38%;height:31%}
  .lighthouse-rescue-ship{scale:.8}
  .lighthouse-rescue-counter{left:7px;bottom:7px;min-width:125px;padding:6px 9px}
  .trace-board,.catch-pool{max-width:260px}
  .sea-glass-draw-activity{padding-left:1%;padding-right:1%;padding-bottom:62px}
  .draw-board{width:97%;max-width:none;height:calc(100% - 54px);min-height:310px;border-width:4px;border-radius:22px}
  .draw-fish,.draw-target{font-size:2.7rem}
  .draw-board::after{font-size:2rem;word-spacing:1.8rem}
  .draw-clear-btn{bottom:52px;min-width:135px;min-height:40px}
  .necklace-designer-princess{width:120px;height:180px}
  .necklace-design-board{left:2%;top:16%;width:310px;height:290px}
  .necklace-design-string{top:49px;height:175px}.necklace-designer-beads{inset:0}.necklace-design-pendant{font-size:2.7rem}
  .necklace-palette{right:1%;top:14%;width:185px;padding:8px}.necklace-bead-options{gap:3px}.necklace-bead-option{min-height:58px}.necklace-bead-option small{font-size:.36rem}
  .necklace-pendant-options{gap:3px}.necklace-pendant-option small{display:none}
  .playroom-joy-meter{top:5px!important;left:5px!important;gap:4px!important;padding:4px 6px!important;font-size:.58rem!important}
  .playroom-joy-track{width:42px!important}
  #screen-playroom.magic-play-active .playroom-play-area{bottom:40px!important;min-height:0}
  #playroom-play-area .kingdom-activity{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin}
  #playroom-floor.joy-visible .activity-prompt{left:calc(50% + 48px);top:6px;max-width:calc(100% - 108px);padding:6px 9px;font-size:clamp(.6rem,2.8vw,.72rem);border-radius:13px}
  .activity-choices{gap:6px;bottom:8px}.activity-choice{min-height:40px;padding:5px 9px;font-size:.78rem}
  .playroom-action-bar{right:5px!important;bottom:5px!important;gap:4px!important}.playroom-put-away,.playroom-change-style{padding:6px 9px!important;font-size:.58rem!important}
}

@media (orientation:landscape) and (max-height:500px){
  #screen-playroom.magic-play-active .playroom-topbar{display:none}
  #screen-playroom.magic-play-active .playroom-room{height:calc(100dvh - var(--safe-top) - var(--safe-bottom) - 10px)}
  #screen-playroom.magic-play-active .playroom-play-area{bottom:38px!important;min-height:0}
  .activity-prompt{top:5px;padding:5px 10px;font-size:clamp(.56rem,1.7vw,.72rem);line-height:1.15}
  #playroom-play-area .kingdom-activity{overflow-x:hidden;overflow-y:auto;overscroll-behavior:contain;scrollbar-width:thin;padding-bottom:54px}
  #playroom-floor.joy-visible .activity-prompt{left:calc(50% + 62px);max-width:calc(100% - 138px)}
  .playroom-joy-meter{top:4px!important;left:4px!important;padding:3px 6px!important;font-size:.55rem!important}
  .playroom-joy-track{width:40px!important}
  .activity-choices{bottom:5px;gap:5px}.activity-choice{min-height:36px;padding:4px 8px;font-size:.7rem}
  .playroom-action-bar{right:4px!important;bottom:4px!important;gap:4px!important}.playroom-put-away,.playroom-change-style{padding:5px 8px!important;font-size:.55rem!important}
}

/* ===== Playthrough polish (Aug 2026) — readability, glyphs, tap targets ===== */
.recipe-tool-name{font-size:max(.72rem,11px)!important}
.recipe-process-step small{font-size:max(.7rem,11px)!important}
.recipe-ingredient-label,.expanded-candy-recipe .recipe-ingredient-label{font-size:max(.72rem,11px)!important}
.necklace-bead-option small,.shell-tray-shell small{font-size:max(.7rem,11px)!important}
.chandelier-design-choice small{font-size:max(.52rem,9px)!important;line-height:1.1!important}
.real-recipe-ingredient b{font-size:max(.55rem,10px)!important}
.scooter-friend-name,.scooter-ride-racer .scooter-friend-name{font-size:max(.65rem,11px)!important}
.moon-object-label,.unicorn-flight-choice strong,.unicorn-flight-choice small{font-size:max(.7rem,11px)!important}
.sand-build-bucket span{font-size:max(.7rem,11px)!important}
/* Swatch / flavour / pendant / frosting labels — remaining sub-10px floor */
.necklace-pendant-option small,
.cake-frost-swatch small,
.cupcake-crown-swatch small,
.tiara-swatch small,
.recipe-flavor small,
.recipe-style small,
.gb-design-group button,
.cake-design-group button,
.sundae-flavor-tub strong,
.sundae-flavor-tub small,
.sundae-topping-btn strong,
.book-spell-name,
.castle-hall-candle small,
.carriage-wheel-piece small,
.flour-bag i,.milk-carton i,.butter-block::before{font-size:max(.7rem,11px)!important;line-height:1.15!important}
.necklace-pendant-option small{display:block!important}

/* White ★ on white picker cards */
.necklace-bead-option .designer-bead.shape-symbol{
  color:var(--bead,#D4A017)!important;
  text-shadow:0 1px 2px rgba(0,0,0,.28);
  filter:drop-shadow(0 0 1px rgba(0,0,0,.2));
}
.chandelier-design-choice span{
  color:#FFE082;
  text-shadow:0 1px 3px rgba(0,0,0,.55);
}
.chandelier-design-choice[style*="--choice-color"] span{color:transparent;text-shadow:none}

/* Candy 30: collapse flavour panel so Mix reads as a real button */
.recipe-30 .recipe-bowl{z-index:2}
.recipe-30 .recipe-action{
  position:relative;z-index:30!important;
  margin-top:10px;
  background:#fff!important;
  box-shadow:0 6px 16px rgba(108,32,70,.28);
  isolation:isolate;
}
.recipe-30 .recipe-action.ready{background:linear-gradient(135deg,#FF69B4,#FFD700)!important;color:#fff!important}
.recipe-30 .recipe-flavors{z-index:4;transition:max-height .35s ease,padding .35s ease,opacity .3s,margin .35s}
.recipe-30 .recipe-flavors.flavor-picked{
  max-height:52px;
  padding:6px 10px;
  margin-top:0;
  margin-bottom:4px;
  overflow:hidden;
}
.recipe-30 .recipe-flavors.flavor-picked>strong{display:none}
.recipe-30 .recipe-flavors.flavor-picked .recipe-flavor:not(.selected){display:none}
.recipe-30 .recipe-flavors.flavor-picked .recipe-flavor-grid{justify-content:center;gap:0}
.recipe-30 .recipe-flavors.flavor-picked .recipe-flavor.selected{
  min-height:0;padding:4px 14px;transform:none;box-shadow:none;border-width:2px;
}
.recipe-30 .recipe-flavors.flavor-picked .recipe-flavor.selected span{font-size:1.1rem}
.recipe-30 .recipe-flavors.flavor-picked .recipe-flavor.selected small{margin-top:2px;font-size:max(.7rem,11px)!important}

/* Prompt clear of title cards */
.recipe-30 .activity-prompt,.recipe-33 .activity-prompt{top:4px;z-index:14}
.recipe-30 .recipe-card{top:54px}
.expanded-candy-recipe .activity-prompt{z-index:12}

/* Keep princess inside candy / castle panes (clear of Put Away) */
.recipe-30 .activity-princess{left:6px;right:auto;bottom:52px;width:72px;height:94px;z-index:3;opacity:.92}
.castle-key-activity>.activity-princess{width:70px;height:94px;left:6px;bottom:8px;z-index:14}

/* Owl close — sibling of letter so transform scale never shrinks the hit target */
.owl-letter-close{
  position:absolute;z-index:20;right:max(6px,2%);top:max(8px,10%);
  width:48px;height:48px;min-width:48px;min-height:48px;
  border:0;border-radius:50%;
  background:rgba(255,255,255,.88);color:#7b5227;
  font-size:1.85rem;line-height:1;cursor:pointer;
  box-shadow:0 2px 8px rgba(0,0,0,.25);
  display:none;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
}
.owl-letter-close.is-visible{display:flex}
.owl-letter .owl-letter-close{display:none!important} /* legacy in-letter close, if any */

.carriage-canopy-options button,.carriage-decor-options button,.carriage-color-options button,
.carriage-roll-btn{
  min-height:44px!important;min-width:44px!important;
  box-sizing:border-box;
}
.carriage-color-options button{width:44px!important;height:44px!important;border-radius:50%}
.carriage-canopy-options button,.carriage-decor-options button{font-size:max(.65rem,11px)!important}

/* Tap targets ≥44px — clears marginal 40–43px controls */
.tiara-wear-btn,.chandelier-light-btn,.cupcake-crown-wear-btn,
.necklace-wear-btn,.nightlight-music-btn,.nightlight-tune-btn,
.recipe-action,.activity-choice,.dt-opt-row button,
.gb-design-group button,.cake-design-group button,
.gb-clear-row button,.cake-clear-row button,
.gb-icing-swatch,.cake-frost-swatch,.cupcake-crown-swatch,.tiara-swatch,
.chandelier-design-choice,.necklace-bead-option,.necklace-pendant-option,
.recipe-style,.recipe-flavor,.candy-necklace-option,
.nightlight-color-btn,.kelp-color-choice{
  min-height:44px!important;min-width:44px!important;
  box-sizing:border-box;
}
.constellation-star{width:44px;height:44px;min-width:44px;min-height:44px;font-size:1.25rem;line-height:44px}
.gb-decor-options button.gb-decor-btn{min-width:48px!important;min-height:48px!important}
.necklace-edit-actions button{min-height:44px}

/* Broader font floor for leftover sub-10px labels */
.nightlight-tune-btn strong,.unicorn-picker-title,
.moon-door-room-name,.moon-door-room-desc,
.castle-location-card strong,.castle-location-card small,
.candy-necklace-option small,.candy-necklace-drag-piece small,
.shell-tray-shell small,.kelp-color-choice,
.sailing-sea-monster strong,.dolphin-obstacle b,
.real-syrup.molasses b,.recipe-tool-name,
.donut-throne-group strong,.gb-design-group>strong,.cake-design-group>strong,
.expanded-candy-recipe .recipe-tool-name,
.expanded-candy-recipe .recipe-ingredient-label{font-size:max(.68rem,11px)!important;line-height:1.15!important}

/* Activity math gate choices */
.activity-choice.wrong{animation:activity-choice-shake .4s ease;border-color:#e74c3c;background:#ffe8e8}
@keyframes activity-choice-shake{0%,100%{transform:translateX(0)}25%{transform:translateX(-5px)}75%{transform:translateX(5px)}}

/* Keep media-query shrinks from undoing floors */
@media (max-width:600px){
  .recipe-tool-name,.recipe-process-step small,.recipe-ingredient-label,
  .expanded-candy-recipe .recipe-ingredient-label,.expanded-candy-recipe .recipe-tool-name,
  .necklace-bead-option small,
  .necklace-pendant-option small,.cake-frost-swatch small,.cupcake-crown-swatch small,
  .tiara-swatch small,.recipe-flavor small,.recipe-style small,
  .gb-design-group button,.cake-design-group button,
  .sundae-flavor-tub strong,.sundae-flavor-tub small,
  .nightlight-tune-btn strong,.unicorn-picker-title,
  .candy-necklace-option small,.shell-tray-shell small,
  .moon-door-room-name,.moon-door-room-desc{font-size:max(.68rem,11px)!important}
  .chandelier-design-choice small{font-size:max(.48rem,8px)!important;line-height:1.1!important}
  .necklace-pendant-option small{display:block!important}
  .tiara-wear-btn,.chandelier-light-btn,.cupcake-crown-wear-btn,
  .nightlight-music-btn,.nightlight-tune-btn,.nightlight-color-btn,
  .chandelier-design-choice,.recipe-style,.dt-opt-row button,
  .gb-design-group button,.cake-design-group button{min-height:44px!important;min-width:44px!important}
}
