.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 .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-size:var(--hp-secondary-font-size,18px);font-weight:var(--hp-secondary-font-weight,400);color:#d2ebffe6;text-shadow:0 1px 2px #000000e6,0 2px 10px #000000d9,0 0 24px #0009;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 #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 #96d2ffd9);transform:translateY(5px)scale(.93)}55%{filter:blur(.5px)brightness(1.5)drop-shadow(0 0 9px #82c3ff8c);transform:translateY(-2px)scale(1.015)}to{opacity:1;filter:blur()brightness()drop-shadow(0 0 4px #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:linear-gradient(112deg,#7fb8ff 0%,#eaf7ff 22%,#9fd0ff 45%,#fff 62%,#7fb8ff 82%,#d8efff 100%) 0 0/250% 100%;color:#0000;-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 #a0d7ff66)}10%{opacity:1}to{opacity:1;filter:blur()drop-shadow(0 0 6px #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 #78beff99)}to{filter:drop-shadow(0 0 16px #aae1fff2)drop-shadow(0 0 30px #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{pointer-events:auto;color:#cfeaff;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);cursor:pointer;background:#0f172ab3;border:1px solid #7dbeff66;border-radius:14px;padding:12px 22px;font-size:15px;font-weight:600;transition:background .25s,box-shadow .25s,transform .25s,opacity .25s;position:absolute;bottom:22px;right:22px;box-shadow:0 0 18px #5aa0ff26}.hp-cast-btn:hover:not(:disabled){background:#1e2d50cc;transform:translateY(-1px);box-shadow:0 0 26px #78beff59}.hp-cast-btn:active:not(:disabled){transform:translateY(0)scale(.97)}.hp-cast-btn:disabled{opacity:.45;cursor:default}@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}}
