*,:before,:after{box-sizing:border-box;margin:0;padding:0}:root{--bg:#06091c;--bg-mid:#0d1230;--bg-card:#0a0e28;--gold:#c9a84c;--gold-b:#ebd06e;--gold-d:#7a6020;--cream:#f5e8b9;--silver:#b9b9d2;--white:#fff;--gryffindor:#d2373b;--hufflepuff:#f0c34e;--ravenclaw:#6e90d0;--slytherin:#4caf7a;--ease-out:cubic-bezier(.23, 1, .32, 1);--ease-in-out:cubic-bezier(.77, 0, .175, 1);--ease-spring:cubic-bezier(.34, 1.56, .64, 1);--ease-drawer:cubic-bezier(.32, .72, 0, 1)}html{-webkit-text-size-adjust:100%;-moz-text-size-adjust:100%;text-size-adjust:100%;overflow-x:hidden}html,body{background:var(--bg);color:var(--cream);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizelegibility;min-height:100vh;font-family:IM Fell English,Georgia,serif;overflow-x:hidden}@media (width<=480px){*{overflow-wrap:break-word;word-break:break-word;max-width:100%;min-height:0}.title-sub{letter-spacing:.1em!important;font-size:.75rem!important}.question-counter{font-size:.72rem!important}.page{padding:1.5rem 1rem}.card{padding:1.75rem 1.25rem}input,textarea,select{font-size:16px!important}}@media (width<=390px){html{font-size:17px}}#starfield{z-index:0;pointer-events:none;position:fixed;inset:0}.page{z-index:1;flex-direction:column;justify-content:center;align-items:center;min-height:100vh;padding:2rem 1.5rem;display:flex;position:relative}.card{border:1px solid var(--gold-d);background:#0a0e28eb;border-radius:4px;width:100%;max-width:680px;padding:2.5rem 2rem;position:relative;box-shadow:0 0 60px #c9a84c14}.card:before,.card:after{content:"";border-color:var(--gold);border-style:solid;width:18px;height:18px;position:absolute}.card:before{border-width:2px 0 0 2px;top:-1px;left:-1px}.card:after{border-width:0 2px 2px 0;bottom:-1px;right:-1px}.title-main{color:var(--gold-b);text-align:center;letter-spacing:.04em;text-shadow:0 0 40px #ebd06e4d;font-family:Cinzel Decorative,Cinzel,serif;font-size:clamp(1.8rem,5vw,3rem);line-height:1.2}.title-sub{color:var(--silver);text-align:center;letter-spacing:.12em;text-transform:uppercase;margin-top:.5rem;font-family:Cinzel,serif;font-size:clamp(.9rem,2vw,1.1rem)}.italic-label{color:var(--silver);text-align:center;font-family:IM Fell English,serif;font-size:1rem;font-style:italic}.divider{color:var(--gold-d);align-items:center;gap:.75rem;margin:1.5rem 0;display:flex}.divider:before,.divider:after{content:"";background:var(--gold-d);flex:1;height:1px}.divider span{color:var(--gold);font-size:.7rem}.btn-primary{letter-spacing:.12em;text-transform:uppercase;color:var(--gold-b);border:1px solid var(--gold);cursor:pointer;transition:background .18s var(--ease-out), border-color .18s var(--ease-out), box-shadow .18s var(--ease-out), color .15s var(--ease-out), transform .14s var(--ease-out);background:0 0;padding:.85rem 2.5rem;font-family:Cinzel,serif;font-size:.9rem;position:relative}.btn-primary:hover{background:#c9a84c1a;box-shadow:0 0 20px #c9a84c33}.btn-primary:active{transform:scale(.97)}.progress-bar{background:var(--gold-d);border-radius:1px;width:100%;height:2px;margin-bottom:2rem;overflow:hidden}.progress-fill{background:linear-gradient(90deg, var(--gold-d), var(--gold-b));height:100%;transition:width .4s var(--ease-out)}.question-counter{letter-spacing:.15em;color:var(--gold-d);text-transform:uppercase;margin-bottom:1.25rem;font-family:Cinzel,serif;font-size:.75rem}.question-text{color:var(--cream);margin-bottom:2rem;font-family:IM Fell English,serif;font-size:clamp(1.1rem,2.5vw,1.35rem);font-style:italic;line-height:1.6}.options-grid{flex-direction:column;gap:.75rem;display:flex}.option-btn{color:var(--cream);text-align:left;cursor:pointer;background:#ffffff05;border:1px solid #c9a84c33;border-radius:2px;padding:1rem 1.25rem;font-family:IM Fell English,serif;font-size:1rem;line-height:1.5;transition:all .2s}.option-btn:hover:not(:disabled){border-color:var(--gold);color:var(--gold-b);background:#c9a84c14}.option-btn.correct{color:#4caf7a;background:#4caf7a1f;border-color:#4caf7a}.option-btn.wrong{color:#d2373b;background:#d2373b1a;border-color:#d2373b}.option-btn.selected{border-color:var(--gold);background:#c9a84c1a}.option-btn:disabled{cursor:default}.score-text{color:var(--gold-b);text-align:center;margin-top:1.5rem;font-family:Cinzel,serif;font-size:1rem}.fail-text{color:var(--silver);text-align:center;margin:1rem 0 1.5rem;font-family:IM Fell English,serif;font-style:italic;line-height:1.7}.parchment-quiz .question-counter{color:#502d0a8c}.parchment-quiz .question-text{color:#0a0300;font-style:normal}.parchment-quiz .progress-bar{background:#5028052e}.parchment-quiz .progress-fill{background:linear-gradient(90deg,#50280573,#502805bf)}.parchment-quiz .option-btn{color:#1a0800;background:#dcc39138;border-color:#50280547}.parchment-quiz .option-btn:hover:not(:disabled){color:#0a0300;box-shadow:none;background:#5028051a;border-color:#5028058c}.parchment-quiz .option-btn.correct{color:#1a4a2a;background:#2d6a3f24;border-color:#2d6a3f}.parchment-quiz .option-btn.wrong{color:#6b0000;background:#8b000017;border-color:#8b0000}.parchment-quiz .option-btn.selected{background:#5028051a;border-color:#5028058c}.parchment-quiz .italic-label{color:#2c1400bf}.parchment-quiz .title-main{color:#1a0800;text-shadow:none}.parchment-quiz .title-sub{color:#502d0a99}.parchment-quiz .score-text{color:#1a0800}.parchment-quiz .fail-text{color:#2c1400b8}.parchment-quiz .btn-primary{color:#3a1a00;border-color:#50280580}.parchment-quiz .btn-primary:hover{box-shadow:none;background:#5028051a}.parchment-quiz .divider span{color:#50280566}@keyframes flameFlicker{0%,to{opacity:1;transform:scaleX(1)scaleY(1)}25%{opacity:.9;transform:scaleX(.82)scaleY(1.12)}50%{opacity:1;transform:scaleX(1.1)scaleY(.92)}75%{opacity:.95;transform:scaleX(.88)scaleY(1.08)}}@keyframes candleDrift{0%,to{transform:translateY(0)rotate(0)}33%{transform:translateY(-10px)rotate(1.5deg)}66%{transform:translateY(-5px)rotate(-1deg)}}@keyframes foodAppear{0%{opacity:0;transform:scale(.6)translateY(6px)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes cloudDrift{0%{transform:translate(-30px)}to{transform:translate(30px)}}.house-badge{border:3px solid;border-radius:50%;justify-content:center;align-items:center;width:120px;height:120px;margin:0 auto 1.5rem;font-size:3rem;animation:2s infinite pulse;display:flex}@keyframes pulse{0%,to{box-shadow:0 0 20px}50%{box-shadow:0 0 50px}}.house-name-reveal{text-align:center;letter-spacing:.05em;font-family:Cinzel Decorative,serif;font-size:clamp(2rem,6vw,3.5rem);animation:1s forwards fadeIn}.house-trait{color:var(--silver);text-align:center;margin-top:.5rem;font-family:IM Fell English,serif;font-size:1.1rem;font-style:italic}@keyframes fadeIn{0%{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}.id-card{border:2px solid var(--gold);text-align:center;background:#06091cf2;max-width:420px;margin:0 auto;padding:2rem;position:relative}.id-card .id-label{letter-spacing:.2em;color:var(--gold-d);text-transform:uppercase;font-family:Cinzel,serif;font-size:.65rem}.id-card .id-name{color:var(--gold-b);margin:.4rem 0;font-family:Cinzel,serif;font-size:1.4rem}.id-card .id-house{margin:.3rem 0;font-family:Cinzel Decorative,serif;font-size:1.1rem}.id-card .id-code{letter-spacing:.15em;color:var(--silver);border-top:1px solid var(--gold-d);margin-top:1rem;padding-top:.75rem;font-family:Cinzel,serif;font-size:.75rem}.text-center{text-align:center}.mt-1{margin-top:.5rem}.mt-2{margin-top:1rem}.mt-3{margin-top:1.5rem}.mt-4{margin-top:2rem}@media (width<=480px){.card{padding:1.75rem 1.25rem}.option-btn{padding:.85rem 1rem;font-size:.95rem}}@keyframes cloudFloat{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes starTwinkle{0%,to{opacity:.25;transform:scale(1)}50%{opacity:.9;transform:scale(1.8)}}@keyframes houseRevealShake{0%,to{transform:translate(0)}10%{transform:translate(-9px)rotate(-.4deg)}20%{transform:translate(9px)rotate(.4deg)}30%{transform:translate(-7px)}40%{transform:translate(7px)}50%{transform:translate(-5px)}60%{transform:translate(5px)}70%{transform:translate(-3px)}80%{transform:translate(3px)}90%{transform:translate(-1px)}}@keyframes houseRevealFlash{0%{opacity:.85}to{opacity:0}}@keyframes houseNameBlast{0%{opacity:0;filter:blur(6px);transform:scale(2.4)}45%{opacity:1;filter:blur();transform:scale(.92)}72%{transform:scale(1.06)}to{transform:scale(1)}}@keyframes particleRise{0%{opacity:0;transform:translateY(0)}12%{opacity:1}88%{opacity:.65}to{opacity:0;transform:translateY(-200px)}}@keyframes crestScale{0%{opacity:0;transform:scale(0)rotate(-8deg)}60%{opacity:1;transform:scale(1.08)rotate(1deg)}80%{transform:scale(.97)rotate(-.5deg)}to{transform:scale(1)rotate(0)}}@keyframes fadeUp{0%{opacity:0;transform:translateY(8px)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes popIn{0%{opacity:0;transform:scale(.84)translateY(10px)}60%{opacity:1;transform:scale(1.04)translateY(-2px)}80%{transform:scale(.98)translateY(0)}to{opacity:1;transform:scale(1)translateY(0)}}@keyframes codeReveal{0%{opacity:0;letter-spacing:.5em;transform:scale(.94)}to{opacity:1;letter-spacing:.2em;transform:scale(1)}}@media (prefers-reduced-motion:reduce){*,:before,:after{animation-duration:.01ms!important;animation-iteration-count:1!important;animation-delay:0s!important}*{transition-property:opacity,color,background-color,border-color!important;transition-duration:.15s!important}.house-badge{animation:none!important}.house-name-reveal{opacity:1;transform:none;animation:none!important}}
