.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}
}

/* Pearl Necklace (45) on phones: stack princess + board over the palette
   instead of overlapping absolute panels (palette was running off-screen). */
@media (max-width:520px) and (orientation:portrait){
  .pearl-necklace-designer{display:flex;flex-direction:row;flex-wrap:wrap;align-content:flex-start;align-items:flex-end;justify-content:center;gap:8px;padding:54px 8px 12px;overflow-x:hidden;overflow-y:auto;box-sizing:border-box}
  .necklace-designer-princess{position:relative;left:auto;bottom:auto;flex:none;width:88px;height:146px;align-self:flex-end}
  .necklace-design-board{position:relative;left:auto;top:auto;flex:1 1 200px;width:auto;max-width:280px;height:178px;border-radius:24px;box-sizing:border-box}
  .necklace-design-board::before,.necklace-design-board::after{display:none}
  .necklace-board-title{top:8px;font-size:.68rem}
  .necklace-design-string{top:34px;height:106px;border-width:4px}
  .necklace-design-pendant{top:83%;font-size:2.1rem}
  .necklace-design-pendant::before{top:-12px;height:14px}
  .placed-necklace-bead{width:34px;height:34px}
  .placed-necklace-bead .designer-bead{width:24px;height:24px}
  .necklace-empty-help{top:26px;bottom:auto;font-size:.6rem}
  .necklace-palette{position:relative;right:auto;top:auto;flex:1 1 100%;width:100%;max-width:400px;padding:8px 10px;box-sizing:border-box;
    display:grid;grid-template-columns:1fr 1fr 1.5fr;column-gap:6px}
  .necklace-palette>strong,.necklace-bead-options,.necklace-pendant-options{grid-column:1/-1}
  .necklace-palette>strong{margin:2px 0 5px}
  .necklace-bead-options{gap:5px;margin-bottom:6px}
  .necklace-bead-option{min-height:54px}
  .necklace-pendant-options{gap:5px}
  .necklace-pendant-option{min-height:48px}
  .necklace-edit-actions{display:contents}
  .necklace-edit-actions button,.necklace-wear-btn{margin-top:8px;min-height:44px;width:auto}
}

/* Phones: while an activity is open, shrink the treasure wall to one scrollable
   row so the activity gets the room, and keep activities clear of the
   Put Away / Change Style bar (44px buttons + 5px inset). */
@media (max-width:520px) and (orientation:portrait){
  #screen-playroom.magic-play-active .playroom-wall-section,
  #screen-playroom:has(#playroom-put-away.visible) .playroom-wall-section{max-height:112px}
  #screen-playroom.magic-play-active .playroom-play-area,
  #screen-playroom:has(#playroom-put-away.visible) .playroom-play-area{bottom:54px!important}
  /* Fun meter moves down beside the Put Away bar so the instructions can use the
     full width (they were squeezed to ~150px and wrapped to 4 lines over the game). */
  #screen-playroom:has(#playroom-put-away.visible) .playroom-joy-meter{top:auto!important;bottom:16px!important;left:8px!important}
  #screen-playroom:has(#playroom-put-away.visible) #playroom-floor.joy-visible .activity-prompt{left:50%;max-width:calc(100% - 20px)}
}
/* The settings gear sits over the play floor's bottom-left controls (Feed,
   Undo, etc.) while a toy is out; it comes back as soon as the toy is put away. */
