.princess-edition #castle{touch-action:pan-y;-webkit-touch-callout:none;user-select:none;cursor:pointer}.princess-edition #castle:focus-visible{outline:2px dashed #9e5e32;outline-offset:-8px;border-radius:20px}
.princess-lantern-controls{text-align:center;position:relative;z-index:3;padding:4px 12px 16px}.princess-lantern-button{display:inline-flex;align-items:center;gap:7px;min-height:44px;padding:9px 18px;border:1px solid #d9ac73;border-radius:25px;background:#fff6e7;color:#915129;box-shadow:0 3px 0 #ba814b20;font:700 12px var(--round,sans-serif);cursor:pointer}.princess-lantern-button svg{display:block;width:22px;height:22px}.princess-lantern-controls small{display:block;margin:6px 0 0;color:#896546;font-size:10px}.princess-lantern-button:focus-visible,.princess-completion-actions :focus-visible{outline:3px solid #a65b32;outline-offset:3px}
.princess-meet-progress{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:9px 13px;max-width:470px;margin:12px auto 18px;padding:11px 14px;background:#fff5e5;border:1px dashed #dfbd8e;border-radius:16px;color:#8d633b;font-size:11px;line-height:1.7}.princess-meet-progress strong{font:italic 700 20px Georgia,serif;color:#a35d31}.princess-meet-progress a{font-size:10px;color:#9b693c;text-underline-offset:3px}.princess-met-badge{display:block!important;margin:10px auto 0!important;color:#978877;font-size:10px!important}.princess-met .princess-met-badge{color:#a56c2e;font-weight:900}.princess-gallery-card.princess-met{border-color:#d9ad68!important;box-shadow:0 4px 0 #d6a66830!important}
.princess-magic-status{position:fixed;left:50%;bottom:26px;transform:translateX(-50%);max-width:calc(100% - 32px);width:max-content;z-index:80;pointer-events:none;background:#fff7eaf5;color:#8a5936;border:1px solid #dfbe8b;border-radius:18px;box-shadow:0 3px 16px #91643515;padding:9px 16px;font:700 11px/1.7 var(--round,sans-serif);text-align:center;animation:princess-status-fade 4s ease both}.princess-magic-status:empty{display:none}
.princess-lantern-sky,.princess-completion-layer{position:fixed;inset:0;z-index:68;overflow:hidden;pointer-events:none}.princess-lantern{position:absolute;left:var(--x);bottom:-65px;width:var(--size);height:calc(var(--size)*1.3);border:1px solid #dba35c;border-radius:7px 7px 6px 6px;background:linear-gradient(90deg,#edb76a,#fff0b4 45%,#f4cd83 75%,#e2a65e);box-shadow:0 0 12px #f8d38788,inset 0 0 9px #fff7cd88;animation:princess-lantern-rise 6.2s var(--delay) cubic-bezier(.22,.42,.4,.9) both;transform-origin:50% 100%;opacity:0}.princess-lantern:before{content:'';position:absolute;inset:3px 5px;border-left:1px solid #b7803833;border-right:1px solid #b7803833;border-radius:4px}.princess-lantern:after{content:'';position:absolute;left:42%;bottom:2px;width:16%;height:17%;border-radius:70% 70% 40% 40%;background:#fff6cf;box-shadow:0 0 8px #ffdc70}.princess-lantern>svg{position:absolute;width:64%;height:64%;top:15%;left:18%;color:#b06d3b;opacity:.6}
@keyframes princess-lantern-rise{0%{transform:translate3d(-50%,0,0) rotate(var(--sway)) scale(.85);opacity:0}12%{opacity:.92}65%{opacity:.95}100%{transform:translate3d(calc(-50% + var(--drift)),-120vh,0) rotate(calc(var(--sway)*-1)) scale(.62);opacity:0}}
.princess-lantern-sky.calm .princess-lantern{bottom:28%;animation:princess-lantern-still 2.4s var(--delay) ease both}
@keyframes princess-lantern-still{0%,100%{opacity:0}25%,70%{opacity:.9}}
.princess-completion-layer{z-index:74}.princess-completion-card{pointer-events:auto;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);width:min(350px,calc(100% - 36px));background:linear-gradient(145deg,#fffdf6,#fff0da);border:1px solid #deb97d;border-radius:26px;padding:22px 20px 16px;text-align:center;color:#80522e;box-shadow:0 12px 55px #6f4b3726;animation:princess-card-in .65s ease both}.princess-completion-card:before{content:'';position:absolute;inset:7px;border:1px dashed #e3c99b;border-radius:20px;pointer-events:none}.princess-completion-crown{display:block;color:#bd8b45}.princess-completion-crown svg{width:38px;height:38px}.princess-completion-script{font:29px/1.25 var(--script,'Great Vibes',cursive)!important;color:#b78643!important;margin:5px 0 8px!important}.princess-completion-card h2{font:900 18px/1.5 var(--round,sans-serif);margin:0}.princess-completion-card p{font:500 11px/1.8 var(--round,sans-serif);margin:7px 0 12px;color:#96704d}.princess-completion-faces{display:grid;grid-template-columns:repeat(7,1fr);gap:3px;margin:16px 0 11px}.princess-completion-faces svg{width:100%;height:auto}.princess-completion-actions{display:flex;align-items:center;justify-content:center;gap:14px}.princess-completion-actions a{color:#98612c;font:700 11px var(--round,sans-serif);padding:10px 0}.princess-completion-actions button{min-height:44px;border:0;background:transparent;color:#987c62;font:500 11px var(--round,sans-serif);padding:8px;cursor:pointer}
.princess-gold-confetti{position:absolute;top:-20px;left:var(--x);width:6px;height:10px;border-radius:2px;background:var(--gold);animation:princess-confetti-fall 3.5s var(--delay) ease-out both;opacity:0}
@keyframes princess-confetti-fall{0%{opacity:0;transform:translate3d(0,-20px,0) rotate(0)}12%{opacity:1}100%{opacity:0;transform:translate3d(var(--drift),105vh,0) rotate(var(--spin))}}
@keyframes princess-card-in{from{opacity:0;translate:0 8px}to{opacity:1;translate:0 0}}
@keyframes princess-status-fade{0%{opacity:0}12%,75%{opacity:1}100%{opacity:0}}
@media(prefers-reduced-motion:reduce){.princess-completion-card{animation:none}.princess-gold-confetti{display:none}.princess-lantern{animation:princess-lantern-still 2.4s var(--delay) ease both;bottom:28%}.princess-magic-status{animation:none}}

/* A grand, one-shot castle spell */
.princess-castle-show:before{content:'';position:absolute;inset:0;background:linear-gradient(180deg,#6f425d69,#98604a2b 65%,transparent);opacity:0;animation:royal-halo-bloom 4.8s ease both}
.princess-castle-show{position:fixed;inset:0;z-index:65;pointer-events:none;overflow:hidden}.princess-castle-show>svg{position:absolute;inset:0;width:100%;height:100%;overflow:visible;filter:drop-shadow(0 0 4px #e8b36390)}.royal-castle-halo{position:absolute;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(ellipse,#fff2c77a, #ffdba43a 40%,transparent 70%);opacity:0;animation:royal-halo-bloom 4.5s ease both}.royal-firework-burst{transform-box:view-box;transform-origin:0 0;opacity:0;animation:royal-firework-bloom 1.9s var(--delay) cubic-bezier(.14,.65,.25,1) both}.royal-firework-rise{fill:none;stroke-width:1.3;stroke-linecap:round;stroke-dasharray:.22 .78;stroke-dashoffset:1;opacity:0;animation:royal-firework-launch .6s var(--delay) ease-out both}.royal-magic-ring{fill:none;stroke:#ffedbd;stroke-width:2;stroke-linecap:round;stroke-dasharray:1;stroke-dashoffset:1;opacity:0;animation:royal-ring-draw 3.5s var(--delay) ease-out both}.royal-shooting-star{opacity:0;animation:royal-star-flight 1.7s var(--delay) ease-out both}.royal-castle-sparkle{opacity:0;animation:royal-sparkle-once 1.8s var(--delay) ease both}.princess-edition .princess-castle-spectacular{animation:royal-castle-illumination 4.8s ease both}
@keyframes royal-firework-bloom{0%{opacity:0;transform:scale(.04)}12%{opacity:1}55%{opacity:.95}100%{opacity:0;transform:scale(1.1) translateY(10px)}}
@keyframes royal-firework-launch{0%{opacity:0;stroke-dashoffset:1}30%{opacity:.8}100%{opacity:0;stroke-dashoffset:-.22}}
@keyframes royal-ring-draw{0%{opacity:0;stroke-dashoffset:1}15%{opacity:.85}65%{opacity:.8;stroke-dashoffset:0}100%{opacity:0;stroke-dashoffset:-.3}}
@keyframes royal-star-flight{0%{opacity:0;transform:translate(0,0) scale(.6)}20%{opacity:1}100%{opacity:0;transform:translate(var(--mx),var(--my)) scale(.8)}}
@keyframes royal-sparkle-once{0%,100%{opacity:0}35%,55%{opacity:.95}}
@keyframes royal-halo-bloom{0%,100%{opacity:0}20%{opacity:.8}65%{opacity:.55}}
@keyframes royal-castle-illumination{0%,100%{filter:drop-shadow(0 0 18px #f2bf86)}25%{filter:drop-shadow(0 0 18px #fff1b9) drop-shadow(0 0 34px #efc079b3)}65%{filter:drop-shadow(0 0 14px #fff2c5) drop-shadow(0 0 26px #e5b7bc9c)}}
.princess-castle-show.calm .royal-firework-burst{animation:royal-sparkle-once 2s ease both;transform:none}.princess-castle-show.calm .royal-castle-sparkle{animation:royal-sparkle-once 2s ease both}.princess-castle-show.calm .royal-castle-halo{animation:royal-halo-bloom 2.5s ease both}
@media(prefers-reduced-motion:reduce){.princess-edition .princess-castle-spectacular{animation:none;filter:drop-shadow(0 0 15px #ffe3aa)}.royal-firework-burst{animation:royal-sparkle-once 2s ease both;transform:none}.royal-shooting-star,.royal-firework-rise,.royal-magic-ring{display:none}.royal-castle-halo{animation:royal-halo-bloom 2.5s ease both}}
