html,html[data-house=gryffindor]{--orn-a:216 177 92;--orn-b:116 15 36;--ember:232 121 66;--dim:.22;--scrim-a:.74;--card-radius:2px;--btn-radius:0px;--h-tracking:.01em;--h-shadow:0 2px 22px #e8794247;--color-leather-700:#3a1017;--color-leather-900:#1d0709;--rim:linear-gradient(115deg, #e8794257, transparent 45%)}html[data-house=slytherin]{--orn-a:195 208 203;--orn-b:23 107 77;--ember:80 200 150;--dim:.26;--scrim-a:.74;--card-radius:0px;--btn-radius:0px;--h-tracking:.05em;--h-shadow:0 0 20px #176b4d8c, 0 1px 0 #0009;--color-leather-700:#0f2b23;--color-leather-900:#06140f;--rim:linear-gradient(180deg, #8ed9b24d, transparent 50%)}html[data-house=ravenclaw]{--orn-a:182 138 85;--orn-b:102 139 206;--ember:150 180 255;--dim:.2;--scrim-a:.72;--card-radius:0px;--btn-radius:0px;--h-tracking:.025em;--h-shadow:0 0 24px #668bce73;--color-leather-700:#172447;--color-leather-900:#0a1126;--rim:linear-gradient(180deg, #dce7f74d, transparent 48%)}html[data-house=hufflepuff]{--orn-a:213 169 40;--orn-b:101 116 74;--ember:255 214 120;--dim:.4;--scrim-a:.8;--card-radius:10px;--btn-radius:999px;--h-tracking:0;--h-shadow:0 2px 18px #ffe5a138;--color-leather-700:#44301a;--color-leather-900:#23170b;--rim:linear-gradient(250deg, #ffe5a161, transparent 50%)}html[data-house=ravenclaw],html[data-house=hufflepuff]{--font-display:"Cormorant Garamond Variable", "Cormorant Garamond", Georgia, serif}main :is(h2,h3),.house-heading{letter-spacing:var(--h-tracking);text-shadow:var(--h-shadow)}main .bg-parchment-page :is(h2,h3,h4),main .bg-parchment-page .house-heading{text-shadow:none}html[data-house=ravenclaw] main :is(h2,h3){font-style:italic}html[data-house=hufflepuff] main :is(h2,h3){font-weight:700}html:not([data-house]) [data-h]:not([data-h~=gryffindor]),html[data-house=gryffindor] [data-h]:not([data-h~=gryffindor]),html[data-house=slytherin] [data-h]:not([data-h~=slytherin]),html[data-house=ravenclaw] [data-h]:not([data-h~=ravenclaw]),html[data-house=hufflepuff] [data-h]:not([data-h~=hufflepuff]){display:none!important}[data-h]{animation:.9s both house-enter}@keyframes house-enter{0%{opacity:0}}.house-backdrop{z-index:-1;pointer-events:none;background:var(--color-void-950);contain:layout paint style;position:fixed;inset:0;overflow:hidden}.house-photo{z-index:0;opacity:0;background-repeat:no-repeat;background-size:cover;background-position:var(--pos,50% 50%);--bg-active:var(--bg);filter:blur(1.4px)saturate(1.1)contrast(1.04);transition:opacity .9s;position:absolute;inset:-2%}@media (max-width:767px){.house-photo{--bg-active:var(--bg-sm);inset:-1%}}html[data-bg=gryffindor] .house-photo[data-for=gryffindor],html[data-bg=slytherin] .house-photo[data-for=slytherin],html[data-bg=ravenclaw] .house-photo[data-for=ravenclaw],html[data-bg=hufflepuff] .house-photo[data-for=hufflepuff]{background-image:var(--bg-active);opacity:1;z-index:2;animation:56s ease-in-out infinite alternate photo-drift}html[data-bg-prev=gryffindor] .house-photo[data-for=gryffindor],html[data-bg-prev=slytherin] .house-photo[data-for=slytherin],html[data-bg-prev=ravenclaw] .house-photo[data-for=ravenclaw],html[data-bg-prev=hufflepuff] .house-photo[data-for=hufflepuff]{background-image:var(--bg-active);opacity:1;z-index:1;transition:none}@keyframes photo-drift{0%{transform:scale(1.02)translate(-.6%)}to{transform:scale(1.07)translate(.8%,-.7%)}}.house-grade{z-index:3;background:linear-gradient(rgb(0 0 0/var(--dim)), rgb(0 0 0/var(--dim))), radial-gradient(ellipse 85% 75% at 50% 42%, transparent 0%, color-mix(in srgb, var(--sky-top) 60%, transparent) 100%), linear-gradient(to bottom, color-mix(in srgb, var(--sky-top) 64%, transparent), color-mix(in srgb, var(--sky-mid) 46%, transparent) 46%, color-mix(in srgb, var(--sky-floor) 70%, transparent));position:absolute;inset:0}@supports (animation-timeline:scroll()){.house-grade{animation:linear both grade-settle;animation-timeline:scroll(root);animation-range:0 85vh}}@keyframes grade-settle{0%{opacity:.6}to{opacity:1}}.house-vignette{z-index:6;background:radial-gradient(at 50% 45%,#0000 42%,#0000008c 100%);position:absolute;inset:0}.amb{z-index:4;mix-blend-mode:screen;position:absolute;inset:0;overflow:hidden}.amb-fire:before,.amb-fire:after{content:"";will-change:transform, opacity;border-radius:50%;width:74vmax;height:74vmax;position:absolute}.amb-fire:before{background:radial-gradient(circle, rgb(var(--ember) / .36), rgb(var(--ember) / .1) 42%, transparent 68%);animation:4.4s ease-in-out infinite fire-pulse;bottom:-44vmax;left:-30vmax}.amb-fire:after{background:radial-gradient(circle,#d8b15c4d,#d8b15c14 42%,#0000 68%);animation:5.6s ease-in-out -2s infinite fire-pulse;bottom:-50vmax;right:-34vmax}@keyframes fire-pulse{0%,to{opacity:.62;transform:scale(1)}38%{opacity:1;transform:scale(1.05)}64%{opacity:.74;transform:scale(1.02)}}.amb-caustic{opacity:.15}.amb-caustic i{will-change:transform;background-image:url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='520' height='520'><filter id='c' x='0' y='0' width='100%25' height='100%25'><feTurbulence type='fractalNoise' baseFrequency='0.011 0.017' numOctaves='3' seed='7' stitchTiles='stitch'/><feColorMatrix values='0 0 0 0 0.56  0 0 0 0 1  0 0 0 0 0.82  0 0 0 1 0'/><feComponentTransfer><feFuncA type='table' tableValues='0 0 0 0 0 0 0 0 0 0.55 0.55 0 0 0 0 0 0 0 0 0'/></feComponentTransfer></filter><rect width='100%25' height='100%25' filter='url(%23c)'/></svg>");background-size:520px 520px;position:absolute;inset:-30%}.amb-caustic i:first-child{animation:34s ease-in-out infinite alternate caustic-a}.amb-caustic i:nth-child(2){opacity:.5;background-size:760px 760px;animation:46s ease-in-out infinite alternate caustic-b}@keyframes caustic-a{0%{transform:translate(-7%,-4%)rotate(.001deg)}to{transform:translate(7%,5%)rotate(.001deg)}}@keyframes caustic-b{0%{transform:translate(6%,5%)}to{transform:translate(-6%,-4%)}}.amb-caustic:after{content:"";background:radial-gradient(36% 60% at 24% -8%,#8ed9b24d,#0000 70%);animation:9s ease-in-out infinite alternate ray-breathe;position:absolute;inset:0}@keyframes ray-breathe{0%{opacity:.45}to{opacity:1}}.amb-stars{opacity:.9}.amb-stars:before{content:"";background:radial-gradient(1.6px 1.6px at 12% 22%,#dce8fff2,#0000 60%),radial-gradient(1.2px 1.2px at 27% 11%,#dce8ffcc,#0000 60%),radial-gradient(1.8px 1.8px at 41% 31%,#fff4dce6,#0000 60%),radial-gradient(1.2px 1.2px at 56% 14%,#dce8ffcc,#0000 60%),radial-gradient(1.6px 1.6px at 69% 27%,#dce8ffe6,#0000 60%),radial-gradient(1.2px 1.2px at 83% 9%,#fff4dcd9,#0000 60%),radial-gradient(1.4px 1.4px at 92% 33%,#dce8ffcc,#0000 60%),radial-gradient(1.2px 1.2px at 6% 41%,#dce8ffb3,#0000 60%),radial-gradient(1.4px 1.4px at 35% 46%,#dce8ffb3,#0000 60%),radial-gradient(1.2px 1.2px at 75% 44%,#dce8ffbf,#0000 60%);animation:6s ease-in-out infinite alternate star-twinkle;position:absolute;inset:0 0 35%}.amb-stars:after{content:"";background:radial-gradient(1.4px 1.4px at 20% 36%,#dce8ffd9,#0000 60%),radial-gradient(1.2px 1.2px at 47% 8%,#dce8ffcc,#0000 60%),radial-gradient(1.6px 1.6px at 62% 40%,#fff4dce6,#0000 60%),radial-gradient(1.2px 1.2px at 88% 22%,#dce8ffcc,#0000 60%),radial-gradient(1.2px 1.2px at 3% 15%,#dce8ffbf,#0000 60%);animation:8.5s ease-in-out -3s infinite alternate star-twinkle;position:absolute;inset:0}@keyframes star-twinkle{0%{opacity:.3}to{opacity:1}}.amb-astro{opacity:.2;width:76vmin;height:76vmin;color:rgb(var(--orn-b));animation:260s linear infinite slow-spin;position:absolute;top:-14vmin;right:-14vmin}@keyframes slow-spin{to{transform:rotate(360deg)}}.amb-shafts i{transform-origin:top;background:linear-gradient(#ffe5a14d,#ffe5a112 60%,#0000 90%);height:135%;animation:11s ease-in-out infinite alternate shaft-breathe;position:absolute;top:-12%;transform:skew(-18deg)}.amb-shafts i:first-child{width:13vw;left:50%}.amb-shafts i:nth-child(2){width:7vw;animation-delay:-4s;left:63%}.amb-shafts i:nth-child(3){width:10vw;animation-delay:-7s;left:74%}@keyframes shaft-breathe{0%{opacity:.45}to{opacity:1}}.amb-shafts:after{content:"";background:radial-gradient(50% 45% at 82% 0,#ffe09647,#0000 70%);position:absolute;inset:0}.section-veil{background-color:color-mix(in srgb, var(--color-void-900) calc(var(--scrim-a) * 100%), transparent)}.sec-orn{pointer-events:none;color:rgb(var(--orn-a));opacity:.2;position:absolute}.sec-orn-b{color:rgb(var(--orn-b))}.sec-fog-g{background:radial-gradient(ellipse at 50% 100%, rgb(var(--ember) / .14), transparent 70%)}.hero-light{pointer-events:none;position:absolute;inset:0}html[data-house=gryffindor] .hero-light{background:radial-gradient(55% 40% at 12% 100%,#e8794247,#0000 70%),radial-gradient(45% 36% at 90% 100%,#d8b15c33,#0000 70%)}html[data-house=slytherin] .hero-light{background:radial-gradient(50% 42% at 50% 0,#8ed9b233,#0000 72%),radial-gradient(60% 30% at 50% 100%,#176b4d59,#0000 72%)}html[data-house=ravenclaw] .hero-light{background:radial-gradient(40% 36% at 50% 0,#dce7f733,#0000 72%),radial-gradient(50% 30% at 50% 100%,#668bce40,#0000 72%)}html[data-house=hufflepuff] .hero-light{background:radial-gradient(50% 42% at 85% 0,#ffe0964d,#0000 72%),radial-gradient(60% 30% at 40% 100%,#65744a4d,#0000 72%)}.hero-veil{pointer-events:none;background:radial-gradient(62% 56% at 50% 46%,#00000080,#0000 78%);position:absolute;inset:0}html[data-house=hufflepuff] .hero-veil{background:radial-gradient(66% 60% at 50% 46%,#120b03a8,#0000 80%)}.sway{transform-origin:50% 0;animation:7s ease-in-out infinite alternate sway}.sway-slow{transform-origin:50% 0;animation:11s ease-in-out -3s infinite alternate sway}@keyframes sway{0%{transform:rotate(-1.6deg)}to{transform:rotate(1.6deg)}}.bob{animation:7s ease-in-out infinite alternate bob}.bob-b{animation:9s ease-in-out -3s infinite alternate bob}.bob-c{animation:11s ease-in-out -6s infinite alternate bob}@keyframes bob{0%{transform:translate(0,0)rotate(-3deg)}to{transform:translateY(-16px)rotate(3deg)}}.glow-pulse{animation:4.6s ease-in-out infinite alternate glow-pulse}@keyframes glow-pulse{0%{opacity:.55}to{opacity:1}}.flame-flick{transform-origin:50% 100%;animation:2.6s ease-in-out infinite flame-flick}@keyframes flame-flick{0%,to{opacity:.95;transform:scale(1)}30%{opacity:.8;transform:scale(.94,1.08)}60%{opacity:1;transform:scale(1.04,.96)}}.wand-spark{opacity:0;background:linear-gradient(90deg,#0000,#ffd896f2);border-radius:2px;width:90px;height:2px;animation:9s ease-out infinite wand-spark;position:absolute;box-shadow:0 0 12px 2px #e8794299}@keyframes wand-spark{0%{opacity:0;transform:translate3d(0, 0, 0) rotate(var(--r,-28deg)) scaleX(.4)}4%{opacity:1}14%{opacity:0;transform:translate3d(var(--dx,220px), var(--dy,-150px), 0) rotate(var(--r,-28deg)) scaleX(1)}to{opacity:0;transform:translate3d(var(--dx,220px), var(--dy,-150px), 0) rotate(var(--r,-28deg))}}.leaf{width:22px;animation:leaf-fall var(--dur,18s) linear var(--delay,0s) infinite;will-change:transform;position:absolute;top:-8%}.leaf>svg{animation:4.6s ease-in-out infinite alternate leaf-tumble;display:block}@keyframes leaf-fall{0%{transform:translateY(-6vh)}to{transform:translate3d(var(--drift,60px), 112vh, 0)}}@keyframes leaf-tumble{0%{transform:rotate(-38deg)scaleX(1)}to{transform:rotate(48deg)scaleX(.55)}}.const-line{stroke-dasharray:1;stroke-dashoffset:1px;animation:3.4s ease-out .3s forwards const-draw}@keyframes const-draw{to{stroke-dashoffset:0}}.const-star{animation:3.6s ease-in-out infinite alternate star-twinkle}.raven-fly{opacity:.55;width:64px;animation:56s linear infinite raven-fly;position:absolute;top:14%;left:-10%}@keyframes raven-fly{0%{transform:translate(0,0)}50%{transform:translate(60vw,-4vh)}to{transform:translate(124vw,2vh)}}.lamp-glow{animation:6s ease-in-out infinite alternate lamp-glow}@keyframes lamp-glow{0%{opacity:.55;transform:scale(.94)}to{opacity:1;transform:scale(1.06)}}.portrait-frame{border-radius:var(--card-radius)}.portrait-stage{aspect-ratio:4/5;border-radius:calc(var(--card-radius) * .6);position:relative;overflow:hidden}.portrait-layer{position:absolute;inset:0}.portrait-layer.is-in{animation:.7s cubic-bezier(.22,1,.36,1) both portrait-in}.portrait-layer.is-out{pointer-events:none;animation:.55s ease-in both portrait-out}@keyframes portrait-in{0%{opacity:0;filter:blur(5px);transform:scale(1.045)}to{opacity:1;filter:none;transform:none}}@keyframes portrait-out{0%{opacity:1}to{opacity:0}}.portrait-rim{pointer-events:none;background:var(--rim);mix-blend-mode:soft-light;position:absolute;inset:0}.portrait-rim-glow{pointer-events:none;box-shadow:inset 0 0 34px rgb(var(--orn-b) / .38), inset 0 0 0 1px rgb(var(--orn-a) / .25);position:absolute;inset:0}.pp{pointer-events:none;position:absolute}.pp-ember{width:5px;height:5px;animation:pp-rise 4.6s ease-out var(--d,0s) infinite;background:#ffc882;border-radius:50%;box-shadow:0 0 10px 3px #e87942cc}@keyframes pp-rise{0%{opacity:0;transform:translate(0,0)scale(1)}15%{opacity:1}to{opacity:0;transform:translate3d(var(--x,8px), -64px, 0) scale(.3)}}.pp-silver{width:4px;height:4px;animation:pp-drift 7s ease-in-out var(--d,0s) infinite alternate;background:#e1eee8;border-radius:50%;box-shadow:0 0 9px 2px #8ed9b2a6}@keyframes pp-drift{0%{opacity:.2;transform:translate(-8px,6px)}to{opacity:1;transform:translate(10px,-8px)}}.pp-star{color:#ecf2ff;filter:drop-shadow(0 0 5px #96b4ffe6);width:12px;height:12px;animation:star-twinkle 3.2s ease-in-out var(--d,0s) infinite alternate}.pp-pollen{width:5px;height:5px;animation:pp-float 9s ease-in-out var(--d,0s) infinite alternate;background:#ffecaa;border-radius:50%;box-shadow:0 0 9px 3px #f5c93a8c}@keyframes pp-float{0%{opacity:.35;transform:translate(-6px,-4px)}to{opacity:1;transform:translate(8px,12px)}}.house-card{border-radius:var(--card-radius)}.house-card:before,.house-card:after{content:"";pointer-events:none;transition:opacity .4s,transform .6s cubic-bezier(.22,1,.36,1);position:absolute}html[data-house=gryffindor] .house-card:before{--c:#d8b15cbf;background:linear-gradient(var(--c), var(--c)) 0 0 / 14px 1px no-repeat, linear-gradient(var(--c), var(--c)) 0 0 / 1px 14px no-repeat, linear-gradient(var(--c), var(--c)) 100% 0 / 14px 1px no-repeat, linear-gradient(var(--c), var(--c)) 100% 0 / 1px 14px no-repeat, linear-gradient(var(--c), var(--c)) 0 100% / 14px 1px no-repeat, linear-gradient(var(--c), var(--c)) 0 100% / 1px 14px no-repeat, linear-gradient(var(--c), var(--c)) 100% 100% / 14px 1px no-repeat, linear-gradient(var(--c), var(--c)) 100% 100% / 1px 14px no-repeat;opacity:.55;inset:6px}html[data-house=gryffindor] .house-card:after{opacity:0;background:radial-gradient(80% 100% at 50% 100%,#e8794242,#0000 72%);height:46%;inset:auto 0 0}html[data-house=gryffindor] .house-card:is(:hover,:focus-visible,[data-active]):before,html[data-house=gryffindor] .house-card:is(:hover,:focus-visible,[data-active]):after{opacity:1}html[data-house=slytherin] .house-card:before,html[data-house=slytherin] .house-card:after{opacity:.9;background:linear-gradient(90deg,#0000,#d6e4dee6,#0000);height:1px;left:0;right:0;transform:scaleX(0)}html[data-house=slytherin] .house-card:before{transform-origin:0;top:0}html[data-house=slytherin] .house-card:after{transform-origin:100%;bottom:0}html[data-house=slytherin] .house-card:is(:hover,:focus-visible,[data-active]):before,html[data-house=slytherin] .house-card:is(:hover,:focus-visible,[data-active]):after{transform:scaleX(1)}html[data-house=slytherin] .house-card:is(:hover,:focus-visible,[data-active]){box-shadow:0 0 34px #176b4d47}html[data-house=ravenclaw] .house-card:before{opacity:.5;background:radial-gradient(circle,#dce7f7f2 0 1.5px,#0000 2.5px) 50%/100% 100% no-repeat,radial-gradient(circle,#dce7f7cc 0 1.2px,#0000 2px) 18% 24%/100% 100% no-repeat,radial-gradient(circle,#dce7f7cc 0 1.2px,#0000 2px) 80% 70%/100% 100% no-repeat,repeating-radial-gradient(circle,#0000 0 9px,#b68a5580 9px 10px);border-radius:50%;width:46px;height:46px;top:8px;right:8px}html[data-house=ravenclaw] .house-card:is(:hover,:focus-visible,[data-active]):before{opacity:1;transform:rotate(40deg)}html[data-house=ravenclaw] .house-card:is(:hover,:focus-visible,[data-active]){box-shadow:0 0 36px #668bce38}html[data-house=hufflepuff] .house-card{box-shadow:inset 0 0 0 1px #d5a9282e,inset 0 -34px 40px -34px #d5a9283d}html[data-house=hufflepuff] .house-card:before{opacity:.8;background:radial-gradient(18px 7px at 30% 62%,#65744ab3,#0000 72%),radial-gradient(16px 6px at 56% 38%,#65744a99,#0000 72%),radial-gradient(14px 6px at 72% 72%,#65744a8c,#0000 72%);width:70px;height:70px;bottom:-6px;right:-6px;transform:rotate(-12deg)}html[data-house=hufflepuff] .house-card:is(:hover,:focus-visible,[data-active]):before{opacity:1;transform:rotate(0)scale(1.15)}.house-btn{isolation:isolate;border-radius:var(--btn-radius);position:relative;overflow:hidden}.house-btn:after{content:"";z-index:-1;pointer-events:none;opacity:0;transition:opacity .4s,transform .8s cubic-bezier(.22,1,.36,1);position:absolute;inset:0}.house-btn:is(:hover,:focus-visible):after{opacity:1}html[data-house=gryffindor] .house-btn:after{background:radial-gradient(120% 150% at 50% 135%,#e8794299,#0000 62%)}html[data-house=slytherin] .house-btn:after{background:linear-gradient(105deg,#0000 36%,#ffffff61 50%,#0000 64%);transform:translate(-110%)}html[data-house=slytherin] .house-btn:is(:hover,:focus-visible):after{transform:translate(110%)}html[data-house=ravenclaw] .house-btn:after{background:radial-gradient(1.5px 1.5px at 18% 30%,#fffffff2,#0000 60%),radial-gradient(1.5px 1.5px at 52% 70%,#ffffffe6,#0000 60%),radial-gradient(1.5px 1.5px at 84% 28%,#fffffff2,#0000 60%),linear-gradient(#0000,#668bce4d)}html[data-house=hufflepuff] .house-btn:after{background:radial-gradient(130% 160% at 50% 140%,#ffecaaa6,#0000 62%)}.house-nav:after{content:"";pointer-events:none;background:linear-gradient(90deg, transparent, rgb(var(--orn-a) / .55), transparent);height:1px;position:absolute;inset:auto 0 -1px}html[data-house=slytherin] .house-nav:after{background:linear-gradient(90deg, transparent, rgb(var(--orn-a) / .7) 30%, rgb(var(--orn-b) / .9) 50%, rgb(var(--orn-a) / .7) 70%, transparent)}html[data-house=hufflepuff] .house-nav:after{background:linear-gradient(90deg, transparent, rgb(var(--orn-a) / .5), rgb(var(--orn-b) / .5), rgb(var(--orn-a) / .5), transparent);border-radius:2px;height:2px}.house-option{border-radius:var(--card-radius);transition:border-color .3s,background-color .3s,transform .3s;position:relative;overflow:hidden}.house-option[aria-pressed=true]{box-shadow:0 0 0 1px var(--color-gold-400), 0 0 26px rgb(var(--accent-rgb) / .25)}.house-option:is(:hover,:focus-visible){transform:translateY(-2px)}.house-option .thumb{filter:saturate(.85)brightness(.8);transition:transform .7s cubic-bezier(.22,1,.36,1),filter .4s}.house-option:is(:hover,:focus-visible) .thumb,.house-option[aria-pressed=true] .thumb{filter:none;transform:scale(1.06)}.house-wash{z-index:85;pointer-events:none;opacity:0;position:fixed;inset:0}html[data-wash] .house-wash{animation-duration:1s;animation-timing-function:ease-out;animation-fill-mode:both}html[data-wash=gryffindor] .house-wash{background:radial-gradient(circle at var(--wx,92%) var(--wy,4%), #ffe296bf, #e8794273 22%, transparent 55%);animation-name:wash-burst}html[data-wash=slytherin] .house-wash{background:radial-gradient(circle at var(--wx,92%) var(--wy,4%), transparent 0 34%, #8ed9b280 38%, #176b4d40 46%, transparent 56%);animation-name:wash-ripple}html[data-wash=ravenclaw] .house-wash{background:radial-gradient(1.5px 1.5px at 22% 28%,#fff,#0000 60%),radial-gradient(2px 2px at 64% 18%,#fff,#0000 60%),radial-gradient(1.5px 1.5px at 80% 62%,#fff,#0000 60%),radial-gradient(1.5px 1.5px at 38% 74%,#fff,#0000 60%),linear-gradient(#668bce73,#101c3a8c);animation-name:wash-celestial}html[data-wash=hufflepuff] .house-wash{background:radial-gradient(at 50% 40%,#ffecaa8c,#f5c93a40 45%,#0000 75%);animation-name:wash-glow}@keyframes wash-burst{0%{opacity:0;transform-origin:var(--wx,92%) var(--wy,4%);transform:scale(.2)}22%{opacity:1}to{opacity:0;transform-origin:var(--wx,92%) var(--wy,4%);transform:scale(2.4)}}@keyframes wash-ripple{0%{opacity:0;transform-origin:var(--wx,92%) var(--wy,4%);transform:scale(.15)}20%{opacity:1}to{opacity:0;transform-origin:var(--wx,92%) var(--wy,4%);transform:scale(2.6)}}@keyframes wash-celestial{0%{opacity:0}30%{opacity:1}to{opacity:0}}@keyframes wash-glow{0%{opacity:0}35%{opacity:1}to{opacity:0}}@media (prefers-reduced-motion:reduce){.house-photo{transition:none!important;animation:none!important}.house-grade{animation:none!important}.leaf,.wand-spark,.raven-fly,.pp,.house-wash{display:none!important}.const-line{stroke-dashoffset:0}}@media (max-width:767px){.house-photo{animation:none!important}.amb-caustic i:nth-child(2),.leaf:nth-child(n+5){display:none}.amb-astro{opacity:.12}}
.btn-themed{color:var(--btn-fg);background-color:var(--btn-from);background-image:linear-gradient(to bottom, var(--btn-from), var(--btn-to));border:1px solid var(--btn-border);box-shadow:0 6px 20px rgb(var(--btn-glow) / .38), inset 0 1px 0 #ffffff1f;cursor:pointer;transition:box-shadow .3s,transform .2s,filter .2s}.btn-themed:hover:not(:disabled){background-image:linear-gradient(to bottom, var(--btn-hover-from), var(--btn-hover-to));box-shadow:0 8px 30px rgb(var(--btn-glow) / .55), inset 0 1px 0 #ffffff2e}.btn-themed:active:not(:disabled){filter:brightness(.94);transform:translateY(1px)}.btn-themed:focus-visible{outline:2px solid var(--btn-ring);outline-offset:3px}.btn-themed:disabled{cursor:not-allowed;background-image:none;background-color:var(--btn-disabled-bg);color:var(--btn-disabled-fg);border-color:color-mix(in srgb, var(--btn-border) 35%, transparent);box-shadow:none}html[data-wand-cursor] body{cursor:var(--wand-cursor), auto}html[data-wand-cursor] :is(a[href],button,[role=button],[role=radio],summary,select,label,input[type=checkbox],input[type=radio]){cursor:pointer}html[data-wand-cursor] :is(input:not([type=checkbox]):not([type=radio]),textarea){cursor:text}html[data-wand-cursor] :is(button,input,textarea)[disabled],html[data-wand-cursor] [aria-disabled=true]{cursor:not-allowed}.lumos-light{opacity:0;visibility:hidden;background:radial-gradient(circle 210px at var(--lx,50%) var(--ly,50%), #ffe8aa33, #ffcd7812 52%, transparent 76%);transition:opacity .9s,visibility 0s linear .9s;display:block!important}html[data-lumos=on] .lumos-light{opacity:1;visibility:visible;transition:opacity .45s,visibility}.deco-flame,.deco-candle,.deco-lantern{transition:filter .9s}html[data-lumos=on] :is(.deco-candles,.deco-lantern,.deco-orbs){filter:brightness(1.5)saturate(1.15)}.mischief-shackle{transform-box:fill-box;transform-origin:0 100%;transition:transform .7s cubic-bezier(.3,1.4,.5,1)}html[data-alohomora=on] .mischief-shackle{transform:translateY(-4px)rotate(-32deg)}.mischief-note{width:140%;font-family:var(--font-display);letter-spacing:.04em;color:rgb(var(--accent-rgb));text-shadow:0 1px 6px #000c;opacity:0;margin-top:2px;font-size:.62rem;font-style:italic;line-height:1.15;transition:opacity .6s,transform .6s;position:absolute;top:100%;left:0;transform:translateY(-3px)}html[data-alohomora=on] .mischief-note{opacity:1;transform:none}.letter-crack{opacity:0;transition:opacity .4s}html[data-alohomora=on] .letter-crack{opacity:1}.deco-sigil{opacity:0;color:rgb(var(--accent-rgb));transition:opacity .9s,filter .9s}html[data-revelio=on] .deco-sigil{opacity:.85;filter:drop-shadow(0 0 8px rgb(var(--accent-rgb) / .8));animation:2.2s ease-in-out infinite sigil-pulse}@keyframes sigil-pulse{50%{opacity:.45}}html[data-revelio=on] .house-card{animation:1.6s ease-out card-reveal}@keyframes card-reveal{0%{box-shadow:0 0 0 0 rgb(var(--accent-rgb) / 0)}35%{box-shadow:0 0 0 1px rgb(var(--accent-rgb) / .7), 0 0 34px rgb(var(--accent-rgb) / .4)}to{box-shadow:0 0 0 0 rgb(var(--accent-rgb) / 0)}}.magic-tool[aria-pressed=true]:after{content:"";opacity:.7;background:currentColor;height:1px;position:absolute;inset:auto 20% 3px}.magic-tool:focus-visible,.wand-option:focus-visible,.sorting-card:focus-visible,.sorting-hat:focus-visible{outline:2px solid var(--color-gold-300);outline-offset:2px}.wand-option{position:relative}.wand-art{transition:transform .35s cubic-bezier(.22,1,.36,1),filter .35s}.wand-option:hover .wand-art,.wand-option:focus-visible .wand-art{filter:drop-shadow(0 0 8px rgb(var(--wc) / .9));transform:translateY(-4px)rotate(-7deg)scale(1.06)}.wand-option:hover,.wand-option:focus-visible{box-shadow:0 0 24px rgb(var(--wc) / .3)}.wand-option[aria-checked=true]{box-shadow:0 0 0 1px var(--color-gold-400), 0 0 28px rgb(var(--wc) / .4)}.wand-option[aria-checked=true] .wand-art{filter:drop-shadow(0 0 8px rgb(var(--wc) / .9));animation:2.4s ease-in-out infinite wand-selected}@keyframes wand-selected{50%{transform:rotate(-9deg)translateY(-3px)}}.sorting-spot{pointer-events:none;opacity:.55;background:radial-gradient(ellipse 55% 45% at 50% 24%, rgb(var(--accent-rgb) / .22), transparent 70%);transition:opacity .8s;position:absolute;inset:0}.sorting-root[data-mood=ponder] .sorting-spot,.sorting-root[data-mood=cry] .sorting-spot{opacity:1}.hat-sway{transform-box:view-box;transform-origin:120px 230px;animation:5.5s ease-in-out infinite hat-idle}@keyframes hat-idle{0%,to{transform:rotate(-1.4deg)}50%{transform:rotate(1.6deg)translateY(-2px)}}.hat-art[data-mood=ponder] .hat-sway{animation:1.7s ease-in-out both hat-ponder}@keyframes hat-ponder{0%{transform:rotate(0)}20%{transform:rotate(-6deg)translateY(-6px)}45%{transform:rotate(5deg)translateY(-3px)}70%{transform:rotate(-3deg)}to{transform:rotate(0)}}.hat-art[data-mood=cry] .hat-sway{animation:.5s ease-out both hat-cry}@keyframes hat-cry{0%{transform:scale(1)}40%{transform:scale(1.06)translateY(-6px)}to{transform:scale(1.03)translateY(-3px)}}.hat-mouth-open{transform-box:fill-box;transform-origin:50% 0;transform:scaleY(.05)}.hat-art[data-mood=ponder] .hat-mouth-open{animation:.36s ease-in-out infinite alternate hat-talk}.hat-art[data-mood=cry] .hat-mouth-open{transform:scaleY(1)}@keyframes hat-talk{0%{transform:scaleY(.15)}to{transform:scaleY(1)}}.hat-brow,.hat-eyes{transition:transform .4s}.hat-art[data-mood=ponder] .hat-brow,.hat-art[data-mood=cry] .hat-brow{transform:translateY(-4px)}.hat-aura{opacity:.35;transition:opacity .8s}.hat-art[data-mood=ponder] .hat-aura,.hat-art[data-mood=cry] .hat-aura{opacity:1}.sorting-hat{cursor:pointer}.sorting-cards>li{opacity:.72;transition:opacity .7s,transform .7s cubic-bezier(.22,1,.36,1);transform:translateY(10px)scale(.97)}.sorting-cards.is-ready>li{opacity:1;transform:none}.sorting-cards.is-ready>li:nth-child(2){transition-delay:80ms}.sorting-cards.is-ready>li:nth-child(3){transition-delay:.16s}.sorting-cards.is-ready>li:nth-child(4){transition-delay:.24s}.sorting-card{background:var(--color-void-900);transition:border-color .3s,box-shadow .4s,transform .4s cubic-bezier(.22,1,.36,1)}.sorting-card:hover:not(:disabled),.sorting-card:focus-visible{border-color:var(--c2);box-shadow:0 14px 40px #0000008c, 0 0 30px color-mix(in srgb, var(--c1) 60%, transparent);transform:translateY(-5px)}.sorting-thumb{filter:saturate(.85)brightness(.85);transition:transform .8s cubic-bezier(.22,1,.36,1),filter .4s}.sorting-card:hover .sorting-thumb,.sorting-card:focus-visible .sorting-thumb{filter:saturate(1.1)brightness();transform:scale(1.07)}.sorting-sheen{background:linear-gradient(110deg, transparent 38%, color-mix(in srgb, var(--c2) 40%, transparent) 50%, transparent 62%);transition:transform .9s;transform:translate(-120%)}.sorting-card:hover .sorting-sheen{transform:translate(120%)}.sorting-card.is-chosen{border-color:var(--c2);animation:1.2s ease-out both card-chosen}@keyframes card-chosen{0%{transform:scale(1);box-shadow:0 0 #0000}40%{box-shadow:0 0 0 2px var(--c2), 0 0 70px var(--c1);transform:scale(1.04)}to{box-shadow:0 0 0 1px var(--c2), 0 0 44px var(--c1);transform:scale(1.02)}}.sorting-card:disabled:not(.is-chosen){opacity:.35;transition:opacity .4s}.letter-write{display:block}.letter-write.is-pending{clip-path:inset(0 0 100%)}.letter-write.is-writing{animation:1.15s steps(4,end) both quill;animation-delay:calc(var(--i) * .8s);clip-path:inset(0 0 100%)}@keyframes quill{0%{clip-path:inset(0 0 100%)}to{clip-path:inset(0 0 -2px)}}.letter-owl-settle{transform-origin:50% 100%;animation:3.6s ease-in-out infinite owl-settle}@keyframes owl-settle{0%,70%,to{transform:none}78%{transform:rotate(-3deg)scale(1.02)}88%{transform:rotate(2deg)}}.letter-paper:before{content:"";pointer-events:none;background:linear-gradient(100deg,#0000 0 46%,#785a2814 50%,#0000 54% 100%);position:absolute;inset:0}.env-layer{pointer-events:none;z-index:0;position:fixed;inset:0;overflow:hidden}.env-ev{opacity:0;will-change:transform, opacity;position:absolute}.env-owl{width:clamp(3.4rem,7vw,5.4rem);animation:17s linear both env-owl,2.6s ease-in-out infinite env-bob;top:13vh;right:0}@keyframes env-owl{0%{opacity:0;transform:translate(100%)}6%{opacity:.85}92%{opacity:.85}to{opacity:0;transform:translate(calc(-100vw - 10%))}}@keyframes env-bob{0%,to{translate:0}50%{translate:0 -12px}}.env-serpent-wrap{aspect-ratio:160/260;height:min(34vh,16rem);animation:12s ease-in-out both env-fade;bottom:0;left:0;overflow:hidden}.env-serpent-pillar{z-index:2;border-right:1px solid rgb(var(--accent-rgb) / .35);background:linear-gradient(90deg,#060e0b,#1a362d 70%,#12271f);width:1.4rem;height:100%;position:absolute;bottom:0;left:0}.env-serpent{animation:12s ease-in-out both serpent-rise;position:relative}@keyframes serpent-rise{0%{transform:translate(-70%)}22%{transform:translate(0)}74%{transform:translate(0)rotate(.8deg)}to{transform:translate(-70%)}}.sp-head{transform-box:fill-box;transform-origin:20% 90%;animation:4.5s ease-in-out infinite sp-look}@keyframes sp-look{0%,to{transform:rotate(0)}40%{transform:rotate(-9deg)}70%{transform:rotate(5deg)}}.sp-eye{animation:3.4s ease-in-out infinite sp-glint}@keyframes sp-glint{0%,55%,to{fill:#8fd9b4}70%{fill:#fff;filter:drop-shadow(0 0 4px #bff7dc)}}.sp-tongue{transform-box:fill-box;transform-origin:0;animation:2.4s step-end infinite sp-flick}@keyframes sp-flick{0%,80%,to{opacity:0}84%,94%{opacity:1}}@keyframes env-fade{0%{opacity:0}8%{opacity:.95}90%{opacity:.95}to{opacity:0}}.env-raven-wrap{width:clamp(3rem,6vw,4.6rem);animation:15s ease-in-out both env-raven,15s ease-in-out both env-arc;top:22vh;right:0}@keyframes env-raven{0%{opacity:0;transform:translate(100%)}6%{opacity:.9}92%{opacity:.9}to{opacity:0;transform:translate(calc(-100vw - 10%))}}@keyframes env-arc{0%{translate:0}45%{translate:0 -7vh}to{translate:0 5vh}}.rv-wing-l,.rv-wing-r{transform-box:view-box;animation:.55s ease-in-out infinite alternate rv-flap}.rv-wing-l{transform-origin:52px 36px}.rv-wing-r{transform-origin:68px 36px;animation-name:rv-flap-r}@keyframes rv-flap{0%{transform:rotate(-20deg)}to{transform:rotate(14deg)}}@keyframes rv-flap-r{0%{transform:rotate(20deg)}to{transform:rotate(-14deg)}}.rv-star-trail circle{animation:1.1s ease-in-out infinite alternate rv-twinkle}.rv-star-trail circle:nth-child(2){animation-delay:.3s}.rv-star-trail circle:nth-child(3){animation-delay:.6s}.rv-star-trail circle:nth-child(4){animation-delay:.9s}@keyframes rv-twinkle{0%{opacity:.2}to{opacity:1}}.env-badger-wrap{width:clamp(4.4rem,8vw,6.4rem);animation:15s linear both env-badger;bottom:4px;left:0}@keyframes env-badger{0%{opacity:1;transform:translate(-130%)}55%{opacity:1;transform:translate(34vw)}93%{opacity:1;transform:translate(calc(62vw + 2.5rem))}to{opacity:0;transform:translate(calc(62vw + 3.5rem))}}.bd-leg{transform-box:fill-box;transform-origin:50% 0;animation:.55s ease-in-out infinite alternate bd-walk}.bd-leg-b{animation-direction:alternate-reverse}@keyframes bd-walk{0%{transform:rotate(-22deg)}to{transform:rotate(22deg)}}.bd-head{transform-box:fill-box;transform-origin:20% 80%;animation:4.2s ease-in-out infinite bd-sniff}@keyframes bd-sniff{0%,55%,to{transform:none}65%{transform:rotate(10deg)translateY(3px)}75%{transform:rotate(-4deg)translateY(1px)}85%{transform:rotate(9deg)translateY(3px)}}.env-fern{transform-origin:50% 100%;width:clamp(4.5rem,8vw,7rem);animation:15s both env-fern;bottom:0;left:calc(62vw + 1.5rem)}@keyframes env-fern{0%{opacity:0}25%{opacity:.95}96%{opacity:.95}to{opacity:0}}.env-broom-wrap{width:clamp(3.8rem,8vw,6.4rem);animation:9.5s ease-in-out both env-broom;top:30vh;left:0}@keyframes env-broom{0%{opacity:0;transform:translate(-30%,10vh)rotate(-4deg)}8%{opacity:.85}90%{opacity:.85}to{opacity:0;transform:translate(calc(100vw + 40%),-9vh)rotate(-4deg)}}.bm-trail circle{animation:.5s ease-in-out infinite alternate rv-twinkle}.env-dragon-wrap{width:min(62vw,22rem);animation:17s linear both env-dragon;top:5vh;left:0}@keyframes env-dragon{0%{opacity:0;transform:translate(-110%)}8%{opacity:.6}90%{opacity:.6}to{opacity:0;transform:translate(calc(100vw + 10%))}}.dr-wing{transform-box:view-box;transform-origin:160px 66px;animation:2.6s ease-in-out infinite dr-flap}.dr-wing-far{opacity:.8;animation-delay:-.3s}@keyframes dr-flap{0%,to{transform:scaleY(1)}50%{transform:scaleY(.28)}}.dr-glow{animation:2.6s ease-in-out infinite dr-glow}@keyframes dr-glow{0%,to{opacity:.15}50%{opacity:.8}}.env-dragon-shadow{background:radial-gradient(#00000073,#0000 70%);width:32rem;height:6rem;animation:17s linear both env-dshadow;top:38vh;left:0}@keyframes env-dshadow{0%{opacity:0;transform:translate(-60%)}10%{opacity:.5}88%{opacity:.5}to{opacity:0;transform:translate(calc(100vw + 10%))}}.env-hippo-wrap{width:clamp(7rem,12vw,10rem);animation:17s ease-in-out both env-hippo;bottom:9vh;right:3vw}@keyframes env-hippo{0%{opacity:0;transform:translateY(8px)}12%{opacity:.85;transform:none}88%{opacity:.85}to{opacity:0}}.hp-head{transform-box:fill-box;transform-origin:80% 90%;animation:5.4s ease-in-out infinite hp-turn}@keyframes hp-turn{0%,to{transform:rotate(0)}30%{transform:rotate(-9deg)}62%{transform:rotate(6deg)}}.hp-wing{transform-box:fill-box;transform-origin:100% 100%;animation:6s ease-in-out infinite hp-wing}@keyframes hp-wing{0%,70%,to{transform:none}80%{transform:rotate(-9deg)}90%{transform:rotate(3deg)}}.side-decor{--side-w:clamp(3.25rem, calc((100vw - 72rem) / 2 - .75rem), 8rem)}.side-col{width:var(--side-w);position:absolute;top:0;bottom:0}.side-left{left:.25rem}.side-right{right:.25rem}.side-left>.deco-banner,.side-left>.deco-vine{top:11.5rem}.deco-banner{transform-origin:50% 0;opacity:.92;animation:7.5s ease-in-out infinite alternate banner-sway;position:absolute;left:12%;right:12%}.deco-banner-emblem{aspect-ratio:1;opacity:.9;width:40%;filter:drop-shadow(0 0 4px rgb(var(--accent-rgb) / .6));position:absolute;top:22%;left:30%}@keyframes banner-sway{0%{transform:rotate(-1.4deg)}to{transform:rotate(1.4deg)}}.deco-vine{transform-origin:50% 0;opacity:.9;width:80%;animation:9s ease-in-out infinite alternate banner-sway;position:absolute;left:10%}.deco-candles{height:15rem;position:absolute;top:7rem;left:0;right:0}.deco-candle{width:10px;height:var(--h);animation:6s ease-in-out infinite deco-float;animation-delay:var(--d);position:absolute}.deco-candle:first-child{top:0;left:18%}.deco-candle:nth-child(2){top:4.5rem;left:52%}.deco-candle:nth-child(3){top:9.5rem;left:30%}.deco-candle b{background:linear-gradient(90deg,#cdbd9a,#f3ead3 50%,#b9a97f);border-radius:2px;height:100%;position:absolute;inset:auto 0 0}.deco-flame{background:radial-gradient(circle at 50% 70%,#fff6d6,#ffc864 60%,#f08a30);border-radius:50%/62% 62% 38% 38%;width:8px;height:14px;animation:1.4s ease-in-out infinite alternate deco-flicker;position:absolute;top:-14px;left:50%;translate:-50%;box-shadow:0 0 14px 5px #ffbe5a80}.deco-candles-green .deco-flame{background:radial-gradient(circle at 50% 70%,#eafff4,#7fe0b0 60%,#1f9a6a);box-shadow:0 0 14px 5px #5adca073}@keyframes deco-flicker{0%{opacity:.85;transform:scaleY(.92)}to{opacity:1;transform:scale(.94,1.08)}}@keyframes deco-float{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.deco-orbs{height:12rem;position:absolute;top:11rem;left:0;right:0}.deco-orbs i{width:var(--s);height:var(--s);animation:7s ease-in-out infinite deco-float;animation-delay:var(--d);background:radial-gradient(circle,#eafff4,#6ee6aa8c 45%,#0000 72%);border-radius:50%;position:absolute;box-shadow:0 0 18px #50d2968c}.deco-orbs i:first-child{top:0;left:20%}.deco-orbs i:nth-child(2){top:4rem;left:58%}.deco-orbs i:nth-child(3){top:8rem;left:30%}.deco-pillar{border-right:1px solid rgb(var(--accent-rgb) / .22);background:linear-gradient(90deg,#050c0ae6,#18322aa6 65%,#0000);width:34%;position:absolute;top:0;bottom:0;left:0}.deco-pillar i{background:radial-gradient(circle,#eafff4,#6fdca8 55%,#0000 75%);border-radius:50%;width:16px;height:16px;animation:3s ease-in-out infinite alternate deco-flicker;position:absolute;top:38%;left:100%;translate:8px;box-shadow:0 0 26px 8px #50d29666}.deco-books{height:16rem;position:absolute;top:8rem;left:0;right:0}.deco-book{width:74%;animation:8s ease-in-out infinite book-float;animation-delay:var(--d);rotate:var(--r);filter:drop-shadow(0 6px 8px #00000080);position:absolute}.deco-book:first-of-type{top:0;left:6%}.deco-book:nth-of-type(2){top:7rem;left:22%}.deco-feather{opacity:.85;width:26%;animation:9s ease-in-out infinite feather-drift;position:absolute;top:13.5rem;left:14%}@keyframes book-float{0%,to{transform:translateY(0)rotate(-1.5deg)}50%{transform:translateY(-12px)rotate(1.5deg)}}@keyframes feather-drift{0%,to{transform:translate(0)rotate(-12deg)}50%{transform:translate(8px,-14px)rotate(8deg)}}.deco-lantern{transform-origin:50% 0;filter:drop-shadow(0 0 16px #ffc85a66);width:56%;animation:6s ease-in-out infinite alternate banner-sway;position:absolute;top:3rem;left:22%}.deco-lantern-flame{transform-box:fill-box;transform-origin:50% 100%;animation:1.6s ease-in-out infinite alternate deco-flicker}.side-right>.deco-banner{top:12rem}.side-col>.deco-sigil{width:50%;position:absolute;bottom:14%;left:25%}.side-right>.deco-sigil{top:62%;bottom:auto}.mischief-fragment,.mischief-trail{width:clamp(2.75rem,50vw - 37rem,5.75rem)}.mischief-fragment button{transition:transform .4s cubic-bezier(.22,1,.36,1);animation:7s ease-in-out infinite map-float}.mischief-fragment button:hover,.mischief-fragment button:focus-visible{transform:rotate(-3deg)scale(1.06)}.mischief-fragment button:focus-visible{outline:2px solid var(--color-gold-300)}@keyframes map-float{0%,to{translate:0}50%{translate:0 -4px}}.mischief-print{opacity:0;animation:6s linear infinite print-walk}@keyframes print-walk{0%{opacity:0}8%{opacity:.85}60%{opacity:.85}78%,to{opacity:0}}.mischief-step{opacity:0;animation:8s linear infinite print-walk}.mischief-trail{opacity:.8}.portrait-arch{aspect-ratio:4/5;background:var(--color-void-900);box-shadow:0 24px 60px #0000008c, 0 0 40px rgb(var(--accent-rgb) / .2);border-radius:999px 999px 0 0/52% 52% 0 0;overflow:hidden}.portrait-room,.portrait-arch .portrait-stage{border-radius:inherit;position:absolute;inset:0}.portrait-room{overflow:hidden}.portrait-room img{filter:blur(2px)saturate(1.15)brightness(.78);transform:scale(1.12)}.portrait-room-tint{background:linear-gradient(to bottom, rgb(var(--house-fog) / .2), #00000080 85%);position:absolute;inset:0}.portrait-room-shafts{mix-blend-mode:screen;background:linear-gradient(104deg, transparent 28%, rgb(var(--accent-rgb) / .18) 40%, transparent 52%, rgb(var(--accent-rgb) / .1) 66%, transparent 78%);animation:12s ease-in-out infinite alternate shaft-drift;position:absolute;inset:-20% -10%}@keyframes shaft-drift{0%{transform:translate(-6%)}to{transform:translate(6%)}}.portrait-arch .portrait-stage{aspect-ratio:auto;background:0 0;overflow:hidden}.portrait-subject{filter:drop-shadow(0 0 1.5px rgb(var(--accent-rgb) / .75)) drop-shadow(0 8px 16px #0000008c)}.portrait-photo{-webkit-mask-image:radial-gradient(80% 76% at 50% 42%,#000 52%,#0000 100%);mask-image:radial-gradient(80% 76% at 50% 42%,#000 52%,#0000 100%)}.portrait-floor{pointer-events:none;background:linear-gradient(to top, rgb(var(--house-fog) / .42), transparent);height:38%;position:absolute;inset:auto 0 0}.portrait-arch-edge{pointer-events:none;border-radius:inherit;box-shadow:inset 0 0 0 1px rgb(var(--accent-rgb) / .55), inset 0 0 36px #0000008c;position:absolute;inset:0}@media (prefers-reduced-motion:reduce){.deco-banner,.deco-vine,.deco-candle,.deco-flame,.deco-orbs i,.deco-book,.deco-feather,.deco-lantern,.deco-lantern-flame,.deco-pillar i,.mischief-fragment button,.mischief-print,.mischief-step,.portrait-room-shafts,.hat-sway,.letter-owl-settle,.wand-option[aria-checked=true] .wand-art,.sorting-card.is-chosen{animation:none!important}.mischief-print,.mischief-step{opacity:.6}.sorting-cards>li{opacity:1;transition:none;transform:none}}@media (max-width:767px){.portrait-room img{filter:saturate(1.1)brightness(.78)}}@keyframes social-float{0%,to{transform:translateY(0)}50%{transform:translateY(-3px)}}.social-float{animation:5s ease-in-out infinite social-float}@media (prefers-reduced-motion:reduce){.social-float{animation:none}}.quaffle{background:radial-gradient(circle at 35% 30%,#d8604a,#a8321f 55%,#5e1a10);box-shadow:inset -3px -4px 6px #00000059,0 4px 10px #0006}.bludger{background:radial-gradient(circle at 35% 30%,#6a6a76,#26262c 60%,#0d0d10);box-shadow:inset -2px -3px 5px #00000080,0 0 0 1px #9696a540,0 4px 10px #00000073}.snitch{filter:drop-shadow(0 0 8px #ffd66eb3);cursor:pointer}.snitch-wing{transform-box:fill-box;animation:.38s ease-in-out infinite alternate snitch-flap}.snitch-wing-l{transform-origin:100%}.snitch-wing-r{transform-origin:0%;animation-delay:50ms}@keyframes snitch-flap{0%{transform:scaleY(1)rotate(0)}to{transform:scaleY(.45)rotate(8deg)}}.snitch-spark{background:radial-gradient(circle,#fff6c8,#f0c050 60%,#0000);border-radius:50%;width:6px;height:6px;animation:.95s ease-out forwards snitch-spark;position:absolute;top:-3px;left:-3px}@keyframes snitch-spark{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(.2);opacity:0}}.snitch-wings-glow{background:radial-gradient(#ffeca0b3,#0000 70%);border-radius:50%;width:88px;height:28px;animation:1.1s ease-out forwards snitch-glow;position:absolute;top:-14px;left:-44px}@keyframes snitch-glow{0%{opacity:1;transform:scale(.6)}to{opacity:0;transform:scale(1.6)}}@media (prefers-reduced-motion:reduce){.snitch-wing{animation:none}.snitch-spark,.snitch-wings-glow{animation-duration:10ms}}.hw-relic{cursor:pointer}.hw-awake{box-shadow:0 0 22px rgb(var(--accent-rgb) / .16)}.hw-stone{animation:5s ease-in-out infinite hw-stone-breathe}@keyframes hw-stone-breathe{0%,to{filter:drop-shadow(0 0 3px rgb(var(--accent-rgb) / .2))}50%{filter:drop-shadow(0 0 10px rgb(var(--accent-rgb) / .55))}}.hw-rune{opacity:.55}.hw-cloak-shimmer{animation:6s ease-in-out infinite hw-cloak}@keyframes hw-cloak{0%,to{opacity:.8;transform:translateY(0)}50%{opacity:1;transform:translateY(-1.5px)}}.hw-cloak-flash{background:linear-gradient(115deg,#0000 30%,#c8e1ff59 50%,#0000 70%);animation:1.2s ease-out forwards hw-sweep}@keyframes hw-sweep{0%{opacity:1;transform:translate(-60%)}to{opacity:0;transform:translate(60%)}}.hw-wand-fx{width:0;height:0}.hw-wand-line{transform-origin:100%;background:linear-gradient(270deg,#ffffffe6,#0000);width:120px;height:2px;animation:.8s ease-out forwards hw-line;position:absolute;top:-1px;right:0}@keyframes hw-line{0%{opacity:1;transform:scaleX(0)}to{opacity:0;transform:scaleX(1)}}.hw-spark{opacity:0;background:radial-gradient(circle,#fff,#f3e3a0 60%,#0000);border-radius:50%;width:4px;height:4px;animation:.85s ease-out forwards hw-spark;position:absolute;top:-2px;left:-2px}@keyframes hw-spark{0%{opacity:1;transform:translate(0)scale(1)}to{transform:translate(var(--dx), var(--dy)) scale(.2);opacity:0}}.hw-ring{border:1px solid rgb(var(--accent-rgb) / .7);opacity:0;border-radius:50%;width:3.5rem;height:3.5rem;animation:1.6s ease-out forwards hw-ring;position:absolute}@keyframes hw-ring{0%{opacity:.9;transform:scale(.6)}to{opacity:0;transform:scale(3.2)}}.hw-float-rune{border-left:1.5px solid rgb(var(--accent-rgb) / .9);border-top:1.5px solid rgb(var(--accent-rgb) / .9);opacity:0;width:6px;height:10px;animation:1.8s ease-out forwards hw-rune;position:absolute;transform:rotate(45deg)}@keyframes hw-rune{0%{translate:var(--x) 4px;opacity:0}25%{opacity:.9}to{translate:var(--x) -44px;opacity:0}}html[data-cloak=on] .env-layer,html[data-cloak=on] .side-decor{opacity:.12;filter:blur(2px)}.env-layer,.side-decor{transition:opacity .8s,filter .8s}@media (prefers-reduced-motion:reduce){.hw-stone,.hw-cloak-shimmer{animation:none}.hw-wand-line,.hw-spark,.hw-ring,.hw-float-rune,.hw-cloak-flash{animation-duration:10ms}}.potion-bubble{transform-box:fill-box;transform-origin:50%;opacity:0;animation:3.2s ease-in infinite potion-bubble}.potion-bubble-b{animation-delay:1.1s}.potion-bubble-c{animation-delay:2.1s}@keyframes potion-bubble{0%{opacity:0;transform:translateY(2px)scale(.6)}25%{opacity:.9}to{opacity:0;transform:translateY(-14px)scale(1.1)}}@media (prefers-reduced-motion:reduce){.potion-bubble{opacity:.6;animation:none}}@keyframes hbp-glow{0%,to{text-shadow:0 0 #0000}50%{text-shadow:0 0 10px rgb(var(--accent-rgb) / .75)}}.hbp-glow{animation:3.6s ease-in-out infinite hbp-glow}.hbp-sheen{pointer-events:none;background:linear-gradient(105deg,#0000 35%,#fff4c88c 50%,#0000 65%);animation:1.1s ease-out forwards hbp-sheen;position:absolute;inset:0}@keyframes hbp-sheen{0%{opacity:1;transform:translate(-70%)}to{opacity:0;transform:translate(70%)}}.hbp-note{opacity:0;max-height:0;transition:opacity .25s,max-height .25s;overflow:hidden}.hbp-entry:hover .hbp-note,.hbp-entry:focus-within .hbp-note{opacity:1;max-height:6rem}@media (hover:none){.hbp-note{display:none}}@media (prefers-reduced-motion:reduce){.hbp-glow{animation:none}.hbp-sheen{display:none}}.env-phoenix-wrap{width:clamp(5rem,11vw,8.5rem);animation:12s ease-in-out both env-phoenix-x,12s ease-in-out both env-phoenix-y;top:46vh;left:0}@keyframes env-phoenix-x{0%{opacity:0;transform:translate(-30%)}8%{opacity:.92}90%{opacity:.92}to{opacity:0;transform:translate(calc(100vw + 20%))}}@keyframes env-phoenix-y{0%{translate:0 18vh}50%{translate:0 -12vh}to{translate:0 -26vh}}.ph-wing-a,.ph-wing-b{transform-box:view-box;animation:.8s ease-in-out infinite alternate ph-flap}.ph-wing-a{transform-origin:84px 44px}.ph-wing-b{transform-origin:76px 44px;animation-name:ph-flap-b}@keyframes ph-flap{0%{transform:rotate(-16deg)}to{transform:rotate(18deg)}}@keyframes ph-flap-b{0%{transform:rotate(16deg)}to{transform:rotate(-18deg)}}.ph-tail-a,.ph-tail-b,.ph-tail-c{transform-box:fill-box;transform-origin:100%;animation:1.4s ease-in-out infinite alternate ph-tail}.ph-tail-b{animation-delay:.2s}.ph-tail-c{animation-delay:.4s}@keyframes ph-tail{0%{transform:rotate(-4deg)}to{transform:rotate(5deg)}}.ph-ember{transform-box:fill-box;animation:1.9s ease-in infinite ph-ember}.ph-ember-b{animation-delay:.6s}.ph-ember-c{animation-delay:1.2s}@keyframes ph-ember{0%{opacity:.95;transform:translate(0)}to{opacity:0;transform:translate(-14px,26px)}}.env-troll-wrap{width:clamp(6rem,10vw,9rem);animation:11s ease-in-out both env-troll;bottom:0;right:4vw}@keyframes env-troll{0%{opacity:0}10%{opacity:.75}88%{opacity:.75}to{opacity:0}}.tr-figure{animation:11s ease-in-out both tr-peek}@keyframes tr-peek{0%,8%{transform:translateY(105%)}28%{transform:translateY(8%)}62%{transform:translateY(8%)translate(-5px)}80%{transform:translateY(105%)}to{transform:translateY(105%)}}.tr-club{transform-box:fill-box;transform-origin:20% 90%;animation:3.4s ease-in-out infinite tr-sway}@keyframes tr-sway{0%,to{transform:rotate(-4deg)}50%{transform:rotate(7deg)}}.tr-eye{animation:4.5s step-end infinite tr-blink}@keyframes tr-blink{0%,92%,to{opacity:.9}94%,97%{opacity:0}}.env-entrance .sp-eye{animation:2.8s ease-out sp-flare}@keyframes sp-flare{0%{fill:#8fd9b4}25%,60%{fill:#e8fff4;filter:drop-shadow(0 0 7px #7dffc2)drop-shadow(0 0 14px #2fe08f)}to{fill:#8fd9b4}}
.ig-cover{z-index:89;background:#05040a;display:none;position:fixed;inset:0}html[data-intro=pending] .ig-cover{animation:0s linear 6s forwards ig-coverGiveUp;display:block}@keyframes ig-coverGiveUp{to{opacity:0;visibility:hidden}}.ig-fog{pointer-events:none;width:200%;animation:ig-fogDrift var(--dur,70s) linear infinite;background-repeat:repeat-x;background-size:50% 100%;position:absolute;left:0}.ig-fogFar{opacity:.6;--dur:95s;background-image:radial-gradient(28% 55% at 22% 60%,#aaa0dc38,#0000 70%),radial-gradient(24% 45% at 68% 45%,#968cd22e,#0000 70%);height:32%;bottom:20%}.ig-fogNear{opacity:.85;--dur:60s;background-image:radial-gradient(30% 60% at 30% 70%,#c8beeb42,#0000 72%),radial-gradient(22% 50% at 80% 55%,#d2c8f033,#0000 70%);height:44%;animation-direction:reverse;bottom:-4%}@keyframes ig-fogDrift{0%{transform:translate(0)}to{transform:translate(-50%)}}.ig-flicker{animation:3.2s ease-in-out infinite ig-flick}@keyframes ig-flick{0%,to{opacity:.9}20%{opacity:.6}40%{opacity:1}65%{opacity:.72}85%{opacity:.95}}.ig-flame{transform-box:fill-box;transform-origin:50% 100%;animation:1.9s ease-in-out infinite ig-flame}@keyframes ig-flame{0%,to{transform:scale(1)rotate(0)}30%{transform:scale(.92,1.1)rotate(2deg)}60%{transform:scale(1.05,.94)rotate(-2deg)}}.ig-window{animation:4.4s ease-in-out infinite ig-flick}.ig-rune{opacity:.35;animation:4.2s ease-in-out infinite ig-runePulse}@keyframes ig-runePulse{0%,to{opacity:.3}50%{opacity:1}}.ig-root[data-phase=opening] .ig-rune{animation:.9s ease-out forwards ig-runeSurge}@keyframes ig-runeSurge{0%{opacity:.4}to{opacity:1}}.ig-floatRune{opacity:0;animation:ig-runeFloat var(--dur,12s) ease-in-out var(--delay,0s) infinite;position:absolute}@keyframes ig-runeFloat{0%{opacity:0;transform:translateY(24px)rotate(-6deg)}25%{opacity:.75}75%{opacity:.5}to{opacity:0;transform:translateY(-90px)rotate(6deg)}}.ig-titleWord{animation:1.4s cubic-bezier(.22,1,.36,1) both ig-titleIn;animation-delay:var(--d,0s);display:inline-block}@keyframes ig-titleIn{0%{opacity:0;filter:blur(10px);transform:translateY(18px)}to{opacity:1;filter:blur();transform:none}}.ig-fadeUp{animation:1.1s cubic-bezier(.22,1,.36,1) both ig-fadeUp;animation-delay:var(--d,0s)}@keyframes ig-fadeUp{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:none}}.ig-gateIn{animation:1.6s cubic-bezier(.22,1,.36,1) both ig-gateIn}@keyframes ig-gateIn{0%{opacity:0}to{opacity:1}}.ig-enter{animation:3.2s ease-in-out infinite ig-enterGlow}@keyframes ig-enterGlow{0%,to{box-shadow:0 0 26px #e6bd5f40}50%{box-shadow:0 0 56px #e6bd5f8c}}@media (prefers-reduced-motion:reduce){.ig-fog,.ig-flicker,.ig-flame,.ig-window,.ig-rune,.ig-floatRune,.ig-enter,.ig-titleWord,.ig-fadeUp,.ig-gateIn{animation:none!important}.ig-rune{opacity:.8}.ig-floatRune{opacity:.45}}.ig-hint{text-shadow:0 0 18px #e6bd5f8c;animation:2.6s ease-in-out infinite ig-hintPulse}@keyframes ig-hintPulse{0%,to{opacity:.55}50%{opacity:1}}.ig-root[data-phase=idle]{cursor:pointer}.ig-dim{z-index:12;pointer-events:none;opacity:0;background:radial-gradient(circle at 50% 60%,#0000 8%,#030208c7 62%);position:absolute;inset:0}.ig-root[data-phase=opening] .ig-dim{animation:3.3s ease-in-out both ig-dimIn}@keyframes ig-dimIn{0%{opacity:0}15%{opacity:1}76%{opacity:1}to{opacity:0}}.ig-wand{opacity:0;transform:translate(452px,610px)}.ig-root[data-phase=opening] .ig-wand{animation:1.35s cubic-bezier(.3,.1,.2,1) .3s both ig-wandTravel}@keyframes ig-wandTravel{0%{opacity:0;transform:translate(452px,610px)rotate(8deg)}15%{opacity:1}80%{opacity:1;transform:translate(300px,458px)rotate(-4deg)}to{opacity:0;transform:translate(296px,452px)rotate(0)}}.ig-spell{z-index:25;pointer-events:none;text-align:center;font-family:var(--font-display);letter-spacing:.22em;white-space:nowrap;color:#fff1c2;text-shadow:0 0 18px #ffd278f2,0 0 46px #e6963ca6;margin:0;font-size:clamp(.9rem,2.5vw,1.75rem);font-weight:700;position:absolute;left:0;right:0}.ig-spell span{opacity:0;display:inline-block}.ig-root[data-phase=opening] .ig-spell span{animation:ig-letter .7s cubic-bezier(.22, 1, .36, 1) var(--ld,1s) both, ig-letterOut .6s ease-in 3.15s forwards}@keyframes ig-letter{0%{opacity:0;filter:blur(7px);transform:translateY(10px)scale(1.25)}to{opacity:1;filter:blur();transform:none}}@keyframes ig-letterOut{to{opacity:0;filter:blur(5px)}}.ig-keyhole-glow,.ig-lock-halo{opacity:0}.ig-root[data-phase=opening] .ig-keyhole-glow{animation:1.5s ease-in-out 1.7s both ig-keyGlow}.ig-root[data-phase=opening] .ig-lock-halo{animation:2.2s ease-in-out 1.6s both ig-halo}@keyframes ig-keyGlow{0%{opacity:0}35%{opacity:1}to{opacity:.9}}@keyframes ig-halo{0%{opacity:0;transform:scale(.6)}40%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(1.5)}}.ig-lock-halo{transform-box:fill-box;transform-origin:50%}.ig-root[data-phase=opening] .ig-shackle{animation:.85s cubic-bezier(.3,1.4,.5,1) 1.95s both ig-unlatch}@keyframes ig-unlatch{0%{transform:translateY(0)rotate(0)}45%{transform:translateY(-11px)rotate(0)}to{transform:translateY(-11px)rotate(-38deg)}}.ig-root[data-phase=opening] .ig-lock-body{transform-box:fill-box;transform-origin:50%;animation:.4s ease-in-out 1.75s ig-lockShake,.5s ease-in 2.7s forwards ig-lockAway}@keyframes ig-lockShake{0%,to{transform:none}25%{transform:translate(-1.5px)rotate(-1deg)}75%{transform:translate(1.5px)rotate(1deg)}}@keyframes ig-lockAway{to{opacity:0;transform:translateY(14px)scale(.92)}}.ig-lock-spark{opacity:0}.ig-root[data-phase=opening] .ig-lock-spark{animation:1s ease-out both ig-sparkOut}@keyframes ig-sparkOut{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(var(--dx), var(--dy))}}@media (prefers-reduced-motion:reduce){.ig-hint{animation:none}.ig-dim,.ig-wand,.ig-spell span,.ig-lock-spark{animation:none!important}}