body.on-playroom:has(#playroom-put-away.visible) .settings-gear{display:none}
/* Magic Cape photo shoot has its own title + camera button; the "Looking lovely…"
   caption sat on top of the camera button. */
#playroom-floor:has(.cape-camera-btn) .playroom-active-label{display:none!important}

/* ===== Phone portrait fixes (Sep 2026 TestFlight feedback) ===== */
@media (max-width:520px) and (orientation:portrait){
  /* Moon Tiara (16): 4 swatches in a ~190px panel left labels spilling out; use 2x2 */
  .tiara-swatches{grid-template-columns:repeat(2,1fr);gap:6px}
  .tiara-swatch{min-height:52px}
  .tiara-swatch small{font-size:max(.6rem,10px)!important;white-space:nowrap}
  /* Chandelier (22): controls covered the chandelier and 4 crystal choices
     overflowed the panel; centre the chandelier and dock controls bottom-right,
     beside the princess. */
  .chandelier-preview{left:50%;top:6%;width:240px;height:220px}
  .chandelier-light-rays{left:50%;width:320px}
  .chandelier-controls{top:auto;bottom:10px;right:8px;width:calc(100% - 124px);padding:8px}
  .chandelier-control-group{margin-bottom:6px}
  .chandelier-design-choice{min-width:0!important;min-height:50px!important}
  .chandelier-design-choice small{font-size:max(.55rem,9px)!important;overflow-wrap:normal;word-break:keep-all;hyphens:none}
}
/* Constellations (24) on phones: 44px stars (7% apart) piled on top of each
   other. Draw them smaller and keep a ~42px invisible tap area. */
@media (max-width:520px){
  .constellation-star{width:28px!important;height:28px!important;min-width:28px!important;min-height:28px!important;line-height:28px!important;font-size:1rem!important}
  .constellation-star::after{content:'';position:absolute;inset:-7px;border-radius:50%}
}
/* Gumdrop Carriage (32) on phones: 44px colour swatches overflowed the design
   panel, and the wheel tray sat on the roll button and the princess.
   Panel across the top, carriage in the middle, wheel tray bottom-right beside
   the princess; the roll button appears once the wheels are on. */
@media (max-width:520px) and (orientation:portrait){
  .carriage-design-panel{left:8px;right:8px;top:56px;width:auto;padding:8px 10px}
  .carriage-design-group{margin-bottom:6px}
  .carriage-design-group>div{gap:6px}
  .gumdrop-carriage{left:50%;bottom:22%;transform:translateX(-50%) scale(.72);transform-origin:50% 100%}
  .carriage-wheel-tray{left:auto;right:6px;bottom:6px;width:calc(100% - 112px);max-width:310px;padding:6px 8px;box-sizing:border-box}
  .carriage-wheel-pieces{gap:6px}
  .carriage-wheel-piece{width:54px;height:54px}
  .carriage-wheel-piece small{top:54px;width:60px;font-size:9px!important;white-space:nowrap}
  .carriage-wheel-tray{padding-bottom:18px}
  .gumdrop-carriage-activity:not(.wheels-ready) .carriage-roll-btn{display:none}
  .carriage-roll-btn{right:auto;left:50%;transform:translateX(-50%);bottom:12px}
  .carriage-rolling .gumdrop-carriage{animation-name:gumdrop-carriage-roll-sm}
  /* Bubble Castle (49): the counter sat on the right-hand Spire pad */
  .bubble-castle-counter{top:auto;bottom:8px;right:50%;transform:translateX(50%);min-width:0;padding:5px 10px;font-size:.74rem}
  /* Candy recipes: the princess (bottom-left) covered step 1 of the progress row */
  .expanded-candy-recipe .recipe-process{align-self:flex-end;width:auto;max-width:calc(100% - 112px);margin-left:104px;margin-right:6px;gap:6px}
}
@keyframes gumdrop-carriage-roll-sm{
  0%{left:-40%;transform:translateX(-50%) translateY(0) rotate(-3deg) scale(var(--carriage-scale,.72))}
  15%{left:20%;transform:translateX(-50%) translateY(-6px) rotate(2deg) scale(var(--carriage-scale,.72))}
  40%{left:45%;transform:translateX(-50%) translateY(-8px) rotate(2deg) scale(var(--carriage-scale,.72))}
  60%{left:70%;transform:translateX(-50%) translateY(0) rotate(-2deg) scale(var(--carriage-scale,.72))}
  80%{left:58%;transform:translateX(-50%) translateY(-5px) rotate(1deg) scale(var(--carriage-scale,.72))}
  100%{left:var(--carriage-x,50%);transform:translateX(-50%) translateY(0) rotate(0) scale(var(--carriage-scale,.72))}
}

/* Landscape phones (~510x330 play area): necklace designer and carriage builder
   were overlapping panels sized for tablets. */
@media (orientation:landscape) and (max-height:500px){
  .pearl-necklace-designer{display:flex;flex-direction:row;flex-wrap:nowrap;align-items:stretch;gap:6px;padding:42px 6px 6px;overflow-x:hidden;overflow-y:auto;box-sizing:border-box}
  .necklace-designer-princess{position:relative;left:auto;bottom:auto;flex:none;width:78px;height:124px;align-self:flex-end}
  .necklace-design-board{position:relative;left:auto;top:auto;flex:1 1 auto;min-width:0;width:auto;height:auto;min-height:190px;border-radius:20px;box-sizing:border-box}
  .necklace-design-board::before,.necklace-design-board::after{display:none}
  .necklace-board-title{top:6px;font-size:.62rem}
  .necklace-empty-help{top:22px;bottom:auto;font-size:.56rem}
  .necklace-design-string{top:30px;height:calc(100% - 82px);border-width:4px}
  .necklace-design-pendant{top:84%;font-size:1.9rem}
  .necklace-design-pendant::before{top:-11px;height:13px}
  .placed-necklace-bead{width:30px;height:30px}
  .placed-necklace-bead .designer-bead{width:22px;height:22px}
  .necklace-palette{position:relative;right:auto;top:auto;flex:none;width:214px;padding:5px 7px;box-sizing:border-box;align-self:flex-start;
    display:grid;grid-template-columns:1fr 1fr 1.4fr;column-gap:4px}
  .necklace-palette>strong,.necklace-bead-options,.necklace-pendant-options{grid-column:1/-1}
  .necklace-palette>strong{margin:1px 0 3px;font-size:.55rem}
  .necklace-bead-options,.necklace-pendant-options{gap:3px;margin-bottom:3px}
  .necklace-bead-option,.necklace-pendant-option{min-height:42px!important;min-width:0!important;padding:2px 1px}
  .necklace-bead-option .designer-bead{width:20px;height:20px}
  .necklace-bead-option small,.necklace-pendant-option small{font-size:8px!important;line-height:1.05}
  .necklace-edit-actions{display:contents}
  .necklace-edit-actions button,.necklace-wear-btn{margin-top:4px;min-height:40px;width:auto}

  /* Put Away / Change Style are 44px tall; reserve the full strip (was 38px) */
  #screen-playroom.magic-play-active .playroom-play-area,
  #screen-playroom:has(#playroom-put-away.visible) .playroom-play-area{bottom:52px!important}
  body.on-playroom:has(#playroom-put-away.visible) .settings-gear{display:none}
  .gumdrop-carriage-activity{--carriage-scale:.55;--carriage-x:34%}
  .carriage-princess{width:78px;height:116px}
  .carriage-design-panel{right:4px;top:40px;width:252px;padding:5px 8px;box-sizing:border-box}
  .carriage-design-group{margin-bottom:3px}
  .carriage-design-group>strong{margin-bottom:2px}
  .carriage-design-group>div{gap:4px}
  .carriage-canopy-options button,.carriage-decor-options button,.carriage-color-options button{min-height:40px!important;min-width:40px!important}
  .carriage-color-options button{width:40px!important;height:40px!important}
  .gumdrop-carriage{left:34%;bottom:34%;transform:translateX(-50%) scale(.55);transform-origin:50% 100%}
  .carriage-wheel-tray{left:84px;right:4px;bottom:4px;width:auto;min-height:0;padding:3px 6px 5px;box-sizing:border-box}
  .carriage-wheel-tray>strong{margin-bottom:2px;font-size:.55rem}
  .carriage-wheel-pieces{gap:4px;min-height:0}
  .carriage-wheel-piece{width:40px;height:40px;border-width:3px}
  .carriage-wheel-piece small{display:none}
  .gumdrop-carriage-activity:not(.wheels-ready) .carriage-roll-btn{display:none}
  .carriage-roll-btn{right:auto;left:34%;transform:translateX(-50%);bottom:6px;min-width:0}
  .carriage-rolling .gumdrop-carriage{animation-name:gumdrop-carriage-roll-sm}
}
/* Put Away / Change Style were forced to ~9px on phones ("hard to read" in
   TestFlight). Keep them readable and on one line. */
@media (max-width:520px){
  .playroom-put-away,.playroom-change-style{font-size:max(.8rem,13px)!important;padding:8px 12px!important;white-space:nowrap;font-weight:800}
  .playroom-put-away{background:#fff;color:#5E1F70;border-color:#7B2D8E}
}
@media (orientation:landscape) and (max-height:500px){
  .playroom-put-away,.playroom-change-style{font-size:max(.75rem,12px)!important;padding:7px 10px!important;white-space:nowrap;font-weight:800}
}
@media (max-width:400px){
  .playroom-put-away,.playroom-change-style{font-size:12px!important;padding:8px 8px!important}
  .playroom-joy-track{width:30px!important}
}
/* Trident Toss (47): the range shrank on short phones (iPhone SE: 210px) but the
   target/trident bobbed on fixed 430px paths, so both left the range and were
   clipped out of sight. Size the range to the screen and bob relative to it
   (identical motion at the original 430px height). */
.trident-range{flex:1 1 auto;height:auto;min-height:220px;max-height:430px}
@keyframes trident-weapon-bob{from{top:-25px}to{top:calc(100% - 240px)}}
@keyframes trident-target-bob{from{top:35px}to{top:calc(100% - 155px)}}
@keyframes trident-beam-bob{from{top:107px}to{top:calc(100% - 108px)}}
