.hp-overlay{z-index:9999;pointer-events:none;position:fixed;inset:0;overflow:hidden}.hp-stage{left:var(--hp-figurine-left,25%);bottom:var(--hp-figurine-bottom,1.5vh);width:var(--hp-figurine-width,min(48vh, 340px));height:var(--hp-figurine-height,auto);perspective:900px;position:absolute;transform:translate(-50%)}@media (max-width:767px){.hp-stage{left:var(--hp-mobile-figurine-left,var(--hp-figurine-left,25%));bottom:var(--hp-mobile-figurine-bottom,var(--hp-figurine-bottom,1.5vh));width:var(--hp-mobile-figurine-width,var(--hp-figurine-width,min(48vh, 340px)));height:var(--hp-mobile-figurine-height,var(--hp-figurine-height,auto))}}.hp-appear{animation:.9s cubic-bezier(.22,.9,.3,1.1) both hp-appear}.hp-float{transform-style:preserve-3d}.hp-turn{transform-style:preserve-3d;transition:transform 1.2s cubic-bezier(.4,.1,.2,1);transform:rotateY(0)rotate(0)}.is-casting .hp-turn{transform:rotateY(42deg)rotate(-4deg)}.hp-sway{transform-style:preserve-3d;animation:7s ease-in-out 1s infinite hp-sway}.hp-depth{transform-style:preserve-3d;position:relative}.hp-depth-layer{position:absolute;inset:0}.hp-depth-b1{filter:brightness(.55)saturate(.8);transform:translateZ(-9px)}.hp-depth-b2{filter:brightness(.3);transform:translateZ(-18px)}.hp-depth-layer .hp-cast-reveal,.hp-depth-layer .hp-rim-light{display:none}.hp-depth-layer .hp-figurine-svg{filter:none}.hp-figurine-shadow{opacity:.25;filter:brightness(0)blur(2.5px);pointer-events:none}.hp-figurine-shadow *{fill:#000!important;stroke:#000!important}.hp-figurine-shadow .hp-cast-reveal,.hp-figurine-shadow .hp-rim-light,.hp-depth-layer .hp-figurine-shadow{display:none}.hp-figurine-svg{filter:drop-shadow(0 18px 30px #000000d9);width:100%;height:auto;display:block;overflow:visible}@keyframes hp-appear{0%{opacity:0;transform:translate(-50%)translateY(40px)scale(.85)}to{opacity:1;transform:translate(-50%)translateY(0)scale(1)}}@keyframes hp-sway{0%,to{transform:rotateY(-7deg)}50%{transform:rotateY(7deg)}}.hp-wand-arm{transform-box:view-box;transform-origin:236px 266px;transition:transform 1.15s cubic-bezier(.34,1.25,.45,1);transform:rotate(0)}.is-casting .hp-wand-arm{transform:rotate(-110deg)}.hp-wand-arm-bob{transform-box:view-box;transform-origin:236px 266px;animation:3.2s ease-in-out infinite paused hp-arm-bob}.is-casting .hp-wand-arm-bob{animation-play-state:running}@keyframes hp-arm-bob{0%,to{transform:rotate(0)}50%{transform:rotate(4deg)}}.hp-head{transform-box:view-box;transform-origin:180px 228px;transition:transform .9s ease-in-out}.is-casting .hp-head{transform:rotate(8deg)translate(6px,-5px)}.hp-pupil{transition:transform .9s ease-in-out}.is-casting .hp-pupil{transform:translate(2px,-2.5px)}.hp-cast-reveal{opacity:0;transition:opacity .5s}.is-casting .hp-cast-reveal{opacity:1;transition-delay:1.1s}.hp-tip-glow{transform-box:fill-box;transform-origin:50%;animation:1.8s ease-in-out infinite hp-tip-glow}@keyframes hp-tip-glow{0%,to{opacity:.55;transform:scale(.8)}50%{opacity:1;transform:scale(1.3)}}.hp-tip-core{transform-box:fill-box;transform-origin:50%;animation:1.1s ease-in-out infinite alternate hp-tip-core}@keyframes hp-tip-core{0%{opacity:.8;transform:scale(.85)}to{opacity:1;transform:scale(1.2)}}.hp-spark{opacity:0;transform-box:fill-box;transform-origin:50%;animation:hp-spark 1.4s ease-out var(--sd,0s) infinite}@keyframes hp-spark{0%{opacity:0;transform:translate(0)scale(.4)}15%{opacity:1}to{opacity:0;transform:translate(var(--sx,20px), var(--sy,20px)) scale(0)}}.hp-rim-light{opacity:0;animation:2.4s ease-in-out infinite paused hp-rim-light}.is-casting .hp-rim-light{animation-play-state:running}@keyframes hp-rim-light{0%,to{opacity:.15}50%{opacity:.5}}@font-face{font-family:Harry Potter;src:url(/fonts/harry-potter.ttf)format("truetype");font-display:swap;font-style:normal;font-weight:400}.hp-spell-stack{top:var(--hp-spell-top,4%);right:var(--hp-spell-right,4%);flex-direction:column;align-items:center;row-gap:1.1rem;display:flex;position:absolute}@media (max-width:767px){.hp-spell-stack{top:var(--hp-mobile-spell-top,var(--hp-spell-top,4%));right:var(--hp-mobile-spell-right,var(--hp-spell-right,4%))}}.hp-spell-banner{top:var(--hp-spell-top,4%);right:var(--hp-spell-right,4%);letter-spacing:.05em;flex-direction:column;align-items:center;row-gap:.4em;font-family:Harry Potter,Georgia,Times New Roman,serif;font-size:clamp(16px,5.5vw,56px);font-weight:700;line-height:1.2;display:flex;position:absolute}.hp-spell-banner.hp-spell-stacked{position:static}@media (max-width:767px){.hp-spell-banner{top:var(--hp-mobile-spell-top,var(--hp-spell-top,4%));right:var(--hp-mobile-spell-right,var(--hp-spell-right,4%))}}.hp-secondary-banner{text-align:center;font-family:var(--font-courgette), cursive;font-size:var(--hp-secondary-font-size,18px);font-weight:var(--hp-secondary-font-weight,400);color:var(--wish-secondary-color,#d2ebffe6);text-shadow:0 1px 2px #000000e6,0 2px 10px #000000e6,0 0 24px #000000e6;word-break:break-word;flex-direction:column;align-items:center;max-width:min(90vw,640px);line-height:1.3;display:flex}.hp-secondary-line{opacity:0;margin:0;padding:.1em 0}.hp-secondary-banner.hp-secondary-active .hp-secondary-line{animation:hp-line-conjure var(--hp-secondary-line-duration,.9s) cubic-bezier(.22, .9, .32, 1.04) calc(var(--line-index,0) * var(--hp-secondary-line-stagger,.14s)) both}@keyframes hp-line-conjure{0%{opacity:0;filter:blur(18px) brightness(6) drop-shadow(0 0 32px var(--wish-secondary-glow-burst,#a0dcff)) drop-shadow(0 0 12px #ffffffe6);transform:translateY(10px)scale(.86)}18%{opacity:1;filter:blur(7px) brightness(3.4) drop-shadow(0 0 18px var(--wish-secondary-glow-mid,#96d2ffd9));transform:translateY(5px)scale(.93)}55%{filter:blur(.5px) brightness(1.5) drop-shadow(0 0 9px var(--wish-secondary-glow-late,#82c3ff8c));transform:translateY(-2px)scale(1.015)}to{opacity:1;filter:blur(0) brightness(1) drop-shadow(0 0 4px var(--wish-secondary-glow-rest,#78beff38));transform:translateY(0)scale(1)}}.hp-spell-line{white-space:pre;justify-content:center;padding-block:10px;display:flex}.hp-spell-letter{opacity:0;will-change:transform, opacity}.hp-wave-inner{background:var(--wish-primary-gradient,linear-gradient(112deg, #7fb8ff 0%, #eaf7ff 22%, #9fd0ff 45%, #fff 62%, #7fb8ff 82%, #d8efff 100%));color:#0000;background-size:250% 100%;-webkit-background-clip:text;background-clip:text;display:inline-block}.hp-spell-letter.hp-fly{animation:hp-letter-flight 2.2s cubic-bezier(.25, .7, .3, 1.05) var(--fd,0s) both, hp-letter-glow 2.2s ease-in-out calc(var(--fd,0s) + 2.3s) infinite alternate, hp-wave-y 3.2s ease-in-out calc(var(--fd,0s) + 2.2s + var(--wph,0s)) infinite}.hp-spell-letter.hp-fly .hp-wave-inner{animation:hp-wave-x 4.6s ease-in-out var(--wxp,0s) infinite, hp-letter-shine 3s linear calc(var(--fd,0s) + 2.3s) infinite}@keyframes hp-wave-y{0%,to{transform:translateY(0)}30%{transform:translateY(-9px)}70%{transform:translateY(5px)}}@keyframes hp-wave-x{0%,to{transform:translate(0)rotate(0)}50%{transform:translate(5px)rotate(2.5deg)}}@keyframes hp-letter-flight{0%{opacity:0;transform:translate(var(--dx,0px), var(--dy,40vh)) scale(.2) rotate(-30deg);filter:blur(5px) drop-shadow(0 0 2px var(--wish-primary-glow-faint,#a0d7ff66))}10%{opacity:1}to{opacity:1;filter:blur(0) drop-shadow(0 0 6px var(--wish-primary-glow-soft,#78beff99));transform:translate(0)scale(1)rotate(0)}}@keyframes hp-letter-shine{0%{background-position:200% 0}to{background-position:-50% 0}}@keyframes hp-letter-glow{0%{filter:drop-shadow(0 0 6px var(--wish-primary-glow-soft,#78beff99))}to{filter:drop-shadow(0 0 16px var(--wish-primary-glow-strong,#aae1fff2)) drop-shadow(0 0 30px var(--wish-primary-glow-wide,#6eb4ff80))}}@keyframes hp-dance-bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-12px)}}@keyframes hp-dance-sway{0%,to{transform:rotateY(-12deg)rotate(3deg)}50%{transform:rotateY(12deg)rotate(-3deg)}}@keyframes hp-dance-head{0%,to{transform:rotate(-5deg)translate(-2px)}50%{transform:rotate(5deg)translate(2px)}}@keyframes hp-dance-arm{0%,to{transform:rotate(-25deg)}50%{transform:rotate(-55deg)}}.hp-magic-dust{pointer-events:none;position:fixed;inset:0}.hp-dust-particle{opacity:0;animation:hp-dust-fly 2.8s ease-out var(--pd,0s) infinite;background:radial-gradient(circle,#dcf0ff 0%,#82c8ffb3 40%,#0000 100%);border-radius:50%;position:absolute;box-shadow:0 0 6px 2px #82c8ffcc,0 0 14px #a0dcff66}@keyframes hp-dust-fly{0%{opacity:0;transform:translate(0)scale(.2)}12%{opacity:1;transform:translate(calc(var(--px,100px) * .08), calc(var(--py,-200px) * .08)) scale(var(--ps,1))}65%{opacity:.6}to{opacity:0;transform:translate(var(--px,100px), var(--py,-200px)) scale(0)}}.is-dancing .hp-float{animation:.45s ease-in-out infinite hp-dance-bounce}.is-dancing .hp-turn{transition:none;animation:.9s ease-in-out infinite hp-dance-sway}.is-dancing .hp-head{transition:none;animation:.45s ease-in-out infinite hp-dance-head}.is-dancing .hp-wand-arm{transition:none;animation:.9s ease-in-out infinite hp-dance-arm}.is-dancing.is-dance-winding-down .hp-float{transition:transform 1.2s ease-out;animation:none}.is-dancing.is-dance-winding-down .hp-turn{transition:transform 1.2s ease-out;animation:none;transform:rotateY(0)rotate(0)}.is-dancing.is-dance-winding-down .hp-head{transition:transform .9s ease-out;animation:none;transform:rotate(0)translate(0)}.is-dancing.is-dance-winding-down .hp-wand-arm{transition:transform 1.15s ease-out;animation:none;transform:rotate(0)}.hp-fireworks{pointer-events:none;position:absolute;inset:0;overflow:hidden}.hp-firework{position:absolute;transform:translate(-50%,-50%)}.hp-fw-rocket{background:linear-gradient(to top, transparent, hsl(var(--fw-hue,210) 80% 90%));width:3px;height:22px;box-shadow:0 0 8px 3px hsla(var(--fw-hue,210) 90% 80% / .6);animation:hp-fw-rocket var(--fw-dur,3s) ease-in var(--fw-delay,0s) infinite backwards;border-radius:2px;position:absolute}.hp-fw-bloom{background:radial-gradient(circle, hsla(var(--fw-hue,210) 80% 95% / 1), transparent 70%);width:24px;height:24px;box-shadow:0 0 24px 10px hsla(var(--fw-hue,210) 80% 85% / .5);animation:hp-fw-bloom var(--fw-dur,3s) ease-out var(--fw-delay,0s) infinite backwards;border-radius:50%;position:absolute;transform:translate(-50%,-50%)scale(0)}.hp-fw-spark{background:hsl(var(--fw-hue,210) 75% 85%);width:3px;height:3px;box-shadow:0 0 5px 2px hsla(var(--fw-hue,210) 85% 80% / .7);animation:hp-fw-spark var(--fw-dur,3s) ease-out var(--fw-delay,0s) infinite backwards;border-radius:50%;position:absolute}@keyframes hp-fw-rocket{0%{opacity:0;transform:translateY(var(--fw-launch,50vh))}6%{opacity:1}28%{opacity:1;transform:translateY(0)}30%{opacity:0}to{opacity:0;transform:translateY(0)}}@keyframes hp-fw-bloom{0%,27%{opacity:0;transform:translate(-50%,-50%)scale(0)}30%{opacity:1;transform:translate(-50%,-50%)scale(1)}42%{opacity:.5;transform:translate(-50%,-50%)scale(2.5)}55%{opacity:0;transform:translate(-50%,-50%)scale(3.5)}to{opacity:0}}@keyframes hp-fw-spark{0%,28%{opacity:0;transform:translate(0)scale(0)}34%{opacity:1;transform:translate(calc(var(--sp-x) * .25), calc(var(--sp-y) * .25)) scale(var(--sp-s,1))}52%{opacity:.85;transform:translate(var(--sp-x), var(--sp-y)) scale(var(--sp-s,1))}72%{opacity:.25;transform:translate(var(--sp-x), calc(var(--sp-y) + 18px)) scale(calc(var(--sp-s,1) * .3))}85%{opacity:0}to{opacity:0}}.hp-cast-btn{bottom:var(--hp-cast-btn-bottom,22px);right:var(--hp-cast-btn-right,22px);pointer-events:auto;width:36px;height:36px;color:var(--wish-control-color,#cfeaff);border:1px solid var(--wish-control-border,#7dbeff66);-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;box-shadow:0 0 18px var(--wish-control-glow,#5aa0ff26);background:#0f172ab3;border-radius:50%;justify-content:center;align-items:center;padding:0;font-size:15px;font-weight:600;transition:background .25s,box-shadow .25s,transform .25s,opacity .25s;display:flex;position:absolute}.hp-cast-btn:hover:not(:disabled){box-shadow:0 0 26px var(--wish-control-glow-hover,#78beff59);background:#1e2d50cc;transform:translateY(-1px)}.hp-cast-btn:active:not(:disabled){transform:translateY(0)scale(.97)}.hp-cast-btn:disabled{opacity:.45;cursor:default}@media (max-width:767px){.hp-cast-btn{bottom:var(--hp-cast-btn-mobile-bottom,var(--hp-cast-btn-bottom,22px));right:var(--hp-cast-btn-mobile-right,var(--hp-cast-btn-right,22px))}}@media (prefers-reduced-motion:reduce){.hp-appear,.hp-sway,.hp-wand-arm-bob,.hp-tip-glow,.hp-tip-core,.hp-spark,.hp-rim-light,.hp-wave-inner,.hp-spell-letter.hp-fly,.hp-dust-particle,.hp-fw-rocket,.hp-fw-bloom,.hp-fw-spark,.is-dancing .hp-float,.is-dancing .hp-turn,.is-dancing .hp-head,.is-dancing .hp-wand-arm{animation:none}.hp-wand-arm,.hp-turn,.hp-head,.hp-pupil,.hp-cast-reveal{transition:none}.hp-spell-letter{opacity:1}.hp-secondary-banner.hp-secondary-active .hp-secondary-line{opacity:1;animation:none}}
