@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=EB+Garamond:ital,wght@0,400;0,500;1,400&display=swap');
:root{--gold:#d0ac64;--gold2:#765626;--paper:#e5d1a4;--ink:#08090b;--glass:rgba(8,9,12,.72);--line:rgba(208,172,100,.32);--house:#879b8b}
*{box-sizing:border-box}html,body{margin:0;min-height:100%;background:#050608;color:#eee;font-family:'EB Garamond',serif}body{overflow-x:hidden}.hidden{display:none!important}
.vignette{position:fixed;inset:0;box-shadow:inset 0 0 180px 55px #000;pointer-events:none;z-index:8}
#fx{position:fixed;inset:0;pointer-events:none;z-index:7;overflow:hidden}.dust{position:absolute;width:3px;height:3px;background:#f2d79d;border-radius:50%;box-shadow:0 0 8px #e8c675;animation:drift linear infinite;opacity:.35}@keyframes drift{from{transform:translate(0,105vh) rotate(0)}to{transform:translate(80px,-10vh) rotate(180deg)}}
button{font-family:Cinzel,serif;cursor:pointer}#auth{min-height:100vh;display:grid;place-items:center;position:relative;background:radial-gradient(circle at 50% 25%,#28303a,#0c1016 50%,#030405)}
.castle-silhouette{position:absolute;left:0;right:0;bottom:0;height:48vh;background:#050608;clip-path:polygon(0 100%,0 75%,8% 75%,8% 55%,11% 46%,14% 55%,14% 80%,24% 80%,24% 49%,28% 34%,32% 49%,32% 72%,41% 72%,41% 38%,45% 22%,49% 38%,49% 66%,57% 66%,57% 42%,61% 29%,65% 42%,65% 76%,75% 76%,75% 52%,79% 39%,83% 52%,83% 70%,91% 70%,91% 58%,94% 49%,97% 58%,97% 100%)}
.login-card{z-index:2;width:min(470px,92vw);padding:36px;text-align:center;background:linear-gradient(145deg,rgba(20,19,18,.92),rgba(6,7,9,.95));border:1px solid var(--line);box-shadow:0 30px 100px #000}.seal{margin:auto;width:70px;height:82px;border:2px solid var(--gold);display:grid;place-items:center;font:700 34px Cinzel;color:var(--gold);clip-path:polygon(50% 0,95% 15%,86% 73%,50% 100%,14% 73%,5% 15%);background:#17130d}.overline,.eyebrow{font:10px Cinzel;letter-spacing:4px;color:#9c8b6e;margin:15px 0}.login-card h1{font:600 clamp(34px,6vw,55px) Cinzel;line-height:1.05;letter-spacing:4px;color:#e7d2a2;margin:8px 0}.login-card p{color:#bcb4a6;font-size:18px}.tabs{display:flex;margin:25px 0 12px}.tabs button{flex:1;padding:10px;background:none;color:#837967;border:0;border-bottom:1px solid #4c402c}.tabs .active{color:#f0d69a;border-color:var(--gold)}
input{width:100%;padding:13px;margin:5px 0;background:#08090b;border:1px solid #3d3528;color:white;font:17px 'EB Garamond';outline:none}input:focus{border-color:var(--gold)}.primary{padding:12px 18px;background:linear-gradient(#8a6930,#4b3413);border:1px solid #d1aa60;color:#fff0ca;margin-top:12px}#authForm .primary{width:100%}#authError{color:#d97d78;margin-top:10px}
#loading{min-height:95vh;display:grid;place-items:center;text-align:center}.rune{font-size:60px;color:var(--gold);animation:spin 4s linear infinite}@keyframes spin{to{transform:rotate(360deg)}}
.game{min-height:calc(100vh - 30px);position:relative}.scene{height:calc(100vh - 30px);min-height:680px;position:relative;overflow:hidden;background:radial-gradient(circle at 50% 25%,#414044 0,#202126 34%,#0b0c0f 76%)}.scene[data-location="Slytherin Common Room"]{background:radial-gradient(circle at 50% 42%,#294038,#101d1b 35%,#060a0a 78%)}.scene[data-location="Great Hall"]{background:radial-gradient(circle at 50% 22%,#493b28,#1b1714 42%,#080809 80%)}.scene[data-location="Library"]{background:radial-gradient(circle at 50% 40%,#3d3022,#17120e 42%,#070708 80%)}
.sky{position:absolute;inset:0 0 48% 0;background:linear-gradient(#111621,#303744 70%,transparent);opacity:.75}.moon{position:absolute;width:90px;height:90px;border-radius:50%;background:#d9d6c6;box-shadow:0 0 70px #d7d0aa;right:13%;top:10%;opacity:.55}.architecture{position:absolute;inset:22% 0 0}.arch{position:absolute;bottom:0;width:24%;height:78%;border:18px solid #171719;border-bottom:0;border-radius:50% 50% 0 0;box-shadow:inset 0 0 45px #000,0 0 25px #000}.a1{left:-3%}.a2{left:25%}.a3{left:53%}.a4{right:-5%}.floor{position:absolute;left:0;right:0;bottom:0;height:22%;background:repeating-linear-gradient(100deg,#111214 0 60px,#171719 61px 63px);transform:perspective(500px) rotateX(25deg);transform-origin:bottom}
.candle{position:absolute;width:4px;height:35px;background:#dfc58e;box-shadow:0 0 18px #f2c15b}.candle:before{content:"";position:absolute;width:7px;height:11px;left:-2px;top:-10px;background:#ffd36d;border-radius:60% 40%;box-shadow:0 0 20px #ffb22f;animation:flicker .8s infinite alternate}@keyframes flicker{to{transform:translateX(2px) scale(.85);opacity:.75}}
.hotspot{position:absolute;z-index:4;border:1px solid transparent;background:transparent;color:transparent;border-radius:50%;transition:.25s}.hotspot:hover,.revelio .hotspot{border-color:#e6c16b;color:#f1d99f;background:rgba(212,174,92,.08);box-shadow:0 0 30px rgba(229,190,105,.28)}.hotspot span{position:absolute;left:50%;bottom:-30px;transform:translateX(-50%);white-space:nowrap;background:#08090bd9;border:1px solid #80683d;padding:6px 9px;font:10px Cinzel;letter-spacing:1px}
.h-door{width:150px;height:250px;left:44%;top:36%;border-radius:75px 75px 4px 4px}.h-portrait{width:110px;height:150px;left:18%;top:32%;border-radius:4px}.h-secret{width:90px;height:90px;right:17%;top:47%}
.hud-top{position:absolute;z-index:6;left:20px;right:20px;top:18px;display:flex;align-items:center;gap:13px;pointer-events:none}.brand{font:600 16px Cinzel;letter-spacing:3px;color:#e7cf98;text-shadow:0 2px 8px #000;margin-right:auto}.chip{background:rgba(5,6,8,.72);border:1px solid var(--line);padding:8px 11px;font:11px Cinzel;color:#cfc1a4;backdrop-filter:blur(8px)}
.hud-bottom{position:absolute;z-index:6;bottom:23px;left:50%;transform:translateX(-50%);display:flex;gap:8px;background:rgba(5,6,8,.78);border:1px solid var(--line);padding:8px;backdrop-filter:blur(10px)}.hud-bottom button{width:68px;height:57px;border:0;background:transparent;color:#bcb09a;font-size:11px}.hud-bottom button b{display:block;font-size:20px;color:#dfc078;margin-bottom:3px}.hud-bottom button:hover{background:#211a10;color:#fff}.wand-btn{border:1px solid #c9a45e!important;border-radius:50%;width:62px!important;height:62px!important;margin-top:-12px;background:radial-gradient(circle,#59401c,#17120c)!important;box-shadow:0 0 25px #7a5723}
.location-card{position:absolute;z-index:5;left:35px;bottom:110px;width:min(470px,70vw);pointer-events:none}.location-card h1{font:500 clamp(28px,4vw,47px) Cinzel;color:#ecd49c;margin:4px 0;text-shadow:0 4px 20px #000}.location-card p{font-size:18px;color:#c9c1b3;text-shadow:0 2px 8px #000}.location-card .eyebrow{margin:0}
.students{position:absolute;z-index:5;right:28px;top:82px;width:220px;background:var(--glass);border:1px solid var(--line);padding:13px;backdrop-filter:blur(8px)}.students h3{font:11px Cinzel;letter-spacing:2px;color:#d7b96f}.student{padding:8px;border-top:1px solid #302a21;cursor:pointer}.student:hover{background:#241d13}.student small{display:block;color:#8f8472}.founder{color:#d8b45e}
.spell-wheel{position:fixed;z-index:20;left:50%;bottom:95px;transform:translateX(-50%);display:flex;gap:8px;background:#08090be8;border:1px solid #8c713e;padding:12px;box-shadow:0 0 50px #000}.spell-wheel button{padding:12px;background:#17140f;border:1px solid #4b3d29;color:#d9c28d}.spell-wheel button:hover{border-color:#d3ad62;box-shadow:0 0 18px #725221}
#toast{position:fixed;z-index:30;top:80px;left:50%;transform:translateX(-50%) translateY(-30px);opacity:0;background:#090a0ce8;border:1px solid #9c7d43;color:#ecd39a;padding:12px 20px;font:12px Cinzel;letter-spacing:1px;transition:.3s;pointer-events:none}#toast.show{opacity:1;transform:translateX(-50%) translateY(0)}
.modal{position:fixed;z-index:25;inset:0;background:#000c;display:grid;place-items:center;padding:20px}.modal-card{width:min(700px,95vw);max-height:82vh;overflow:auto;background:linear-gradient(145deg,#191713,#090a0c);border:1px solid #8b7040;padding:28px;box-shadow:0 30px 100px #000}.modal-card h2{font:500 28px Cinzel;color:#e0bf78}.close{float:right;background:none;border:1px solid #4c4030;color:#b9a98c;padding:7px}.menu-list button{display:block;width:100%;text-align:left;padding:13px;background:#0e0f11;border:0;border-bottom:1px solid #30291f;color:#d6ccbb}.menu-list button:hover{background:#211a11}.item{display:flex;justify-content:space-between;padding:9px;border-bottom:1px solid #30291f}.story-wrap{min-height:95vh;display:grid;place-items:center;padding:25px;background:radial-gradient(circle,#28251f,#070809)}.story-card{width:min(780px,96vw);text-align:center;border:1px solid var(--line);background:#0a0b0de8;padding:40px;box-shadow:0 30px 100px #000}.story-card h2{font:500 32px Cinzel;color:#e2c27b}.story-card p{font-size:19px;line-height:1.55;color:#cbc2b2}.choices{display:grid;grid-template-columns:repeat(auto-fit,minmax(140px,1fr));gap:9px}.choice{padding:13px;background:#111216;border:1px solid #4a3d29;color:#d9c9a7}.choice:hover{border-color:#d0a75d;background:#241c10}
footer{min-height:30px;background:#050608;color:#625b4f;text-align:center;padding:9px;font:8px Cinzel;letter-spacing:1px}
@media(max-width:850px){.students{display:none}.hud-top{left:10px;right:10px}.brand{font-size:11px}.chip:nth-of-type(n+3){display:none}.location-card{left:18px;bottom:105px}.hud-bottom button{width:52px}.scene{min-height:650px}.h-door{left:38%}}

.passwrap{position:relative}.passwrap input{padding-right:48px}.eye{position:absolute;right:5px;top:7px;width:40px;height:38px;border:0;background:transparent;color:#c9aa68;font-size:18px}.textlink{display:block;margin:12px auto 0;border:0;background:none;color:#a99777;font-family:'EB Garamond';font-size:15px;text-decoration:underline}.textlink:hover{color:#ead09a}.forgot-box{padding:12px 0}.founder-ribbon{display:inline-block;margin-top:8px;padding:5px 8px;border:1px solid #8b6d35;color:#e0bd68;font:10px Cinzel;letter-spacing:1px;box-shadow:0 0 14px rgba(208,172,100,.12)}

.choice.selected{border-color:#e2bd6d!important;background:linear-gradient(180deg,#332613,#1b160f)!important;color:#ffe7ae!important;box-shadow:0 0 24px rgba(208,172,100,.25)}
.logout-btn{pointer-events:auto;padding:8px 11px;background:rgba(5,6,8,.72);border:1px solid rgba(208,172,100,.32);color:#cfc1a4;font:10px Cinzel;letter-spacing:1px}
.logout-btn:hover{border-color:#d0ac64;color:#f2d99f;background:#211a10}

.journey{min-height:calc(100vh - 30px);display:grid;place-items:center;position:relative;padding:30px;background:radial-gradient(circle at 50% 25%,#342e26,#111319 52%,#050608);overflow:hidden}.journey-content{width:min(900px,94vw);text-align:center;position:relative;z-index:2}.journey h2{font:500 clamp(30px,5vw,54px) Cinzel;color:#ead29b;margin:8px 0 20px}.journey .lead{font-size:19px;line-height:1.55;color:#cfc5b3}.journey-actions{margin-top:25px}.journey-icon,.wand-glow,.train-icon,.hat,.house-burst,.castle-reveal{font-size:80px;margin:18px}.envelope{width:320px;height:190px;margin:35px auto;background:#c8b68c;border:0;position:relative;color:#4c402e;box-shadow:0 25px 60px #000}.envelope .wax{display:grid;place-items:center;width:58px;height:58px;border-radius:50%;background:#6b2020;color:#e2c27b;font:24px Cinzel;position:absolute;left:50%;top:50%;transform:translate(-50%,-50%)}.envelope small{position:absolute;bottom:12px;left:0;right:0}.parchment{max-width:620px;margin:20px auto;padding:28px;background:#d5c298;color:#30271b;text-align:left;box-shadow:0 20px 60px #000}.parchment h3{text-align:center;font-family:Cinzel}.parchment .sign{text-align:right;font-style:italic}.mirror-card{max-width:500px;margin:auto;padding:20px;background:#0b0c0ed9;border:1px solid #75613c}.avatar-preview{width:90px;height:120px;margin:0 auto 15px;border:6px double #8b7040;border-radius:50% 50% 15% 15%;display:grid;place-items:center;font-size:42px}.shop-row,.pet-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin:25px auto}.shop-row button,.pet-grid button{min-height:110px;background:#111216;border:1px solid #4b3d29;color:#d9c9a7}.shop-row span,.pet-grid b{display:block;margin-top:8px}.checklist{max-width:390px;margin:auto;padding:18px;background:#d5c397;color:#30271b;text-align:left}.wand-shelves{height:170px;max-width:650px;margin:auto;background:repeating-linear-gradient(0deg,#18130d 0 15px,#2d2113 16px 23px);border:12px solid #17110b}.wand-result{display:grid;gap:8px}.platforms{display:grid;grid-template-columns:80px 1fr 80px;align-items:center;gap:15px;max-width:600px;margin:30px auto}.platforms b{font:55px Cinzel}.platforms button{padding:35px 10px;background:#4d3022;border:5px solid #2f1d15;color:#efd59c}.pet-grid{grid-template-columns:repeat(3,1fr);max-width:650px}.pet-grid button{font-size:40px}.founder-unlock{max-width:540px;margin:25px auto;padding:18px;border:1px solid #a88747}.founder-unlock h3,.founder-unlock b{font-family:Cinzel;color:#e0ba64}.rewards{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}.rewards b{padding:12px;border:1px solid #55472e}.choice.selected{border-color:#e2bd6d!important;color:#ffe7ae!important;box-shadow:0 0 22px rgba(208,172,100,.22)}@media(max-width:700px){.shop-row{grid-template-columns:1fr 1fr}.pet-grid{grid-template-columns:1fr}.journey{padding:15px}}

.frontend-error{min-height:70vh;display:grid;place-items:center;align-content:center;text-align:center;padding:30px;background:radial-gradient(circle,#271b17,#090a0d 65%);color:#d7c8ab}.frontend-error .seal{width:64px;height:64px;border-radius:50%;display:grid;place-items:center;background:#642323;border:2px solid #c79a58;color:#f0d092;font:32px Cinzel;margin-bottom:16px}.frontend-error h2{font:28px Cinzel;color:#e3c27c}.frontend-error p{max-width:700px;padding:14px;border:1px solid #493a29;background:#0d0e10;color:#d9c9ad;word-break:break-word}

.loader-dismissed{opacity:0!important;visibility:hidden!important;pointer-events:none!important;transition:opacity .25s ease,visibility .25s ease!important}
.frontend-error{position:relative!important;z-index:999999!important}

.hogwarts-world{min-height:calc(100vh - 30px);position:relative;overflow:hidden;background:linear-gradient(#080d18 0,#111827 42%,#050607 100%);color:#ddd}.world-sky{position:absolute;inset:0 0 45%}.world-sky .moon{position:absolute;width:90px;height:90px;border-radius:50%;right:12%;top:8%;background:#d9d7ca;box-shadow:0 0 60px rgba(224,218,181,.35)}.stars{position:absolute;inset:0;background-image:radial-gradient(#fff 0.7px,transparent .8px);background-size:37px 37px;opacity:.35}.world-castle{position:absolute;left:0;right:0;bottom:0;height:62%;background:linear-gradient(transparent 0 30%,#08090b 31%);opacity:.95}.castle-towers{position:absolute;left:4%;right:4%;bottom:0;height:90%;background:#090a0c;clip-path:polygon(0 100%,0 78%,6% 78%,6% 60%,10% 43%,14% 60%,14% 82%,22% 82%,22% 52%,27% 30%,32% 52%,32% 74%,39% 74%,39% 42%,44% 14%,49% 42%,49% 79%,58% 79%,58% 54%,63% 34%,68% 54%,68% 72%,76% 72%,76% 48%,81% 25%,86% 48%,86% 80%,94% 80%,94% 64%,97% 51%,100% 64%,100% 100%)}.world-vignette{position:absolute;inset:0;background:radial-gradient(ellipse at center,transparent 30%,rgba(0,0,0,.72) 100%);pointer-events:none}.world-ui{position:relative;z-index:2;width:min(1100px,94vw);margin:auto;padding:50px 0 70px}.world-welcome{text-align:center;margin-bottom:24px}.world-welcome h2{font:500 clamp(30px,5vw,52px) Cinzel;color:#ead19a;margin:6px}.world-welcome p{color:#a99b82}.world-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:720px;margin:0 auto 24px}.world-stats div,.world-card{background:rgba(8,9,11,.78);border:1px solid rgba(176,143,78,.35);backdrop-filter:blur(8px);padding:12px;text-align:center}.world-stats span{display:block;font:9px Cinzel;letter-spacing:1px;color:#8f826b}.world-stats b{font:20px Cinzel;color:#e0bf78}.castle-map{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.location-card{min-height:165px;padding:20px;background:linear-gradient(180deg,rgba(20,21,24,.9),rgba(8,9,11,.95));border:1px solid #453a29;color:#d8ccb5;text-align:left;transition:.2s}.location-card:hover{transform:translateY(-3px);border-color:#b28e4e;box-shadow:0 10px 30px #000}.location-card span{display:block;font-size:34px;color:#dfbd72;margin-bottom:15px}.location-card b,.location-card small{display:block}.location-card b{font:16px Cinzel;color:#ead29b}.location-card small{margin-top:7px;color:#8f8779;line-height:1.4}.world-bottom{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.world-card b{font:13px Cinzel;color:#d9c292}.location-symbol{font-size:90px;color:#e2c173;text-shadow:0 0 35px rgba(226,193,115,.25)}.location-actions{max-width:480px;margin:20px auto}.location-actions .choice{display:block;width:100%;margin:7px}.spell-flash:after{content:"";position:absolute;inset:0;background:radial-gradient(circle,#fffbd1,rgba(238,211,123,.25) 20%,transparent 60%);pointer-events:none;animation:spellfade .7s forwards}@keyframes spellfade{from{opacity:1}to{opacity:0}}.global-logout{position:fixed!important;right:18px!important;top:18px!important;z-index:9999!important}@media(max-width:800px){.castle-map{grid-template-columns:1fr 1fr}.world-stats{grid-template-columns:1fr 1fr}.world-bottom{grid-template-columns:1fr}}@media(max-width:520px){.castle-map{grid-template-columns:1fr}}

.clean-scene{min-height:calc(100vh - 40px);display:grid;place-items:center;padding:35px;position:relative;background:radial-gradient(circle at 50% 18%,rgba(74,62,42,.28),transparent 30%),linear-gradient(180deg,#0c1018,#090a0d 60%,#050506);color:#d8cdb9}.clean-scene:before{content:"";position:absolute;inset:0;background-image:radial-gradient(#fff 0.65px,transparent .7px);background-size:41px 41px;opacity:.12;pointer-events:none}.clean-scene-inner{width:min(980px,94vw);text-align:center;position:relative;z-index:1}.clean-scene h1{font:500 clamp(32px,5vw,58px) Cinzel,serif;color:#e4c987;margin:7px 0 18px}.lead{font-size:18px;line-height:1.6;color:#c8beaa}.scene-actions{margin-top:24px}.primary,.secondary,.clean-error button{padding:13px 22px;border:1px solid #9c7c43;background:#1c1812;color:#e8d19c;font:12px Cinzel;letter-spacing:.6px;cursor:pointer}.secondary{border-color:#504633;background:#0e0f11}.parchment{max-width:620px;margin:20px auto;padding:28px;background:#d2bf91;color:#2f281d;text-align:left;box-shadow:0 20px 55px #000}.magic-envelope{width:320px;height:190px;margin:30px;background:#cbb88c;border:0;color:#352d22;position:relative}.magic-envelope span{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:60px;height:60px;border-radius:50%;background:#6e2224;color:#e7c87c;font:24px Cinzel}.magic-envelope small{position:absolute;bottom:14px;left:0;right:0}.place-grid,.castle-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px auto}.place-grid button,.castle-grid button,.pet-grid button,.sort-grid button,.pick-row button{padding:20px;background:rgba(12,13,16,.88);border:1px solid #50432e;color:#d8c7a5;cursor:pointer}.place-grid b,.castle-grid b,.pet-grid b{display:block;margin-top:8px}.castle-grid span{display:block;font-size:34px;color:#e0bf75;margin-bottom:8px}.pet-grid,.sort-grid,.pick-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;max-width:680px;margin:22px auto}.sort-grid{grid-template-columns:1fr 1fr}.form-card{max-width:520px;margin:auto}.form-card input{display:block;width:100%;box-sizing:border-box;margin:8px 0;padding:13px;background:#0b0c0f;border:1px solid #50432e;color:#eee}.pick-row button.selected{border-color:#d9b766;color:#f3d99c}.big-symbol{font-size:80px;margin:22px}.barrier{display:grid;grid-template-columns:80px 1fr 80px;align-items:center;gap:14px;max-width:650px;margin:30px auto}.barrier b{font:54px Cinzel}.barrier button{padding:35px 10px;background:#4c3021;border:5px solid #291a12;color:#f0d69a}.reward-row,.stat-grid,.detail-row{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;max-width:760px;margin:20px auto}.reward-row{grid-template-columns:repeat(3,1fr)}.reward-row b,.stat-grid div,.detail-row div{padding:14px;background:#0c0d10cc;border:1px solid #4d402c}.stat-grid small,.detail-row small{display:block;color:#887c67;font:9px Cinzel}.stat-grid b,.detail-row b{display:block;color:#e1c27d;margin-top:5px}.detail-row{grid-template-columns:1fr 1fr}.founder{max-width:550px;margin:24px auto;padding:18px;border:1px solid #9b7941}.founder h3,.founder b{font-family:Cinzel;color:#e1bd6b}.clean-toast{position:fixed;left:50%;bottom:25px;transform:translate(-50%,20px);opacity:0;z-index:999999;background:#0c0d0f;border:1px solid #9a7c48;color:#ead5a5;padding:12px 18px;transition:.2s}.clean-toast.show{opacity:1;transform:translate(-50%,0)}.clean-error{position:fixed;z-index:999999;inset:0;display:grid;place-items:center;align-content:center;text-align:center;background:#08090b;color:#d9c9aa;padding:30px}.clean-error b,.clean-error h2{color:#e2bf72;font-family:Cinzel}@media(max-width:700px){.place-grid,.castle-grid{grid-template-columns:1fr 1fr}.stat-grid{grid-template-columns:1fr 1fr}.pet-grid,.pick-row{grid-template-columns:1fr}.clean-scene{padding:15px}}

#game.game-shell{position:fixed!important;inset:0!important;width:100vw!important;height:100vh!important;max-width:none!important;margin:0!important;padding:0!important;display:grid!important;grid-template-rows:64px 1fr!important;background:#050609!important;overflow:hidden!important;z-index:5000!important}
#game.game-shell.hidden{display:none!important}
.clean-topbar{height:64px;box-sizing:border-box;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:linear-gradient(180deg,#111216,#090a0c);border-bottom:1px solid #463a28;box-shadow:0 8px 30px #000;z-index:20}
.brand-mark{display:flex;align-items:center;gap:12px}.brand-rune{display:grid;place-items:center;width:34px;height:34px;border:1px solid #8b6f3d;border-radius:50%;color:#dfbd72}.brand-mark b{display:block;font:14px Cinzel;color:#e1c583;letter-spacing:1px}.brand-mark small{display:block;font:8px Cinzel;color:#746b5b;letter-spacing:1.4px;margin-top:2px}.topbar-actions{display:flex;align-items:center;gap:14px;color:#9f927b;font:10px Cinzel;letter-spacing:.6px}.topbar-actions button{padding:8px 12px;background:#111216;border:1px solid #51442f;color:#cdb98e;font:9px Cinzel;cursor:pointer}
.clean-stage{position:relative!important;display:block!important;width:100%!important;height:100%!important;min-width:0!important;min-height:0!important;overflow:auto!important;margin:0!important;padding:0!important;background:#07090e!important}.clean-stage.hidden{display:block!important}.clean-stage>.clean-scene{box-sizing:border-box;width:100%!important;min-height:calc(100vh - 64px)!important;margin:0!important}
.boot-message{height:100%;display:grid;place-items:center;align-content:center;color:#b9a989}.boot-message span{font-size:38px;color:#d8b66e}.boot-message p{font:11px Cinzel;letter-spacing:1px}.clean-scene-inner{width:min(1050px,92vw)!important;margin:auto!important}.clean-scene .barrier{max-width:760px}.clean-scene .castle-grid{max-width:950px;margin-left:auto;margin-right:auto}
@media(max-width:650px){.clean-topbar{padding:0 12px}.brand-mark small{display:none}.topbar-actions #locationName{display:none}}

#modal:not(.hidden){position:fixed;inset:0;z-index:999999;display:grid;place-items:center;background:rgba(0,0,0,.78);padding:20px}
#modalCard{width:min(520px,92vw);background:#101114;border:1px solid #655235;box-shadow:0 30px 90px #000;padding:28px;color:#d8ccb6}
#modalCard h2{font-family:Cinzel;color:#e2c27d}
#modalCard input{box-sizing:border-box;width:100%;padding:12px;margin:12px 0;background:#08090b;border:1px solid #50432e;color:#eee}
.modal-actions{display:flex;gap:8px;justify-content:flex-end;margin-top:12px}

.station-scene,.express-scene{max-width:820px;margin:auto}.station-clock{font:18px Cinzel;color:#d9bd7a;margin:8px}.platform-signs{display:flex;align-items:center;justify-content:center;gap:22px;margin:25px}.platform-signs span{display:grid;place-items:center;width:72px;height:72px;border-radius:50%;background:#17181b;border:5px solid #b1935d;font:34px Cinzel;color:#ead4a0}.platform-signs i{font:36px Cinzel;color:#9a8765}.ticket-card{width:290px;margin:20px auto;padding:18px;background:#cbb88a;color:#30281d;box-shadow:0 15px 45px #000;transform:rotate(-1deg)}.ticket-card small,.ticket-card b,.ticket-card span{display:block}.ticket-card b{font:21px Cinzel;margin:6px}.luggage-row,.train-actions{display:flex;justify-content:center;gap:8px;flex-wrap:wrap;margin:20px}.luggage-row button,.train-actions button,.compartment-grid button,.sweet-grid button,.dialogue-choices button{background:#0d0e11;border:1px solid #54452e;color:#d8c6a4;padding:16px;cursor:pointer}.luggage-row b{display:block;margin-top:6px}.story-hint{max-width:650px;margin:15px auto;padding:12px;border-top:1px solid #4b3e2c;border-bottom:1px solid #4b3e2c;color:#a99b83;font-style:italic}.primary:disabled{opacity:.35;cursor:not-allowed}.primary.ready{box-shadow:0 0 28px rgba(218,180,99,.25)}.barrier-run{position:fixed;inset:64px 0 0;background:#090a0d;display:grid;place-items:center;align-content:center;z-index:50;color:#e0c47f}.run-track{width:min(800px,90vw);height:220px;position:relative;overflow:hidden;border-bottom:4px solid #423724}.runner{position:absolute;left:8%;bottom:20px;font-size:55px;animation:runBarrier 1.55s ease-in forwards}.brick-wall{position:absolute;right:8%;bottom:0;width:100px;height:190px;background:repeating-linear-gradient(0deg,#5b392b 0 17px,#2d1c16 18px 21px)}@keyframes runBarrier{0%{left:8%;transform:scale(1)}85%{left:80%;opacity:1}100%{left:87%;opacity:0;transform:scale(.6)}}.train-engine{font-size:100px;filter:drop-shadow(0 20px 20px #000)}.compartment-grid,.sweet-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin:25px auto;max-width:900px}.compartment-grid span,.sweet-grid button{font-size:32px}.compartment-grid b,.compartment-grid small,.sweet-grid b{display:block;margin-top:8px}.compartment-grid small{color:#8d8373;line-height:1.4}.npc-portrait{font-size:80px}.dialogue-box{max-width:650px;margin:20px auto;padding:20px;background:#0b0c0f;border-left:3px solid #b38e4e;color:#d8c9ae;font-style:italic}.dialogue-choices{display:grid;grid-template-columns:1fr 1fr;gap:8px;max-width:650px;margin:auto}.friend-note{color:#897e6c;font-size:12px}.window-landscape{font-size:100px;margin:20px}.text-action{border:0;background:none;color:#e0bb6d;text-decoration:underline;cursor:pointer}@media(max-width:650px){.compartment-grid,.sweet-grid{grid-template-columns:1fr}.dialogue-choices{grid-template-columns:1fr}}

/* V0.5.6 ART DIRECTION — locally shipped original environment illustrations */
.clean-stage{background:#080a0e!important}
.clean-scene{background-position:center!important;background-size:cover!important;background-attachment:scroll!important;isolation:isolate}
.clean-scene:before{content:""!important;position:absolute!important;inset:0!important;background:linear-gradient(90deg,rgba(3,5,8,.62),rgba(3,5,8,.18) 46%,rgba(3,5,8,.56)),linear-gradient(0deg,rgba(3,4,6,.78),transparent 55%)!important;opacity:1!important;z-index:-1!important}
html[data-scene-art="platform"] .clean-scene{background-image:url('art/platform93.svg')!important}
html[data-scene-art="express"] .clean-scene{background-image:url('art/express_compartment.svg')!important}
html[data-scene-art="diagon"] .clean-scene,html[data-scene-art="ollivanders"] .clean-scene{background-image:url('art/diagon_alley.svg')!important}
html[data-scene-art="castle"] .clean-scene,html[data-scene-art="hall"] .clean-scene{background-image:url('art/hogwarts_night.svg')!important}
html[data-scene-art="letter"] .clean-scene{background-image:url('art/privet_drive_letter.png')!important;background-position:center center!important;background-size:cover!important}
html[data-scene-art="letter"] .clean-scene:before{background:linear-gradient(180deg,rgba(4,6,9,.12),rgba(4,5,7,.05) 48%,rgba(3,4,6,.76) 100%),linear-gradient(90deg,rgba(2,3,5,.22),transparent 35%,rgba(2,3,5,.12))!important}
html[data-scene-art="letter"] .clean-scene-inner{width:min(1120px,94vw)!important;min-height:calc(100vh - 130px);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:28px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important}
html[data-scene-art="letter"] .clean-scene-inner:before,html[data-scene-art="letter"] .clean-scene-inner:after{display:none!important}
html[data-scene-art="letter"] .eyebrow{font:9px Cinzel;letter-spacing:3px;color:#e1c890;text-shadow:0 2px 8px #000;margin:0}
html[data-scene-art="letter"] .clean-scene h1{font-size:clamp(30px,4vw,50px)!important;margin:4px 0 8px!important;color:#f0d9a5!important;text-shadow:0 3px 18px #000}
.letter-arrival-copy{max-width:580px;padding:8px 18px;color:#e5dac6;text-shadow:0 2px 9px #000;background:linear-gradient(90deg,transparent,rgba(3,4,6,.58),transparent)}
.letter-arrival-copy p{margin:0;line-height:1.55}
.cinematic-envelope{position:relative;width:min(390px,78vw);height:235px;margin:20px auto 8px;padding:0;border:0;background:none;cursor:pointer;perspective:900px;filter:drop-shadow(0 24px 25px rgba(0,0,0,.72));transition:transform .25s,filter .25s}
.cinematic-envelope:hover{transform:translateY(-5px) scale(1.018);filter:drop-shadow(0 28px 32px rgba(0,0,0,.78)) drop-shadow(0 0 16px rgba(230,188,99,.2))}
.envelope-back,.envelope-front,.envelope-flap,.envelope-paper{position:absolute;display:block;left:0;right:0}
.envelope-back{inset:18px 0 0;background:linear-gradient(145deg,#d4c096,#a98d61);border:2px solid #6f5633}
.envelope-paper{left:24px;right:24px;top:25px;height:170px;padding-top:35px;box-sizing:border-box;background:linear-gradient(100deg,#ead9ad,#cbb27e);border:1px solid #80663e;color:#4a3823;font:18px Cinzel;letter-spacing:2px;z-index:1;transition:transform .75s .48s cubic-bezier(.2,.8,.2,1)}
.envelope-paper small{display:block;margin-top:8px;font:8px Cinzel;letter-spacing:1.5px}
.envelope-front{bottom:0;height:185px;background:linear-gradient(28deg,#b79b6b 0 49.5%,transparent 50%),linear-gradient(-28deg,#cfb786 0 49.5%,transparent 50%);border-bottom:2px solid #6f5633;z-index:3}
.envelope-flap{top:18px;height:150px;background:#dbc79b;clip-path:polygon(0 0,100% 0,50% 100%);transform-origin:top;z-index:4;filter:drop-shadow(0 3px 2px rgba(62,41,20,.32));transition:transform .7s cubic-bezier(.3,.05,.2,1),z-index 0s .35s}
.wax-seal{position:absolute;left:50%;top:118px;transform:translate(-50%,-50%);z-index:5;width:62px;height:62px;display:grid;place-items:center;border-radius:50%;background:radial-gradient(circle at 35% 30%,#a84946,#701f25 55%,#431216);border:3px double #d18c68;color:#e7c793;font:25px Cinzel;box-shadow:0 8px 12px rgba(40,12,8,.45),inset 0 0 0 4px rgba(74,14,18,.34);transition:opacity .2s .22s,transform .25s}
.cinematic-envelope:hover .wax-seal{transform:translate(-50%,-50%) scale(1.08)}
.cinematic-envelope.opening{pointer-events:none;animation:envelopeOpenLift 1.35s ease both}
.cinematic-envelope.opening .wax-seal{opacity:0;transform:translate(-50%,-50%) scale(1.35)}
.cinematic-envelope.opening .envelope-flap{transform:rotateX(180deg);z-index:0}
.cinematic-envelope.opening .envelope-paper{transform:translateY(-115px) scale(1.06)}
.letter-open-hint{color:#e1c991;font:9px Cinzel;letter-spacing:1.7px;text-shadow:0 2px 8px #000;transition:.25s}.letter-open-hint span{margin-right:8px}.letter-open-hint.fading{opacity:0}
@keyframes envelopeOpenLift{0%{transform:translateY(0)}55%{transform:translateY(8px)}100%{transform:translateY(-10px);opacity:0}}
body.letter-opening .clean-scene:before{background:rgba(4,5,7,.28)!important}
body.letter-opened .clean-scene:before{background:rgba(4,5,7,.58)!important;backdrop-filter:blur(2px)}
body.letter-opened .clean-scene-inner{justify-content:center}
body.letter-opened .eyebrow{display:none}
body.letter-opened .clean-scene h1{margin-bottom:13px!important}
.cinematic-letter-open{position:relative;width:min(680px,86vw);box-sizing:border-box;padding:32px 48px 28px;margin:auto;background:linear-gradient(100deg,#e1cc9d,#cbb17c 48%,#dbc492);color:#332719;text-align:left;border:1px solid #7c6037;box-shadow:0 24px 70px #000, inset 0 0 45px rgba(87,59,27,.16);transform:rotate(-.35deg);animation:letterUnfold .7s cubic-bezier(.16,1,.3,1) both}
.cinematic-letter-open:before,.cinematic-letter-open:after{content:"";position:absolute;inset:9px;border:1px solid rgba(91,65,33,.35);pointer-events:none}.cinematic-letter-open:after{inset:13px;border-color:rgba(255,245,210,.25)}
.letter-crest{float:left;width:50px;height:50px;margin:0 15px 5px 0;display:grid;place-items:center;border-radius:50%;background:#77252b;color:#e7ca8f;font:23px Cinzel;border:3px double #b77b50}
.letter-school{font:19px Cinzel;letter-spacing:2px;text-align:center;padding-top:3px}.letter-school small{font-size:10px;letter-spacing:2.8px}.letter-rule{height:1px;clear:both;margin:20px 0;background:linear-gradient(90deg,transparent,#80663e 20%,#80663e 80%,transparent)}
.cinematic-letter-open p{font:16px Georgia,serif;line-height:1.6;margin:13px 0}.letter-signoff{text-align:right;margin-top:24px}.letter-continue{margin-top:14px!important;box-shadow:0 10px 35px #000}.letter-continue span{margin-left:12px}
@keyframes letterUnfold{from{opacity:0;transform:translateY(80px) scale(.72) rotate(-2deg)}to{opacity:1;transform:translateY(0) scale(1) rotate(-.35deg)}}
@media(max-width:700px){html[data-scene-art="letter"] .clean-scene-inner{padding:18px 10px!important}.cinematic-envelope{width:min(320px,80vw);height:205px}.envelope-front{height:160px}.envelope-flap{height:130px}.wax-seal{top:104px}.cinematic-letter-open{padding:25px 25px 22px}.cinematic-letter-open p{font-size:14px}}
.letter-signoff{text-align:right;margin-top:24px}
.clean-scene-inner{background:linear-gradient(145deg,rgba(6,9,13,.78),rgba(9,10,12,.9));border:1px solid rgba(196,155,83,.58);box-shadow:0 30px 100px rgba(0,0,0,.72),inset 0 0 45px rgba(198,155,79,.035);padding:30px 34px;border-radius:4px;backdrop-filter:blur(5px)}
.clean-scene-inner:before,.clean-scene-inner:after{content:"✦";position:absolute;color:#b8914e;font-size:17px}.clean-scene-inner:before{left:10px;top:8px}.clean-scene-inner:after{right:10px;bottom:8px}
.station-scene{background:rgba(6,8,10,.36);padding:15px}.ticket-card{background:linear-gradient(135deg,#d5bf8c,#a98c5d)!important;border:2px solid #594124;outline:1px solid #d7bd80;outline-offset:-8px;box-shadow:0 12px 35px #000!important}
.luggage-row button,.train-actions button,.compartment-grid button,.sweet-grid button,.dialogue-choices button{background:linear-gradient(180deg,rgba(18,21,25,.94),rgba(6,8,11,.96))!important;border-color:#6f5937!important;box-shadow:inset 0 0 0 1px rgba(211,172,93,.06);transition:.18s transform,.18s border-color,.18s box-shadow}
.luggage-row button:hover,.train-actions button:hover,.compartment-grid button:hover,.sweet-grid button:hover,.dialogue-choices button:hover{transform:translateY(-2px);border-color:#d0a85c!important;box-shadow:0 12px 30px rgba(0,0,0,.45)}
.platform-signs{filter:drop-shadow(0 8px 12px #000)}
.express-scene{min-height:230px;display:grid;align-content:end}.train-engine-art{height:150px;background:url('art/platform93.svg') center 58%/cover;border:1px solid #755c37;box-shadow:inset 0 0 60px #000}.window-landscape-art{height:240px;background:url('art/hogwarts_night.svg') center/cover;border:1px solid #6c5839;box-shadow:inset 0 0 45px #000}
.clean-topbar{background:linear-gradient(180deg,rgba(7,12,18,.98),rgba(5,8,12,.95))!important;border-bottom-color:#755b32!important}.brand-mark b{font-size:16px!important;text-shadow:0 2px 10px #000}.brand-rune{background:radial-gradient(circle,#b9934f22,#0000)}
.story-hint,.dialogue-box{background:rgba(5,7,10,.72);backdrop-filter:blur(5px)}
.barrier-run{background:url('art/platform93.svg') center/cover!important}.barrier-run:before{content:"";position:absolute;inset:0;background:rgba(2,3,5,.62)}
.barrier-run>*{position:relative;z-index:2}
@media(max-width:700px){.clean-scene-inner{padding:22px 16px}.clean-scene{background-position:center!important}}

/* V0.5.7 cinematic environment pass */
html[data-scene-art="platform"] .clean-scene{background-image:url('art/platform93_cinematic.png')!important;background-position:center center!important}
html[data-scene-art="platform"] .clean-scene:before{background:linear-gradient(90deg,rgba(2,4,7,.45),rgba(2,4,7,.08) 52%,rgba(2,4,7,.42)),linear-gradient(0deg,rgba(2,3,5,.55),transparent 60%)!important}
html[data-scene-art="platform"] .clean-scene-inner{width:min(880px,90vw)!important;margin-left:auto!important;margin-right:4vw!important;background:linear-gradient(145deg,rgba(5,8,11,.83),rgba(8,9,11,.91))!important;border-color:#9c793f!important;box-shadow:0 25px 90px #000!important}
html[data-scene-art="platform"] .station-scene{background:transparent!important}
html[data-scene-art="platform"] .platform-signs{display:none!important}
html[data-scene-art="platform"] .station-clock{display:inline-block;background:#080a0dcc;border:1px solid #826538;padding:8px 14px}
html[data-scene-art="platform"] .luggage-row button{min-width:170px}
html[data-scene-art="platform"] .ticket-card{transform:rotate(-2deg);box-shadow:0 18px 50px #000!important}
.barrier-run{background-image:url('art/platform93_cinematic.png')!important;background-position:center!important;background-size:cover!important}
@media(max-width:850px){html[data-scene-art="platform"] .clean-scene-inner{margin:20px auto!important;width:92vw!important}}

/* V0.5.8 Platform HUD rebuild */
html[data-scene-art="platform"] .clean-scene{
 background-image:url('art/platform93_final.png')!important;
 background-position:center center!important;
 background-size:cover!important;
}
html[data-scene-art="platform"] .clean-scene:before{
 background:
 linear-gradient(180deg,rgba(2,4,7,.05) 0%,rgba(2,4,7,.04) 45%,rgba(2,4,7,.88) 100%),
 linear-gradient(90deg,rgba(2,4,7,.18),transparent 34%,transparent 72%,rgba(2,4,7,.14))!important;
}
html[data-scene-art="platform"] .clean-scene-inner{
 width:min(1180px,94vw)!important;
 min-height:calc(100vh - 125px);
 display:flex!important;
 flex-direction:column;
 justify-content:flex-end;
 margin:0 auto!important;
 padding:35px 20px 28px!important;
 background:none!important;
 border:0!important;
 box-shadow:none!important;
 backdrop-filter:none!important;
 text-align:left!important;
}
html[data-scene-art="platform"] .clean-scene-inner:before,
html[data-scene-art="platform"] .clean-scene-inner:after{display:none!important}
html[data-scene-art="platform"] .eyebrow{
 color:#caa45d!important;font:10px Cinzel;letter-spacing:3px;text-shadow:0 2px 8px #000;margin-bottom:3px
}
html[data-scene-art="platform"] .clean-scene h1{
 margin:0 0 6px!important;font-size:clamp(32px,4vw,54px)!important;text-shadow:0 4px 20px #000;color:#ead3a0!important
}
.platform-copy{max-width:600px;color:#d0c6b5;text-shadow:0 2px 8px #000;font-size:14px}
.platform-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:15px;max-width:920px}
.platform-actions button{
 position:relative;text-align:left;padding:14px 16px 14px 50px;min-height:72px;
 background:linear-gradient(100deg,rgba(7,9,12,.91),rgba(13,15,18,.78))!important;
 border:1px solid rgba(173,136,72,.55)!important;color:#d8ccb6;cursor:pointer;
 backdrop-filter:blur(8px);transition:.18s
}
.platform-actions button:hover{border-color:#d4aa60!important;transform:translateY(-2px);background:rgba(12,14,17,.94)!important}
.platform-actions button.completed{border-color:#7e9361!important}
.platform-actions button.completed:after{content:"✓";position:absolute;right:12px;top:10px;color:#9fbd78}
.platform-actions b,.platform-actions small{display:block}.platform-actions b{font:13px Cinzel;color:#e3c582}.platform-actions small{font-size:11px;color:#918878;margin-top:4px}
.action-no{position:absolute;left:14px;top:17px;font:18px Cinzel;color:#766448}
.platform-whisper{margin-top:10px;color:#aaa08e;font-style:italic;font-size:12px;text-shadow:0 2px 8px #000}
html[data-scene-art="platform"] .scene-actions{text-align:right;margin-top:-42px!important}
.platform-enter{min-width:210px;background:rgba(9,11,14,.92)!important;backdrop-filter:blur(7px)}
.platform-enter span{margin-left:12px}.platform-enter:disabled{opacity:.3}.platform-enter.ready{opacity:1;box-shadow:0 0 30px rgba(204,161,83,.18)}
/* Cover the lower baked concept-overlay region with our real game HUD gradient. */
html[data-scene-art="platform"] .clean-scene:after{
 content:"";position:absolute;left:0;right:0;bottom:0;height:43%;
 background:linear-gradient(0deg,rgba(3,5,8,.96),rgba(3,5,8,.72) 48%,transparent);
 z-index:-.5;pointer-events:none
}
@media(max-width:800px){
 html[data-scene-art="platform"] .clean-scene-inner{justify-content:flex-end;padding-bottom:20px!important}
 .platform-actions{grid-template-columns:1fr}
 html[data-scene-art="platform"] .scene-actions{text-align:left;margin-top:12px!important}
}

/* V0.6.0 magical Platform entry overlay */
.magic-platform-entry{
 position:fixed!important;
 left:50%!important;top:50%!important;
 width:min(760px,82vw)!important;
 height:auto!important;
 padding:0!important;margin:0!important;
 border:0!important;background:transparent!important;
 transform:translate(-50%,-45%) scale(.68)!important;
 opacity:0!important;visibility:hidden!important;
 z-index:9000!important;cursor:pointer!important;
 filter:drop-shadow(0 25px 55px rgba(0,0,0,.85));
 transition:opacity .45s ease,transform .65s cubic-bezier(.16,1,.3,1),filter .25s ease!important;
 pointer-events:none!important;
}
.magic-platform-entry img{display:block;width:100%;height:auto;pointer-events:none}
.magic-platform-entry.visible{
 opacity:1!important;visibility:visible!important;
 transform:translate(-50%,-50%) scale(1)!important;
 pointer-events:auto!important;
 animation:platformMagicPulse 2.3s ease-in-out infinite;
}
.magic-platform-entry.visible:hover{
 filter:drop-shadow(0 20px 45px rgba(0,0,0,.9)) drop-shadow(0 0 24px rgba(221,174,76,.55));
 transform:translate(-50%,-50%) scale(1.035)!important;
}
.magic-platform-entry.departing{
 animation:none!important;opacity:0!important;
 transform:translate(-50%,-50%) scale(1.13)!important;
 pointer-events:none!important;
}
.platform-entry-ready:before{
 content:"";position:fixed;inset:64px 0 0;z-index:8998;pointer-events:none;
 background:radial-gradient(circle at center,rgba(205,157,66,.08),rgba(2,3,5,.22) 48%,rgba(2,3,5,.55));
 animation:platformDimIn .55s ease both;
}
@keyframes platformMagicPulse{
 0%,100%{filter:drop-shadow(0 25px 55px rgba(0,0,0,.85)) drop-shadow(0 0 8px rgba(217,169,72,.18))}
 50%{filter:drop-shadow(0 25px 55px rgba(0,0,0,.85)) drop-shadow(0 0 28px rgba(217,169,72,.52))}
}
@keyframes platformDimIn{from{opacity:0}to{opacity:1}}
@media(max-width:700px){.magic-platform-entry{width:94vw!important}}

/* V0.6.1 — cinematic barrier transition */
.barrier-cinematic{
 position:fixed!important;inset:64px 0 0!important;z-index:9500!important;
 overflow:hidden!important;background:#030405!important;isolation:isolate;
}
.barrier-camera{
 position:absolute;inset:-7%;
 background-image:url('art/platform93_final.png');
 background-size:cover;background-position:left 48% center;
 transform:scale(1.02);
 filter:saturate(.92) contrast(1.03) brightness(.86);
 will-change:transform,filter;
}
.barrier-cinematic.play .barrier-camera{
 animation:barrierCameraPush 2.72s cubic-bezier(.45,.02,.2,1) forwards;
}
.barrier-vignette{
 position:absolute;inset:0;z-index:2;
 background:radial-gradient(circle at 28% 48%,transparent 0 16%,rgba(1,2,3,.08) 35%,rgba(1,2,3,.72) 100%);
 pointer-events:none;
}
.barrier-shimmer{
 position:absolute;z-index:3;left:4%;top:3%;width:31%;height:94%;
 opacity:0;transform:scaleX(.55);
 background:
 radial-gradient(ellipse at center,rgba(255,226,153,.28),rgba(213,163,71,.08) 35%,transparent 70%);
 filter:blur(8px);
 mix-blend-mode:screen;pointer-events:none;
}
.barrier-cinematic.play .barrier-shimmer{animation:barrierShimmer 2.05s .35s ease-in forwards}
.barrier-fog{
 position:absolute;z-index:4;width:70vw;height:28vh;border-radius:50%;
 background:radial-gradient(ellipse,rgba(220,226,225,.28),rgba(190,200,201,.09) 43%,transparent 72%);
 filter:blur(28px);opacity:0;pointer-events:none;
}
.fog-one{left:-20%;bottom:-5%}.fog-two{right:-22%;bottom:8%}.fog-three{left:20%;top:22%;height:18vh}
.barrier-cinematic.play .fog-one{animation:fogSweepOne 2.5s .15s ease-in-out forwards}
.barrier-cinematic.play .fog-two{animation:fogSweepTwo 2.35s .25s ease-in-out forwards}
.barrier-cinematic.play .fog-three{animation:fogSweepThree 2.15s .45s ease-in-out forwards}
.barrier-sparks{
 position:absolute;z-index:5;left:8%;top:10%;width:32%;height:80%;opacity:0;
 background-image:
 radial-gradient(circle,rgba(255,220,133,.95) 0 1px,transparent 2px),
 radial-gradient(circle,rgba(255,188,73,.75) 0 1px,transparent 2px);
 background-size:47px 53px,71px 67px;background-position:4px 8px,20px 29px;
 filter:drop-shadow(0 0 5px #d8a74f);pointer-events:none;
}
.barrier-cinematic.play .barrier-sparks{animation:sparkWake 1.65s .72s ease-in-out forwards}
.barrier-flash{
 position:absolute;inset:0;z-index:6;opacity:0;
 background:radial-gradient(circle at 24% 50%,#fff7d5 0,#d9b05f 11%,rgba(167,115,43,.25) 28%,transparent 54%);
 pointer-events:none;
}
.barrier-cinematic.play .barrier-flash{animation:barrierFlash .72s 1.88s ease-out forwards}
.barrier-black{position:absolute;inset:0;z-index:7;background:#020203;opacity:0;pointer-events:none}
.barrier-cinematic.play .barrier-black{animation:barrierToBlack .48s 2.38s ease-in forwards}

@keyframes barrierCameraPush{
 0%{transform:scale(1.02) translate3d(0,0,0);filter:saturate(.92) contrast(1.03) brightness(.86)}
 55%{transform:scale(1.15) translate3d(5.5%,0,0);filter:saturate(.96) contrast(1.05) brightness(.9)}
 82%{transform:scale(1.48) translate3d(13%,0,0);filter:saturate(.75) contrast(1.12) brightness(1.05) blur(0)}
 100%{transform:scale(2.15) translate3d(22%,0,0);filter:saturate(.5) contrast(1.18) brightness(1.35) blur(4px)}
}
@keyframes barrierShimmer{
 0%{opacity:0;transform:scaleX(.5)}
 40%{opacity:.42}
 78%{opacity:.8;transform:scaleX(1.05)}
 100%{opacity:0;transform:scaleX(1.45)}
}
@keyframes fogSweepOne{0%{opacity:0;transform:translateX(-12%)}35%{opacity:.62}100%{opacity:.08;transform:translateX(95%)}}
@keyframes fogSweepTwo{0%{opacity:0;transform:translateX(20%)}35%{opacity:.5}100%{opacity:.06;transform:translateX(-85%)}}
@keyframes fogSweepThree{0%{opacity:0;transform:translateY(20%)}45%{opacity:.28}100%{opacity:0;transform:translateY(-55%)}}
@keyframes sparkWake{0%{opacity:0;transform:translateX(-15%) scale(.9)}40%{opacity:.65}85%{opacity:.92}100%{opacity:0;transform:translateX(18%) scale(1.2)}}
@keyframes barrierFlash{0%{opacity:0}35%{opacity:.12}68%{opacity:.92}100%{opacity:0}}
@keyframes barrierToBlack{0%{opacity:0}100%{opacity:1}}

@media(max-width:800px){
 .barrier-camera{background-position:25% center}
 .barrier-shimmer{left:0;width:50%}
}
@media(prefers-reduced-motion:reduce){
 .barrier-cinematic.play .barrier-camera{animation-duration:1.1s}
 .barrier-fog,.barrier-sparks,.barrier-shimmer{display:none}
 .barrier-cinematic.play .barrier-black{animation-delay:.75s}
}

/* V0.6.2 — redirect barrier camera toward the Hogwarts Express */
.barrier-camera{
 background-position:68% center!important;
 transform-origin:72% 50%!important;
}
.barrier-cinematic.play .barrier-camera{
 animation:barrierCameraPushTrain 2.72s cubic-bezier(.45,.02,.2,1) forwards!important;
}
.barrier-shimmer{
 left:auto!important;
 right:6%!important;
 width:38%!important;
}
.barrier-sparks{
 left:auto!important;
 right:7%!important;
 width:42%!important;
}
.barrier-flash{
 background:radial-gradient(circle at 76% 50%,#fff7d5 0,#d9b05f 11%,rgba(167,115,43,.25) 28%,transparent 54%)!important;
}
@keyframes barrierCameraPushTrain{
 0%{transform:scale(1.02) translate3d(0,0,0);filter:saturate(.92) contrast(1.03) brightness(.86)}
 55%{transform:scale(1.15) translate3d(-4.5%,0,0);filter:saturate(.96) contrast(1.05) brightness(.9)}
 82%{transform:scale(1.48) translate3d(-10%,0,0);filter:saturate(.75) contrast(1.12) brightness(1.05) blur(0)}
 100%{transform:scale(2.15) translate3d(-17%,0,0);filter:saturate(.5) contrast(1.18) brightness(1.35) blur(4px)}
}
@media(max-width:800px){
 .barrier-camera{background-position:67% center!important;transform-origin:70% 50%!important}
 .barrier-shimmer{right:0!important;width:55%!important}
}

/* V0.6.3 — real Platform 9¾ stage */
html[data-scene-art="realplatform"] .clean-scene{
 background-image:url('art/platform93_final.png')!important;
 background-position:72% center!important;background-size:cover!important;
}
html[data-scene-art="realplatform"] .clean-scene:before{
 background:
 linear-gradient(180deg,rgba(2,4,7,.04),rgba(2,4,7,.04) 48%,rgba(2,4,7,.9) 100%),
 linear-gradient(90deg,rgba(2,4,7,.3),transparent 40%,rgba(2,4,7,.06))!important;
}
html[data-scene-art="realplatform"] .clean-scene-inner{
 width:min(1180px,94vw)!important;min-height:calc(100vh - 125px);
 display:flex!important;flex-direction:column;justify-content:flex-end;
 margin:0 auto!important;padding:35px 20px 28px!important;
 background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-align:left!important;
}
html[data-scene-art="realplatform"] .clean-scene-inner:before,
html[data-scene-art="realplatform"] .clean-scene-inner:after{display:none!important}
html[data-scene-art="realplatform"] .eyebrow{color:#caa45d!important;font:10px Cinzel;letter-spacing:3px;text-shadow:0 2px 8px #000}
html[data-scene-art="realplatform"] .clean-scene h1{margin:0 0 5px!important;font-size:clamp(32px,4vw,54px)!important;color:#ead3a0!important;text-shadow:0 4px 20px #000}
.real-platform-copy{max-width:650px;color:#d5ccbd;text-shadow:0 2px 9px #000}
.real-platform-actions{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-width:930px;margin-top:14px}
.real-platform-actions button{
 position:relative;text-align:left;min-height:74px;padding:14px 15px 14px 50px;
 background:linear-gradient(100deg,rgba(7,9,12,.92),rgba(13,15,18,.78))!important;
 border:1px solid rgba(173,136,72,.55)!important;color:#d8ccb6;backdrop-filter:blur(8px);cursor:pointer;transition:.18s
}
.real-platform-actions button:hover{transform:translateY(-2px);border-color:#d4aa60!important}
.real-platform-actions button.completed{border-color:#809765!important}
.real-platform-actions button.completed:after{content:"✓";position:absolute;right:12px;top:10px;color:#a8c780}
.real-platform-actions b,.real-platform-actions small{display:block}.real-platform-actions b{font:13px Cinzel;color:#e3c582}.real-platform-actions small{font-size:11px;color:#918878;margin-top:4px}
.secret-discovery{
 display:flex;align-items:center;gap:12px;margin-top:12px;padding:10px 15px;
 background:rgba(10,12,15,.88);border:1px solid #716044;color:#d7c7a7;cursor:pointer;backdrop-filter:blur(8px)
}
.secret-discovery>span{font-size:24px;color:#d8ad59}.secret-discovery small,.secret-discovery b{display:block;text-align:left}.secret-discovery small{font:8px Cinzel;letter-spacing:2px;color:#9e865c}.secret-discovery b{font:11px Cinzel;margin-top:3px}
.board-express{
 position:fixed;left:50%;top:50%;z-index:7000;min-width:330px;padding:18px 55px 18px 28px;
 transform:translate(-50%,-42%) scale(.85);opacity:0;visibility:hidden;pointer-events:none;
 background:linear-gradient(135deg,rgba(12,13,16,.97),rgba(25,17,14,.96));
 border:1px solid #b58c49;color:#ecd59f;box-shadow:0 25px 70px #000,0 0 35px rgba(207,159,72,.15);
 cursor:pointer;transition:.45s cubic-bezier(.16,1,.3,1);text-align:left
}
.board-express.visible{opacity:1;visibility:visible;pointer-events:auto;transform:translate(-50%,-50%) scale(1)}
.board-express:hover{box-shadow:0 25px 70px #000,0 0 38px rgba(207,159,72,.42);transform:translate(-50%,-50%) scale(1.03)}
.board-express:disabled{display:none}.board-kicker{display:block;font:8px Cinzel;letter-spacing:3px;color:#927a51;margin-bottom:4px}.board-express b{font:18px Cinzel}.board-express i{position:absolute;right:24px;top:24px;font-size:25px;font-style:normal;color:#cda45c}

/* Boarding cinematic uses the actual environment, no prototype art */
.boarding-cinematic{position:fixed;inset:64px 0 0;z-index:9500;background:#030405;overflow:hidden;isolation:isolate}
.boarding-camera{position:absolute;inset:-6%;background:url('art/platform93_final.png') 76% center/cover;transform-origin:76% 50%;filter:brightness(.86) saturate(.95)}
.boarding-cinematic.play .boarding-camera{animation:boardCamera 2.1s cubic-bezier(.4,.02,.15,1) forwards}
.boarding-steam{position:absolute;z-index:2;width:70vw;height:45vh;border-radius:50%;background:radial-gradient(ellipse,rgba(225,229,226,.4),rgba(190,198,197,.1) 45%,transparent 72%);filter:blur(32px);opacity:0}
.steam-left{left:-25%;bottom:-8%}.steam-right{right:-28%;bottom:5%}
.boarding-cinematic.play .steam-left{animation:boardSteamL 1.9s ease-out forwards}.boarding-cinematic.play .steam-right{animation:boardSteamR 1.8s .15s ease-out forwards}
.boarding-gold{position:absolute;inset:0;z-index:3;opacity:0;background:radial-gradient(circle at 76% 48%,rgba(255,220,145,.5),rgba(189,127,49,.12) 22%,transparent 50%)}
.boarding-cinematic.play .boarding-gold{animation:boardGold 1.2s .7s ease-out forwards}
.boarding-black{position:absolute;inset:0;z-index:4;background:#020203;opacity:0}.boarding-cinematic.play .boarding-black{animation:boardBlack .48s 1.72s ease-in forwards}
@keyframes boardCamera{0%{transform:scale(1)}65%{transform:scale(1.28) translateX(-5%);filter:brightness(.93) saturate(1)}100%{transform:scale(1.75) translateX(-10%);filter:brightness(1.18) blur(3px)}}
@keyframes boardSteamL{0%{opacity:0;transform:translateX(-10%)}40%{opacity:.65}100%{opacity:.12;transform:translateX(90%)}}
@keyframes boardSteamR{0%{opacity:0;transform:translateX(15%)}45%{opacity:.55}100%{opacity:.08;transform:translateX(-75%)}}
@keyframes boardGold{0%{opacity:0}55%{opacity:.65}100%{opacity:0}}
@keyframes boardBlack{to{opacity:1}}
@media(max-width:800px){.real-platform-actions{grid-template-columns:1fr}.board-express{min-width:0;width:88vw}}

/* V0.6.5 clean-route asset safety */
.magic-platform-entry img{display:block!important;width:100%!important;height:auto!important;object-fit:contain!important}

/* V0.6.6 Hogwarts Express UI overhaul */
html[data-scene-art="express"] .clean-scene{
 background-image:url('art/express_compartment.svg')!important;background-position:center!important;background-size:cover!important
}
html[data-scene-art="express"] .clean-scene:before{
 background:linear-gradient(180deg,rgba(4,5,7,.08),rgba(4,5,7,.25) 45%,rgba(3,4,6,.88) 100%)!important
}
html[data-scene-art="express"] .clean-scene-inner{
 width:min(1120px,94vw)!important;min-height:calc(100vh - 125px);display:flex!important;flex-direction:column;justify-content:flex-end;
 margin:auto!important;padding:32px 24px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-align:left!important
}
html[data-scene-art="express"] .clean-scene-inner:before,html[data-scene-art="express"] .clean-scene-inner:after{display:none!important}
html[data-scene-art="express"] .eyebrow{font:9px Cinzel;letter-spacing:3px;color:#c39a56;text-shadow:0 2px 8px #000}
html[data-scene-art="express"] h1{font-size:clamp(30px,4vw,50px)!important;color:#ead2a0!important;text-shadow:0 4px 18px #000;margin-bottom:8px!important}
.express-intro,.trolley-copy{max-width:650px;color:#d2c8b6;text-shadow:0 2px 8px #000}
.express-doors{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:16px}
.express-doors button{position:relative;min-height:120px;padding:17px;text-align:left;background:linear-gradient(130deg,rgba(8,10,13,.94),rgba(22,14,12,.86));border:1px solid #725738;color:#d7c8ad;cursor:pointer;backdrop-filter:blur(8px);transition:.18s}
.express-doors button:hover{transform:translateY(-3px);border-color:#c99b50;box-shadow:0 15px 35px #000}
.express-doors b,.express-doors small{display:block}.express-doors b{font:14px Cinzel;color:#e3c17d;margin-top:16px}.express-doors small{font-size:11px;color:#958a79;margin-top:6px}.express-doors i{position:absolute;right:14px;bottom:12px;font:8px Cinzel;color:#a98955;letter-spacing:1px}.door-number{font:9px Cinzel;letter-spacing:2px;color:#806b4b}
.express-footnote{font-size:11px;color:#8f8575;font-style:italic;margin-top:10px}
.student-scene{display:grid;grid-template-columns:130px 1fr;gap:22px;align-items:center;max-width:760px}
.student-monogram{width:115px;height:145px;display:grid;place-items:center;background:linear-gradient(145deg,#17191c,#090a0c);border:1px solid #9c7841;box-shadow:0 18px 45px #000;font:28px Cinzel;color:#cda65e}
.student-copy p{color:#c9c0b1}.express-dialogue{padding:17px 19px;background:rgba(6,8,10,.86);border-left:2px solid #b88d49;color:#e0d2b7;font-style:italic}
.express-choices{max-width:760px;margin:12px 0 0!important}.express-sweets{max-width:900px;margin:16px 0!important}.express-sweets button{text-align:left!important}.express-sweets span{font:9px Cinzel!important;color:#8b744f}.express-sweets b{font:13px Cinzel!important;color:#e0bd78}.express-sweets small{display:block;font-size:11px;color:#918675;margin-top:5px}
@media(max-width:760px){.express-doors,.express-sweets{grid-template-columns:1fr!important}.student-scene{grid-template-columns:1fr}.student-monogram{width:90px;height:105px}}

/* V0.6.9 — dedicated post-barrier Hogwarts Express platform art */
html[data-scene-art="realplatform"] .clean-scene{
 background-image:url('art/real_platform_express.png')!important;
 background-position:center center!important;background-size:cover!important;
}
html[data-scene-art="realplatform"] .clean-scene:before{
 background:
 linear-gradient(180deg,rgba(2,3,5,.16),rgba(2,3,5,.08) 42%,rgba(2,3,5,.94) 100%),
 linear-gradient(90deg,rgba(2,3,5,.28),transparent 44%,rgba(2,3,5,.08))!important;
}
/* hide the lower baked concept UI beneath our real HTML HUD */
html[data-scene-art="realplatform"] .clean-scene:after{
 content:"";position:absolute;left:0;right:0;bottom:0;height:46%;
 background:linear-gradient(0deg,rgba(3,5,8,.99) 0%,rgba(3,5,8,.91) 42%,rgba(3,5,8,.38) 76%,transparent 100%);
 z-index:-.5;pointer-events:none
}
.tutorial-reset-card{
 max-width:680px;margin:18px 0;padding:18px 20px;
 background:rgba(8,10,13,.9);border:1px solid #715a38;color:#cfc3ae
}
.tutorial-reset-card b{display:block;font:14px Cinzel;color:#e0bf7c;margin-bottom:5px}
.tutorial-reset-card p{font-size:12px;color:#9d9383;margin:0 0 12px}
.reset-tutorial-btn{background:#17120f;border:1px solid #9d7540;color:#e1c58b;padding:11px 16px;font:10px Cinzel;letter-spacing:1px;cursor:pointer}
.reset-tutorial-btn:hover{border-color:#d1a45d;box-shadow:0 0 20px rgba(209,164,93,.15)}

/* V0.7.0 visible tutorial reset on completed world screen */
.world-reset-row{display:flex!important;justify-content:center!important;margin:14px auto 0!important;width:100%!important}
.world-reset-row .reset-tutorial-btn{
 display:inline-block!important;visibility:visible!important;opacity:1!important;
 padding:10px 18px!important;background:rgba(20,14,11,.94)!important;
 border:1px solid #9d7540!important;color:#e2c98f!important;
 font:9px Cinzel!important;letter-spacing:1.3px!important;cursor:pointer!important;
}
.world-reset-row .reset-tutorial-btn:hover{border-color:#d3aa62!important;box-shadow:0 0 22px rgba(211,170,98,.2)!important}

/* V0.7.1 — permanent development replay control */
.permanent-journey-reset{
 position:fixed!important;right:18px!important;bottom:18px!important;z-index:20000!important;
 display:block!important;visibility:visible!important;opacity:.78!important;
 padding:9px 13px!important;background:rgba(12,10,9,.94)!important;
 border:1px solid #8f6a39!important;color:#d9bd84!important;
 font:8px Cinzel!important;letter-spacing:1.2px!important;cursor:pointer!important;
 box-shadow:0 8px 28px rgba(0,0,0,.55)!important;transition:.18s!important;
}
.permanent-journey-reset:hover{opacity:1!important;border-color:#d1a45b!important;transform:translateY(-2px)!important}
@media(max-width:650px){.permanent-journey-reset{right:10px!important;bottom:10px!important}}

/* V0.7.6 — cinematic login and registration artwork */
#auth{
 min-height:100vh!important;
 box-sizing:border-box;
 background-image:
  linear-gradient(90deg,rgba(2,5,10,.44),rgba(2,5,10,.16) 43%,rgba(2,5,10,.38)),
  linear-gradient(0deg,rgba(2,4,8,.58),transparent 48%,rgba(2,4,8,.22)),
  url('art/login_castle.png')!important;
 background-position:center center!important;
 background-size:cover!important;
 background-repeat:no-repeat!important;
 overflow:auto;
 padding:34px 20px 48px;
 isolation:isolate;
}
#auth:before{
 content:"";position:absolute;inset:0;z-index:0;pointer-events:none;
 background:radial-gradient(circle at 50% 50%,transparent 0 24%,rgba(1,3,7,.08) 54%,rgba(1,2,5,.52) 100%);
}
#auth .castle-silhouette{display:none!important}
#auth .login-card{
 position:relative;z-index:2;
 width:min(455px,92vw)!important;
 box-sizing:border-box;
 padding:31px 38px 34px!important;
 background:linear-gradient(145deg,rgba(8,13,21,.82),rgba(5,7,12,.92))!important;
 border:1px solid rgba(199,157,80,.58)!important;
 box-shadow:0 35px 110px rgba(0,0,0,.82),inset 0 0 42px rgba(213,173,93,.035)!important;
 backdrop-filter:blur(10px) saturate(.8);
 border-radius:3px;
}
#auth .login-card:before,#auth .login-card:after{content:"✦";position:absolute;color:#bd9653;font-size:14px}
#auth .login-card:before{left:11px;top:9px}#auth .login-card:after{right:11px;bottom:9px}
#auth .seal{width:61px;height:70px;background:linear-gradient(145deg,#20180e,#0b0c0f)!important;box-shadow:0 8px 24px #000,0 0 22px rgba(215,176,92,.11)}
#auth .overline{margin:11px 0 10px;color:#b6a17c;text-shadow:0 2px 7px #000}
#auth .login-card h1{font-size:clamp(31px,5vw,48px)!important;margin:5px 0 7px;text-shadow:0 4px 18px #000}
#auth .login-card p{margin:6px 0 12px;font-size:16px;color:#d1c8b7;text-shadow:0 2px 8px #000}
#auth .tabs{margin:19px 0 10px}
#auth input{box-sizing:border-box;background:rgba(3,6,10,.78)!important;border-color:rgba(137,111,69,.62)!important;box-shadow:inset 0 3px 12px rgba(0,0,0,.32)}
#auth input:focus{border-color:#d1a85d!important;box-shadow:0 0 0 2px rgba(198,153,72,.08),inset 0 3px 12px rgba(0,0,0,.25)}
#authForm .primary{background:linear-gradient(180deg,#9a7639,#513716)!important;box-shadow:0 9px 24px rgba(0,0,0,.38);transition:.18s}
#authForm .primary:hover{transform:translateY(-1px);filter:brightness(1.1)}
@media(max-width:650px){#auth{background-position:58% center!important;padding:18px 12px 38px}#auth .login-card{padding:25px 22px 29px!important;backdrop-filter:blur(8px)}}

/* V0.7.7 — immersive Diagon Alley shopping interface */
html[data-scene-art="diagon"] .clean-scene{
 background-image:url('art/diagon_alley_winter.png')!important;
 background-position:center center!important;background-size:cover!important;
}
html[data-scene-art="diagon"] .clean-stage{scrollbar-width:none!important;-ms-overflow-style:none!important}
html[data-scene-art="diagon"] .clean-stage::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
html[data-scene-art="diagon"] .clean-scene:before{
 background:linear-gradient(180deg,rgba(2,3,5,.06),rgba(2,3,5,.02) 42%,rgba(2,3,5,.88) 100%),linear-gradient(90deg,rgba(2,3,5,.2),transparent 34%,transparent 70%,rgba(2,3,5,.18))!important;
}
html[data-scene-art="diagon"] .clean-scene-inner{
 width:min(1220px,95vw)!important;min-height:calc(100vh - 120px);box-sizing:border-box;
 display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;
 margin:0 auto!important;padding:38px 20px 25px!important;background:none!important;border:0!important;
 box-shadow:none!important;backdrop-filter:none!important;text-align:left!important;
}
html[data-scene-art="diagon"] .clean-scene-inner:before,html[data-scene-art="diagon"] .clean-scene-inner:after{display:none!important}
html[data-scene-art="diagon"] .eyebrow{font:9px Cinzel;letter-spacing:3px;color:#d6b66f;text-shadow:0 2px 8px #000;margin:0 0 2px}
html[data-scene-art="diagon"] .clean-scene h1{font-size:clamp(34px,4.6vw,60px)!important;margin:0 0 4px!important;color:#f0d6a0!important;text-shadow:0 4px 20px #000}
.diagon-intro{max-width:650px;color:#e0d5c2;text-shadow:0 2px 9px #000;font-size:14px}.diagon-intro p{margin:0 0 12px;line-height:1.55}
.diagon-shopping{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;max-width:1020px}
.diagon-shopping button{position:relative;display:grid;grid-template-columns:36px 1fr auto;align-items:center;gap:10px;min-height:86px;padding:13px 14px;text-align:left;color:#d9cdb7;background:linear-gradient(105deg,rgba(6,8,11,.94),rgba(16,16,17,.78))!important;border:1px solid rgba(178,139,70,.58)!important;backdrop-filter:blur(8px);box-shadow:0 12px 28px rgba(0,0,0,.32);transition:.2s}
.diagon-shopping button:hover{transform:translateY(-3px);border-color:#e0b75f!important;box-shadow:0 16px 34px rgba(0,0,0,.5)}
.diagon-shopping button.collected{border-color:#8ea068!important;background:linear-gradient(105deg,rgba(8,16,12,.94),rgba(13,18,14,.82))!important}
.shop-number{font:20px Cinzel;color:#826b43}.diagon-shopping small,.diagon-shopping b,.diagon-shopping em{display:block}.diagon-shopping small{font:8px Cinzel;letter-spacing:1.5px;color:#9f8558}.diagon-shopping b{font:14px Cinzel;color:#efd49d;margin:3px 0}.diagon-shopping em{font:11px Georgia,serif;color:#9e9586;font-style:normal}.diagon-shopping button>i{font:8px Cinzel;letter-spacing:1px;color:#caa55e;font-style:normal}.diagon-shopping button.collected>i{color:#a9c47f}
.diagon-progress{display:flex;justify-content:space-between;align-items:center;max-width:1020px;margin-top:9px;padding:9px 13px;background:rgba(4,6,9,.78);border-left:2px solid #a47d3e;box-sizing:border-box}.diagon-progress span,.diagon-progress b{display:block}.diagon-progress span{font:8px Cinzel;letter-spacing:1.5px;color:#c39d5d}.diagon-progress b{margin-top:3px;font:12px Georgia,serif;color:#c6bba8}.shopping-dots{display:flex;gap:6px}.shopping-dots i{width:23px;height:3px;background:#3e392f;transition:.2s}.shopping-dots i.filled{background:#b9914c;box-shadow:0 0 9px rgba(214,171,88,.42)}
.ollivanders-unlock{align-self:flex-end;display:grid;grid-template-columns:auto auto auto;align-items:center;gap:14px;margin-top:10px;padding:12px 17px;background:rgba(7,8,10,.9)!important;border:1px solid #655235!important;color:#8e816b;opacity:.42;transition:.25s}.ollivanders-unlock span{font:8px Cinzel;letter-spacing:1.5px}.ollivanders-unlock b{font:11px Cinzel;color:#c0ad87}.ollivanders-unlock i{font-style:normal;font-size:18px}.ollivanders-unlock.ready{opacity:1;border-color:#c89b4e!important;color:#d4ad64;box-shadow:0 0 28px rgba(202,157,76,.15)}.ollivanders-unlock.ready b{color:#eed39a}.ollivanders-unlock.ready:hover{transform:translateX(3px);background:rgba(18,14,9,.94)!important}
@media(max-width:850px){html[data-scene-art="diagon"] .clean-scene-inner{padding:22px 14px!important}.diagon-shopping{grid-template-columns:1fr}.diagon-shopping button{min-height:70px}.ollivanders-unlock{align-self:stretch;justify-content:center}.diagon-progress{gap:10px}}

/* V0.7.8 — Diagon Alley focus panel and magical collection feedback */
.diagon-shadow-box{
 position:relative;width:min(1110px,100%);box-sizing:border-box;padding:22px 24px 18px;
 background:linear-gradient(118deg,rgba(4,6,9,.87),rgba(9,9,10,.73) 62%,rgba(5,7,9,.87));
 border:1px solid rgba(196,151,75,.5);border-left:3px solid #b58a45;
 box-shadow:0 28px 80px rgba(0,0,0,.76),0 10px 30px rgba(0,0,0,.52),inset 0 0 50px rgba(210,163,78,.035);
 backdrop-filter:blur(10px) saturate(.82);overflow:visible;
}
.diagon-shadow-box:before,.diagon-shadow-box:after{content:"✦";position:absolute;color:#bd934d;font-size:12px;text-shadow:0 0 9px rgba(230,185,93,.4)}
.diagon-shadow-box:before{left:9px;top:7px}.diagon-shadow-box:after{right:9px;bottom:7px}
.diagon-shadow-box .diagon-shopping,.diagon-shadow-box .diagon-progress{max-width:none}
.diagon-shadow-box .ollivanders-unlock{margin-left:auto}
.diagon-spark-burst{position:fixed;width:1px;height:1px;z-index:30000;pointer-events:none}
.diagon-spark-burst i{position:absolute;left:0;top:0;width:var(--spark-size);height:var(--spark-size);border-radius:50%;background:#ffe7a3;box-shadow:0 0 6px #f7c65c,0 0 14px rgba(255,198,75,.9);animation:diagonSparkFly .72s var(--spark-delay) cubic-bezier(.1,.65,.25,1) both}
.diagon-spark-burst i:nth-child(3n){border-radius:0;transform:rotate(45deg);background:#fff4c4}
.diagon-spark-burst i:nth-child(4n){background:#bfe6a2;box-shadow:0 0 8px #9fc67b}
@keyframes diagonSparkFly{0%{opacity:0;translate:0 0;scale:.25}18%{opacity:1;scale:1.25}100%{opacity:0;translate:var(--spark-x) var(--spark-y);scale:.12}}
body.diagon-magic-zoom .clean-scene{animation:diagonCameraPulse .72s cubic-bezier(.2,.65,.2,1)}
body.diagon-magic-zoom,body.diagon-magic-zoom #game,body.diagon-magic-zoom .clean-stage{overflow:hidden!important}
body.diagon-magic-zoom .clean-stage{overscroll-behavior:none}
@keyframes diagonCameraPulse{0%{transform:scale(1)}38%{transform:scale(1.016)}100%{transform:scale(1)}}
body.diagon-magic-zoom .diagon-shadow-box{animation:diagonPanelGlow .72s ease}
@keyframes diagonPanelGlow{0%,100%{box-shadow:0 28px 80px rgba(0,0,0,.76),0 10px 30px rgba(0,0,0,.52),inset 0 0 50px rgba(210,163,78,.035)}40%{box-shadow:0 30px 90px rgba(0,0,0,.8),0 0 28px rgba(225,177,81,.22),inset 0 0 65px rgba(230,182,88,.1)}}
@media(max-width:850px){.diagon-shadow-box{padding:18px 14px 15px}.diagon-spark-burst i:nth-child(n+13){display:none}}
@media(prefers-reduced-motion:reduce){.diagon-spark-burst i,body.diagon-magic-zoom .clean-scene,body.diagon-magic-zoom .diagon-shadow-box{animation-duration:.01ms!important}}

/* V0.7.10 — cinematic passage into Ollivanders */
.ollivanders-transition{position:fixed;inset:0;z-index:50000;display:grid;place-items:center;background:radial-gradient(circle at center,#17120b 0,#060708 48%,#020304 100%);opacity:0;pointer-events:auto;transition:opacity .9s ease}
.ollivanders-transition.active{opacity:1}.ollivanders-transition.reveal{opacity:0;pointer-events:none;transition-duration:.85s}
.ollivanders-transition>div{text-align:center;color:#d8be83;transform:translateY(12px);opacity:0;transition:opacity .55s .42s,transform .7s .38s}
.ollivanders-transition.active>div{opacity:1;transform:translateY(0)}.ollivanders-transition.reveal>div{opacity:0;transform:translateY(-8px);transition-delay:0s}
.ollivanders-transition span,.ollivanders-transition b,.ollivanders-transition small{display:block;font-family:Cinzel}.ollivanders-transition span{font-size:9px;letter-spacing:4px;color:#88785d}.ollivanders-transition b{margin:10px 0 8px;font-size:clamp(38px,7vw,78px);font-weight:500;letter-spacing:6px;color:#ead19a;text-shadow:0 5px 28px #000,0 0 28px rgba(210,164,75,.12)}.ollivanders-transition small{font-size:9px;letter-spacing:3px;color:#9b8969}.ollivanders-transition i{display:block;width:0;height:1px;margin:0 auto 12px;background:linear-gradient(90deg,transparent,#c99f55,transparent);transition:width .7s .65s}.ollivanders-transition.active i{width:min(360px,65vw)}
@media(prefers-reduced-motion:reduce){.ollivanders-transition,.ollivanders-transition>div,.ollivanders-transition i{transition-duration:.01ms!important;transition-delay:0s!important}}

/* V0.8.0 — interactive Ollivanders wand selection */
html[data-scene-art="ollivanders"] .clean-scene{background-image:url('art/ollivanders_interior.png')!important;background-position:center center!important;background-size:cover!important;overflow:hidden!important}
html[data-scene-art="ollivanders"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,3,4,.08),rgba(2,3,4,.02) 38%,rgba(2,3,4,.88) 100%),linear-gradient(90deg,rgba(1,2,3,.23),transparent 33%,transparent 72%,rgba(1,2,3,.2))!important}
html[data-scene-art="ollivanders"] .clean-scene-inner{width:min(1220px,95vw)!important;min-height:calc(100vh - 120px);box-sizing:border-box;display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;margin:0 auto!important;padding:38px 20px 25px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-align:left!important}
html[data-scene-art="ollivanders"] .clean-scene-inner:before,html[data-scene-art="ollivanders"] .clean-scene-inner:after{display:none!important}
html[data-scene-art="ollivanders"] .eyebrow{font:9px Cinzel;letter-spacing:3px;color:#d0aa65;text-shadow:0 2px 8px #000;margin:0 0 3px}
html[data-scene-art="ollivanders"] .clean-scene h1{font-size:clamp(32px,4.4vw,56px)!important;margin:0 0 5px!important;color:#efd49e!important;text-shadow:0 4px 22px #000}
.ollivanders-copy{max-width:690px;color:#ded3bf;text-shadow:0 2px 9px #000}.ollivanders-copy p{margin:0 0 3px;font-size:14px}.ollivanders-copy small{font:11px Georgia,serif;color:#aea28f;font-style:italic}
.wand-options{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}
.wand-options>button{position:relative;display:grid;grid-template-columns:34px 60px 1fr;align-items:center;gap:10px;min-height:122px;padding:13px 14px;text-align:left;background:linear-gradient(110deg,rgba(6,7,9,.95),rgba(18,14,10,.84))!important;border:1px solid rgba(157,118,60,.54)!important;color:#d7c8ac;box-shadow:0 14px 34px rgba(0,0,0,.45);backdrop-filter:blur(8px);transition:.2s;overflow:hidden}
.wand-options>button:hover{transform:translateY(-3px);border-color:#d5a958!important}.wand-options>button.selected{border-color:#e0b862!important;box-shadow:0 16px 38px rgba(0,0,0,.55),inset 0 0 28px rgba(213,165,76,.08)}.wand-options>button.rejected{border-color:#7f4b43!important;opacity:.65}.wand-options>button.matched{border-color:#d9b35d!important;background:linear-gradient(110deg,rgba(20,15,7,.97),rgba(29,22,10,.88))!important}
.wand-number{font:18px Cinzel;color:#695b43}.wand-illustration{position:relative;display:block;width:54px;height:78px}.wand-illustration i{position:absolute;left:24px;top:4px;width:6px;height:70px;border-radius:6px 6px 2px 2px;background:linear-gradient(90deg,#4a2b17,#b17a43 42%,#3a1e10);transform:rotate(31deg);box-shadow:0 0 0 1px #27150d,8px 9px 14px rgba(0,0,0,.65)}.wand-illustration i:after{content:"";position:absolute;left:-2px;bottom:4px;width:10px;height:22px;border-radius:50%;background:#5e351d;box-shadow:inset 2px 0 #9a6637}
.wand-illustration img{position:absolute;left:50%;top:50%;display:block;width:115px;height:115px;object-fit:contain;transform:translate(-50%,-50%) rotate(-4deg);filter:drop-shadow(0 8px 8px rgba(0,0,0,.8));transition:transform .22s,filter .22s}.wand-options>button:hover .wand-illustration img{transform:translate(-50%,-50%) rotate(-4deg) scale(1.08);filter:drop-shadow(0 10px 10px #000) drop-shadow(0 0 8px rgba(224,178,84,.25))}.wand-options>button.selected .wand-illustration img{transform:translate(-50%,-50%) rotate(-4deg) scale(1.12);filter:drop-shadow(0 10px 10px #000) drop-shadow(0 0 12px rgba(235,190,96,.42))}
.wand-options small,.wand-options b,.wand-options em,.wand-options p{display:block}.wand-options small{font:9px Cinzel;letter-spacing:1.4px;color:#c39854}.wand-options b{font:13px Cinzel;color:#ead09b;margin:3px 0}.wand-options em{font:10px Georgia,serif;color:#9e927e;font-style:normal}.wand-options p{font:11px Georgia,serif;color:#b7ad9c;line-height:1.35;margin:6px 0 0}.wand-options strong{position:absolute;right:12px;top:10px;font:7px Cinzel;letter-spacing:1px;color:#a58755}.wand-options button.selected strong{color:#ecc66e}.wand-options button.rejected strong{color:#c47b6e}.wand-options button.matched strong{color:#f1d07f}
.wand-reaction{margin-top:9px;min-height:19px;padding:9px 12px;background:rgba(3,5,7,.78);border-left:2px solid #9f793f;color:#c9bda8;font:12px Georgia,serif;box-sizing:border-box}
.test-wand-button{align-self:flex-end;display:grid;grid-template-columns:auto auto auto;align-items:center;gap:13px;margin-top:9px;padding:11px 16px;background:rgba(6,7,9,.9)!important;border:1px solid #57482f!important;color:#766c5b;opacity:.42;transition:.2s}.test-wand-button span{font:7px Cinzel;letter-spacing:1.4px}.test-wand-button b{font:11px Cinzel;color:#a99a7e}.test-wand-button i{font-style:normal;color:#c39b52}.test-wand-button.ready{opacity:1;border-color:#c2964d!important}.test-wand-button.ready b{color:#ebcd91}.test-wand-button.ready:hover{transform:translateY(-2px);box-shadow:0 0 25px rgba(214,168,79,.15)}
.wand-loading{grid-column:1/-1;padding:35px;background:rgba(4,6,8,.8);border:1px solid #5d4b30;text-align:center;color:#c2aa7c;font:11px Cinzel;letter-spacing:2px}
body.wand-testing .clean-scene{animation:wandShopTest .78s ease}body.wand-testing .clean-stage{overflow:hidden!important}.wand-options>button.testing{animation:wandCardTest .78s ease}
@keyframes wandShopTest{0%,100%{filter:none;transform:scale(1)}32%{filter:brightness(1.28) sepia(.12);transform:scale(1.012)}58%{filter:brightness(.85)}}
@keyframes wandCardTest{0%,100%{box-shadow:0 16px 38px rgba(0,0,0,.55)}35%{box-shadow:0 0 42px rgba(238,196,102,.72),inset 0 0 30px rgba(255,223,137,.14);transform:translateY(-4px) scale(1.015)}}
.wand-match-reveal{align-self:center;width:min(650px,88vw);box-sizing:border-box;padding:30px;text-align:center;background:linear-gradient(145deg,rgba(8,8,8,.9),rgba(22,16,8,.87));border:1px solid #c69a4d;box-shadow:0 28px 85px #000,0 0 45px rgba(220,170,76,.15);backdrop-filter:blur(9px);animation:wandMatchArrive .8s cubic-bezier(.16,1,.3,1) both}.chosen-wand{position:relative;display:block;width:210px;height:85px;margin:0 auto 5px}.chosen-wand i{position:absolute;left:99px;top:-55px;width:9px;height:205px;border-radius:8px 8px 3px 3px;background:linear-gradient(90deg,#3f2515,#bc8650 43%,#2d170d);transform:rotate(76deg);box-shadow:0 0 0 1px #28160d,0 0 32px rgba(248,198,94,.55)}.chosen-wand i:before{content:"";position:absolute;left:4px;top:-3px;width:3px;height:3px;border-radius:50%;background:#fff1b2;box-shadow:0 0 12px 5px #eabd60}.wand-match-reveal>small{font:9px Cinzel;letter-spacing:3px;color:#bc9554}.wand-match-reveal h2{font:500 clamp(24px,4vw,39px) Cinzel;color:#efd39a;margin:7px}.wand-match-reveal>p{color:#b8aa91;font:13px Cinzel}.wand-match-reveal>div{margin-top:16px;padding-top:14px;border-top:1px solid #57452c;color:#cfc3ae;font-style:italic}.wand-chosen .scene-actions{text-align:center}
.chosen-wand img{position:absolute;left:50%;top:50%;width:310px;height:210px;object-fit:contain;transform:translate(-50%,-50%) rotate(-7deg);filter:drop-shadow(0 16px 13px #000) drop-shadow(0 0 18px rgba(247,198,94,.58));animation:chosenWandGlow 2.1s ease-in-out infinite}@keyframes chosenWandGlow{0%,100%{filter:drop-shadow(0 16px 13px #000) drop-shadow(0 0 12px rgba(247,198,94,.4));transform:translate(-50%,-50%) rotate(-7deg) scale(1)}50%{filter:drop-shadow(0 16px 13px #000) drop-shadow(0 0 28px rgba(247,198,94,.78));transform:translate(-50%,-50%) rotate(-7deg) scale(1.035)}}
@keyframes wandMatchArrive{from{opacity:0;transform:translateY(55px) scale(.88)}to{opacity:1;transform:none}}
@media(max-width:850px){html[data-scene-art="ollivanders"] .clean-scene{overflow:auto!important}html[data-scene-art="ollivanders"] .clean-scene-inner{padding:22px 13px!important}.wand-options{grid-template-columns:1fr}.wand-options>button{min-height:98px}.test-wand-button{align-self:stretch;justify-content:center}}
@media(prefers-reduced-motion:reduce){body.wand-testing .clean-scene,.wand-options>button.testing,.wand-match-reveal{animation-duration:.01ms!important}}
@media(prefers-reduced-motion:reduce){.chosen-wand img{animation:none!important}}

/* V0.8.3 — cinematic wand result and Magical Menagerie companion shop */
.wand-match-reveal{width:min(850px,92vw);display:grid;grid-template-columns:minmax(270px,.9fr) minmax(300px,1.1fr);align-items:center;gap:0;padding:0;overflow:hidden;background:linear-gradient(120deg,rgba(5,6,7,.94),rgba(20,14,8,.9));border-color:rgba(201,157,79,.72)}
.wand-match-reveal>.wand-match-art{position:relative;min-height:290px;display:grid;place-items:center;margin:0;padding:0;background:radial-gradient(circle at 50% 48%,rgba(209,161,70,.16),transparent 55%),linear-gradient(145deg,rgba(41,29,15,.35),rgba(2,3,4,.7));border:0;border-right:1px solid rgba(173,133,67,.38);font-style:normal}
.wand-match-art:before,.wand-match-art:after{content:"";position:absolute;width:6px;height:6px;border-radius:50%;background:#f3cf7c;box-shadow:0 0 18px #e4ad4d;animation:wandDust 2.4s ease-in-out infinite}.wand-match-art:before{left:22%;top:28%}.wand-match-art:after{right:20%;bottom:25%;animation-delay:-1.1s}.wand-match-art>i{position:absolute;right:23px;top:20px;color:#8e7041;font-style:normal}
.wand-match-art .chosen-wand{width:280px;height:140px;margin:0}.wand-match-art .chosen-wand img{width:390px;height:270px}
.wand-match-reveal>.wand-match-copy{margin:0;padding:35px 38px;border:0;text-align:left;font-style:normal}.wand-match-copy>small{font:8px Cinzel;letter-spacing:3px;color:#bd9651}.wand-match-copy h2{font:500 clamp(28px,4vw,44px) Cinzel;color:#f0d59e;margin:8px 0 0}.wand-match-copy h3{font:400 16px Cinzel;color:#c5a568;margin:2px 0 16px}.wand-match-copy>p{font:10px Cinzel;letter-spacing:1.2px;color:#9f927c}.wand-match-copy>p span{padding:0 7px;color:#68573c}.wand-match-copy blockquote{margin:22px 0 0;padding:18px 0 0;border-top:1px solid #58462d;color:#c9baa2;font:italic 14px/1.55 Georgia,serif}
.wand-match-actions{display:flex;justify-content:center;gap:9px;flex-wrap:wrap}.wand-match-actions button{min-width:210px}.wand-match-actions .secondary{background:rgba(5,6,8,.82)}
@keyframes wandDust{0%,100%{opacity:.25;transform:translateY(7px) scale(.7)}50%{opacity:1;transform:translateY(-9px) scale(1)}}

html[data-scene-art="companion"] .clean-scene{background-image:url('art/magical_menagerie.png')!important;background-position:center center!important;background-size:cover!important;overflow:hidden!important}
html[data-scene-art="companion"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,3,4,.07),rgba(2,3,4,.02) 38%,rgba(2,3,4,.9) 100%),linear-gradient(90deg,rgba(2,3,4,.28),transparent 30%,transparent 74%,rgba(2,3,4,.23))!important}
html[data-scene-art="companion"] .clean-scene-inner{width:min(1180px,95vw)!important;min-height:calc(100vh - 120px);box-sizing:border-box;display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;margin:0 auto!important;padding:34px 18px 24px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-align:left!important}
html[data-scene-art="companion"] .clean-scene-inner:before,html[data-scene-art="companion"] .clean-scene-inner:after{display:none!important}html[data-scene-art="companion"] .eyebrow{font:9px Cinzel;letter-spacing:3px;color:#d0a85e;text-shadow:0 2px 8px #000;margin:0}html[data-scene-art="companion"] .clean-scene h1{font-size:clamp(31px,4vw,53px)!important;margin:2px 0 3px!important;color:#efd39b!important;text-shadow:0 4px 22px #000}
.companion-copy{max-width:670px;color:#ded2bc;text-shadow:0 2px 8px #000}.companion-copy p{font-size:14px;margin:0 0 3px}.companion-copy small{font:italic 11px Georgia,serif;color:#b5aa98}
.companion-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:13px}.companion-grid>button{position:relative;display:grid;grid-template-columns:62px 1fr;grid-template-rows:auto auto auto;column-gap:13px;min-height:126px;padding:15px 15px 13px;text-align:left;background:linear-gradient(120deg,rgba(5,7,8,.95),rgba(22,15,9,.88))!important;border:1px solid rgba(160,119,57,.56)!important;color:#d4c5aa;box-shadow:0 14px 34px rgba(0,0,0,.5);backdrop-filter:blur(8px);transition:.2s;overflow:hidden}.companion-grid>button:hover{transform:translateY(-3px);border-color:#d1a453!important}.companion-grid>button.selected{border-color:#e1b761!important;box-shadow:0 16px 40px rgba(0,0,0,.6),inset 0 0 28px rgba(217,168,76,.1)}
.companion-mark{grid-row:1/4;align-self:center;display:grid;place-items:center;width:58px;height:72px;font-size:42px;filter:drop-shadow(0 8px 8px #000)}.companion-grid small{font:7px Cinzel;letter-spacing:1.5px;color:#a78247}.companion-grid b{font:15px Cinzel;color:#ecd19b;margin:4px 0 0}.companion-grid p{font:11px/1.35 Georgia,serif;color:#aaa08f;margin:5px 0 0}.companion-grid strong{position:absolute;right:11px;top:10px;font:7px Cinzel;letter-spacing:1px;color:#806b47}.companion-grid>button.selected strong{color:#efc66e}
.companion-reaction{margin-top:9px;padding:9px 12px;min-height:19px;background:rgba(3,5,6,.79);border-left:2px solid #a1783d;color:#c9bca6;font:12px Georgia,serif}.companion-confirm{align-self:center;min-width:320px}.companion-confirm:disabled{opacity:.42;cursor:not-allowed}
@media(max-width:850px){.wand-match-reveal{grid-template-columns:1fr}.wand-match-reveal>.wand-match-art{min-height:190px;border-right:0;border-bottom:1px solid rgba(173,133,67,.38)}.wand-match-art .chosen-wand img{width:310px;height:210px}.wand-match-reveal>.wand-match-copy{padding:22px 24px}.companion-grid{grid-template-columns:1fr}.companion-grid>button{min-height:105px}html[data-scene-art="companion"] .clean-scene{overflow:auto!important}html[data-scene-art="companion"] .clean-scene-inner{padding:24px 13px!important}}
@media(max-width:520px){.wand-match-actions button,.companion-confirm{width:100%;min-width:0}.companion-grid>button{grid-template-columns:50px 1fr}.companion-mark{width:48px;font-size:35px}}
@media(prefers-reduced-motion:reduce){.wand-match-art:before,.wand-match-art:after{animation:none!important}}

/* V0.8.4 — overflow lock, illustrated companions and departure transition */
html[data-scene-art="ollivanders"] .clean-stage,html[data-scene-art="companion"] .clean-stage{overflow:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important;overscroll-behavior:none}
html[data-scene-art="ollivanders"] .clean-stage::-webkit-scrollbar,html[data-scene-art="companion"] .clean-stage::-webkit-scrollbar{width:0!important;height:0!important;display:none!important}
body.diagon-magic-zoom{position:fixed!important;inset:0!important;width:100%!important;height:100%!important;overscroll-behavior:none!important}
.companion-shadow-panel{position:relative;margin-top:10px;padding:16px 18px 13px;background:linear-gradient(105deg,rgba(3,5,6,.93),rgba(13,10,7,.83) 55%,rgba(3,5,6,.9));border:1px solid rgba(139,104,53,.45);box-shadow:0 24px 70px rgba(0,0,0,.82),0 8px 24px rgba(0,0,0,.55),inset 0 0 50px rgba(212,160,70,.035);backdrop-filter:blur(10px) saturate(.85)}
.companion-shadow-panel:before{content:"";position:absolute;inset:-25px -36px;background:radial-gradient(ellipse at center,rgba(0,0,0,.5),transparent 72%);z-index:-1;pointer-events:none}
.companion-shadow-panel .companion-grid{margin-top:11px}
.companion-grid>button{grid-template-columns:104px 1fr;min-height:142px;padding:13px 14px}
.companion-mark{grid-row:1/4;width:100px;height:112px;font-size:0;overflow:visible}.companion-mark img{display:block;width:118px;height:118px;object-fit:contain;filter:drop-shadow(0 12px 9px rgba(0,0,0,.9));transition:transform .22s,filter .22s}.companion-grid>button:hover .companion-mark img{transform:translateY(-4px) scale(1.06);filter:drop-shadow(0 15px 10px #000) drop-shadow(0 0 10px rgba(229,178,81,.25))}.companion-grid>button.selected .companion-mark img{transform:translateY(-4px) scale(1.08);filter:drop-shadow(0 15px 10px #000) drop-shadow(0 0 16px rgba(238,190,91,.48))}
.departure-transition{position:fixed;inset:0;z-index:90000;display:grid;place-items:center;background:radial-gradient(circle at 50% 45%,#1d160e 0,#070809 48%,#020304 100%);opacity:0;pointer-events:auto;overflow:hidden;transition:opacity .7s ease}.departure-transition:before{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 20%,rgba(220,174,89,.05) 44%,transparent 60%);transform:translateX(-100%);animation:departureLight 2s .25s ease forwards}.departure-transition.active{opacity:1}.departure-card{width:min(650px,88vw);text-align:center;color:#d8c7a8;transform:translateY(18px);opacity:0;transition:opacity .55s .35s,transform .7s .3s}.departure-transition.active .departure-card{opacity:1;transform:none}.departure-card>span,.departure-card>b,.departure-card>small{display:block;font-family:Cinzel}.departure-card>span{font-size:8px;letter-spacing:4px;color:#967c51}.departure-card>b{margin:9px 0 6px;font-size:clamp(29px,5vw,55px);font-weight:500;letter-spacing:4px;color:#ead19a;text-shadow:0 6px 28px #000}.departure-card>p{margin:0;color:#a99b84;font:italic 14px Georgia,serif}.departure-card>small{font-size:8px;letter-spacing:2.5px;color:#88785d}.departure-track{position:relative;height:66px;margin:25px auto 17px;border-bottom:1px solid #705a37;overflow:hidden}.departure-track:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:8px;background:repeating-linear-gradient(90deg,#705a37 0 3px,transparent 3px 15px)}.departure-train{position:absolute;left:-70px;bottom:4px;font-style:normal;font-size:45px;filter:grayscale(1) sepia(.8) drop-shadow(0 8px 8px #000);animation:departureTrain 2s .25s cubic-bezier(.25,.65,.3,1) forwards}.departure-track em{position:absolute;left:0;bottom:9px;width:0;height:2px;background:linear-gradient(90deg,transparent,#d0a85d);box-shadow:0 0 10px rgba(220,173,83,.55);animation:departureProgress 2s .2s ease forwards}
@keyframes departureTrain{0%{left:-70px}100%{left:calc(100% + 15px)}}@keyframes departureProgress{to{width:100%}}@keyframes departureLight{to{transform:translateX(100%)}}
@media(max-width:850px){html[data-scene-art="ollivanders"] .clean-stage,html[data-scene-art="companion"] .clean-stage{overflow-y:auto!important;overflow-x:hidden!important}.companion-shadow-panel{padding:14px 12px}.companion-grid>button{grid-template-columns:90px 1fr}.companion-mark{width:86px;height:92px}.companion-mark img{width:98px;height:98px}}
@media(max-width:520px){.companion-grid>button{grid-template-columns:74px 1fr}.companion-mark{width:70px}.companion-mark img{width:82px;height:82px}.departure-card>b{letter-spacing:2px}}
@media(prefers-reduced-motion:reduce){.departure-transition,.departure-card{transition-duration:.01ms!important}.departure-transition:before,.departure-train,.departure-track em{animation-duration:.01ms!important}}
.departure-transition.reveal{opacity:0;pointer-events:none;transition-duration:.65s}.departure-transition.reveal .departure-card{opacity:0;transform:translateY(-10px);transition-delay:0s}

/* V0.8.5 — immersive Hogwarts Express conversations */
html[data-scene-art="express"] .clean-stage{overflow:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}
html[data-scene-art="express"] .clean-stage::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
html[data-scene-art="express"] .clean-scene{background-image:url('art/hogwarts_express_compartment.png')!important;background-position:center center!important;background-size:cover!important;overflow:hidden!important}
html[data-scene-art="express"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,3,5,.04),rgba(2,3,5,.02) 37%,rgba(2,3,5,.9) 100%),linear-gradient(90deg,rgba(1,2,3,.28),transparent 31%,transparent 70%,rgba(1,2,3,.25))!important}
html[data-scene-art="express"] .clean-scene:after{content:"";position:absolute;inset:-2%;z-index:-.5;pointer-events:none;background:radial-gradient(circle at 50% 50%,transparent 25%,rgba(1,2,3,.26) 72%,rgba(1,2,3,.62) 100%);animation:expressLamp 3.8s ease-in-out infinite}
html[data-scene-art="express"] .clean-scene-inner{width:min(1180px,95vw)!important;min-height:calc(100vh - 120px);display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;margin:0 auto!important;padding:34px 20px 25px!important;text-align:left!important}
html[data-scene-art="express"] .clean-scene h1{margin:0 0 3px!important;font-size:clamp(32px,4.3vw,56px)!important;color:#f0d49d!important;text-shadow:0 4px 22px #000}
html[data-scene-art="express"] .eyebrow{margin:0;font:9px Cinzel;letter-spacing:3px;color:#d1a85e;text-shadow:0 2px 8px #000}
.express-shadow-panel{position:relative;margin-top:10px;padding:17px 18px 14px;background:linear-gradient(105deg,rgba(3,5,7,.94),rgba(18,12,9,.85) 56%,rgba(3,5,7,.91));border:1px solid rgba(160,119,58,.52);box-shadow:0 25px 78px rgba(0,0,0,.84),0 8px 26px rgba(0,0,0,.58),inset 0 0 54px rgba(219,165,72,.035);backdrop-filter:blur(10px) saturate(.82)}
.express-shadow-panel:before{content:"";position:absolute;inset:-28px -42px;background:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 72%);z-index:-1;pointer-events:none}
.compartment-panel .express-intro p{margin:0 0 3px;font-size:14px}.compartment-panel .express-intro small{color:#a79b87;font:italic 11px Georgia,serif}.compartment-panel .express-doors{margin-top:12px}.express-doors button{min-height:105px;background:linear-gradient(130deg,rgba(6,8,10,.96),rgba(24,15,11,.88))!important;box-shadow:0 13px 30px rgba(0,0,0,.42)}
.express-doors button:before{content:"";position:absolute;left:0;top:0;bottom:0;width:2px;background:#846333;transform:scaleY(0);transition:.22s}.express-doors button:hover:before{transform:scaleY(1)}
.secret-discovery.discovered{border-color:#81976b!important;background:rgba(9,17,12,.9)!important;opacity:.82}.secret-discovery.discovered>span{color:#a9c781}.secret-discovery:disabled{cursor:default}
.express-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.express-atmosphere>i{position:absolute;bottom:15%;width:3px;height:3px;border-radius:50%;background:#f3d593;box-shadow:0 0 9px #e2ae52;opacity:0;animation:expressDust 4.8s linear infinite}.express-atmosphere>i:nth-child(1){left:12%;animation-delay:-1s}.express-atmosphere>i:nth-child(2){left:29%;animation-delay:-3.4s}.express-atmosphere>i:nth-child(3){left:47%;animation-delay:-2.1s}.express-atmosphere>i:nth-child(4){left:63%;animation-delay:-4.2s}.express-atmosphere>i:nth-child(5){left:78%;animation-delay:-.4s}.express-atmosphere>i:nth-child(6){left:91%;animation-delay:-2.8s}.express-atmosphere>span{position:absolute;left:21%;right:21%;top:8%;height:45%;background:linear-gradient(112deg,transparent 35%,rgba(255,207,124,.06) 49%,transparent 63%);animation:windowPass 5s ease-in-out infinite}
.conversation-panel{max-width:900px;align-self:flex-start;width:100%;padding:20px}.conversation-stage{display:grid;grid-template-columns:150px 1fr;gap:22px;align-items:center}.student-presence{text-align:center;transition:.3s}.student-presence>small{display:block;margin-top:7px;font:7px Cinzel;letter-spacing:2px;color:#675d4d;transition:.3s}.student-presence.is-speaking>small{color:#d0a653;text-shadow:0 0 12px rgba(220,173,79,.4)}
.student-monogram{position:relative;width:128px;height:150px;border-radius:52% 52% 13px 13px;background:radial-gradient(circle at 50% 30%,#34281c,#101113 65%);border:1px solid #9e7840;box-shadow:0 18px 45px #000,inset 0 0 32px rgba(213,166,79,.06);overflow:hidden}.student-monogram:before{content:"";position:absolute;left:50%;top:25px;width:53px;height:53px;border-radius:50%;transform:translateX(-50%);background:linear-gradient(145deg,#a98659,#55402c);box-shadow:0 58px 0 22px #251d18}.student-monogram span{position:absolute;inset:0;z-index:2;display:grid;place-items:center;padding-top:87px;font:15px Cinzel;color:#e1c17d;text-shadow:0 2px 8px #000}.student-presence.is-speaking .student-monogram{animation:speakerFocus 1.7s ease-in-out infinite;border-color:#d0a251}
.student-copy>p{margin:0 0 12px;color:#bdb3a3;font-size:13px}.speaker-name{font:8px Cinzel;letter-spacing:2.2px;color:#c69c56;margin:0 0 6px}.express-dialogue{position:relative;min-height:62px;padding:16px 20px;background:rgba(4,6,8,.9);border:1px solid rgba(141,105,52,.55);border-left:3px solid #b88d49;color:#e5d7bc;font:italic 16px/1.55 Georgia,serif;box-shadow:0 12px 28px rgba(0,0,0,.38)}.express-dialogue.typing:after{content:"";display:inline-block;width:7px;height:16px;margin-left:4px;vertical-align:-2px;background:#d2ac67;animation:dialogueCursor .7s steps(1) infinite}
.player-dialogue{max-height:0;margin:0 0 0 auto;padding:0 16px;overflow:hidden;opacity:0;color:#d9c9ad;background:rgba(32,22,13,.88);border-right:3px solid #c29a55;font:13px Georgia,serif;transition:.35s}.player-dialogue.visible{max-height:70px;margin-top:12px;padding:11px 16px;opacity:1}
.express-choices{max-width:none!important;margin:13px 0 0!important;transition:.35s}.express-choices.waiting{opacity:.28;pointer-events:none;transform:translateY(8px)}.express-choices button{position:relative;text-align:left;padding:14px 17px!important;background:linear-gradient(110deg,rgba(8,10,13,.94),rgba(21,15,11,.88))!important;border:1px solid #59462d!important;color:#d9c8aa!important;transition:.2s}.express-choices button:before{content:"REPLY";display:block;margin-bottom:5px;font:7px Cinzel;letter-spacing:1.7px;color:#8e754d}.express-choices button:hover{transform:translateY(-2px);border-color:#c69a50!important;box-shadow:0 10px 24px #000}.express-choices button.chosen{border-color:#d0a458!important;color:#f0d39a!important}
.trolley-panel,.final-train-panel{max-width:900px;align-self:flex-start;width:100%}.trolley-panel .trolley-copy p{margin-top:0}.final-train-panel{padding:20px 23px}.final-train-panel .lead{margin:0}.final-train-panel .dialogue-box{margin:15px 0 0;background:rgba(3,5,7,.82)}
@keyframes expressDust{0%{opacity:0;transform:translate(0,20px)}20%{opacity:.55}100%{opacity:0;transform:translate(50px,-65vh)}}@keyframes windowPass{0%,100%{opacity:.35;transform:translateX(-6%)}50%{opacity:1;transform:translateX(6%)}}@keyframes expressLamp{0%,100%{filter:brightness(.94)}50%{filter:brightness(1.05)}}@keyframes speakerFocus{0%,100%{box-shadow:0 18px 45px #000,inset 0 0 32px rgba(213,166,79,.06)}50%{box-shadow:0 18px 45px #000,0 0 24px rgba(213,166,79,.22),inset 0 0 38px rgba(213,166,79,.1)}}@keyframes dialogueCursor{0%,49%{opacity:1}50%,100%{opacity:0}}
@media(max-width:760px){html[data-scene-art="express"] .clean-stage{overflow-y:auto!important}.express-shadow-panel{padding:14px 12px}.conversation-stage{grid-template-columns:90px 1fr;gap:12px}.student-monogram{width:82px;height:105px}.student-monogram:before{top:14px;width:40px;height:40px;box-shadow:0 43px 0 17px #251d18}.student-monogram span{padding-top:61px}.express-dialogue{font-size:14px}.express-choices{grid-template-columns:1fr!important}}
@media(prefers-reduced-motion:reduce){html[data-scene-art="express"] .clean-scene:after,.express-atmosphere>i,.express-atmosphere>span,.student-presence.is-speaking .student-monogram,.express-dialogue.typing:after{animation:none!important}}

/* V0.8.6 — illustrated trolley, arrival transition and Hogwarts arrival */
.express-sweets{grid-template-columns:repeat(3,1fr)!important;gap:10px!important;max-width:none!important}.express-sweets button{display:grid!important;grid-template-columns:118px 1fr;align-items:center;gap:8px;min-height:150px;padding:11px!important;background:linear-gradient(125deg,rgba(6,8,10,.96),rgba(25,16,11,.9))!important;border:1px solid rgba(155,115,55,.58)!important;box-shadow:0 14px 32px rgba(0,0,0,.45);overflow:hidden;transition:.22s}.express-sweets button:hover{transform:translateY(-4px);border-color:#d3a454!important;box-shadow:0 18px 38px #000,0 0 20px rgba(216,166,74,.12)}.sweet-art{display:block!important;width:112px;height:122px!important;font-size:0!important}.sweet-art img{display:block;width:125px;height:125px;object-fit:contain;filter:drop-shadow(0 12px 9px rgba(0,0,0,.86));transition:.25s}.express-sweets button:hover .sweet-art img{transform:translateY(-3px) scale(1.06);filter:drop-shadow(0 14px 10px #000) drop-shadow(0 0 9px rgba(235,183,83,.28))}.express-sweets button>div{min-width:0}.express-sweets em{display:block;font:7px Cinzel!important;letter-spacing:1.3px;color:#a48249;font-style:normal}.express-sweets b{margin:5px 0 4px!important;font-size:13px!important}.express-sweets small{line-height:1.35}
.hogwarts-arrival-transition{position:fixed;inset:0;z-index:91000;display:grid;place-items:center;overflow:hidden;background:radial-gradient(circle at 50% 42%,#1d1a1a 0,#080a0d 48%,#020304 100%);opacity:0;pointer-events:auto;transition:opacity .75s ease}.hogwarts-arrival-transition:before,.hogwarts-arrival-transition:after{content:"";position:absolute;left:-15%;right:-15%;height:28%;border-radius:50%;background:radial-gradient(ellipse,rgba(210,218,222,.2),rgba(131,144,151,.05) 48%,transparent 72%);filter:blur(28px);opacity:0}.hogwarts-arrival-transition:before{bottom:-4%;animation:arrivalSteam 2.5s .2s ease-out forwards}.hogwarts-arrival-transition:after{top:-9%;animation:arrivalSteam 2.7s .5s ease-out reverse forwards}.hogwarts-arrival-transition.active{opacity:1}.hogwarts-arrival-transition.reveal{opacity:0;pointer-events:none;transition-duration:.75s}.arrival-transition-copy{width:min(680px,88vw);text-align:center;color:#d3c2a4;opacity:0;transform:translateY(16px);transition:opacity .55s .38s,transform .72s .32s}.hogwarts-arrival-transition.active .arrival-transition-copy{opacity:1;transform:none}.hogwarts-arrival-transition.reveal .arrival-transition-copy{opacity:0;transform:translateY(-10px);transition-delay:0s}.arrival-transition-copy>span,.arrival-transition-copy>b,.arrival-transition-copy>small{display:block;font-family:Cinzel}.arrival-transition-copy>span{font-size:8px;letter-spacing:4px;color:#9b8052}.arrival-transition-copy>b{margin:10px 0 6px;font-size:clamp(28px,5vw,52px);font-weight:500;letter-spacing:3px;color:#ead29e;text-shadow:0 6px 28px #000}.arrival-transition-copy>p{margin:0 auto;max-width:560px;color:#a99c88;font:italic 14px/1.5 Georgia,serif}.arrival-transition-copy>small{font-size:8px;letter-spacing:2.5px;color:#897a62}.arrival-rail{position:relative;height:66px;margin:24px auto 15px;border-bottom:1px solid #755e39;overflow:hidden}.arrival-rail:after{content:"";position:absolute;left:0;right:0;bottom:-5px;height:8px;background:repeating-linear-gradient(90deg,#755e39 0 3px,transparent 3px 15px)}.arrival-rail i{position:absolute;left:-65px;bottom:4px;font-style:normal;font-size:44px;filter:grayscale(1) sepia(.75) drop-shadow(0 8px 8px #000);animation:arrivalTrain 2.15s .25s cubic-bezier(.2,.65,.25,1) forwards}.arrival-rail em{position:absolute;left:0;bottom:9px;width:0;height:2px;background:linear-gradient(90deg,transparent,#d2aa61);box-shadow:0 0 10px #c79646;animation:arrivalProgress 2.15s .2s ease forwards}
html[data-scene-art="arrival"] .clean-stage{overflow:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}html[data-scene-art="arrival"] .clean-stage::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}html[data-scene-art="arrival"] .clean-scene{background-image:url('art/hogwarts_arrival.png')!important;background-position:center center!important;background-size:cover!important;overflow:hidden!important}html[data-scene-art="arrival"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,3,5,.05),rgba(2,3,5,.02) 44%,rgba(2,3,5,.88) 100%),linear-gradient(90deg,rgba(2,3,5,.26),transparent 36%,transparent 72%,rgba(2,3,5,.17))!important}html[data-scene-art="arrival"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;pointer-events:none;background:radial-gradient(ellipse at 65% 42%,rgba(255,199,101,.06),transparent 42%),radial-gradient(ellipse at center,transparent 35%,rgba(1,2,4,.48) 100%);animation:arrivalGlow 4s ease-in-out infinite}html[data-scene-art="arrival"] .clean-scene-inner{width:min(1160px,95vw)!important;min-height:calc(100vh - 120px);display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;margin:0 auto!important;padding:36px 20px 27px!important;text-align:left!important}html[data-scene-art="arrival"] .clean-scene-inner:before,html[data-scene-art="arrival"] .clean-scene-inner:after{display:none!important}html[data-scene-art="arrival"] .eyebrow{font:9px Cinzel;letter-spacing:3px;color:#d2ab61;text-shadow:0 2px 8px #000;margin:0}html[data-scene-art="arrival"] .clean-scene h1{margin:1px 0 4px!important;font-size:clamp(34px,4.8vw,62px)!important;color:#f0d7a4!important;text-shadow:0 5px 24px #000}
.arrival-shadow-panel{position:relative;max-width:880px;padding:18px 20px 15px;background:linear-gradient(105deg,rgba(3,5,7,.94),rgba(19,13,9,.84) 60%,rgba(3,5,7,.9));border:1px solid rgba(163,122,60,.54);box-shadow:0 25px 78px rgba(0,0,0,.84),0 8px 26px rgba(0,0,0,.58),inset 0 0 54px rgba(219,165,72,.035);backdrop-filter:blur(10px) saturate(.82)}.arrival-shadow-panel:before{content:"";position:absolute;inset:-30px -45px;background:radial-gradient(ellipse at center,rgba(0,0,0,.55),transparent 72%);z-index:-1}.arrival-copy>small{font:7px Cinzel;letter-spacing:2px;color:#a88955}.arrival-copy p{max-width:760px;margin:5px 0 13px;color:#d6cab6;font-size:14px;line-height:1.5}.arrival-details{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.arrival-details>div{padding:11px 13px;background:rgba(4,6,8,.68);border:1px solid rgba(105,81,45,.48)}.arrival-details small,.arrival-details b{display:block}.arrival-details small{font:7px Cinzel;letter-spacing:1.5px;color:#897658}.arrival-details b{margin-top:4px;font:11px Cinzel;color:#dfc58e}.arrival-whisper{margin-top:11px;padding-top:10px;border-top:1px solid rgba(115,87,47,.48);color:#a99d88;font:italic 12px Georgia,serif}.arrival-continue{align-self:flex-start;min-width:320px}.arrival-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.arrival-atmosphere i{position:absolute;bottom:-10%;width:34vw;height:20vh;border-radius:50%;background:radial-gradient(ellipse,rgba(221,228,229,.2),rgba(159,171,177,.04) 50%,transparent 72%);filter:blur(25px);animation:arrivalMist 7s linear infinite}.arrival-atmosphere i:nth-child(1){left:-15%;animation-delay:-1s}.arrival-atmosphere i:nth-child(2){left:30%;animation-delay:-4s}.arrival-atmosphere i:nth-child(3){right:-15%;animation-delay:-2.5s}.arrival-atmosphere span{position:absolute;right:17%;top:18%;font-size:12px;color:#ffe0a1;text-shadow:0 0 15px #e5ae4d;animation:arrivalStar 2.8s ease-in-out infinite}
@keyframes arrivalTrain{0%{left:-65px}100%{left:calc(100% + 12px)}}@keyframes arrivalProgress{to{width:100%}}@keyframes arrivalSteam{0%{opacity:0;transform:translateX(-18%)}45%{opacity:.6}100%{opacity:.08;transform:translateX(22%)}}@keyframes arrivalGlow{0%,100%{filter:brightness(.96)}50%{filter:brightness(1.06)}}@keyframes arrivalMist{0%{opacity:0;transform:translateX(-25%)}25%{opacity:.7}100%{opacity:0;transform:translateX(170%)}}@keyframes arrivalStar{0%,100%{opacity:.3;transform:scale(.7)}50%{opacity:1;transform:scale(1.25)}}
@media(max-width:820px){.express-sweets{grid-template-columns:1fr!important}.express-sweets button{grid-template-columns:100px 1fr;min-height:118px}.sweet-art{width:95px;height:98px!important}.sweet-art img{width:105px;height:105px}.arrival-details{grid-template-columns:1fr}.arrival-shadow-panel{padding:15px 13px}html[data-scene-art="arrival"] .clean-stage{overflow-y:auto!important}.arrival-continue{width:100%;min-width:0}}
@media(prefers-reduced-motion:reduce){.hogwarts-arrival-transition:before,.hogwarts-arrival-transition:after,.arrival-rail i,.arrival-rail em,html[data-scene-art="arrival"] .clean-scene:after,.arrival-atmosphere i,.arrival-atmosphere span{animation:none!important}.hogwarts-arrival-transition,.arrival-transition-copy{transition-duration:.01ms!important}}

/* V0.8.7 — arrival cleanup and fully interactive Sorting Ceremony */
html[data-scene-art="arrival"] .clean-scene-inner{background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;border-radius:0!important}
html[data-scene-art="sorting"] .clean-stage{overflow:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}html[data-scene-art="sorting"] .clean-stage::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
html[data-scene-art="sorting"] .clean-scene{background-image:url('art/sorting_ceremony.png')!important;background-position:center center!important;background-size:cover!important;overflow:hidden!important}
html[data-scene-art="sorting"] .clean-scene:before{background:linear-gradient(180deg,rgba(3,2,1,.03),rgba(3,2,1,.02) 41%,rgba(3,2,1,.91) 100%),linear-gradient(90deg,rgba(3,2,1,.2),transparent 34%,transparent 70%,rgba(3,2,1,.17))!important}
html[data-scene-art="sorting"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;pointer-events:none;background:radial-gradient(circle at 50% 42%,rgba(255,192,86,.07),transparent 32%),radial-gradient(ellipse at center,transparent 38%,rgba(2,1,1,.5) 100%);transition:background .45s;animation:sortingCandleGlow 3.6s ease-in-out infinite}
html[data-scene-art="sorting"] .clean-scene-inner{width:min(1220px,96vw)!important;min-height:calc(100vh - 118px);display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;margin:0 auto!important;padding:31px 20px 22px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;border-radius:0!important;text-align:left!important}
html[data-scene-art="sorting"] .clean-scene-inner:before,html[data-scene-art="sorting"] .clean-scene-inner:after{display:none!important}html[data-scene-art="sorting"] .eyebrow{margin:0;font:8px Cinzel;letter-spacing:3.2px;color:#d1a85e;text-shadow:0 2px 8px #000}html[data-scene-art="sorting"] .clean-scene h1{margin:1px 0 3px!important;font-size:clamp(28px,3.7vw,49px)!important;color:#efd39a!important;text-shadow:0 5px 23px #000}
.sorting-shadow-panel{position:relative;padding:15px 17px 14px;background:linear-gradient(105deg,rgba(3,4,5,.95),rgba(21,13,8,.87) 58%,rgba(3,4,5,.92));border:1px solid rgba(167,123,57,.57);box-shadow:0 25px 78px rgba(0,0,0,.86),0 8px 26px rgba(0,0,0,.6),inset 0 0 55px rgba(226,170,73,.04);backdrop-filter:blur(10px) saturate(.82)}.sorting-shadow-panel:before{content:"";position:absolute;inset:-27px -42px;background:radial-gradient(ellipse at center,rgba(0,0,0,.56),transparent 72%);z-index:-1}.sorting-progress{display:flex;justify-content:space-between;align-items:center;gap:20px}.sorting-progress>small{font:7px Cinzel;letter-spacing:2px;color:#a18451}.sorting-progress>div{display:flex;gap:5px}.sorting-progress i{display:block;width:30px;height:3px;background:#463721;transition:.3s}.sorting-progress i.complete{background:#8b764b}.sorting-progress i.active{background:#d4a653;box-shadow:0 0 12px rgba(220,172,77,.55)}
.sorting-chapter{margin-top:9px;font:7px Cinzel;letter-spacing:2.7px;color:#8f7448}.sorting-shadow-panel>h2{margin:4px 0 2px;max-width:900px;font:500 clamp(18px,2.4vw,29px) Cinzel;color:#ead09b}.sorting-whisper{min-height:18px;margin-bottom:10px;color:#a99c88;font:italic 12px Georgia,serif;transition:.25s}.sorting-choice-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.sorting-choice-grid>button{position:relative;display:grid;grid-template-columns:30px 1fr auto;align-items:center;gap:10px;min-height:76px;padding:10px 12px;text-align:left;background:linear-gradient(110deg,rgba(6,8,10,.96),rgba(25,16,11,.88))!important;border:1px solid rgba(117,88,48,.62)!important;color:#d5c5aa;cursor:pointer;transition:.2s}.sorting-choice-grid>button:hover{transform:translateY(-2px);border-color:#cea052!important;box-shadow:0 12px 27px rgba(0,0,0,.55)}.sorting-choice-grid>button>span{font:16px Cinzel;color:#635037}.sorting-choice-grid small,.sorting-choice-grid b,.sorting-choice-grid p{display:block}.sorting-choice-grid small{font:7px Cinzel;letter-spacing:1.7px;color:#b18d51}.sorting-choice-grid b{margin:2px 0;font:12px Cinzel;color:#ecd09a}.sorting-choice-grid p{margin:0;color:#9f9585;font:11px/1.3 Georgia,serif}.sorting-choice-grid>button>i{font:7px Cinzel;letter-spacing:1px;color:#8d744b;font-style:normal}.sorting-choice-grid>button.chosen{border-color:#edc36b!important;background:linear-gradient(110deg,rgba(27,19,10,.98),rgba(39,24,12,.94))!important;box-shadow:0 0 30px rgba(232,183,84,.22),inset 0 0 28px rgba(233,182,78,.08)}.sorting-choice-grid>button:disabled{cursor:default}
.sorting-atmosphere{position:absolute;inset:0;z-index:-1;pointer-events:none;overflow:hidden}.sorting-atmosphere>i{position:absolute;bottom:-5%;width:3px;height:3px;border-radius:50%;background:#ffe0a0;box-shadow:0 0 10px #e4a943;opacity:0;animation:sortingEmber 5.2s linear infinite}.sorting-atmosphere>i:nth-child(1){left:9%;animation-delay:-.8s}.sorting-atmosphere>i:nth-child(2){left:24%;animation-delay:-3.2s}.sorting-atmosphere>i:nth-child(3){left:42%;animation-delay:-1.7s}.sorting-atmosphere>i:nth-child(4){left:61%;animation-delay:-4.4s}.sorting-atmosphere>i:nth-child(5){left:78%;animation-delay:-2.5s}.sorting-atmosphere>i:nth-child(6){left:92%;animation-delay:-.2s}.sorting-atmosphere>span{position:absolute;left:50%;top:34%;width:230px;height:230px;border-radius:50%;transform:translate(-50%,-50%);border:1px solid rgba(225,174,79,.09);box-shadow:0 0 70px rgba(231,176,75,.08),inset 0 0 55px rgba(231,176,75,.05);animation:sortingHalo 3s ease-in-out infinite}
html[data-sort-glow="gryffindor"] .clean-scene:after{background:radial-gradient(circle at 50% 42%,rgba(179,38,39,.28),transparent 44%),radial-gradient(ellipse at center,transparent 38%,rgba(2,1,1,.5) 100%)}html[data-sort-glow="slytherin"] .clean-scene:after{background:radial-gradient(circle at 50% 42%,rgba(31,117,78,.27),transparent 44%),radial-gradient(ellipse at center,transparent 38%,rgba(2,1,1,.5) 100%)}html[data-sort-glow="ravenclaw"] .clean-scene:after{background:radial-gradient(circle at 50% 42%,rgba(47,86,157,.28),transparent 44%),radial-gradient(ellipse at center,transparent 38%,rgba(2,1,1,.5) 100%)}html[data-sort-glow="hufflepuff"] .clean-scene:after{background:radial-gradient(circle at 50% 42%,rgba(208,161,47,.26),transparent 44%),radial-gradient(ellipse at center,transparent 38%,rgba(2,1,1,.5) 100%)}body.sorting-pulse .sorting-shadow-panel{animation:sortingPanelPulse .75s ease}
.house-reveal{align-self:center;width:min(680px,90vw);padding:25px 30px;text-align:center;background:linear-gradient(145deg,rgba(5,6,7,.95),rgba(25,16,10,.9));border:1px solid #ba8c43;box-shadow:0 28px 90px #000,0 0 50px rgba(222,169,73,.15);backdrop-filter:blur(10px);animation:houseRevealRise .85s cubic-bezier(.16,1,.3,1) both}.house-crest{width:90px;height:105px;margin:0 auto 10px;display:grid;place-items:center;clip-path:polygon(50% 0,92% 17%,88% 74%,50% 100%,12% 74%,8% 17%);background:linear-gradient(145deg,#9b7339,#32210e);box-shadow:0 0 30px rgba(226,174,78,.22)}.house-crest span{font:38px Cinzel;color:#f0d69d;text-shadow:0 3px 12px #000}.house-reveal>small{font:7px Cinzel;letter-spacing:2.5px;color:#b69254}.house-reveal h2{margin:7px 0 5px;font:500 clamp(20px,3vw,32px) Cinzel;color:#efd49c}.house-reveal p{max-width:560px;margin:0 auto;color:#c6baa6;font-size:14px}.house-welcome{margin-top:15px;padding-top:12px;border-top:1px solid #5d472b;color:#a99c88;font-style:italic}.house-continue{align-self:center;min-width:310px}
html[data-sorted-house="gryffindor"] .house-crest{background:linear-gradient(145deg,#8e2027,#3b0d12);box-shadow:0 0 36px rgba(192,49,54,.42)}html[data-sorted-house="slytherin"] .house-crest{background:linear-gradient(145deg,#276d50,#0d2c20);box-shadow:0 0 36px rgba(48,137,95,.4)}html[data-sorted-house="ravenclaw"] .house-crest{background:linear-gradient(145deg,#365f9a,#101f3c);box-shadow:0 0 36px rgba(63,108,174,.42)}html[data-sorted-house="hufflepuff"] .house-crest{background:linear-gradient(145deg,#c49a2d,#4a370d);box-shadow:0 0 36px rgba(218,170,48,.4)}
.house-sparks{position:absolute;inset:0;pointer-events:none;overflow:hidden}.house-sparks i{position:absolute;left:50%;top:55%;width:5px;height:5px;border-radius:50%;background:#f1ca78;box-shadow:0 0 12px #dc9f3e;animation:houseSpark 1.8s ease-out infinite}.house-sparks i:nth-child(2n){animation-delay:-.4s}.house-sparks i:nth-child(3n){animation-delay:-.9s}.house-sparks i:nth-child(4n){animation-delay:-1.3s}.house-sparks i:nth-child(5n){animation-delay:-1.65s}
@keyframes sortingCandleGlow{0%,100%{filter:brightness(.96)}50%{filter:brightness(1.06)}}@keyframes sortingEmber{0%{opacity:0;transform:translate(0,25px)}20%{opacity:.65}100%{opacity:0;transform:translate(42px,-70vh)}}@keyframes sortingHalo{0%,100%{opacity:.4;transform:translate(-50%,-50%) scale(.94)}50%{opacity:1;transform:translate(-50%,-50%) scale(1.05)}}@keyframes sortingPanelPulse{0%,100%{transform:none}35%{transform:scale(1.008);box-shadow:0 25px 78px #000,0 0 30px rgba(232,183,84,.24)}}@keyframes houseRevealRise{from{opacity:0;transform:translateY(48px) scale(.9)}to{opacity:1;transform:none}}@keyframes houseSpark{0%{opacity:0;transform:translate(0,0) scale(.3)}25%{opacity:1}100%{opacity:0;transform:translate(var(--spark-x,80px),-46vh) scale(1)}}
.house-sparks i:nth-child(1){--spark-x:-225px}.house-sparks i:nth-child(2){--spark-x:180px}.house-sparks i:nth-child(3){--spark-x:-135px}.house-sparks i:nth-child(4){--spark-x:90px}.house-sparks i:nth-child(5){--spark-x:-45px}.house-sparks i:nth-child(6){--spark-x:225px}.house-sparks i:nth-child(7){--spark-x:-180px}.house-sparks i:nth-child(8){--spark-x:135px}.house-sparks i:nth-child(9){--spark-x:-90px}.house-sparks i:nth-child(10){--spark-x:45px}.house-sparks i:nth-child(n+11){--spark-x:110px;left:35%}.house-sparks i:nth-child(n+15){--spark-x:-110px;left:68%}
@media(max-width:800px){html[data-scene-art="sorting"] .clean-stage{overflow-y:auto!important}.sorting-choice-grid{grid-template-columns:1fr}.sorting-choice-grid>button{grid-template-columns:26px 1fr;min-height:70px}.sorting-choice-grid>button>i{display:none}.sorting-shadow-panel{padding:13px 11px}.house-continue{width:100%;min-width:0}}
@media(prefers-reduced-motion:reduce){html[data-scene-art="sorting"] .clean-scene:after,.sorting-atmosphere>i,.sorting-atmosphere>span,body.sorting-pulse .sorting-shadow-panel,.house-reveal,.house-sparks i{animation:none!important}}

/* V0.8.8 — illustrated house identities, welcoming feast and castle hub */
.house-reveal{width:min(760px,92vw);display:grid;grid-template-columns:190px 1fr;align-items:center;gap:24px;padding:22px 28px;text-align:left;overflow:visible}.house-crest{width:190px;height:190px;margin:0;display:grid;place-items:center;clip-path:none;background:none!important;box-shadow:none!important}.house-crest img{display:block;width:100%;height:100%;object-fit:contain;filter:drop-shadow(0 18px 25px rgba(0,0,0,.78));animation:crestArrival 1.05s cubic-bezier(.16,1,.3,1) both}.house-reveal-copy>small{font:7px Cinzel;letter-spacing:2.5px;color:#b69254}.house-reveal-copy h2{margin:7px 0 5px;font:500 clamp(20px,3vw,32px) Cinzel;color:#efd49c}.house-reveal-copy p{max-width:560px;margin:0;color:#c6baa6;font-size:14px}.house-reveal-copy .house-welcome{margin-top:15px;padding-top:12px;border-top:1px solid #5d472b;color:#a99c88;font-style:italic}@keyframes crestArrival{from{opacity:0;transform:scale(.4) rotate(-8deg);filter:drop-shadow(0 0 0 transparent)}to{opacity:1;transform:none;filter:drop-shadow(0 18px 25px rgba(0,0,0,.78))}}

html[data-scene-art="feast"] .clean-stage,html[data-scene-art="castle"] .clean-stage{overflow:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}html[data-scene-art="feast"] .clean-stage::-webkit-scrollbar,html[data-scene-art="castle"] .clean-stage::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}
html[data-scene-art="feast"] .clean-scene{background-image:url('art/great_hall_feast.jpg')!important;background-position:center!important;background-size:cover!important;overflow:hidden!important}html[data-scene-art="feast"] .clean-scene:before{background:linear-gradient(90deg,rgba(3,2,1,.86) 0,rgba(3,2,1,.5) 38%,transparent 72%),linear-gradient(0deg,rgba(3,2,1,.68),transparent 50%)!important}html[data-scene-art="feast"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;background:radial-gradient(circle at 64% 18%,rgba(244,183,84,.11),transparent 34%),radial-gradient(ellipse at center,transparent 38%,rgba(2,1,1,.4));animation:feastGlow 4s ease-in-out infinite;pointer-events:none}
html[data-scene-art="feast"] .clean-scene-inner{width:min(1240px,95vw)!important;min-height:calc(100vh - 112px);display:flex!important;flex-direction:column;justify-content:center;align-items:flex-start;margin:0 auto!important;padding:28px 20px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-align:left!important}html[data-scene-art="feast"] .clean-scene-inner:before,html[data-scene-art="feast"] .clean-scene-inner:after{display:none!important}html[data-scene-art="feast"] .eyebrow{font:8px Cinzel;letter-spacing:3px;color:#cfaa69;text-shadow:0 3px 12px #000}html[data-scene-art="feast"] .clean-scene h1{max-width:660px;margin:4px 0 13px!important;font-size:clamp(34px,4.4vw,60px)!important;line-height:1.04;color:#f1d7a2!important;text-shadow:0 6px 30px #000}
.feast-welcome{position:relative;width:min(600px,91vw);box-sizing:border-box;padding:18px 21px;background:linear-gradient(115deg,rgba(5,6,7,.95),rgba(25,15,9,.86));border:1px solid rgba(182,135,66,.66);box-shadow:0 28px 80px rgba(0,0,0,.82);backdrop-filter:blur(11px)}.feast-house{display:flex;align-items:center;gap:15px}.feast-house img{width:86px;height:86px;object-fit:contain;filter:drop-shadow(0 12px 16px #000)}.feast-house small,.feast-house b,.feast-house span{display:block}.feast-house small{font:7px Cinzel;letter-spacing:2.3px;color:#a98a57}.feast-house b{font:500 25px Cinzel;color:#eed096}.feast-house span{font:7px Cinzel;letter-spacing:1.5px;color:#89765a}.feast-welcome>p{margin:11px 0 13px;color:#d2c4ac;font:14px/1.5 Georgia,serif}.feast-rewards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.feast-rewards>div{padding:10px 11px;background:rgba(5,7,9,.67);border:1px solid rgba(117,89,50,.48)}.feast-rewards small,.feast-rewards b{display:block}.feast-rewards small{font:6px Cinzel;letter-spacing:1.3px;color:#85745c}.feast-rewards b{margin-top:4px;font:10px Cinzel;color:#dfc188}.feast-founder{display:flex;gap:11px;align-items:center;margin-top:9px;padding-top:9px;border-top:1px solid rgba(113,85,47,.5)}.feast-founder>span{color:#d5aa61;font-size:22px}.feast-founder small,.feast-founder b{display:block}.feast-founder small{font:6px Cinzel;letter-spacing:1.6px;color:#987c4e}.feast-founder b{font:11px Cinzel;color:#e2c78e}.feast-founder p{margin:2px 0 0;color:#938875;font-size:11px}.feast-enter{min-width:260px}.feast-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.feast-atmosphere i{position:absolute;bottom:-4%;width:3px;height:3px;border-radius:50%;background:#ffe0a1;box-shadow:0 0 12px #eca944;animation:feastEmber 5s linear infinite}.feast-atmosphere i:nth-child(1){left:16%}.feast-atmosphere i:nth-child(2){left:41%;animation-delay:-2s}.feast-atmosphere i:nth-child(3){left:68%;animation-delay:-3.4s}.feast-atmosphere i:nth-child(4){left:89%;animation-delay:-1s}.feast-departing .clean-scene{animation:feastExit .8s ease forwards}@keyframes feastGlow{50%{filter:brightness(1.07)}}@keyframes feastEmber{0%{opacity:0;transform:translateY(10px)}20%{opacity:.7}100%{opacity:0;transform:translate(24px,-78vh)}}@keyframes feastExit{to{opacity:0;filter:blur(8px);transform:scale(1.035)}}

html[data-scene-art="castle"]{--house-primary:#a07842;--house-glow:rgba(193,150,78,.27)}html[data-player-house="gryffindor"]{--house-primary:#b24442;--house-glow:rgba(178,48,45,.3)}html[data-player-house="slytherin"]{--house-primary:#398464;--house-glow:rgba(43,135,91,.3)}html[data-player-house="ravenclaw"]{--house-primary:#4778b7;--house-glow:rgba(55,101,173,.3)}html[data-player-house="hufflepuff"]{--house-primary:#c59c38;--house-glow:rgba(205,159,45,.3)}
html[data-scene-art="castle"] .clean-scene{background-image:url('art/hogwarts_interior.jpg')!important;background-position:center!important;background-size:cover!important;overflow:hidden!important}html[data-scene-art="castle"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,3,4,.04),rgba(2,3,4,.02) 35%,rgba(2,3,4,.87) 100%),linear-gradient(90deg,rgba(2,3,4,.24),transparent 35%,transparent 72%,rgba(2,3,4,.18))!important}html[data-scene-art="castle"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;pointer-events:none;background:radial-gradient(circle at 50% 35%,rgba(255,194,91,.08),transparent 38%),radial-gradient(ellipse at center,transparent 42%,rgba(1,2,3,.46));animation:castleGlow 4.5s ease-in-out infinite}
html[data-scene-art="castle"] .clean-scene-inner{width:min(1260px,96vw)!important;min-height:calc(100vh - 112px);display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;margin:0 auto!important;padding:24px 18px 20px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-align:left!important}html[data-scene-art="castle"] .clean-scene-inner:before,html[data-scene-art="castle"] .clean-scene-inner:after{display:none!important}html[data-scene-art="castle"] .eyebrow{font:7px Cinzel;letter-spacing:3px;color:#c7a466;text-shadow:0 3px 10px #000}html[data-scene-art="castle"] .clean-scene h1{margin:2px 0 8px!important;font-size:clamp(27px,3.6vw,46px)!important;color:#eed29d!important;text-shadow:0 5px 24px #000}
.hogwarts-dashboard{display:grid;grid-template-columns:310px 1fr;gap:10px;padding:10px;background:linear-gradient(110deg,rgba(3,5,7,.95),rgba(18,13,9,.88));border:1px solid rgba(160,120,61,.56);box-shadow:0 28px 85px rgba(0,0,0,.86);backdrop-filter:blur(11px) saturate(.82)}.hogwarts-identity{padding:13px;background:rgba(4,6,8,.62);border:1px solid rgba(101,78,45,.48)}.hogwarts-house-mark{display:flex;align-items:center;gap:10px;padding-bottom:10px;border-bottom:1px solid rgba(108,82,46,.48)}.hogwarts-house-mark img{width:74px;height:74px;object-fit:contain;filter:drop-shadow(0 10px 13px #000)}.hogwarts-house-mark small,.hogwarts-house-mark b,.hogwarts-house-mark span{display:block}.hogwarts-house-mark small{font:6px Cinzel;letter-spacing:1.8px;color:#94805e}.hogwarts-house-mark b{font:18px Cinzel;color:#edce94}.hogwarts-house-mark span{font:6px Cinzel;letter-spacing:1.1px;color:var(--house-primary)}.hogwarts-stats{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:8px}.hogwarts-stats>div{padding:8px 9px;background:rgba(7,8,10,.74);border-left:2px solid var(--house-primary)}.hogwarts-stats small,.hogwarts-stats b,.hogwarts-kit small,.hogwarts-kit b{display:block}.hogwarts-stats small,.hogwarts-kit small{font:6px Cinzel;letter-spacing:1.2px;color:#817560}.hogwarts-stats b{margin-top:2px;font:11px Cinzel;color:#dbc28f}.hogwarts-kit{margin-top:8px;padding:8px 9px;background:rgba(6,7,9,.66)}.hogwarts-kit>div+div{margin-top:6px;padding-top:6px;border-top:1px solid rgba(96,76,45,.4)}.hogwarts-kit b{margin-top:2px;color:#bdae96;font-size:10px}.hogwarts-destinations{padding:11px 12px}.hogwarts-section-title{display:flex;align-items:end;justify-content:space-between;margin-bottom:8px}.hogwarts-section-title small{font:6px Cinzel;letter-spacing:2px;color:#92784f}.hogwarts-section-title h2{margin:1px 0 0;font:500 21px Cinzel;color:#e4c78e}.hogwarts-section-title>span{font:7px Cinzel;letter-spacing:1.3px;color:#98846a}.hogwarts-location-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:6px}.hogwarts-location-grid>button{display:grid;grid-template-columns:28px 1fr;gap:8px;align-items:center;min-height:80px;padding:9px 10px;text-align:left;color:#cbbda6;background:rgba(5,7,9,.76);border:1px solid rgba(98,76,44,.5);cursor:pointer;transition:.22s}.hogwarts-location-grid>button:hover{transform:translateY(-2px);border-color:var(--house-primary);background:rgba(16,13,10,.92);box-shadow:0 10px 25px #000,0 0 17px var(--house-glow)}.hogwarts-location-grid i{font:normal 22px Cinzel;color:var(--house-primary);text-align:center}.hogwarts-location-grid small,.hogwarts-location-grid b,.hogwarts-location-grid p{display:block}.hogwarts-location-grid small{font:6px Cinzel;color:#71644f}.hogwarts-location-grid b{margin:1px 0 2px;font:10px Cinzel;color:#e2ca99}.hogwarts-location-grid p{margin:0;color:#8e8577;font:9px/1.25 Georgia,serif}.hogwarts-location-grid>button>span{grid-column:2;font:6px Cinzel;letter-spacing:1px;color:#88704b}.hogwarts-logout{padding:8px 14px!important;font-size:8px!important}.hogwarts-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.hogwarts-atmosphere i{position:absolute;bottom:-4%;width:2px;height:2px;border-radius:50%;background:#ffd98c;box-shadow:0 0 9px #e7a840;animation:castleSpark 6s linear infinite}.hogwarts-atmosphere i:nth-child(1){left:11%}.hogwarts-atmosphere i:nth-child(2){left:39%;animation-delay:-2s}.hogwarts-atmosphere i:nth-child(3){left:72%;animation-delay:-4s}.hogwarts-atmosphere i:nth-child(4){left:91%;animation-delay:-1s}.hogwarts-atmosphere>span{position:absolute;right:8%;top:17%;color:#ffdda0;text-shadow:0 0 15px #d6a04c;animation:castleStar 3s ease-in-out infinite}@keyframes castleGlow{50%{filter:brightness(1.05)}}@keyframes castleSpark{0%{opacity:0;transform:translateY(20px)}20%{opacity:.6}100%{opacity:0;transform:translate(32px,-75vh)}}@keyframes castleStar{50%{opacity:.25;transform:scale(.7)}}
@media(max-width:850px){.house-reveal{grid-template-columns:120px 1fr;padding:16px}.house-crest{width:120px;height:120px}.hogwarts-dashboard{grid-template-columns:1fr}.hogwarts-location-grid{grid-template-columns:1fr 1fr}html[data-scene-art="castle"] .clean-stage,html[data-scene-art="feast"] .clean-stage{overflow-y:auto!important}.feast-rewards{grid-template-columns:1fr}.feast-welcome{padding:14px}.hogwarts-identity{display:grid;grid-template-columns:1fr 1fr;gap:8px}.hogwarts-house-mark{grid-column:1/-1}}
@media(max-width:560px){.house-reveal{display:block;text-align:center}.house-crest{margin:0 auto}.house-reveal-copy p{margin:auto}.hogwarts-location-grid{grid-template-columns:1fr}.hogwarts-identity{display:block}.feast-house img{width:68px;height:68px}}
@media(prefers-reduced-motion:reduce){.house-crest img,html[data-scene-art="feast"] .clean-scene:after,.feast-atmosphere i,.feast-departing .clean-scene,html[data-scene-art="castle"] .clean-scene:after,.hogwarts-atmosphere i,.hogwarts-atmosphere>span{animation:none!important}}

/* V0.8.9 — readability pass for the feast and Hogwarts castle hub */
.feast-house small{font-size:9px;letter-spacing:2.1px}.feast-house b{font-size:28px}.feast-house span{font-size:9px;line-height:1.45}.feast-rewards>div{padding:13px 14px}.feast-rewards small{font-size:9px;line-height:1.35;letter-spacing:1.2px}.feast-rewards b{margin-top:6px;font-size:13px}.feast-founder{padding-top:12px}.feast-founder small{font-size:9px}.feast-founder b{font-size:14px}.feast-founder p{font-size:13px;line-height:1.4}
html[data-scene-art="castle"] .eyebrow{font-size:9px}.hogwarts-dashboard{grid-template-columns:335px 1fr;gap:12px;padding:12px}.hogwarts-identity{padding:15px}.hogwarts-house-mark img{width:82px;height:82px}.hogwarts-house-mark small{font-size:9px}.hogwarts-house-mark b{font-size:22px}.hogwarts-house-mark span{margin-top:2px;font-size:9px;line-height:1.35}.hogwarts-stats{gap:8px;margin-top:10px}.hogwarts-stats>div{padding:11px 12px}.hogwarts-stats small,.hogwarts-kit small{font-size:9px;line-height:1.35}.hogwarts-stats b{margin-top:4px;font-size:14px}.hogwarts-kit{margin-top:10px;padding:11px 12px}.hogwarts-kit b{margin-top:4px;font-size:13px;line-height:1.35}.hogwarts-section-title small{font-size:9px}.hogwarts-section-title h2{font-size:25px}.hogwarts-section-title>span{font-size:10px}.hogwarts-location-grid{gap:8px}.hogwarts-location-grid>button{grid-template-columns:34px 1fr;gap:10px;min-height:102px;padding:12px}.hogwarts-location-grid i{font-size:25px}.hogwarts-location-grid small{font-size:9px}.hogwarts-location-grid b{margin:3px 0 4px;font-size:13px;line-height:1.25}.hogwarts-location-grid p{font-size:11px;line-height:1.35}.hogwarts-location-grid>button>span{font-size:9px;margin-top:2px}.hogwarts-logout{font-size:10px!important}
@media(max-width:1100px) and (min-width:851px){.hogwarts-dashboard{grid-template-columns:300px 1fr}.hogwarts-location-grid>button{min-height:96px}.hogwarts-location-grid p{font-size:10px}}

/* V0.8.10 — subtle Hogwarts contrast veil */
html[data-scene-art="castle"] .clean-scene:before{background:linear-gradient(rgba(0,0,0,.05),rgba(0,0,0,.05)),linear-gradient(180deg,rgba(2,3,4,.04),rgba(2,3,4,.02) 35%,rgba(2,3,4,.87) 100%),linear-gradient(90deg,rgba(2,3,4,.24),transparent 35%,transparent 72%,rgba(2,3,4,.18))!important}

/* V0.9.0 — first playable Hogwarts location: The Great Hall */
html[data-scene-art="great-hall"] .clean-stage{overflow:hidden!important;scrollbar-width:none!important;-ms-overflow-style:none!important}html[data-scene-art="great-hall"] .clean-stage::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}html[data-scene-art="great-hall"] .clean-scene{background-image:url('art/great_hall_feast.jpg')!important;background-position:center!important;background-size:cover!important;overflow:hidden!important}html[data-scene-art="great-hall"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,2,2,.08),rgba(2,2,2,.03) 35%,rgba(2,2,2,.86) 100%),linear-gradient(90deg,rgba(2,2,2,.52),transparent 48%,rgba(2,2,2,.2))!important}html[data-scene-art="great-hall"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;background:radial-gradient(circle at 50% 22%,rgba(244,181,76,.1),transparent 35%),radial-gradient(ellipse at center,transparent 44%,rgba(2,1,1,.43));animation:hallCandleGlow 4.2s ease-in-out infinite;pointer-events:none}
html[data-scene-art="great-hall"] .clean-scene-inner{width:min(1260px,96vw)!important;min-height:calc(100vh - 112px);display:flex!important;flex-direction:column;justify-content:flex-end;align-items:stretch;margin:0 auto!important;padding:24px 18px 20px!important;background:none!important;border:0!important;box-shadow:none!important;backdrop-filter:none!important;text-align:left!important}html[data-scene-art="great-hall"] .clean-scene-inner:before,html[data-scene-art="great-hall"] .clean-scene-inner:after{display:none!important}html[data-scene-art="great-hall"] .eyebrow{font:9px Cinzel;letter-spacing:3px;color:#d0aa64;text-shadow:0 3px 10px #000}html[data-scene-art="great-hall"] .clean-scene h1{margin:2px 0 8px!important;font-size:clamp(28px,3.6vw,46px)!important;color:#efd39e!important;text-shadow:0 5px 24px #000}
.great-hall-layout{display:grid;grid-template-columns:1fr 380px;gap:10px;padding:10px;background:linear-gradient(110deg,rgba(4,5,6,.95),rgba(22,14,8,.89));border:1px solid rgba(167,124,59,.62);box-shadow:0 28px 84px rgba(0,0,0,.87);backdrop-filter:blur(11px) saturate(.84)}.hall-story-panel{padding:14px;background:rgba(5,6,8,.64);border:1px solid rgba(103,79,45,.45)}.hall-house-line{display:flex;align-items:center;gap:14px;padding-bottom:12px;border-bottom:1px solid rgba(111,83,46,.48)}.hall-house-line img{width:84px;height:84px;object-fit:contain;filter:drop-shadow(0 12px 16px #000)}.hall-house-line small,.hall-house-line b{display:block}.hall-house-line small{font:9px Cinzel;letter-spacing:1.8px;color:#a78b5d}.hall-house-line b{margin:2px 0;font:19px Cinzel;color:#e8cb93}.hall-house-line p{margin:0;color:#a99d8b;font:12px/1.4 Georgia,serif}.hall-encounters{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:12px}.hall-encounters button{display:grid;grid-template-columns:42px 1fr;align-items:center;gap:10px;min-height:112px;padding:12px;text-align:left;background:linear-gradient(145deg,rgba(7,9,11,.9),rgba(24,16,10,.82));border:1px solid rgba(112,85,48,.55);color:#cfc0a7;cursor:pointer;transition:.22s}.hall-encounters button:hover:not(:disabled){transform:translateY(-3px);border-color:#c89a50;box-shadow:0 13px 26px #000,0 0 20px rgba(210,160,75,.15)}.hall-encounters button:disabled{opacity:.42;cursor:not-allowed}.hall-encounters i{font:normal 27px Cinzel;color:#c69a53;text-align:center}.hall-encounters small,.hall-encounters b,.hall-encounters span{display:block}.hall-encounters small{font:8px Cinzel;letter-spacing:1.4px;color:#897252}.hall-encounters b{margin:3px 0;font:13px Cinzel;color:#e4ca97}.hall-encounters span{font-size:11px;color:#948a7a}.hall-quest-panel{padding:16px 17px;background:rgba(4,5,7,.74);border-left:2px solid #a77e42}.hall-quest-panel.complete{border-left-color:#6e9e69}.hall-quest-heading{display:flex;align-items:start;justify-content:space-between;gap:15px}.hall-quest-heading small{font:8px Cinzel;letter-spacing:1.7px;color:#b18b4f}.hall-quest-heading h2{margin:3px 0 0;font:19px Cinzel;color:#e7c98f}.hall-quest-heading>span{display:grid;place-items:center;min-width:39px;height:39px;border:1px solid #826537;border-radius:50%;font:12px Cinzel;color:#d5b06b}.hall-quest-panel>p{margin:9px 0 12px;color:#aaa08f;font:12px/1.42 Georgia,serif}.hall-objectives{display:grid;gap:6px}.hall-objectives>div{display:flex;gap:9px;align-items:center;padding:9px 10px;background:rgba(8,9,11,.7);border:1px solid rgba(91,71,43,.43)}.hall-objectives>div.done{border-color:rgba(83,132,84,.55);background:rgba(12,30,20,.52)}.hall-objectives i{font-style:normal;color:#8a7452}.hall-objectives .done i{color:#87b27c}.hall-objectives b,.hall-objectives small{display:block}.hall-objectives b{font:10px Cinzel;color:#d8c29a}.hall-objectives small{margin-top:2px;font-size:10px;color:#81796d}.hall-rewards{margin-top:10px;padding:9px 10px;background:rgba(18,13,8,.72);border:1px solid rgba(112,83,43,.45)}.hall-rewards>small{display:block;margin-bottom:6px;font:8px Cinzel;letter-spacing:1.5px;color:#9d7e4d}.hall-rewards>span{display:flex;flex-wrap:wrap;gap:5px}.hall-rewards b{padding:4px 6px;background:#090a0ccc;font:8px Cinzel;color:#d8bc83}.hall-quest-action{width:100%;margin-top:10px}.hall-quest-action.ready{animation:questReady 1.7s ease-in-out infinite}.hall-quest-hint,.hall-complete-stamp{margin-top:10px;text-align:center;font:9px Cinzel;letter-spacing:1.2px;color:#8f816d}.hall-complete-stamp{padding:9px;border:1px solid rgba(100,146,96,.55);color:#92bb87}.hall-return{padding:9px 15px!important;font-size:9px!important}.great-hall-error{margin:20px auto;padding:25px;background:#090a0ddd;border:1px solid #795d35}.great-hall-error span{font-size:34px;color:#c19750}
.hall-dialogue-layer{position:fixed;inset:0;z-index:1000000;display:grid;place-items:end center;padding:0 20px 48px;background:rgba(2,3,4,0);backdrop-filter:blur(0);opacity:0;pointer-events:none;transition:.26s}.hall-dialogue-layer.visible{background:rgba(2,3,4,.52);backdrop-filter:blur(4px);opacity:1;pointer-events:auto}.hall-dialogue-card{position:relative;width:min(720px,92vw);padding:22px 25px;background:linear-gradient(125deg,#080a0e,#21160d);border:1px solid #a47b42;border-left:4px solid #c39750;box-shadow:0 25px 80px #000;transform:translateY(28px);transition:.32s cubic-bezier(.16,1,.3,1)}.hall-dialogue-layer.visible .hall-dialogue-card{transform:none}.hall-dialogue-card>small{font:9px Cinzel;letter-spacing:2.3px;color:#c09854}.hall-dialogue-card h3{margin:4px 0 8px;font:23px Cinzel;color:#ead09a}.hall-dialogue-card p{margin:0 0 15px;color:#c9bda8;font:italic 15px/1.55 Georgia,serif}.hall-dialogue-close{position:absolute;right:10px;top:8px;border:0;background:none;color:#8e7b60;font-size:22px;cursor:pointer}.hall-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.hall-atmosphere i{position:absolute;bottom:-5%;width:3px;height:3px;border-radius:50%;background:#ffdda0;box-shadow:0 0 12px #e5a847;animation:hallEmber 6s linear infinite}.hall-atmosphere i:nth-child(1){left:12%}.hall-atmosphere i:nth-child(2){left:39%;animation-delay:-2s}.hall-atmosphere i:nth-child(3){left:68%;animation-delay:-4s}.hall-atmosphere i:nth-child(4){left:90%;animation-delay:-1s}.hall-atmosphere>span{position:absolute;right:12%;top:18%;color:#ffe0a2;text-shadow:0 0 15px #e2a847;animation:castleStar 3s ease-in-out infinite}@keyframes hallCandleGlow{50%{filter:brightness(1.06)}}@keyframes hallEmber{0%{opacity:0;transform:translateY(20px)}20%{opacity:.7}100%{opacity:0;transform:translate(34px,-75vh)}}@keyframes questReady{50%{box-shadow:0 0 25px rgba(211,162,77,.35);filter:brightness(1.12)}}
@media(max-width:930px){html[data-scene-art="great-hall"] .clean-stage{overflow-y:auto!important}.great-hall-layout{grid-template-columns:1fr}.hall-encounters{grid-template-columns:1fr 1fr}.hall-quest-panel{border-left:1px solid rgba(167,124,59,.62);border-top:2px solid #a77e42}}
@media(max-width:600px){.hall-encounters{grid-template-columns:1fr}.hall-house-line img{width:68px;height:68px}.great-hall-layout{padding:7px}.hall-dialogue-layer{padding:15px}.hall-dialogue-card{padding:19px}}
@media(prefers-reduced-motion:reduce){html[data-scene-art="great-hall"] .clean-scene:after,.hall-atmosphere i,.hall-atmosphere>span,.hall-quest-action.ready{animation:none!important}.hall-dialogue-layer,.hall-dialogue-card{transition:none!important}}

/* V0.9.1 — Great Hall readability pass */
.great-hall-layout{grid-template-columns:1fr 420px}.hall-house-line small{font-size:11px}.hall-house-line b{font-size:22px}.hall-house-line p{font-size:14px;line-height:1.45}.hall-encounters button{min-height:126px;padding:15px}.hall-encounters small{font-size:10px;line-height:1.35}.hall-encounters b{margin:5px 0;font-size:15px}.hall-encounters span{font-size:13px;line-height:1.35}.hall-quest-panel{padding:18px 19px}.hall-quest-heading small{font-size:10px}.hall-quest-heading h2{font-size:22px}.hall-quest-heading>span{min-width:44px;height:44px;font-size:14px}.hall-quest-panel>p{font-size:14px;line-height:1.5}.hall-objectives{gap:8px}.hall-objectives>div{padding:11px 12px}.hall-objectives b{font-size:12px;line-height:1.35}.hall-objectives small{margin-top:3px;font-size:12px;line-height:1.35}.hall-rewards{padding:11px 12px}.hall-rewards>small{font-size:10px}.hall-rewards b{padding:6px 8px;font-size:10px}.hall-quest-hint,.hall-complete-stamp{font-size:11px}.hall-quest-action{font-size:12px!important;padding:14px!important}.hall-return{font-size:11px!important}.hall-dialogue-card>small{font-size:11px}.hall-dialogue-card h3{font-size:26px}.hall-dialogue-card p{font-size:17px}
@media(max-width:1050px) and (min-width:931px){.great-hall-layout{grid-template-columns:1fr 390px}.hall-encounters button{padding:12px}.hall-encounters b{font-size:14px}}
@media(max-width:930px){.great-hall-layout{grid-template-columns:1fr}}

/* V0.9.2 — house-specific Hogwarts dashboard environments */
html[data-scene-art="castle"][data-player-house="gryffindor"] .clean-scene{background-image:url('art/hogwarts_dashboard_gryffindor.jpg')!important}
html[data-scene-art="castle"][data-player-house="slytherin"] .clean-scene{background-image:url('art/hogwarts_dashboard_slytherin.jpg')!important}
html[data-scene-art="castle"][data-player-house="hufflepuff"] .clean-scene{background-image:url('art/hogwarts_dashboard_hufflepuff.jpg')!important}
html[data-scene-art="castle"][data-player-house="ravenclaw"] .clean-scene{background-image:url('art/hogwarts_dashboard_ravenclaw.jpg')!important}
html[data-scene-art="castle"][data-player-house="gryffindor"] .clean-scene:after{background:radial-gradient(circle at 50% 34%,rgba(205,65,42,.1),transparent 40%),radial-gradient(ellipse at center,transparent 42%,rgba(1,2,3,.46))}
html[data-scene-art="castle"][data-player-house="slytherin"] .clean-scene:after{background:radial-gradient(circle at 50% 34%,rgba(30,161,119,.1),transparent 40%),radial-gradient(ellipse at center,transparent 42%,rgba(1,2,3,.46))}
html[data-scene-art="castle"][data-player-house="hufflepuff"] .clean-scene:after{background:radial-gradient(circle at 50% 34%,rgba(231,177,58,.1),transparent 40%),radial-gradient(ellipse at center,transparent 42%,rgba(1,2,3,.46))}
html[data-scene-art="castle"][data-player-house="ravenclaw"] .clean-scene:after{background:radial-gradient(circle at 50% 34%,rgba(60,123,204,.11),transparent 40%),radial-gradient(ellipse at center,transparent 42%,rgba(1,2,3,.46))}

/* V0.9.3 — quest journal, inventory, spellbook and student profile */
.hogwarts-tool-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-top:8px}.hogwarts-tool-strip button{display:flex;align-items:center;justify-content:center;gap:8px;padding:9px 10px;background:rgba(7,8,10,.82);border:1px solid rgba(105,81,47,.48);color:#bdae96;cursor:pointer;transition:.2s}.hogwarts-tool-strip button:hover{border-color:var(--house-primary);color:#ebce98;background:rgba(21,16,11,.94)}.hogwarts-tool-strip i{font:normal 15px Cinzel;color:var(--house-primary)}.hogwarts-tool-strip span{font:9px Cinzel;letter-spacing:.8px}
.player-section-nav{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;margin-bottom:8px;padding:7px;background:rgba(3,5,7,.9);border:1px solid rgba(153,114,57,.52);box-shadow:0 12px 35px rgba(0,0,0,.5);backdrop-filter:blur(10px)}.player-section-nav button{display:flex;align-items:center;justify-content:center;gap:8px;padding:10px;background:rgba(8,9,11,.72);border:1px solid transparent;color:#9e927f;cursor:pointer}.player-section-nav button:hover,.player-section-nav button.active{border-color:var(--house-primary);color:#ead09c;background:rgba(24,17,11,.88)}.player-section-nav i{font:normal 17px Cinzel;color:var(--house-primary)}.player-section-nav span{font:10px Cinzel;letter-spacing:1px}.player-page-shell{display:grid;grid-template-columns:1fr 360px;gap:10px;padding:11px;background:linear-gradient(110deg,rgba(3,5,7,.96),rgba(20,14,9,.9));border:1px solid rgba(158,118,59,.58);box-shadow:0 27px 80px rgba(0,0,0,.86);backdrop-filter:blur(12px) saturate(.83)}.player-page-shell>section,.player-page-shell>aside{padding:15px;background:rgba(5,7,9,.69);border:1px solid rgba(102,79,46,.44)}.player-page-heading small{font:9px Cinzel;letter-spacing:1.8px;color:#a18456}.player-page-heading h2{margin:3px 0 11px;font:21px Cinzel;color:#e4c790}.player-back{font-size:10px!important;padding:10px 16px!important}.player-empty{min-height:150px;display:grid;place-items:center;align-content:center;text-align:center;padding:20px;border:1px dashed rgba(117,90,51,.5);color:#938877}.player-empty span{font-size:30px;color:#b08a4d}.player-empty b{margin-top:7px;font:13px Cinzel;color:#d3bd91}.player-empty p{max-width:400px;margin:6px 0 0;font-size:13px}.player-empty.compact{min-height:85px}.player-empty.compact span{font-size:20px}
.journal-shell{grid-template-columns:1fr 430px}.journal-card{padding:15px;margin-bottom:8px;background:linear-gradient(130deg,rgba(9,10,12,.92),rgba(25,17,10,.8));border:1px solid rgba(116,87,47,.55);border-left:3px solid #bb8b45}.journal-card.completed{border-left-color:#6e9c67}.journal-card-top{display:flex;align-items:start;justify-content:space-between;gap:12px}.journal-card-top small{font:9px Cinzel;letter-spacing:1.5px;color:#967848}.journal-card-top h2{margin:3px 0 0;font:19px Cinzel;color:#e4c78e}.journal-card-top>span{padding:5px 7px;border:1px solid rgba(121,91,50,.55);font:8px Cinzel;color:#ba995e}.journal-card>p{margin:8px 0 10px;color:#aaa08f;font-size:13px}.journal-objectives{display:grid;gap:5px}.journal-objectives>div{padding:8px 10px;background:rgba(5,7,9,.65);color:#a99e8b;font-size:12px}.journal-objectives>div.done{color:#9aba8f}.journal-objectives i{display:inline-block;width:22px;font-style:normal}.journal-card footer{margin-top:10px;padding-top:9px;border-top:1px solid rgba(103,78,45,.45)}.journal-card footer small,.journal-card footer b{display:block}.journal-card footer small{font:8px Cinzel;letter-spacing:1.5px;color:#88704b}.journal-card footer b{margin-top:3px;font:10px Cinzel;color:#ceb17b}.journal-card footer button{margin-top:9px;padding:8px 11px;background:#17130e;border:1px solid #9c783f;color:#ddbf85;font:9px Cinzel;cursor:pointer}
.inventory-shell{grid-template-columns:1fr 310px}.inventory-grid{display:grid;grid-template-columns:1fr 1fr;gap:7px}.inventory-card{position:relative;display:grid;grid-template-columns:48px 1fr;gap:11px;align-items:center;min-height:92px;padding:11px;background:rgba(7,9,11,.78);border:1px solid rgba(100,78,46,.48)}.inventory-card.quest-item{border-color:rgba(190,143,67,.74);box-shadow:inset 0 0 25px rgba(195,143,61,.05)}.inventory-icon{display:grid;place-items:center;width:46px;height:46px;border:1px solid rgba(140,104,54,.58);font:22px Cinzel;color:#c89a53}.inventory-card small{font:8px Cinzel;letter-spacing:1.3px;color:#8e744d}.inventory-card h3{margin:3px 0;font:12px Cinzel;color:#ddc492}.inventory-card p{margin:0;color:#8f8678;font-size:10px;line-height:1.35}.inventory-card>b{position:absolute;right:8px;top:7px;font:9px Cinzel;color:#aa8d5a}.equipment-panel{align-self:start}.equipment-slot{padding:13px;margin-bottom:7px;background:rgba(7,9,11,.74);border-left:2px solid var(--house-primary)}.equipment-slot small,.equipment-slot b{display:block}.equipment-slot small{font:9px Cinzel;letter-spacing:1.4px;color:#8a785c}.equipment-slot b{margin-top:5px;font:12px Cinzel;color:#d6bd8b}
.spellbook-shell{grid-template-columns:1fr 330px}.spell-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:8px}.spell-card{position:relative;min-height:180px;padding:17px;background:linear-gradient(145deg,rgba(7,9,12,.9),rgba(27,18,11,.82));border:1px solid rgba(115,86,47,.58)}.spell-sigil{float:left;display:grid;place-items:center;width:54px;height:54px;margin:0 13px 8px 0;border:1px solid #a27a41;border-radius:50%;font-size:25px;color:#e0bd76;box-shadow:0 0 20px rgba(215,165,75,.12)}.spell-card small{font:8px Cinzel;letter-spacing:1.3px;color:#9c7e4e}.spell-card h3{margin:5px 0;font:23px Cinzel;color:#e7ca91}.spell-card p{clear:both;color:#ada18e;font-size:13px;line-height:1.45}.mastery-track{height:4px;margin-top:13px;background:#302718}.mastery-track i{display:block;height:100%;background:linear-gradient(90deg,#89642f,#e1b75f);box-shadow:0 0 10px #c59442}.spell-card>span{display:block;margin-top:7px;color:#81786b;font-size:10px}.spellbook-note{text-align:center;align-self:start}.spellbook-note>span{display:block;font-size:48px;color:#d1a95f}.spellbook-note>small{font:9px Cinzel;letter-spacing:1.8px;color:#947748}.spellbook-note h2{margin:5px 0;font:21px Cinzel;color:#e0c38c}.spellbook-note p{color:#a89d8b;font-size:13px;line-height:1.5}.spellbook-note>b{display:inline-block;padding:6px 9px;border:1px solid #765c35;font:9px Cinzel;color:#b9965c}
.profile-shell{grid-template-columns:1fr 380px}.profile-identity{text-align:center}.profile-identity>img{width:150px;height:150px;object-fit:contain;filter:drop-shadow(0 16px 20px #000)}.profile-identity>small{display:block;font:10px Cinzel;letter-spacing:2px;color:var(--house-primary)}.profile-identity>h2{margin:5px 0;font:29px Cinzel;color:#ead09a}.profile-identity>p{margin:0 auto 14px;max-width:540px;color:#aaa08f;font-size:13px}.profile-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:7px}.profile-stats>div{padding:11px;background:rgba(6,8,10,.76);border-top:2px solid var(--house-primary)}.profile-stats small,.profile-stats b{display:block}.profile-stats small{font:8px Cinzel;color:#88785e}.profile-stats b{margin-top:4px;font:13px Cinzel;color:#ddc38d}.profile-details>div:not(.player-page-heading){padding:10px 11px;margin-bottom:6px;background:rgba(7,9,11,.74);border-left:2px solid var(--house-primary)}.profile-details small,.profile-details b{display:block}.profile-details small{font:8px Cinzel;letter-spacing:1.3px;color:#89785e}.profile-details b{margin-top:4px;font:11px Cinzel;color:#d7c19a}
@media(max-width:950px){html[data-scene-art="castle"] .clean-stage{overflow-y:auto!important}.player-page-shell,.journal-shell,.inventory-shell,.spellbook-shell,.profile-shell{grid-template-columns:1fr}.profile-stats{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.hogwarts-tool-strip,.player-section-nav{grid-template-columns:1fr 1fr}.inventory-grid,.spell-grid{grid-template-columns:1fr}.player-section-nav span{font-size:9px}.profile-identity>img{width:120px;height:120px}}

/* V0.9.4 — centered castle dashboard and 100%-zoom readability */
html[data-scene-art="castle"][data-castle-view="dashboard"] .clean-scene-inner{justify-content:center!important;padding-top:35px!important;padding-bottom:20px!important}
html[data-scene-art="castle"][data-castle-view="dashboard"] .scene-actions{margin-top:10px}
html[data-scene-art="castle"][data-castle-view="player"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important;-ms-overflow-style:none!important}html[data-scene-art="castle"][data-castle-view="player"] .clean-stage::-webkit-scrollbar{display:none!important;width:0!important;height:0!important}html[data-scene-art="castle"][data-castle-view="player"] .clean-scene-inner{justify-content:flex-start!important;padding-top:24px!important;padding-bottom:28px!important}
.hogwarts-tool-strip span{font-size:11px}.hogwarts-tool-strip i{font-size:17px}.player-section-nav button{padding:12px}.player-section-nav span{font-size:12px}.player-section-nav i{font-size:19px}.player-page-heading small{font-size:11px}.player-page-heading h2{font-size:24px}.player-back{font-size:12px!important;padding:12px 18px!important}.player-empty b{font-size:15px}.player-empty p{font-size:14px;line-height:1.45}
.journal-card-top small{font-size:10px}.journal-card-top h2{font-size:22px}.journal-card-top>span{font-size:10px}.journal-card>p{font-size:15px;line-height:1.45}.journal-objectives>div{padding:10px 12px;font-size:14px;line-height:1.4}.journal-card footer small{font-size:10px}.journal-card footer b{font-size:12px;line-height:1.4}.journal-card footer button{font-size:11px;padding:10px 13px}
.inventory-card{min-height:105px;padding:13px}.inventory-card small{font-size:10px}.inventory-card h3{font-size:14px}.inventory-card p{font-size:12px;line-height:1.4}.inventory-card>b{font-size:11px}.equipment-slot{padding:15px}.equipment-slot small{font-size:11px}.equipment-slot b{font-size:14px;line-height:1.4}
.spell-card small{font-size:10px}.spell-card h3{font-size:26px}.spell-card p{font-size:15px}.spell-card>span{font-size:12px;line-height:1.4}.spellbook-note>small{font-size:11px}.spellbook-note h2{font-size:24px}.spellbook-note p{font-size:15px}.spellbook-note>b{font-size:11px}
.profile-identity>small{font-size:12px}.profile-identity>h2{font-size:32px}.profile-identity>p{font-size:15px;line-height:1.45}.profile-stats small{font-size:10px}.profile-stats b{font-size:15px}.profile-details small{font-size:10px}.profile-details b{font-size:13px;line-height:1.4}
@media(max-width:620px){.player-section-nav span{font-size:11px}}

/* V0.10.0 — secure owner rank and expandable Headmaster Panel */
.hogwarts-tool-strip.owner-enabled{grid-template-columns:repeat(5,1fr)}.hogwarts-tool-strip .owner-entry{border-color:rgba(202,159,78,.65);background:linear-gradient(135deg,rgba(42,28,11,.92),rgba(9,10,13,.9));color:#efd39b}.hogwarts-tool-strip .owner-entry i{color:#e0b660;text-shadow:0 0 14px rgba(230,177,79,.55)}
html[data-castle-view="owner"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important}html[data-castle-view="owner"] .clean-stage::-webkit-scrollbar{display:none}html[data-castle-view="owner"] .clean-scene-inner{justify-content:flex-start!important;padding-top:22px!important;padding-bottom:30px!important}.owner-console{width:min(1180px,96vw);padding:13px;background:linear-gradient(125deg,rgba(3,5,8,.97),rgba(25,17,9,.94));border:1px solid rgba(183,137,67,.7);box-shadow:0 30px 95px rgba(0,0,0,.9),inset 0 0 60px rgba(164,111,38,.035);backdrop-filter:blur(15px)}.owner-console-head{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 19px;margin-bottom:9px;background:linear-gradient(100deg,rgba(22,14,8,.95),rgba(5,7,10,.9));border:1px solid rgba(115,84,44,.5);border-left:3px solid #c99b50}.owner-console-head small,.owner-card-title small{font:10px Cinzel;letter-spacing:2px;color:#aa844c}.owner-console-head h2{margin:4px 0 3px;font:27px Cinzel;color:#efd39b}.owner-console-head p{margin:0;color:#a99e8b;font-size:14px}.owner-rank-seal{display:grid;place-items:center;width:76px;height:76px;border:1px solid #d1a45a;border-radius:50%;color:#f0cd8a;background:radial-gradient(circle,#39260e,#090b0e 70%);box-shadow:0 0 30px rgba(205,151,61,.16);font:11px Cinzel;letter-spacing:1.5px}.owner-stat-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:8px;margin-bottom:9px}.owner-stat-grid article{position:relative;min-height:91px;padding:15px 16px;background:rgba(6,8,11,.82);border:1px solid rgba(101,78,47,.5);border-top:2px solid #b88a45}.owner-stat-grid i{position:absolute;right:13px;top:10px;font:normal 25px Cinzel;color:rgba(199,150,72,.3)}.owner-stat-grid small,.owner-stat-grid b{display:block}.owner-stat-grid small{font:9px Cinzel;letter-spacing:1.3px;color:#8f7958}.owner-stat-grid b{margin-top:8px;font:27px Cinzel;color:#e5c588}.owner-main-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:9px}.owner-panel-card{padding:16px;background:rgba(5,7,9,.78);border:1px solid rgba(105,80,45,.5)}.owner-card-title{display:flex;align-items:center;justify-content:space-between;padding-bottom:12px;border-bottom:1px solid rgba(101,76,42,.46)}.owner-card-title h3{margin:4px 0 0;font:20px Cinzel;color:#dfc28b}.owner-card-title>span{font:9px Cinzel;color:#8d795b}.owner-roster{display:grid;gap:5px;margin-top:10px}.owner-roster>article{display:grid;grid-template-columns:39px 1fr auto;align-items:center;gap:10px;padding:8px 10px;background:rgba(9,10,12,.72);border-left:2px solid rgba(170,125,59,.7)}.owner-avatar{display:grid;place-items:center;width:36px;height:36px;border:1px solid #795d35;border-radius:50%;font:15px Cinzel;color:#d5ae68;background:#17120d}.owner-roster b,.owner-roster small{display:block}.owner-roster b{font:13px Cinzel;color:#dbc292}.owner-roster small{margin-top:3px;color:#8f8576;font-size:12px}.owner-roster>article>span{font:10px Cinzel;color:#a99066}.owner-roster em{padding:4px 6px;border:1px solid #b98a43;color:#e3bd75;font:normal 9px Cinzel}.owner-house-list{display:grid;gap:6px;margin-top:10px}.owner-house-list article{display:grid;grid-template-columns:45px 1fr auto;align-items:center;gap:10px;padding:8px 10px;background:rgba(8,10,12,.73);border-left:3px solid var(--house-colour)}.owner-house-list img{width:42px;height:42px;object-fit:contain}.owner-house-list b,.owner-house-list small{display:block}.owner-house-list b{font:12px Cinzel;color:#d9c08f}.owner-house-list small{margin-top:3px;color:#897f70;font-size:11px}.owner-house-list span{font:10px Cinzel;color:#ba9b66}.owner-extension-row{display:flex;align-items:center;justify-content:space-between;gap:15px;margin-top:9px;padding:13px 16px;background:rgba(11,10,8,.82);border:1px dashed rgba(154,113,56,.55)}.owner-extension-row>div{display:flex;align-items:center;gap:12px}.owner-extension-row i{font:normal 23px Cinzel;color:#bd914d}.owner-extension-row small,.owner-extension-row b{display:block}.owner-extension-row small{font:9px Cinzel;letter-spacing:1.4px;color:#a27f4a}.owner-extension-row b{margin-top:3px;color:#b5aa98;font-size:13px}.owner-extension-row em{font:normal 9px Cinzel;color:#86ae7c}.owner-loading,.owner-denied{width:min(650px,90vw);padding:35px;text-align:center;background:rgba(4,6,9,.9);border:1px solid #93703e}.owner-loading span,.owner-denied>span{display:block;margin-bottom:12px;font-size:35px;color:#d1a558}.owner-loading b{font:13px Cinzel;color:#cfb580}.owner-denied h2{font:22px Cinzel;color:#e0c18a}.owner-denied p{color:#aaa08e}.owner-empty{color:#918777}
@media(max-width:900px){.hogwarts-tool-strip.owner-enabled{grid-template-columns:repeat(3,1fr)}.owner-stat-grid{grid-template-columns:1fr 1fr}.owner-main-grid{grid-template-columns:1fr}}
@media(max-width:560px){.hogwarts-tool-strip.owner-enabled{grid-template-columns:1fr 1fr}.owner-console-head{align-items:flex-start}.owner-rank-seal{width:58px;height:58px;font-size:9px}.owner-stat-grid{grid-template-columns:1fr}.owner-extension-row{align-items:flex-start;flex-direction:column}.owner-roster>article{grid-template-columns:36px 1fr}.owner-roster>article>span{grid-column:2}.owner-house-list article{grid-template-columns:40px 1fr}.owner-house-list article>span{grid-column:2}}

/* V0.10.1 — owner-controlled global update deployment */
.owner-extension-row>button{flex:0 0 auto;padding:11px 15px;background:linear-gradient(135deg,#54360f,#17100a);border:1px solid #d1a052;color:#f1d394;font:10px Cinzel;letter-spacing:.8px;cursor:pointer;box-shadow:0 8px 24px rgba(0,0,0,.4);transition:.2s}.owner-extension-row>button:hover:not(:disabled){transform:translateY(-2px);filter:brightness(1.15);box-shadow:0 11px 28px rgba(0,0,0,.5),0 0 17px rgba(213,161,74,.15)}.owner-extension-row>button:disabled{opacity:.55;cursor:wait}
.global-update-overlay{position:fixed;inset:0;z-index:2147483646;display:grid;place-items:center;padding:20px;background:radial-gradient(circle at 50% 42%,rgba(72,45,15,.35),transparent 48%),rgba(0,2,5,.96);opacity:0;pointer-events:none;transition:opacity .35s ease;overflow:hidden}.global-update-overlay:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(115deg,transparent 0 70px,rgba(221,166,74,.025) 71px 72px);animation:updateBackdrop 9s linear infinite}.global-update-overlay.visible{opacity:1;pointer-events:all}.global-update-card{position:relative;width:min(1100px,96vw);filter:drop-shadow(0 35px 75px rgba(0,0,0,.85));transform:scale(.94);transition:transform .55s cubic-bezier(.16,1,.3,1)}.global-update-overlay.visible .global-update-card{transform:scale(1)}.global-update-card>img{display:block;width:100%;height:auto;position:relative;z-index:1}.global-update-progress{position:absolute;z-index:3;left:20.5%;right:20.5%;top:67.5%;height:7px;padding:1px;background:rgba(4,5,7,.9);border:1px solid rgba(246,197,95,.76);box-shadow:0 0 14px rgba(228,167,60,.35)}.global-update-progress i{display:block;width:0;height:100%;background:linear-gradient(90deg,#7a430b,#ffcf62 52%,#fff2b1);box-shadow:0 0 13px #e6a333;transition:width .08s linear}.global-update-status{position:absolute;z-index:3;left:22%;right:22%;top:70%;display:flex;justify-content:space-between;align-items:center;color:#f4dfb0;text-shadow:0 2px 7px #000}.global-update-status b{font:10px Cinzel;letter-spacing:1.3px}.global-update-status span{font:12px Cinzel;color:#ffd578}.global-update-card:after{content:'✦';position:absolute;z-index:4;left:50%;top:67.85%;transform:translate(-50%,-50%);color:#fff1bd;text-shadow:0 0 13px #f4b13e;animation:updateSpark 1.25s ease-in-out infinite}@keyframes updateBackdrop{to{transform:translateX(144px)}}@keyframes updateSpark{50%{filter:brightness(1.5);transform:translate(-50%,-50%) scale(1.25)}}
@media(max-width:700px){.global-update-overlay{padding:4px}.global-update-card{width:112vw}.global-update-progress{height:5px}.global-update-status b{font-size:7px}.global-update-status span{font-size:9px}}
@media(prefers-reduced-motion:reduce){.global-update-overlay,.global-update-card,.global-update-progress i{transition:none!important}.global-update-overlay:before,.global-update-card:after{animation:none!important}}

/* V0.11.0 — interactive Charms Classroom */
html[data-scene-art="charms"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important}html[data-scene-art="charms"] .clean-stage::-webkit-scrollbar{display:none}html[data-scene-art="charms"] .clean-scene{background-image:url('art/charms_classroom.webp')!important;background-position:center!important;background-size:cover!important}html[data-scene-art="charms"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,4,8,.2),rgba(2,4,8,.06) 42%,rgba(2,3,6,.9)),linear-gradient(90deg,rgba(2,4,8,.42),transparent 42%,rgba(2,4,8,.26))!important}html[data-scene-art="charms"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;background:radial-gradient(circle at 66% 39%,rgba(99,163,255,.12),transparent 26%),radial-gradient(ellipse at center,transparent 42%,rgba(0,2,6,.62));animation:charmsRoomGlow 4s ease-in-out infinite}html[data-scene-art="charms"] .clean-scene-inner{justify-content:center!important;width:min(1180px,96vw)!important;padding:25px 18px 30px!important}html[data-scene-art="charms"] .clean-scene h1{font-size:clamp(28px,4vw,48px)!important;text-shadow:0 5px 24px #000}.charms-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.charms-atmosphere i{position:absolute;bottom:-5%;width:3px;height:3px;border-radius:50%;background:#e9f3ff;box-shadow:0 0 15px #77adff;animation:charmsSpark 5.5s linear infinite}.charms-atmosphere i:nth-child(1){left:9%}.charms-atmosphere i:nth-child(2){left:35%;animation-delay:-2s}.charms-atmosphere i:nth-child(3){left:70%;animation-delay:-3.5s}.charms-atmosphere i:nth-child(4){left:91%;animation-delay:-1s}.charms-atmosphere>span{position:absolute;right:16%;top:20%;font-size:26px;color:#d7eaff;text-shadow:0 0 25px #7db3ff;animation:charmsStar 2.4s ease-in-out infinite}.charms-loading{padding:35px;background:rgba(3,7,13,.9);border:1px solid #6d82a4}.charms-loading span{display:block;font-size:34px;color:#acd0ff}.charms-loading b{display:block;margin-top:9px;font:13px Cinzel;color:#d7e5f9}
.charms-lesson-shell{display:grid;grid-template-columns:1.35fr .65fr;gap:10px;padding:11px;background:linear-gradient(125deg,rgba(3,7,14,.96),rgba(23,15,9,.91));border:1px solid rgba(160,126,72,.68);box-shadow:0 30px 90px #000;backdrop-filter:blur(13px)}.charms-professor,.charms-lesson-card{padding:24px;background:rgba(5,8,13,.73);border:1px solid rgba(107,91,65,.48)}.professor-sigil{float:left;display:grid;place-items:center;width:72px;height:72px;margin:0 17px 10px 0;border:1px solid #b29159;border-radius:50%;background:radial-gradient(circle,#273552,#080b12 70%);box-shadow:0 0 24px rgba(93,151,229,.18);font:28px Cinzel;color:#e3c98f}.charms-professor>small,.charms-lesson-card>small,.charms-challenge header small,.charms-trace-layout header small,.charms-focus-shell section>small,.charms-result section>small,.charms-result aside>small{font:10px Cinzel;letter-spacing:2px;color:#a98b58}.charms-professor h2{margin:7px 0 11px;font:26px/1.3 Cinzel;color:#e9d4a6}.charms-professor>p{clear:both;max-width:700px;color:#bcb3a4;font:15px/1.55 Georgia}.professor-note{display:flex;align-items:center;gap:13px;margin-top:18px;padding:13px;background:rgba(7,12,21,.78);border-left:3px solid #809fc8}.professor-note>span{font-size:25px;color:#bcd9ff}.professor-note b,.professor-note small{display:block}.professor-note b{font:11px Cinzel;color:#e3c991}.professor-note small{margin-top:4px;color:#9f9b93;font-size:13px}.charms-lesson-card{text-align:center}.charms-lesson-card h3{margin:5px;font:34px Cinzel;color:#f2d79e}.lumos-rune{display:grid;place-items:center;width:100px;height:100px;margin:15px auto;border:1px solid #8cb0db;border-radius:50%;font-size:43px;color:#fff6c9;background:radial-gradient(circle,rgba(255,246,189,.24),rgba(87,142,214,.1) 45%,transparent 70%);box-shadow:0 0 32px rgba(112,173,250,.24);animation:lumosRune 2s ease-in-out infinite}.charms-lesson-card p{color:#aaa79e;font-size:14px}.charms-lesson-card ul{padding:0;list-style:none;color:#99958d;font-size:13px}.charms-lesson-card li{padding:7px;border-top:1px solid rgba(100,89,70,.35)}.charms-lesson-card button{width:100%;margin-top:8px}
.charms-progress{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin-bottom:9px;padding:7px;background:rgba(3,6,11,.91);border:1px solid rgba(125,103,68,.54)}.charms-progress>div{display:flex;align-items:center;gap:9px;padding:9px;background:rgba(8,11,17,.74);opacity:.45}.charms-progress>div.active,.charms-progress>div.done{opacity:1;border:1px solid rgba(112,151,203,.6)}.charms-progress span{display:grid;place-items:center;width:27px;height:27px;border:1px solid #6c7890;border-radius:50%;font:9px Cinzel;color:#bad7fc}.charms-progress b{font:10px Cinzel;color:#cdbf9f}.charms-progress .done span{color:#94c68d;border-color:#65925f}.charms-challenge{padding:24px;background:linear-gradient(130deg,rgba(3,7,14,.96),rgba(24,16,10,.92));border:1px solid rgba(159,126,73,.65);box-shadow:0 25px 80px #000}.charms-challenge header{text-align:center}.charms-challenge h2,.charms-trace-layout h2,.charms-focus-shell h2{margin:7px 0;font:25px Cinzel;color:#ead09a}.charms-challenge header p,.charms-trace-layout header p,.charms-focus-shell section>p{color:#aaa69d;font:italic 14px/1.5 Georgia}.charms-answer-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:20px}.charms-answer-grid button{display:flex;align-items:center;gap:13px;min-height:82px;padding:14px;text-align:left;background:rgba(7,11,18,.85);border:1px solid #4f5c70;color:#d6c8aa;cursor:pointer;transition:.2s}.charms-answer-grid button:hover:not(:disabled){transform:translateY(-3px);border-color:#99b9e1;box-shadow:0 12px 28px #000}.charms-answer-grid span{display:grid;place-items:center;width:35px;height:35px;border:1px solid #788ba7;border-radius:50%;font:12px Cinzel;color:#b9d4f6}.charms-answer-grid b{font:14px Cinzel}.charms-answer-grid .correct{border-color:#6aa26d;background:rgba(15,47,28,.78)}.charms-answer-grid .wrong{border-color:#a65c50;background:rgba(55,20,16,.75)}.charms-feedback{margin-top:13px;padding:11px;text-align:center;color:#a7a095;font:italic 13px Georgia;background:rgba(3,6,10,.6)}
.charms-trace-layout,.charms-focus-shell,.charms-result{display:grid;grid-template-columns:1fr 300px;gap:10px;padding:11px;background:linear-gradient(125deg,rgba(3,7,14,.97),rgba(24,16,9,.92));border:1px solid rgba(158,124,70,.66);box-shadow:0 28px 85px #000}.charms-trace-layout>section,.charms-trace-layout>aside,.charms-focus-shell>section,.charms-focus-shell>aside,.charms-result>section,.charms-result>aside{padding:18px;background:rgba(5,9,15,.75);border:1px solid rgba(104,89,65,.43)}.wand-trace{position:relative;height:300px;margin-top:12px;overflow:hidden;touch-action:none;cursor:crosshair;background:radial-gradient(circle at 50% 50%,rgba(68,113,172,.12),transparent 55%),rgba(1,4,9,.78);border:1px solid #50637c}.wand-trace svg{width:100%;height:100%}.trace-guide{fill:none;stroke:#4d5f77;stroke-width:5;stroke-dasharray:9 12}.trace-glow{fill:none;stroke:#9cc8ff;stroke-width:2;filter:drop-shadow(0 0 8px #71aaff);opacity:.4}.wand-trace circle{fill:#0b1019;stroke:#8298b5;stroke-width:3}.wand-trace circle:first-of-type{fill:#e7c36e;stroke:#fff1b1;filter:drop-shadow(0 0 11px #e8b84e);animation:traceStart 1.2s infinite}.wand-trace circle.reached{fill:#eaf5ff;stroke:#aad2ff;filter:drop-shadow(0 0 9px #7aaff0)}.trace-cursor{position:absolute;left:-50px;top:-50px;transform:translate(-50%,-50%);color:#fff5c5;text-shadow:0 0 15px #7bb5ff;pointer-events:none}.trace-instruction{position:absolute;left:0;right:0;bottom:10px;text-align:center;font:9px Cinzel;letter-spacing:1.7px;color:#9faec1}.trace-wand{margin:28px 0;text-align:center;font-size:30px;color:#d8b875;text-shadow:0 0 15px #7caef0}.charms-trace-layout aside>small,.charms-focus-shell aside>small{font:9px Cinzel;letter-spacing:1.5px;color:#a4895b}.charms-trace-layout aside>p,.charms-focus-shell aside>p{color:#aaa297;font:italic 14px/1.5 Georgia}.trace-score{padding:12px;margin:18px 0;background:#070b12;border-left:2px solid #80a9dc}.trace-score span,.trace-score b{display:block}.trace-score span{font:9px Cinzel;color:#83785f}.trace-score b{margin-top:5px;font:16px Cinzel;color:#d6c28f}.charms-trace-layout aside button{width:100%}
.charms-focus-shell>section{text-align:center;padding:28px}.focus-channel{position:relative;height:28px;margin:28px 20px 20px;background:linear-gradient(90deg,#381817,#735029 35%,#e5c66c 50%,#735029 65%,#381817);border:1px solid #a9874f;box-shadow:inset 0 0 13px #000}.focus-perfect{position:absolute;left:43%;width:14%;top:-6px;bottom:-6px;border:1px solid #fff0a8;box-shadow:0 0 18px rgba(255,225,128,.4)}.focus-channel i{position:absolute;left:0;top:50%;transform:translate(-50%,-50%);font:normal 24px Cinzel;color:#fff8cf;text-shadow:0 0 15px #efbd4f}.focus-cast{min-width:220px}.focus-incantation{margin-top:17px;color:#a59e91;font:italic 15px Georgia}.focus-incantation b{color:#ead097}.focus-orb{display:grid;place-items:center;width:160px;height:160px;margin:5px auto 18px;border:1px solid #5c718d;border-radius:50%;background:radial-gradient(circle,rgba(104,162,231,.12),transparent 65%)}.focus-orb span{font-size:47px;color:#7e99b9}.focus-orb.cast{animation:lumosCast .95s forwards}.focus-orb.cast span{color:#fff8c9}
.charms-result>section{text-align:center}.result-light{display:grid;place-items:center;width:120px;height:120px;margin:0 auto 13px;border-radius:50%;font-size:53px;color:#fff6c6;background:radial-gradient(circle,rgba(255,244,175,.34),rgba(92,147,214,.1) 45%,transparent 70%);box-shadow:0 0 45px rgba(133,186,247,.25)}.charms-result h2{margin:5px;font:45px Cinzel;color:#efd49c}.charms-result section>p{max-width:650px;margin:8px auto 17px;color:#b1aa9e;font-size:14px;line-height:1.5}.charms-score-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:7px}.charms-score-grid div{padding:12px;background:rgba(5,9,15,.8);border-top:2px solid #7799c2}.charms-score-grid small,.charms-score-grid b{display:block}.charms-score-grid small{font:9px Cinzel;color:#8a7c63}.charms-score-grid b{margin-top:5px;font:17px Cinzel;color:#d9c18f}.charms-result aside h3{margin:7px 0 12px;font:21px Cinzel;color:#e2c890}.charms-result aside>p{color:#a8a094;font-size:14px}.charms-rewards{display:grid;gap:7px;margin-bottom:15px}.charms-rewards b{padding:10px;background:#080c12;border-left:2px solid #bd914d;font:10px Cinzel;color:#d9bf88}.charms-result aside button{width:100%;margin-top:7px}.lumos-success .clean-scene:after{background:radial-gradient(circle at 50% 45%,rgba(255,244,180,.26),transparent 32%),radial-gradient(ellipse at center,transparent 42%,rgba(0,2,6,.55))!important}
@keyframes charmsRoomGlow{50%{filter:brightness(1.07)}}@keyframes charmsSpark{0%{opacity:0;transform:translateY(20px)}20%{opacity:.75}100%{opacity:0;transform:translate(35px,-85vh)}}@keyframes charmsStar{50%{opacity:.3;transform:scale(.7)}}@keyframes lumosRune{50%{box-shadow:0 0 52px rgba(134,190,255,.42);transform:scale(1.04)}}@keyframes traceStart{50%{r:17;opacity:.65}}@keyframes lumosCast{0%{transform:scale(.6);filter:brightness(1)}55%{transform:scale(1.3);box-shadow:0 0 100px #fff1a5;filter:brightness(2)}100%{transform:scale(1);box-shadow:0 0 55px rgba(255,239,160,.6);background:radial-gradient(circle,#fff7c7,rgba(108,170,238,.25) 35%,transparent 70%)}}
@media(max-width:850px){.charms-lesson-shell,.charms-trace-layout,.charms-focus-shell,.charms-result{grid-template-columns:1fr}.charms-answer-grid{grid-template-columns:1fr}.charms-trace-layout>aside,.charms-focus-shell>aside{display:none}.wand-trace{height:260px}}
@media(max-width:560px){.charms-progress b{font-size:8px}.charms-progress>div{gap:4px;padding:6px}.charms-progress span{width:22px;height:22px}.charms-professor,.charms-lesson-card,.charms-challenge{padding:15px}.charms-professor h2{font-size:21px}.professor-sigil{width:55px;height:55px}.charms-score-grid{grid-template-columns:1fr}.wand-trace{height:230px}}
@media(prefers-reduced-motion:reduce){html[data-scene-art="charms"] .clean-scene:after,.charms-atmosphere i,.charms-atmosphere>span,.lumos-rune,.wand-trace circle:first-of-type{animation:none!important}}

/* V0.12.0 — database-backed advanced quest engine */
.quest-engine-loading{display:grid;place-items:center;gap:10px;min-height:280px;background:rgba(4,7,11,.9);border:1px solid rgba(176,133,66,.55)}.quest-engine-loading span{font-size:40px;color:#e0bc75;animation:questPulse 1.5s infinite}.quest-engine-loading b{font:14px Cinzel;color:#d7c49c}.quest-engine-summary{display:grid;grid-template-columns:repeat(4,1fr);gap:7px;margin-bottom:8px}.quest-engine-summary div{padding:10px 13px;background:rgba(4,7,11,.88);border:1px solid rgba(116,91,54,.5);border-top:2px solid var(--house-primary)}.quest-engine-summary small,.quest-engine-summary b{display:block}.quest-engine-summary small{font:9px Cinzel;letter-spacing:1.2px;color:#9b8869}.quest-engine-summary b{margin-top:3px;font:19px Cinzel;color:#e2c990}.quest-filter-row{display:flex;gap:5px;margin-bottom:8px;overflow-x:auto;scrollbar-width:none}.quest-filter-row button{padding:8px 12px;white-space:nowrap;background:rgba(4,7,11,.88);border:1px solid #655337;color:#a99a80;font:9px Cinzel;cursor:pointer}.quest-filter-row button.active,.quest-filter-row button:hover{border-color:#d1a65e;color:#f0d39b;background:#2b1d0e}.quest-engine-shell{align-items:start}.engine-card{position:relative}.engine-card[hidden]{display:none}.engine-card.available{border-left-color:#cba15c}.engine-card.locked{opacity:.72;filter:saturate(.55)}.quest-tags{display:flex;flex-wrap:wrap;gap:4px;margin:7px 0}.quest-tags i{padding:3px 6px;border:1px solid rgba(133,108,68,.5);color:#9f8b69;font:normal 8px Cinzel;text-transform:uppercase}.journal-objectives>div>span{display:block}.journal-objectives>div>span b,.journal-objectives>div>span small{display:block}.journal-objectives>div>span b{font:12px Cinzel;color:#cdbb98}.journal-objectives>div>span small{margin-top:3px;color:#817b71;font-size:11px;text-transform:uppercase}.journal-objectives>div.future{opacity:.46}.quest-lock{margin:10px 0;padding:10px;color:#9e8f79;background:rgba(5,6,8,.65);border:1px dashed #66563e;font:11px Cinzel}.quest-notice{position:fixed;z-index:10020;right:24px;top:76px;display:flex;align-items:center;gap:12px;min-width:310px;padding:14px 17px;transform:translateX(calc(100% + 40px));opacity:0;background:linear-gradient(110deg,#070a0f,#2d1d0b);border:1px solid #c7974d;border-left:3px solid #e4bc72;box-shadow:0 18px 50px #000;transition:.4s}.quest-notice.show{transform:none;opacity:1}.quest-notice>i{font:normal 25px Cinzel;color:#edcd8b}.quest-notice small,.quest-notice b{display:block}.quest-notice small{font:8px Cinzel;letter-spacing:1.7px;color:#a98a58}.quest-notice b{margin-top:3px;font:13px Cinzel;color:#e5c990}.quest-migration-note{padding:24px;text-align:center;background:rgba(5,7,10,.86);border:1px solid #80633c;color:#b9aa92}.quest-migration-note>span{font-size:30px}.quest-migration-note h2{font:18px Cinzel;color:#ddc28e}.quest-migration-note.compact{padding:14px}.owner-quest-console{margin-top:9px;padding:16px;background:rgba(5,7,9,.83);border:1px solid rgba(105,80,45,.5)}.owner-quest-list{display:grid;grid-template-columns:1fr 1fr;gap:6px;margin-top:10px}.owner-quest-list article{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:11px;background:rgba(8,10,13,.77);border-left:2px solid #80623b}.owner-quest-list small,.owner-quest-list b,.owner-quest-list span{display:block}.owner-quest-list small{font:8px Cinzel;color:#96794d;text-transform:uppercase}.owner-quest-list b{margin-top:4px;font:12px Cinzel;color:#dbc18f}.owner-quest-list span{margin-top:4px;font-size:11px;color:#858075}.owner-quest-list button{flex:0 0 84px;padding:8px 5px;background:#201410;border:1px solid #7c4c3d;color:#c07b69;font:8px Cinzel;cursor:pointer}.owner-quest-list button.enabled{background:#102016;border-color:#507b59;color:#91bf97}
@keyframes questPulse{50%{opacity:.4;transform:scale(.86)}}
@media(max-width:800px){.quest-engine-summary{grid-template-columns:1fr 1fr}.owner-quest-list{grid-template-columns:1fr}}
@media(max-width:520px){.quest-engine-summary{grid-template-columns:1fr 1fr}.quest-notice{left:10px;right:10px;min-width:0}.owner-quest-list article{align-items:flex-start;flex-direction:column}.owner-quest-list button{width:100%;flex:auto}}

/* V0.12.1 — Level 1–100 progression */
.xp-progression{margin:14px 0;padding:12px 14px;text-align:left;background:rgba(4,7,11,.76);border:1px solid rgba(173,132,67,.5);border-left:3px solid var(--house-primary)}.xp-progression>div:first-child{display:flex;align-items:center;justify-content:space-between;gap:12px}.xp-progression small{font:9px Cinzel;letter-spacing:1.3px;color:#a78a5c}.xp-progression b{font:11px Cinzel;color:#e0c38b}.xp-progression>span{display:block;margin-top:7px;color:#999083;font-size:11px}.xp-track{height:7px;margin-top:8px;overflow:hidden;background:#05070a;border:1px solid rgba(120,95,56,.6)}.xp-track i{display:block;height:100%;background:linear-gradient(90deg,var(--house-primary),#f0c86f);box-shadow:0 0 12px rgba(237,190,105,.5);transition:width .8s ease}.xp-progression.compact{margin:8px 0 0;padding:8px 10px}.xp-progression.compact .xp-track{height:5px;margin-top:6px}.level-up-layer{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;overflow:hidden;opacity:0;background:radial-gradient(circle,rgba(75,54,18,.55),rgba(1,3,7,.95) 60%);backdrop-filter:blur(8px);transition:.4s}.level-up-layer.show{opacity:1}.level-up-layer section{position:relative;z-index:2;width:min(460px,88vw);padding:42px 28px;text-align:center;background:linear-gradient(145deg,rgba(15,12,8,.96),rgba(3,6,11,.98));border:1px solid #d1a357;box-shadow:0 0 100px rgba(222,172,79,.25),0 30px 90px #000;transform:scale(.72);transition:.55s cubic-bezier(.2,.9,.25,1.2)}.level-up-layer.show section{transform:scale(1)}.level-up-layer section>small{font:10px Cinzel;letter-spacing:3px;color:#a98a55}.level-up-layer section>span{display:block;margin:17px;font-size:54px;color:#fff0b4;text-shadow:0 0 35px #e3a949;animation:levelStar 1.3s infinite}.level-up-layer h2{margin:0;font:46px Cinzel;color:#efd096;text-shadow:0 3px 20px #000}.level-up-layer p{color:#b8ad99;font:italic 16px Georgia}.level-up-layer section>b{display:block;margin:10px;color:#9fc9ff;font:11px Cinzel;letter-spacing:1.5px}.level-up-layer button{margin-top:15px;min-width:180px}.level-up-rays{position:absolute;width:700px;height:700px;background:repeating-conic-gradient(from 0deg,rgba(234,187,99,.12) 0 4deg,transparent 4deg 14deg);animation:levelRays 18s linear infinite}.owner-roster>article{grid-template-columns:39px 1fr auto auto}.owner-xp-button{padding:7px 8px;background:#17120c;border:1px solid #95703b;color:#d3ae6e;font:8px Cinzel;cursor:pointer}.owner-xp-button:hover{border-color:#e0b766;color:#f1d49a}.owner-xp-button:disabled{opacity:.45}
@keyframes levelStar{50%{transform:scale(1.2);filter:brightness(1.5)}}@keyframes levelRays{to{transform:rotate(360deg)}}
@media(max-width:650px){.owner-roster>article{grid-template-columns:36px 1fr auto}.owner-xp-button{grid-column:2/4;width:100%}.level-up-layer h2{font-size:37px}}
@media(prefers-reduced-motion:reduce){.level-up-layer section,.xp-track i{transition:none}.level-up-rays,.level-up-layer section>span{animation:none}}

/* V0.12.2 — ceremonial level-up reveal */
.level-up-layer{background:radial-gradient(circle at 50% 44%,rgba(87,64,20,.46),rgba(2,4,8,.91) 52%,#010206 78%);backdrop-filter:blur(12px)}.level-up-layer:before,.level-up-layer:after{content:"";position:absolute;inset:-20%;pointer-events:none}.level-up-layer:before{background:radial-gradient(circle at center,transparent 0 17%,rgba(255,210,117,.08) 18%,transparent 19% 28%,rgba(135,185,255,.05) 29%,transparent 30%);animation:levelHalo 5s ease-in-out infinite}.level-up-layer:after{background:linear-gradient(110deg,transparent 35%,rgba(255,225,151,.08) 48%,transparent 61%);transform:translateX(-80%);animation:levelSweep 2.8s ease-in-out infinite}.level-up-layer section{width:min(680px,94vw);padding:12px 30px 30px;background:radial-gradient(ellipse at 50% 30%,rgba(39,31,17,.76),rgba(3,6,11,.96) 68%);border:1px solid rgba(210,164,85,.72);box-shadow:0 0 0 5px rgba(14,10,5,.62),0 0 110px rgba(228,179,83,.25),0 35px 100px #000;overflow:visible}.level-up-layer section:before,.level-up-layer section:after{content:"";position:absolute;top:11px;bottom:11px;width:1px;background:linear-gradient(transparent,#c89b4e,transparent)}.level-up-layer section:before{left:11px}.level-up-layer section:after{right:11px}.level-up-layer section>small{position:relative;z-index:3;display:block;margin-top:7px;font-size:10px;color:#d3b477;text-shadow:0 2px 8px #000}.level-up-layer section>img{position:relative;z-index:2;display:block;width:min(590px,92%);height:auto;margin:-5px auto -72px;filter:drop-shadow(0 18px 22px #000) drop-shadow(0 0 24px rgba(255,193,79,.42));opacity:0;transform:translateY(-28px) scale(.74);transition:opacity .55s .15s,transform .8s .12s cubic-bezier(.18,.88,.25,1.2)}.level-up-layer.show section>img{opacity:1;transform:translateY(0) scale(1)}.level-up-number{position:relative;z-index:5;display:flex;align-items:baseline;justify-content:center;gap:12px;margin:0 auto;color:#f0d191;text-shadow:0 4px 16px #000}.level-up-number span{font:11px Cinzel;letter-spacing:3px}.level-up-number strong{font:52px Cinzel;color:#fff0bd;text-shadow:0 0 12px #eeb64d,0 5px 18px #000;animation:levelNumber 1.4s ease-in-out infinite}.level-up-layer section>p{position:relative;z-index:3;margin:3px auto 7px}.level-up-layer section>b{position:relative;z-index:3;margin:5px}.level-up-next{position:relative;z-index:3;width:min(390px,90%);margin:11px auto;padding:9px 12px;background:rgba(2,5,10,.7);border:1px solid rgba(145,112,61,.55)}.level-up-next>small,.level-up-next>b{display:block}.level-up-next>small{font:8px Cinzel;letter-spacing:1.7px;color:#8fa8ca}.level-up-next>b{margin-top:4px;font:11px Cinzel;color:#e3c88f}.level-up-next>div{height:5px;margin-top:7px;overflow:hidden;background:#05070a;border:1px solid #5c4c34}.level-up-next>div>i{display:block;height:100%;background:linear-gradient(90deg,var(--house-primary),#f5d27d);box-shadow:0 0 13px #e7b457}.level-up-layer button{position:relative;z-index:3;margin-top:5px}.level-up-particles{position:absolute;inset:0;overflow:hidden;pointer-events:none}.level-up-particles i{position:absolute;left:var(--x);bottom:-8%;color:var(--house-primary);font:normal 15px Cinzel;text-shadow:0 0 13px #e8bb66;opacity:0;animation:levelParticle 4.2s calc(var(--i)*-.21s) linear infinite}.level-up-particles i:nth-child(4n){color:#e7c077;font-size:23px}.level-up-rays{width:min(1100px,110vw);height:min(1100px,110vw);opacity:.72;background:repeating-conic-gradient(from 0deg,rgba(234,187,99,.1) 0 3deg,transparent 3deg 13deg)}
@keyframes levelParticle{0%{opacity:0;transform:translateY(0) rotate(0)}12%{opacity:.8}75%{opacity:.5}100%{opacity:0;transform:translate(35px,-112vh) rotate(300deg)}}@keyframes levelHalo{50%{transform:scale(1.08);filter:brightness(1.25)}}@keyframes levelSweep{50%,100%{transform:translateX(80%)}}@keyframes levelNumber{50%{transform:scale(1.1);filter:brightness(1.25)}}
@media(max-width:650px){.level-up-layer section{padding:10px 16px 22px}.level-up-layer section>img{width:105%;max-width:none;margin-left:-2.5%;margin-bottom:-50px}.level-up-number strong{font-size:42px}.level-up-layer section>p{font-size:13px}.level-up-next{margin-top:7px}}
@media(prefers-reduced-motion:reduce){.level-up-layer:before,.level-up-layer:after,.level-up-particles i,.level-up-number strong{animation:none}.level-up-layer section>img{transition:none;opacity:1;transform:none}}

/* V0.13.0 — less-boxy level-up ceremony */
.level-up-layer section{width:min(760px,96vw);padding:0 25px 25px;background:transparent;border:0;box-shadow:none;overflow:visible}.level-up-layer section:before,.level-up-layer section:after{display:none}.level-up-layer section>small{display:inline-block;margin-top:10px;padding:7px 20px;background:linear-gradient(90deg,transparent,rgba(7,9,14,.82) 18% 82%,transparent);border-bottom:1px solid rgba(214,170,91,.48)}.level-up-layer section>img{width:min(700px,98%);margin:-12px auto -88px}.level-up-number{width:min(390px,75%);padding:8px 40px;background:linear-gradient(90deg,transparent,rgba(7,9,14,.94) 18%,rgba(32,23,10,.92) 50%,rgba(7,9,14,.94) 82%,transparent);border-top:1px solid rgba(219,174,88,.6);border-bottom:1px solid rgba(219,174,88,.6);clip-path:polygon(7% 0,93% 0,100% 50%,93% 100%,7% 100%,0 50%)}.level-up-layer section>p{display:inline-block;padding:3px 18px;background:rgba(2,4,8,.55)}.level-up-next{border:0;border-top:1px solid rgba(145,112,61,.5);border-bottom:1px solid rgba(145,112,61,.5);background:linear-gradient(90deg,transparent,rgba(2,5,10,.88) 15% 85%,transparent);clip-path:polygon(5% 0,95% 0,100% 50%,95% 100%,5% 100%,0 50%)}

/* V0.13.0 — Grand Staircase */
html[data-scene-art="staircase"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important}html[data-scene-art="staircase"] .clean-stage::-webkit-scrollbar{display:none}html[data-scene-art="staircase"] .clean-scene{background-image:url('art/grand_staircase.png')!important;background-size:cover!important;background-position:center!important}html[data-scene-art="staircase"] .clean-scene:before{background:linear-gradient(180deg,rgba(1,3,8,.18),rgba(1,3,8,.12) 45%,rgba(1,3,8,.88)),linear-gradient(90deg,rgba(2,4,9,.42),transparent 42%,rgba(2,4,9,.3))!important}html[data-scene-art="staircase"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;background:radial-gradient(circle at 85% 20%,rgba(219,177,91,.15),transparent 20%),radial-gradient(circle at 47% 48%,rgba(90,145,220,.1),transparent 32%);animation:staircaseLight 5s ease-in-out infinite}html[data-scene-art="staircase"] .clean-scene-inner{justify-content:center!important;width:min(1180px,96vw)!important;padding:24px 18px 30px!important}html[data-scene-art="staircase"] .clean-scene h1{font-size:clamp(29px,4vw,46px)!important;text-shadow:0 5px 25px #000}.staircase-loading{display:grid;place-items:center;gap:10px;min-width:400px;padding:35px;background:rgba(3,6,11,.88);border:1px solid #75613f}.staircase-loading span{font-size:42px;color:#d5b26c;animation:stairShift 2s infinite}.staircase-loading b{font:13px Cinzel;color:#d5c29b}.staircase-atmosphere{position:absolute;inset:0;pointer-events:none;overflow:hidden;z-index:-1}.staircase-atmosphere i{position:absolute;bottom:-5%;width:3px;height:3px;background:#dcecff;border-radius:50%;box-shadow:0 0 14px #80aef0;animation:stairDust 7s linear infinite}.staircase-atmosphere i:nth-child(1){left:12%}.staircase-atmosphere i:nth-child(2){left:53%;animation-delay:-3s}.staircase-atmosphere i:nth-child(3){left:88%;animation-delay:-5s}.staircase-atmosphere span{position:absolute;right:12%;top:16%;color:#ffe2a0;font-size:23px;animation:stairSpark 2.4s infinite}.staircase-shell{display:grid;grid-template-columns:1.3fr .7fr;gap:10px;width:100%;padding:10px;background:linear-gradient(125deg,rgba(3,7,13,.94),rgba(20,14,8,.91));border:1px solid rgba(164,129,70,.68);box-shadow:0 28px 95px #000;backdrop-filter:blur(12px)}.staircase-scene-panel,.staircase-quest{padding:20px;background:rgba(4,8,14,.72);border:1px solid rgba(105,90,66,.45)}.staircase-scene-panel header small,.staircase-quest-title small,.staircase-rewards small{font:9px Cinzel;letter-spacing:1.8px;color:#b28e55}.staircase-scene-panel h2,.staircase-quest-title h2{margin:6px 0 8px;font:24px Cinzel;color:#ead29f}.staircase-scene-panel header p,.staircase-quest>p{color:#afa89d;font:italic 14px/1.5 Georgia}.staircase-hotspots{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:18px}.staircase-hotspots button{position:relative;display:flex;align-items:center;gap:12px;min-height:115px;padding:15px;text-align:left;background:linear-gradient(140deg,rgba(6,11,19,.91),rgba(22,15,8,.86));border:1px solid #5e574c;color:#cdbb99;cursor:pointer;transition:.25s;overflow:hidden}.staircase-hotspots button:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent,rgba(255,220,145,.08),transparent);transform:translateX(-100%);transition:.6s}.staircase-hotspots button:hover:not(:disabled){transform:translateY(-4px);border-color:#d0a45e;box-shadow:0 13px 30px #000}.staircase-hotspots button:hover:before{transform:translateX(100%)}.staircase-hotspots button:disabled{opacity:.4;cursor:not-allowed}.staircase-hotspots button.done{opacity:1;border-color:#668e6b}.staircase-hotspots button>i{font:normal 29px Cinzel;color:#cfa858}.staircase-hotspots small,.staircase-hotspots b{display:block}.staircase-hotspots small{font:8px Cinzel;color:#8e7a5d}.staircase-hotspots b{margin-top:6px;font:12px Cinzel;color:#dcc79f}.staircase-quest-title{display:flex;align-items:flex-start;justify-content:space-between;gap:12px}.staircase-quest-title>span{display:grid;place-items:center;min-width:45px;height:45px;border:1px solid #9e7b44;border-radius:50%;font:12px Cinzel;color:#dfbf7d}.staircase-objectives{display:grid;gap:6px;margin:14px 0}.staircase-objectives>div{display:grid;grid-template-columns:25px 1fr;align-items:center;gap:8px;padding:9px;background:rgba(3,6,10,.73);border-left:2px solid #756142}.staircase-objectives>div.done{border-color:#5f9167}.staircase-objectives>div.locked{opacity:.4}.staircase-objectives i{font:normal 14px Cinzel;color:#cfac6b}.staircase-objectives b,.staircase-objectives small{display:block}.staircase-objectives b{font:11px Cinzel;color:#d2bf99}.staircase-objectives small{margin-top:3px;color:#858077;font-size:11px}.staircase-rewards{padding:10px;margin:10px 0;background:#060a10;border-top:1px solid #755d37;border-bottom:1px solid #755d37}.staircase-rewards b,.staircase-rewards span{display:block}.staircase-rewards b{margin-top:5px;font:10px Cinzel;color:#d9bd83}.staircase-rewards span{margin-top:4px;color:#8faad0;font-size:11px}.staircase-quest>button{width:100%}.staircase-dialogue{position:fixed;inset:0;z-index:10030;display:grid;place-items:center;opacity:0;background:rgba(1,3,7,.78);backdrop-filter:blur(8px);transition:.35s}.staircase-dialogue.show{opacity:1}.staircase-dialogue-card{position:relative;width:min(560px,90vw);padding:28px 30px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(48,37,21,.95),rgba(4,7,12,.98) 62%);border:1px solid #b38a4c;box-shadow:0 30px 100px #000,0 0 35px rgba(198,149,70,.13);transform:translateY(24px) scale(.94);transition:.4s}.staircase-dialogue.show .staircase-dialogue-card{transform:none}.portrait-speaker{display:grid;place-items:center;width:72px;height:86px;margin:-65px auto 14px;background:linear-gradient(140deg,#2f2416,#080b11);border:7px ridge #a27a3e;color:#e3c17a;font:30px Cinzel;box-shadow:0 12px 30px #000;animation:portraitBreathe 2.5s infinite}.staircase-dialogue-card>small{font:9px Cinzel;letter-spacing:1.8px;color:#b28b50}.staircase-dialogue-card h3{margin:7px;font:23px Cinzel;color:#ead19c}.staircase-dialogue-card p{color:#b7afa1;font:italic 15px/1.6 Georgia}.staircase-dialogue-card>button{min-width:180px}.staircase-dialogue.moving .staircase-dialogue-card{animation:carriageSway 2.6s ease-in-out infinite}.staircase-riddle-answers{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin-top:17px}.staircase-riddle-answers button{padding:12px;background:#080d15;border:1px solid #655a47;color:#d5c199;font:11px Cinzel;cursor:pointer}.staircase-riddle-answers button:hover{border-color:#d0a155;transform:translateY(-2px)}.staircase-riddle-answers button.correct{border-color:#63906a;background:#102317}.staircase-riddle-answers button.wrong{border-color:#9d5548;background:#2b110e}
@keyframes staircaseLight{50%{filter:brightness(1.08)}}@keyframes stairShift{50%{transform:translate(12px,-5px)}}@keyframes stairDust{0%{opacity:0;transform:translateY(0)}20%{opacity:.7}100%{opacity:0;transform:translate(25px,-100vh)}}@keyframes stairSpark{50%{opacity:.25;transform:scale(.7)}}@keyframes portraitBreathe{50%{filter:brightness(1.3);transform:translateY(-3px)}}
@media(max-width:850px){.staircase-shell{grid-template-columns:1fr}.staircase-hotspots{grid-template-columns:1fr}.staircase-hotspots button{min-height:75px}.staircase-loading{min-width:0;width:90vw}}@media(max-width:520px){.staircase-scene-panel,.staircase-quest{padding:14px}.staircase-riddle-answers{grid-template-columns:1fr}.portrait-speaker{width:58px;height:70px}.staircase-dialogue-card{padding:24px 16px}}
@media(prefers-reduced-motion:reduce){html[data-scene-art="staircase"] .clean-scene:after,.staircase-atmosphere i,.staircase-atmosphere span,.portrait-speaker,.staircase-dialogue.moving .staircase-dialogue-card{animation:none!important}}

/* V0.13.1 — First-Year Quest Pack */
.hogwarts-tool-strip{grid-template-columns:repeat(5,1fr)}.hogwarts-tool-strip.owner-enabled{grid-template-columns:repeat(6,1fr)}
html[data-castle-view="quest-pack"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important}html[data-castle-view="quest-pack"] .clean-stage::-webkit-scrollbar{display:none}html[data-castle-view="quest-pack"] .clean-scene-inner{justify-content:flex-start!important;width:min(1240px,96vw)!important;min-height:calc(100vh - 112px);padding:28px 18px 34px!important}.quest-pack-loading{display:grid;place-items:center;gap:12px;width:min(620px,90vw);min-height:250px;margin:auto;background:linear-gradient(135deg,rgba(3,6,10,.93),rgba(30,20,10,.9));border:1px solid rgba(186,142,72,.65);box-shadow:0 28px 85px #000}.quest-pack-loading span{font-size:48px;color:#dfbb72;animation:packPulse 1.8s infinite}.quest-pack-loading b{font:13px Cinzel;color:#d8c39b;letter-spacing:1px}.quest-pack-shell{width:100%;padding:12px;background:linear-gradient(125deg,rgba(3,6,10,.96),rgba(24,16,9,.93));border:1px solid rgba(176,132,66,.65);box-shadow:0 30px 95px rgba(0,0,0,.9);backdrop-filter:blur(13px)}.quest-pack-hero{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:20px 22px;background:radial-gradient(circle at 85% 30%,var(--house-glow),transparent 34%),rgba(5,8,12,.74);border-bottom:1px solid rgba(144,108,58,.48)}.quest-pack-hero small,.quest-detail-story>small,.quest-detail-objectives header small,.quest-detail-reward small{font:9px Cinzel;letter-spacing:1.8px;color:#b38d52}.quest-pack-hero h2{margin:5px 0 7px;font:26px Cinzel;color:#ecd19b}.quest-pack-hero p{max-width:620px;margin:0;color:#aaa294;font:14px/1.5 Georgia,serif}.quest-pack-tally{display:grid;grid-template-columns:repeat(3,78px);gap:7px}.quest-pack-tally span{display:grid;place-items:center;min-height:70px;background:rgba(2,5,9,.74);border:1px solid rgba(123,94,52,.52)}.quest-pack-tally b{font:24px Cinzel;color:#e2bd75}.quest-pack-tally small{font:7px Cinzel;letter-spacing:1px;color:#8f806a}.quest-pack-filters{display:grid;grid-template-columns:repeat(4,1fr);gap:6px;padding:9px 0}.quest-pack-filters button{padding:11px;background:rgba(5,8,12,.84);border:1px solid rgba(103,82,50,.52);color:#928775;font:9px Cinzel;letter-spacing:1px;cursor:pointer}.quest-pack-filters button:hover,.quest-pack-filters button.active{border-color:#c99b52;color:#ead09e;background:rgba(35,24,12,.9)}.quest-pack-grid{display:grid;grid-template-columns:1fr 1fr;gap:8px}.quest-pack-card{display:grid;grid-template-columns:58px 1fr;gap:13px;min-height:230px;padding:17px;background:linear-gradient(140deg,rgba(5,9,14,.93),rgba(22,15,9,.88));border:1px solid rgba(104,85,57,.55);border-left:3px solid #92703e;transition:.24s}.quest-pack-card:hover:not(.locked){transform:translateY(-3px);border-color:#bd9250;box-shadow:0 15px 34px #000}.quest-pack-card.active{border-left-color:#5f8fb5}.quest-pack-card.completed{border-left-color:#67936d}.quest-pack-card.locked{opacity:.58}.quest-pack-card-icon{display:grid;place-items:center;width:54px;height:62px;background:radial-gradient(circle,rgba(207,160,78,.18),rgba(4,7,11,.7));border:1px solid #80643a;color:#ddb469;font:27px Cinzel}.quest-pack-card-copy{display:flex;flex-direction:column;min-width:0}.quest-pack-card-copy>small{font:8px Cinzel;letter-spacing:1.3px;color:#a38557}.quest-pack-card h2{margin:4px 0 6px;font:18px Cinzel;color:#e6ca94}.quest-pack-card p{margin:0;color:#a9a092;font-size:12px;line-height:1.45}.quest-pack-tags{display:flex;flex-wrap:wrap;gap:5px;margin-top:10px}.quest-pack-tags i{padding:4px 7px;background:#080c12;border:1px solid #4f493e;color:#8f887a;font:normal 8px Cinzel;text-transform:uppercase}.quest-pack-lock{margin-top:9px;color:#b58c68;font:10px Cinzel}.quest-pack-card footer{display:flex;align-items:end;justify-content:space-between;gap:10px;margin-top:auto;padding-top:12px}.quest-pack-card footer>span{max-width:65%;color:#bb9b65;font:8px/1.45 Cinzel}.quest-pack-card footer button{padding:8px 10px;background:transparent;border:1px solid #85683c;color:#dec18d;font:8px Cinzel;cursor:pointer}.quest-pack-card footer button:hover:not(:disabled){background:#2b1d0d;border-color:#d4a75b}.quest-pack-card footer button:disabled{opacity:.45;cursor:not-allowed}
.quest-detail-shell{display:grid;grid-template-columns:minmax(280px,.7fr) minmax(480px,1.3fr);gap:10px;width:100%;padding:11px;background:linear-gradient(125deg,rgba(3,6,11,.96),rgba(26,17,9,.93));border:1px solid rgba(178,134,66,.67);box-shadow:0 30px 95px #000;backdrop-filter:blur(13px)}.quest-detail-story,.quest-detail-objectives{padding:22px;background:rgba(4,7,11,.77);border:1px solid rgba(103,83,53,.48)}.quest-pack-return{margin-bottom:27px;padding:8px 0;background:none;border:0;color:#b79a69;font:9px Cinzel;letter-spacing:1.2px;cursor:pointer}.quest-pack-return:hover{color:#f0d39b}.quest-detail-sigil{display:grid;place-items:center;width:88px;height:96px;margin-bottom:18px;background:radial-gradient(circle,rgba(210,161,77,.22),rgba(4,7,11,.45));border:1px solid #97733f;clip-path:polygon(50% 0,93% 18%,93% 74%,50% 100%,7% 74%,7% 18%);color:#e0b86b;font:39px Cinzel;text-shadow:0 0 22px rgba(226,176,84,.55)}.quest-detail-story h2{margin:6px 0 10px;font:28px Cinzel;color:#ecd09a}.quest-detail-story>p{color:#b9afa0;font:italic 15px/1.62 Georgia,serif}.quest-detail-reward{margin-top:24px;padding:14px 0;border-top:1px solid #765c37;border-bottom:1px solid #765c37}.quest-detail-reward b{display:block;margin-top:7px;color:#dfbf82;font:11px/1.5 Cinzel}.quest-detail-objectives header{display:flex;justify-content:space-between;align-items:center;margin-bottom:12px}.quest-detail-objectives header h2{margin:4px 0 0;font:22px Cinzel;color:#e5c991}.quest-detail-objectives header>span{display:grid;place-items:center;width:48px;height:48px;border:1px solid #97733e;border-radius:50%;color:#dec080;font:13px Cinzel}.quest-objective-list{display:grid;gap:7px}.quest-objective-list>article{display:grid;grid-template-columns:38px 1fr;gap:12px;padding:14px;background:linear-gradient(115deg,rgba(6,10,15,.91),rgba(18,14,10,.83));border:1px solid rgba(91,78,59,.56);border-left:3px solid #9c753e}.quest-objective-list>article.done{border-left-color:#67916b}.quest-objective-list>article.locked{opacity:.42}.quest-objective-list>article>i{display:grid;place-items:center;width:35px;height:35px;border:1px solid #6e5c40;border-radius:50%;color:#d4ad66;font:normal 11px Cinzel}.quest-objective-list small{font:8px Cinzel;letter-spacing:1.2px;color:#8e7855}.quest-objective-list h3{margin:3px 0 4px;font:14px Cinzel;color:#dec697}.quest-objective-list p{margin:0;color:#978f82;font-size:12px}.quest-objective-progress{display:grid;grid-template-columns:1fr auto;align-items:center;gap:9px;margin-top:9px}.quest-objective-progress>span{height:4px;background:#17191b}.quest-objective-progress>span i{display:block;height:100%;background:linear-gradient(90deg,#8b6736,#d7ae63);box-shadow:0 0 10px rgba(216,171,88,.35)}.quest-objective-progress>b{color:#9b8c74;font:8px Cinzel}.quest-pack-act{margin-top:10px;padding:8px 12px!important;font-size:8px!important}.quest-pack-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin-top:10px}.quest-pack-choices button{padding:9px 6px;background:#080c12;border:1px solid #62563f;color:#c5b28f;font:8px Cinzel;cursor:pointer}.quest-pack-choices button:hover{border-color:#d0a052;background:#271b0d}.quest-objective-done,.quest-objective-locked{display:inline-block;margin-top:9px;color:#719d75;font:8px Cinzel;letter-spacing:1px}.quest-objective-locked{color:#80796c}.quest-pack-claim{width:100%;margin-top:12px}.quest-pack-complete{margin-top:12px;padding:15px;text-align:center;border:1px solid #5e8b65;color:#83ad87;font:11px Cinzel;letter-spacing:1.5px}.quest-pack-reaction{min-height:18px;margin:10px 0 0;color:#d08b73;text-align:center;font:italic 13px Georgia,serif}
@keyframes packPulse{50%{opacity:.35;transform:scale(.85) rotate(12deg)}}
@media(max-width:1000px){.hogwarts-tool-strip,.hogwarts-tool-strip.owner-enabled{grid-template-columns:repeat(3,1fr)}.quest-pack-grid{grid-template-columns:1fr}.quest-detail-shell{grid-template-columns:1fr}.quest-detail-story{display:grid;grid-template-columns:100px 1fr;column-gap:18px}.quest-pack-return{grid-column:1/-1;margin-bottom:8px}.quest-detail-sigil{grid-row:2/6}.quest-detail-story>p,.quest-detail-reward{grid-column:2}}
@media(max-width:650px){.hogwarts-tool-strip,.hogwarts-tool-strip.owner-enabled{grid-template-columns:1fr 1fr}.quest-pack-hero{align-items:flex-start;flex-direction:column}.quest-pack-tally{width:100%;grid-template-columns:repeat(3,1fr)}.quest-pack-filters{grid-template-columns:1fr 1fr}.quest-pack-card{grid-template-columns:43px 1fr;padding:12px}.quest-pack-card-icon{width:41px;height:50px;font-size:21px}.quest-pack-card footer{align-items:flex-start;flex-direction:column}.quest-pack-card footer>span{max-width:none}.quest-detail-story{display:block}.quest-detail-story>p,.quest-detail-reward{grid-column:auto}.quest-objective-list>article{grid-template-columns:30px 1fr;padding:11px}.quest-objective-list>article>i{width:28px;height:28px}.quest-pack-choices{grid-template-columns:1fr}.quest-detail-story,.quest-detail-objectives{padding:15px}}
@media(prefers-reduced-motion:reduce){.quest-pack-loading span{animation:none}.quest-pack-card{transition:none}}

/* V0.13.2 — compact quest journal and animated quest encounters */
.quest-journal-toolbar{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin-bottom:8px}.quest-journal-toolbar .quest-filter-row{margin:0}.quest-journal-controls{display:flex;gap:6px}.quest-journal-controls label{display:flex;align-items:center;gap:7px;padding:5px 8px;background:rgba(4,7,11,.9);border:1px solid #655337}.quest-journal-controls label>span{font:8px Cinzel;letter-spacing:1px;color:#9a835e}.quest-journal-controls input,.quest-journal-controls select{min-height:28px;background:#080b10;border:1px solid #4f493f;color:#d2c09e;font:10px Georgia;padding:4px 8px;outline:none}.quest-journal-controls input{width:170px}.quest-journal-controls select{font-family:Cinzel}.compact-journal{grid-template-columns:1fr 300px}.compact-journal .engine-card{padding:0;margin-bottom:6px;overflow:hidden}.quest-card-toggle{display:flex;align-items:center;justify-content:space-between;gap:15px;width:100%;padding:13px 15px;text-align:left;background:transparent;border:0;color:inherit;cursor:pointer}.quest-card-toggle:hover{background:rgba(212,161,79,.055)}.quest-card-toggle>span:first-child{min-width:0}.quest-card-toggle small,.quest-card-toggle b{display:block}.quest-card-toggle small{font:8px Cinzel;letter-spacing:1.3px;color:#967848}.quest-card-toggle b{margin-top:3px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font:16px Cinzel;color:#e4c78e}.quest-card-state{display:flex;align-items:center;gap:11px;flex:0 0 auto}.quest-card-state em{padding:5px 7px;border:1px solid rgba(121,91,50,.55);font:normal 8px Cinzel;color:#ba995e}.quest-card-state i{font:normal 18px Cinzel;color:#b9965d;transition:transform .3s}.engine-card.expanded .quest-card-state i{transform:rotate(180deg)}.quest-card-details{display:none;padding:0 15px 15px;border-top:1px solid rgba(104,80,47,.38);animation:journalOpen .3s ease}.engine-card.expanded .quest-card-details{display:block}.quest-card-details>p{margin:8px 0 10px;color:#aaa08f;font-size:14px;line-height:1.45}.quest-card-details footer{margin-top:10px;padding-top:9px;border-top:1px solid rgba(103,78,45,.45)}.quest-card-details footer small,.quest-card-details footer b{display:block}.quest-card-details footer small{font:10px Cinzel;letter-spacing:1.5px;color:#88704b}.quest-card-details footer b{margin-top:3px;color:#ceb17b;font:12px/1.4 Cinzel}.quest-card-details footer button{margin-top:9px;padding:10px 13px;background:#17130e;border:1px solid #9c783f;color:#ddbf85;font:11px Cinzel;cursor:pointer}.journal-guide{text-align:center}.journal-guide>span{display:block;margin:3px 0 9px;color:#d1a45d;font-size:34px}.journal-guide>small{font:9px Cinzel;letter-spacing:1.5px;color:#9d8053}.journal-guide h2{margin:5px 0 8px;font:20px Cinzel;color:#ddc18a}.journal-guide p{color:#9d9587;font-size:13px;line-height:1.5}.journal-guide ul{padding:10px 0;margin:12px 0;list-style:none;text-align:left;border-top:1px solid #55442d;border-bottom:1px solid #55442d}.journal-guide li{padding:5px;color:#a99c87;font-size:12px}.journal-guide li i{display:inline-block;width:20px;color:#c79c55;font-style:normal}.journal-guide button{width:100%;padding:10px;background:#0b0d10;border:1px solid #765c38;color:#c7ad7c;font:9px Cinzel;cursor:pointer}.quest-no-results{margin-top:8px}@keyframes journalOpen{from{opacity:0;transform:translateY(-7px)}}
.quest-action-layer{position:fixed;inset:0;z-index:10040;display:grid;place-items:center;padding:20px;opacity:0;background:radial-gradient(circle at center,rgba(29,20,10,.44),rgba(1,3,7,.91) 62%);backdrop-filter:blur(9px);transition:opacity .4s}.quest-action-layer.show{opacity:1}.quest-action-layer>section{position:relative;width:min(540px,92vw);padding:32px 34px 27px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(47,34,18,.96),rgba(4,7,12,.98) 62%);border:1px solid #b48849;box-shadow:0 35px 120px #000,0 0 46px rgba(214,164,78,.13);transform:translateY(24px) scale(.94);transition:.45s;overflow:hidden}.quest-action-layer.show>section{transform:none}.quest-action-layer>section:before{content:"";position:absolute;inset:0;pointer-events:none;background:linear-gradient(115deg,transparent 30%,rgba(255,221,151,.09),transparent 70%);transform:translateX(-110%)}.quest-action-layer.performing>section:before{animation:questActionSweep 1.1s linear infinite}.quest-action-layer>section>small{font:9px Cinzel;letter-spacing:2px;color:#b58e53}.quest-action-layer h2{margin:7px 0 9px;font:25px Cinzel;color:#ecd09a}.quest-action-layer>section>p{max-width:430px;margin:0 auto;color:#b7ad9d;font:italic 14px/1.55 Georgia,serif}.quest-action-visual{position:relative;display:grid;place-items:center;width:132px;height:132px;margin:-8px auto 13px}.quest-action-visual>div{position:absolute;inset:13px;border:1px solid rgba(215,168,83,.58);border-radius:50%;box-shadow:inset 0 0 25px rgba(203,148,57,.18),0 0 28px rgba(213,165,76,.12);animation:questRuneSpin 7s linear infinite}.quest-action-visual>div:after{content:"✦  ·  ✧  ·  ✦  ·  ✧";position:absolute;inset:-12px;color:#9a7540;font:11px Cinzel;letter-spacing:8px;animation:questRuneSpin 9s linear infinite reverse}.quest-action-visual>i{position:relative;z-index:2;color:#edc875;font:normal 45px Cinzel;text-shadow:0 0 20px #d49a40;animation:questIconBreathe 2s ease-in-out infinite}.quest-action-visual>span{position:absolute;left:50%;top:50%;opacity:0;color:#f3d28a;font-size:10px;transform:rotate(calc(var(--i)*45deg)) translateY(-47px);animation:questSpark 2.5s calc(var(--i)*-.22s) infinite}.quest-action-meter{display:grid;grid-template-columns:1fr auto;align-items:center;gap:10px;margin:20px auto 9px;max-width:380px}.quest-action-meter>span{height:5px;background:#17191c}.quest-action-meter>span i{display:block;height:100%;background:linear-gradient(90deg,#7c5b30,#e1b765);box-shadow:0 0 12px rgba(224,177,90,.4);transition:width .7s}.quest-action-meter>b{color:#b29a74;font:9px Cinzel}.quest-action-status{min-height:20px;color:#c8b28a;font:11px Cinzel}.quest-action-buttons{display:flex;justify-content:center;gap:7px;margin-top:16px}.quest-action-buttons button{min-width:155px}.quest-action-layer.performing .quest-action-visual>div{animation-duration:1.1s}.quest-action-layer.performing .quest-action-visual>i{animation:questPerform .75s ease-in-out infinite}.quest-action-layer.performing .quest-action-visual>span{animation-duration:1s}.quest-action-layer.success .quest-action-visual{filter:hue-rotate(45deg) brightness(1.2)}.quest-action-layer.success .quest-action-visual>i{animation:questSuccess .8s ease both}.quest-action-layer.success>section{border-color:#7ca778;box-shadow:0 35px 120px #000,0 0 55px rgba(105,170,108,.2)}.quest-action-layer.failed>section{animation:questChoiceShake .45s}.quest-objective-list>article.thinking{border-color:#c9a45e;filter:brightness(1.14)}.quest-objective-list>article.choice-shake{animation:questChoiceShake .45s}.quest-pack-choices button.wrong{border-color:#a64f43;background:#30110e;color:#e0a194}.quest-pack-choices button.correct{border-color:#64a16d;background:#102b16;color:#a8d7ad}.quest-pack-choices button:disabled{cursor:wait}.quest-pack-choices button.wrong:disabled,.quest-pack-choices button.correct:disabled{opacity:1}
@keyframes questActionSweep{to{transform:translateX(110%)}}@keyframes questRuneSpin{to{transform:rotate(360deg)}}@keyframes questIconBreathe{50%{transform:scale(1.1);filter:brightness(1.3)}}@keyframes questSpark{0%,100%{opacity:0}35%{opacity:.8;transform:rotate(calc(var(--i)*45deg)) translateY(-57px) scale(1.25)}}@keyframes questPerform{50%{transform:scale(1.25) rotate(7deg);filter:brightness(1.7)}}@keyframes questSuccess{40%{transform:scale(1.55);filter:brightness(1.8)}100%{transform:scale(1.08)}}@keyframes questChoiceShake{20%,60%{transform:translateX(-7px)}40%,80%{transform:translateX(7px)}}
@media(max-width:900px){.quest-journal-toolbar{grid-template-columns:1fr}.quest-journal-controls{display:grid;grid-template-columns:1fr 1fr}.quest-journal-controls label{justify-content:space-between}.quest-journal-controls input{width:100%}.compact-journal{grid-template-columns:1fr}.journal-guide{display:none}}
@media(max-width:560px){.quest-journal-controls{grid-template-columns:1fr}.quest-card-toggle{padding:12px}.quest-card-toggle b{font-size:14px}.quest-card-state em{font-size:7px}.quest-card-details{padding:0 12px 12px}.quest-action-layer>section{padding:25px 16px 21px}.quest-action-buttons{flex-direction:column}.quest-action-buttons button{width:100%}.quest-action-visual{width:110px;height:110px}}
@media(prefers-reduced-motion:reduce){.quest-card-details,.quest-action-layer>section,.quest-action-layer>section:before,.quest-action-visual>div,.quest-action-visual>div:after,.quest-action-visual>i,.quest-action-visual>span,.quest-objective-list>article.choice-shake{animation:none!important;transition:none!important}}

.quest-pack-finale{background:radial-gradient(circle at center,rgba(93,61,19,.35),rgba(1,3,7,.94) 65%)}.quest-pack-finale>section{width:min(650px,94vw);border-color:#d1a052;box-shadow:0 35px 130px #000,0 0 70px rgba(228,174,76,.24)}.quest-pack-finale .quest-action-visual{filter:brightness(1.25)}.quest-pack-finale .quest-action-visual>i{font-size:52px;animation:questSuccess 1.1s ease both,questIconBreathe 2.2s 1.1s infinite}.quest-finale-rewards{display:grid;grid-template-columns:repeat(3,1fr);gap:7px;margin:20px 0 4px}.quest-finale-rewards span{display:grid;place-items:center;min-height:70px;padding:9px;background:rgba(3,6,10,.7);border:1px solid #655138}.quest-finale-rewards b,.quest-finale-rewards small{display:block}.quest-finale-rewards b{color:#edc777;font:19px Cinzel}.quest-finale-rewards small{margin-top:5px;color:#9e8b6d;font:8px/1.3 Cinzel}.quest-finale-rewards .item{grid-column:1/-1;grid-template-columns:35px 1fr;min-height:48px}.quest-finale-rewards .item small{margin:0;text-align:left;color:#ceb583;font-size:10px}@media(max-width:560px){.quest-finale-rewards{grid-template-columns:1fr 1fr}.quest-finale-rewards .item{grid-column:1/-1}}
.quest-action-layer.cast .quest-action-visual{filter:hue-rotate(165deg)}.quest-action-layer.cast.performing>section{box-shadow:0 35px 120px #000,0 0 65px rgba(88,150,224,.24)}.quest-action-layer.collect .quest-action-visual>span{color:#ffe08e}.quest-action-layer.talk .quest-action-visual>div{border-radius:8px;transform:rotate(45deg)}.quest-action-layer.talk .quest-action-visual>div:after{transform:rotate(-45deg)}.quest-action-layer.timer .quest-action-visual{filter:hue-rotate(190deg) brightness(.9)}.quest-action-layer.timer.performing>section{animation:questNightPulse 1.5s infinite}.quest-action-layer.deliver.performing .quest-action-visual>i{animation:questDeliver 1s ease-in-out infinite}.quest-action-layer.discover.performing .quest-action-visual{filter:brightness(1.45)}@keyframes questNightPulse{50%{filter:brightness(.72)}}@keyframes questDeliver{50%{transform:translateX(18px) scale(1.15);filter:brightness(1.5)}}

/* V0.13.3 — Living Magic quest trials */
.quest-action-layer>section{max-height:92vh;overflow-y:auto;scrollbar-width:none}.quest-action-layer>section::-webkit-scrollbar{display:none}.quest-magic-trial{display:none;margin:14px auto 2px}.quest-action-layer.trial-active .quest-magic-trial{display:block;animation:magicTrialEnter .45s ease}.quest-action-layer.trial-active .quest-action-visual{width:76px;height:76px;margin:-10px auto 5px}.quest-action-layer.trial-active .quest-action-visual>i{font-size:29px}.quest-action-layer.trial-active .quest-action-visual>div{inset:8px}.quest-action-layer.trial-active>section>p{font-size:12px}.quest-magic-trial>small{display:block;margin-bottom:9px;color:#c5a46d;font:8px Cinzel;letter-spacing:1.6px}.quest-magic-trial>button,.dialogue-trial>button,.focus-trial>button{padding:10px 15px;background:#0a0e14;border:1px solid #94703e;color:#ddc18c;font:9px Cinzel;cursor:pointer}.quest-magic-trial>b{display:block;margin-top:8px;color:#897e6c;font:8px Cinzel;letter-spacing:1px}
.magic-rune-field{position:relative;width:min(340px,78vw);height:158px;margin:auto;background:radial-gradient(circle,rgba(57,88,130,.18),rgba(3,6,10,.4) 64%);border:1px solid rgba(105,91,66,.45);overflow:hidden}.magic-rune-field svg{position:absolute;inset:0;width:100%;height:100%;pointer-events:none}.magic-rune-field path{fill:none;stroke:rgba(128,156,196,.28);stroke-width:1.3;stroke-dasharray:3 4}.magic-rune-field button{position:absolute;z-index:2;display:grid;place-items:center;width:48px;height:48px;border-radius:50%;background:#080d15;border:1px solid #5c7190;color:#91b5e6;cursor:pointer;box-shadow:0 0 16px rgba(93,147,211,.12);transition:.25s}.magic-rune-field button:nth-of-type(1){left:7%;top:56%}.magic-rune-field button:nth-of-type(2){left:28%;top:9%}.magic-rune-field button:nth-of-type(3){left:52%;top:43%}.magic-rune-field button:nth-of-type(4){right:5%;top:11%}.magic-rune-field button i,.magic-rune-field button span{display:block}.magic-rune-field button i{font:normal 19px Cinzel}.magic-rune-field button span{position:absolute;right:-3px;bottom:-3px;display:grid;place-items:center;width:16px;height:16px;border-radius:50%;background:#17100a;border:1px solid #856538;color:#cba562;font:7px Cinzel}.magic-rune-field button.lit{border-color:#f0cc78;color:#fff2b2;background:#243a54;box-shadow:0 0 28px #77b7ef;transform:scale(1.13)}
.magic-catch-field{position:relative;width:min(350px,80vw);height:170px;margin:auto;background:radial-gradient(circle at center,rgba(120,82,31,.15),rgba(2,5,9,.5));border:1px solid rgba(111,88,52,.42);overflow:hidden}.magic-catch-field:after{content:"";position:absolute;inset:0;pointer-events:none;background:repeating-radial-gradient(circle at center,transparent 0 22px,rgba(218,169,82,.035) 23px 24px)}.magic-catch-field button{position:absolute;z-index:2;left:var(--x);top:var(--y);width:36px;height:36px;border-radius:50%;background:rgba(23,17,9,.86);border:1px solid #c69a50;color:#f2cf82;font:17px Cinzel;cursor:pointer;box-shadow:0 0 18px rgba(239,189,93,.45);animation:magicDrift 2.4s var(--delay) ease-in-out infinite}.magic-catch-field button.caught{pointer-events:none;animation:magicCaught .45s ease forwards}
.magic-speaker{display:grid;grid-template-columns:58px 1fr;align-items:center;gap:12px;min-height:86px;padding:12px;text-align:left;background:linear-gradient(120deg,rgba(7,11,17,.92),rgba(31,21,10,.83));border:1px solid #66553a}.magic-speaker i{display:grid;place-items:center;width:54px;height:62px;background:#0a0d12;border:5px ridge #93703c;color:#dbb870;font:normal 22px Cinzel}.magic-speaker p{margin:0!important;color:#c0b49f!important;font:italic 13px/1.45 Georgia!important}.magic-speaker.speaking p{animation:dialogueReveal .55s}.dialogue-trial>button{margin-top:9px}.dialogue-trial>button:disabled{opacity:.45}
.magic-route{position:relative;display:grid;grid-template-columns:repeat(4,1fr);align-items:center;gap:21px;width:min(370px,80vw);height:90px;margin:auto;padding:0 18px;background:linear-gradient(90deg,rgba(8,11,16,.92),rgba(29,20,10,.85));border:1px solid #64543c}.magic-route:before{content:"";position:absolute;left:12%;right:12%;top:50%;height:2px;background:linear-gradient(90deg,#53442d,#a98247,#53442d)}.magic-route button{position:relative;z-index:2;width:40px;height:40px;border-radius:50%;background:#080c12;border:1px solid #63563f;color:#9b896c;font:9px Cinzel;cursor:pointer}.magic-route button.reached{border-color:#e1b864;color:#fff0b1;background:#2d210f;box-shadow:0 0 24px rgba(227,180,89,.55)}.route-light{position:absolute;z-index:3;left:8%;top:5px;color:#ffe29a;font:normal 18px Cinzel;text-shadow:0 0 15px #edb34e;transition:left .45s cubic-bezier(.2,.8,.2,1);animation:routeLightFloat 1.2s infinite}
.magic-focus-track{position:relative;width:min(370px,80vw);height:42px;margin:16px auto 12px;background:linear-gradient(90deg,#17100b 0 37%,#463615 38% 62%,#17100b 63%);border:1px solid #67563d;overflow:hidden}.magic-focus-track:before{content:"";position:absolute;left:38%;right:38%;inset-block:0;background:rgba(244,196,93,.12);border-inline:1px solid #d2a554;box-shadow:0 0 20px rgba(225,173,75,.18)}.magic-focus-track>span{position:absolute;left:50%;top:50%;width:6px;height:6px;border-radius:50%;background:#fff4bd;box-shadow:0 0 22px 8px #eeb751;transform:translate(-50%,-50%)}.magic-focus-track>i{position:absolute;z-index:2;left:0;top:50%;color:#d7ecff;font:normal 20px Cinzel;text-shadow:0 0 13px #71b5f4;transform:translate(-50%,-50%)}.magic-focus-track.locked>i{color:#fff1a4;text-shadow:0 0 25px #ffc85d;animation:focusLock .65s ease forwards}.focus-trial>button{min-width:190px}.trial-miss>section{animation:questChoiceShake .4s}.quest-action-layer.trial-complete .quest-magic-trial{filter:brightness(1.45)}.quest-action-layer.trial-complete .quest-magic-trial:after{content:"MAGIC STABILISED";display:block;margin-top:9px;color:#8fc095;font:9px Cinzel;letter-spacing:1.5px}
@keyframes magicTrialEnter{from{opacity:0;transform:translateY(12px)}}@keyframes magicDrift{50%{transform:translate(13px,-9px) scale(1.14);filter:brightness(1.4)}}@keyframes magicCaught{40%{transform:scale(1.6);filter:brightness(2)}to{opacity:0;transform:scale(.1)}}@keyframes dialogueReveal{from{opacity:0;transform:translateY(6px)}}@keyframes routeLightFloat{50%{transform:translateY(8px);filter:brightness(1.5)}}@keyframes focusLock{50%{transform:translate(-50%,-50%) scale(2)}to{transform:translate(-50%,-50%) scale(1.25)}}
@media(max-width:560px){.magic-rune-field{height:145px}.magic-rune-field button{width:42px;height:42px}.magic-catch-field{height:150px}.magic-route{gap:10px;padding:0 10px}.magic-route button{width:34px;height:34px}.magic-speaker{grid-template-columns:45px 1fr}.magic-speaker i{width:42px;height:51px}.quest-action-layer.trial-active>section>p{display:none}}
@media(prefers-reduced-motion:reduce){.magic-catch-field button,.route-light,.magic-speaker.speaking p,.quest-action-layer.trial-active .quest-magic-trial,.magic-focus-track.locked>i{animation:none!important}}

/* V0.14.0 — Hogwarts Library */
html[data-scene-art="library"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important}html[data-scene-art="library"] .clean-stage::-webkit-scrollbar{display:none}html[data-scene-art="library"] .clean-scene{background-image:url('art/hogwarts_library.png')!important;background-size:cover!important;background-position:center!important}html[data-scene-art="library"] .clean-scene:before{background:linear-gradient(180deg,rgba(2,4,8,.12),rgba(2,4,8,.04) 40%,rgba(2,3,6,.9)),linear-gradient(90deg,rgba(2,4,8,.42),transparent 45%,rgba(2,4,8,.32))!important}html[data-scene-art="library"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;pointer-events:none;background:radial-gradient(circle at 24% 52%,rgba(235,170,65,.12),transparent 23%),radial-gradient(circle at 74% 26%,rgba(85,137,203,.1),transparent 25%);animation:libraryGlow 5s ease-in-out infinite}html[data-scene-art="library"] .clean-scene-inner{justify-content:flex-end!important;width:min(1240px,96vw)!important;min-height:calc(100vh - 112px);padding:26px 18px 28px!important}html[data-scene-art="library"] .clean-scene h1{font-size:clamp(29px,3.8vw,48px)!important;color:#efd29b!important;text-shadow:0 5px 26px #000}.library-loading{display:grid;place-items:center;gap:12px;width:min(560px,90vw);min-height:240px;margin:auto;background:rgba(3,6,10,.91);border:1px solid #85683e;box-shadow:0 30px 90px #000}.library-loading span{font-size:45px;color:#d7af66;animation:libraryBookFloat 2s infinite}.library-loading b{font:13px Cinzel;color:#d3c09a}.library-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.library-atmosphere i{position:absolute;bottom:-3%;width:3px;height:3px;border-radius:50%;background:#f7d995;box-shadow:0 0 13px #df9f38;animation:libraryDust 8s linear infinite}.library-atmosphere i:nth-child(1){left:12%}.library-atmosphere i:nth-child(2){left:48%;animation-delay:-3s}.library-atmosphere i:nth-child(3){left:88%;animation-delay:-6s}.library-atmosphere>span{position:absolute;right:9%;top:13%;color:#ecc774;font-size:24px;animation:libraryBookFloat 3s infinite}.library-shell{display:grid;grid-template-columns:1.35fr .65fr;gap:10px;width:100%;padding:11px;background:linear-gradient(120deg,rgba(3,6,10,.95),rgba(28,18,9,.92));border:1px solid rgba(178,133,65,.67);box-shadow:0 30px 95px rgba(0,0,0,.92);backdrop-filter:blur(13px)}.library-catalogue,.library-mystery{padding:20px;background:rgba(4,7,11,.75);border:1px solid rgba(104,82,50,.5)}.library-catalogue>header{display:flex;align-items:flex-start;justify-content:space-between;gap:14px}.library-catalogue header small,.library-mystery>small,.library-reward small{font:8px Cinzel;letter-spacing:1.6px;color:#ae8951}.library-catalogue h2,.library-mystery h2{margin:4px 0 7px;font:23px Cinzel;color:#ead09a}.library-catalogue header>span{padding:6px 8px;border:1px solid #715a37;color:#a99169;font:8px Cinzel}.library-catalogue>p,.library-mystery>p{color:#aaa193;font:13px/1.5 Georgia,serif}.library-search{display:grid;grid-template-columns:30px 1fr auto;align-items:center;margin:14px 0 10px;background:#060a10;border:1px solid #76603f}.library-search>i{color:#c39a55;font:normal 18px Cinzel;text-align:center}.library-search input{height:42px;padding:0 10px;background:transparent;border:0;color:#dfcfb2;font:13px Georgia;outline:none}.library-search kbd{margin-right:8px;padding:4px 6px;background:#111318;border:1px solid #504a40;color:#7f786c;font:7px Cinzel}.library-results{display:grid;grid-template-columns:1fr 1fr;gap:6px;max-height:350px;overflow-y:auto;scrollbar-width:thin;scrollbar-color:#715735 #090b0e}.library-book{display:grid;grid-template-columns:35px 1fr;gap:9px;min-height:135px;padding:12px;text-align:left;background:linear-gradient(135deg,rgba(6,10,15,.92),rgba(27,18,9,.86));border:1px solid #51483a;color:#bdb09a;cursor:pointer;transition:.23s}.library-book:hover{transform:translateY(-2px);border-color:#c49850;box-shadow:0 12px 28px #000}.library-book>i{display:grid;place-items:center;width:33px;height:40px;background:#0a0d12;border:1px solid #7d6038;color:#d7ae68;font:normal 18px Cinzel}.library-book small,.library-book b,.library-book p{display:block}.library-book small{font:7px Cinzel;color:#907750;text-transform:uppercase}.library-book b{margin:4px 0;font:12px/1.25 Cinzel;color:#dec595}.library-book p{margin:0;color:#8d867a;font-size:10px;line-height:1.35}.library-book em{grid-column:2;color:#a78855;font:normal 7px Cinzel}.library-no-result{grid-column:1/-1;display:grid;place-items:center;min-height:130px;color:#8d8374}.library-no-result span{font-size:28px}.library-no-result b{font:11px Cinzel}.library-mystery{position:relative;border-top:2px solid #8f6b3a}.library-mystery.locked{filter:saturate(.62)}.restricted-seal{display:grid;place-items:center;width:58px;height:66px;margin-bottom:12px;background:radial-gradient(circle,#2d2112,#06090e);border:1px solid #a47a3e;clip-path:polygon(50% 0,92% 19%,92% 75%,50% 100%,8% 75%,8% 19%);color:#dfb76e;font:24px Cinzel}.library-lock{margin:13px 0;padding:12px;background:#090b0e;border:1px dashed #68563d;color:#a18f74;font:10px/1.4 Cinzel}.library-objectives{display:grid;gap:6px;margin:13px 0}.library-objectives>div{display:grid;grid-template-columns:25px 1fr;align-items:center;gap:8px;padding:9px;background:rgba(3,6,10,.72);border-left:2px solid #89683c}.library-objectives>div.done{border-color:#65906a}.library-objectives>div.locked{opacity:.4}.library-objectives>div>i{font:normal 13px Cinzel;color:#d0aa66}.library-objectives b,.library-objectives small{display:block}.library-objectives b{font:10px/1.3 Cinzel;color:#cdb990}.library-objectives small{margin-top:3px;color:#7f786d;font-size:10px}.library-reward{margin:12px 0;padding:10px 0;border-top:1px solid #604b30;border-bottom:1px solid #604b30}.library-reward b{display:block;margin-top:5px;color:#d5b77e;font:9px/1.45 Cinzel}.library-mystery>button{width:100%}.library-quest-sealed{padding:13px;text-align:center;border:1px solid #5b8c64;color:#81ad87;font:10px Cinzel;letter-spacing:1px}.library-book-layer,.library-finale{position:fixed;inset:0;z-index:10045;display:grid;place-items:center;padding:20px;opacity:0;background:rgba(1,3,6,.86);backdrop-filter:blur(9px);transition:.35s}.library-book-layer.show,.library-finale.show{opacity:1}.library-book-layer>section,.library-finale>section{width:min(530px,92vw);padding:30px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(54,37,18,.97),rgba(4,7,11,.99) 65%);border:1px solid #b4894c;box-shadow:0 35px 110px #000;transform:translateY(22px) scale(.95);transition:.4s}.library-book-layer.show>section,.library-finale.show>section{transform:none}.library-open-book,.library-page-reward{display:grid;place-items:center;width:110px;height:78px;margin:0 auto 17px;background:linear-gradient(100deg,#d5b87e,#f0dcae 48%,#c6a56c 50%);clip-path:polygon(0 8%,45% 0,50% 9%,55% 0,100% 8%,95% 96%,54% 87%,50% 100%,46% 87%,5% 96%);color:#5f411e;font:30px Cinzel;filter:drop-shadow(0 12px 20px #000)}.library-book-layer small,.library-finale small{font:8px Cinzel;letter-spacing:1.5px;color:#b18d55}.library-book-layer h2,.library-finale h2{margin:6px 0 9px;font:24px Cinzel;color:#ead09a}.library-book-layer p,.library-finale p{color:#b6ac9c;font:italic 14px/1.55 Georgia}.library-book-layer button,.library-finale button{margin-top:15px;min-width:210px}.library-finale>section>div:not(.library-page-reward){display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0}.library-finale>section>div span{padding:10px;background:#070a0f;border:1px solid #5f4d34}.library-finale span b,.library-finale span small{display:block}.library-finale span b{color:#ebc477;font:17px Cinzel}.library-finale>section>strong{display:block;color:#d9ba7e;font:11px Cinzel}.library-page-reward{width:92px;height:108px;background:linear-gradient(90deg,#b89a63,#ead39c 50%,#aa8856 51%);animation:libraryPageGlow 2s infinite}
@keyframes libraryGlow{50%{filter:brightness(1.07)}}@keyframes libraryDust{0%{opacity:0;transform:translateY(0)}20%{opacity:.7}100%{opacity:0;transform:translate(25px,-100vh)}}@keyframes libraryBookFloat{50%{transform:translateY(-7px);filter:brightness(1.25)}}@keyframes libraryPageGlow{50%{filter:drop-shadow(0 0 25px #e2aa4f) brightness(1.2)}}
@media(max-width:900px){.library-shell{grid-template-columns:1fr}.library-results{max-height:none}.library-mystery{order:-1}}@media(max-width:600px){.library-results{grid-template-columns:1fr}.library-catalogue,.library-mystery{padding:14px}.library-search kbd{display:none}.library-search{grid-template-columns:30px 1fr}.library-book-layer>section,.library-finale>section{padding:24px 16px}.library-finale>section>div:not(.library-page-reward){grid-template-columns:1fr 1fr}}
@media(prefers-reduced-motion:reduce){html[data-scene-art="library"] .clean-scene:after,.library-loading span,.library-atmosphere i,.library-atmosphere>span,.library-page-reward{animation:none!important}}
html[data-scene-art="library"] .clean-scene{background-image:url('art/hogwarts_library.jpg')!important}

/* V0.15.0 — Courtyard and Relationships */
html[data-scene-art="courtyard"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important}html[data-scene-art="courtyard"] .clean-stage::-webkit-scrollbar{display:none}html[data-scene-art="courtyard"] .clean-scene{background-image:url('art/hogwarts_courtyard.jpg')!important;background-size:cover!important;background-position:center!important;background-attachment:fixed!important}html[data-scene-art="courtyard"] .clean-scene:before{background:linear-gradient(180deg,rgba(1,4,9,.1),rgba(1,4,9,.04) 30%,rgba(1,3,7,.91) 82%),linear-gradient(90deg,rgba(1,4,9,.38),transparent 42%,rgba(1,4,9,.3))!important}html[data-scene-art="courtyard"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;pointer-events:none;background:radial-gradient(circle at 51% 50%,rgba(126,178,220,.12),transparent 20%),radial-gradient(circle at 15% 37%,rgba(236,176,75,.1),transparent 24%);animation:courtyardMoon 5s ease-in-out infinite}html[data-scene-art="courtyard"] .clean-scene-inner{justify-content:flex-end!important;width:min(1280px,96vw)!important;min-height:calc(100vh - 112px);padding:25px 18px 30px!important}html[data-scene-art="courtyard"] .clean-scene h1{font-size:clamp(30px,3.9vw,49px)!important;color:#f0d5a1!important;text-shadow:0 5px 26px #000}.courtyard-loading{display:grid;place-items:center;gap:12px;width:min(560px,90vw);min-height:240px;margin:auto;background:rgba(3,7,12,.9);border:1px solid #8b7147;box-shadow:0 30px 90px #000}.courtyard-loading span{font-size:48px;color:#b9d9ee;animation:courtyardFloat 2s infinite}.courtyard-loading b{font:12px Cinzel;color:#d7c49e}.courtyard-atmosphere{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.courtyard-atmosphere i{position:absolute;bottom:8%;width:4px;height:4px;border-radius:50%;background:#d7ecff;box-shadow:0 0 14px #6cbbf2;animation:courtyardMote 8s linear infinite}.courtyard-atmosphere i:nth-child(1){left:15%}.courtyard-atmosphere i:nth-child(2){left:53%;animation-delay:-3s}.courtyard-atmosphere i:nth-child(3){left:87%;animation-delay:-6s}.courtyard-atmosphere>span{position:absolute;right:8%;top:9%;font-size:34px;color:rgba(221,238,255,.6);animation:courtyardFloat 3s infinite}.courtyard-shell{width:100%;padding:11px;background:linear-gradient(125deg,rgba(3,7,12,.95),rgba(18,25,32,.91));border:1px solid rgba(174,142,86,.65);box-shadow:0 32px 100px #000;backdrop-filter:blur(13px)}.courtyard-header{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:17px 20px;background:linear-gradient(90deg,rgba(7,13,20,.88),rgba(34,27,17,.78));border-bottom:1px solid #67583e}.courtyard-header small,.courtyard-board-title small,.courtyard-student>small,.courtyard-quest header small,.courtyard-dialogue small,.courtyard-finale small{font:8px Cinzel;letter-spacing:1.4px;color:#b59057}.courtyard-header h2{margin:5px 0;font:18px Cinzel;color:#e9d2a5}.courtyard-header p{margin:0;color:#9ea5a5;font:12px Georgia}.courtyard-header>b{display:grid;place-items:center;min-width:96px;padding:9px;border:1px solid #736344;color:#d9be85;font:19px Cinzel}.courtyard-header>b small{margin-top:3px;font-size:6px}.courtyard-students{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:9px 0}.courtyard-student{position:relative;display:grid;grid-template-columns:64px 1fr;align-items:center;gap:0 13px;min-height:205px;padding:16px;background:linear-gradient(145deg,rgba(5,11,18,.94),rgba(24,22,17,.9));border:1px solid rgba(103,92,71,.66);overflow:hidden;transition:.25s}.courtyard-student:before{content:"";position:absolute;inset:0;background:linear-gradient(110deg,transparent 30%,rgba(196,222,239,.05),transparent 65%);transform:translateX(-100%);transition:.5s}.courtyard-student:hover{transform:translateY(-3px);border-color:#b28b4e;box-shadow:0 15px 35px #000}.courtyard-student:hover:before{transform:translateX(100%)}.courtyard-student.featured{border-top:2px solid #a9cce1}.student-medallion{grid-row:1/5;align-self:start;display:grid;place-items:center;width:58px;height:70px;background:radial-gradient(circle at 50% 25%,#3d5363,#090e14 66%);border:5px double #927142;clip-path:polygon(50% 0,94% 19%,90% 79%,50% 100%,10% 79%,6% 19%);color:#e7cc96;font:25px Cinzel;filter:drop-shadow(0 9px 12px #000)}.courtyard-student h3{margin:4px 0;font:18px Cinzel;color:#e7ce9e}.courtyard-student p{grid-column:2;margin:2px 0 11px;color:#aaa79f;font:italic 11px/1.4 Georgia}.affinity{grid-column:2}.affinity>span{display:flex;justify-content:space-between}.affinity b,.affinity i{font:normal 7px Cinzel;color:#a7a194}.affinity>div{height:4px;margin-top:5px;background:#10151b}.affinity>div>i{display:block;height:100%;background:linear-gradient(90deg,#5f91b0,#e0bb72);box-shadow:0 0 9px #78b7dd;transition:.7s}.courtyard-student>button{grid-column:1/-1;margin-top:13px;padding:9px;background:transparent;border:1px solid #735f40;color:#d4b87e;font:8px Cinzel;cursor:pointer;z-index:1}.courtyard-student>button:hover{background:#261d10;border-color:#c39752}.courtyard-board{padding:18px 19px;background:rgba(3,7,11,.78);border:1px solid rgba(98,84,61,.55)}.courtyard-board-title{display:flex;align-items:end;justify-content:space-between;gap:15px}.courtyard-board-title h2{margin:4px 0;font:22px Cinzel;color:#e8cf9c}.courtyard-board-title>span{color:#858b89;font:11px Georgia}.courtyard-quests{display:grid;grid-template-columns:repeat(5,minmax(200px,1fr));gap:7px;margin-top:13px;overflow-x:auto;padding-bottom:5px;scrollbar-width:thin}.courtyard-quest{display:flex;flex-direction:column;min-width:210px;min-height:275px;padding:13px;background:linear-gradient(145deg,#080e15,#1b1710);border:1px solid #554c3e;border-top:2px solid #8a6d40}.courtyard-quest.active{border-top-color:#78a9c5}.courtyard-quest.completed{border-top-color:#67956f}.courtyard-quest.locked{opacity:.58}.courtyard-quest header{display:flex;gap:9px;align-items:center}.courtyard-quest header>i{display:grid;place-items:center;width:33px;height:39px;background:#090d12;border:1px solid #80653c;color:#d8b46e;font:normal 15px Cinzel}.courtyard-quest h3{margin:3px 0;font:13px/1.25 Cinzel;color:#dfc797}.courtyard-quest>p{color:#99958d;font-size:10px;line-height:1.4}.courtyard-objectives{display:grid;gap:4px;margin-bottom:10px}.courtyard-objectives span{padding:5px 6px;background:#070b10;border-left:2px solid #6e5d43;color:#9e988d;font:7px/1.35 Cinzel}.courtyard-objectives span.done{border-color:#609068;color:#84ae89}.courtyard-objectives span.locked{opacity:.42}.courtyard-quest footer{display:grid;gap:8px;margin-top:auto}.courtyard-quest footer>small{color:#9d8258;font:7px/1.4 Cinzel}.courtyard-quest footer button{padding:8px;background:transparent;border:1px solid #856a41;color:#dbbd85;font:8px Cinzel;cursor:pointer}.courtyard-quest footer button:hover:not(:disabled){background:#2a1e0f;border-color:#d0a354}.courtyard-quest footer button:disabled{opacity:.5}.courtyard-quest-done{padding:8px;text-align:center;border:1px solid #5b8663;color:#7faa86;font:8px Cinzel}
.courtyard-dialogue,.courtyard-finale{position:fixed;inset:0;z-index:10050;display:grid;place-items:center;padding:20px;opacity:0;background:rgba(1,4,8,.86);backdrop-filter:blur(10px);transition:.35s}.courtyard-dialogue.show,.courtyard-finale.show{opacity:1}.courtyard-dialogue>section,.courtyard-finale>section{width:min(550px,92vw);padding:31px;text-align:center;background:radial-gradient(circle at 50% 0,rgba(50,55,57,.96),rgba(4,8,12,.99) 65%);border:1px solid #a6854e;box-shadow:0 35px 110px #000;transform:translateY(22px) scale(.95);transition:.4s}.courtyard-dialogue.show>section,.courtyard-finale.show>section{transform:none}.dialogue-medallion,.courtyard-reward{display:grid;place-items:center;width:78px;height:90px;margin:-72px auto 17px;background:radial-gradient(circle,#415b6d,#080d13 70%);border:7px double #a27d43;clip-path:polygon(50% 0,94% 19%,91% 78%,50% 100%,9% 78%,6% 19%);color:#edcf95;font:29px Cinzel;filter:drop-shadow(0 13px 20px #000)}.courtyard-dialogue h2,.courtyard-finale h2{margin:6px 0 10px;font:25px Cinzel;color:#ebd2a0}.courtyard-dialogue>section>p,.courtyard-finale p{color:#bbb4a7;font:italic 14px/1.55 Georgia}.courtyard-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0}.courtyard-choices>button{min-height:62px;padding:9px;background:#081019;border:1px solid #665a48;color:#cbb990;font:9px/1.4 Cinzel;cursor:pointer}.courtyard-choices>button:hover{transform:translateY(-3px);border-color:#c49952;background:#17170f}.dialogue-close{margin-top:5px}.relationship-result{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:13px;padding:14px;background:#070c12;border:1px solid #6c8ea1}.relationship-result>span{font:28px Cinzel;color:#8ec7e9}.relationship-result small,.relationship-result b{display:block;text-align:left}.relationship-result b{margin-top:4px;color:#d8c193;font:10px Cinzel}.courtyard-reward{width:88px;height:88px;border-radius:50%;clip-path:none;background:radial-gradient(circle,#dcefff 0,#547b94 28%,#101923 66%);animation:courtyardReward 2s infinite}.courtyard-finale .quest-finale-rewards{margin:18px 0}.profile-relationships{margin-top:18px;padding:14px;background:rgba(4,9,14,.73);border:1px solid #67573e}.profile-relationships header{display:flex;align-items:end;justify-content:space-between;margin-bottom:8px}.profile-relationships header small{font:7px Cinzel;color:#9e8050}.profile-relationships header h3{margin:3px 0;font:16px Cinzel;color:#dec697}.profile-relationships header button{padding:6px 9px;background:transparent;border:1px solid #775f3c;color:#c3a46b;font:7px Cinzel;cursor:pointer}.profile-relationships>div{display:grid;grid-template-columns:32px 1fr auto;align-items:center;gap:9px;padding:7px 0;border-top:1px solid #302c25}.profile-relationships>div>span{display:grid;place-items:center;width:29px;height:33px;background:#101820;border:1px solid #735b39;color:#d3b57d;font:12px Cinzel}.profile-relationships section small,.profile-relationships section b{display:block}.profile-relationships section small{font:6px Cinzel;color:#858176}.profile-relationships section b{font:9px Cinzel;color:#cdb78c}.profile-relationships section i{display:block;width:100%;height:3px;margin-top:4px;background:#111820}.profile-relationships section em{display:block;height:100%;background:#72a9c7}.profile-relationships>div>strong{color:#8f887b;font:7px Cinzel}
@keyframes courtyardMoon{50%{filter:brightness(1.07)}}@keyframes courtyardFloat{50%{transform:translateY(-7px)}}@keyframes courtyardMote{0%{opacity:0;transform:translateY(0)}20%{opacity:.85}100%{opacity:0;transform:translate(24px,-75vh)}}@keyframes courtyardReward{50%{filter:drop-shadow(0 0 28px #93cdf1) brightness(1.2)}}
@media(max-width:900px){.courtyard-students{grid-template-columns:1fr}.courtyard-quests{grid-template-columns:repeat(5,250px)}.courtyard-student{min-height:175px}.courtyard-header{align-items:flex-start}}@media(max-width:600px){html[data-scene-art="courtyard"] .clean-scene-inner{padding:22px 10px 25px!important}.courtyard-header{padding:13px}.courtyard-header>b{display:none}.courtyard-board{padding:14px 10px}.courtyard-board-title>span{display:none}.courtyard-choices{grid-template-columns:1fr}.courtyard-dialogue>section,.courtyard-finale>section{padding:28px 16px}.courtyard-student{grid-template-columns:53px 1fr}.student-medallion{width:48px;height:59px}.profile-relationships>div{grid-template-columns:30px 1fr}.profile-relationships>div>strong{display:none}}@media(prefers-reduced-motion:reduce){html[data-scene-art="courtyard"] .clean-scene:after,.courtyard-atmosphere i,.courtyard-atmosphere>span,.courtyard-loading span,.courtyard-reward{animation:none!important}}

/* V0.15.1 — Courtyard noticeboard readability at standard browser zoom */
.courtyard-quests{grid-template-columns:repeat(3,minmax(250px,1fr));overflow-x:visible;gap:10px}.courtyard-quest{min-width:0;min-height:305px;padding:17px}.courtyard-quest h3{font-size:15px;line-height:1.35}.courtyard-quest header small{font-size:9px}.courtyard-quest>p{font-size:12px;line-height:1.55}.courtyard-objectives{gap:6px}.courtyard-objectives span{padding:7px 8px;font-size:9px;line-height:1.4}.courtyard-quest footer>small{font-size:8px;line-height:1.5}.courtyard-quest footer button,.courtyard-quest-done{padding:10px;font-size:9px}.courtyard-board-title>span{font-size:12px}
@media(max-width:980px){.courtyard-quests{grid-template-columns:repeat(2,minmax(240px,1fr))}}@media(max-width:620px){.courtyard-quests{grid-template-columns:1fr}.courtyard-quest{min-height:0}}

/* V0.16.0 — Common Rooms and House Identity */
html[data-scene-art="commonroom"] .clean-stage{overflow-y:auto!important;scrollbar-width:none!important}html[data-scene-art="commonroom"] .clean-stage::-webkit-scrollbar{display:none}html[data-scene-art="commonroom"] .clean-scene{background-size:cover!important;background-position:center!important;background-attachment:fixed!important}html[data-scene-art="commonroom"][data-player-house="gryffindor"] .clean-scene{background-image:url('art/common_room_gryffindor.jpg')!important}html[data-scene-art="commonroom"][data-player-house="slytherin"] .clean-scene{background-image:url('art/common_room_slytherin.jpg')!important}html[data-scene-art="commonroom"][data-player-house="ravenclaw"] .clean-scene{background-image:url('art/common_room_ravenclaw.jpg')!important}html[data-scene-art="commonroom"][data-player-house="hufflepuff"] .clean-scene{background-image:url('art/common_room_hufflepuff.jpg')!important}html[data-scene-art="commonroom"] .clean-scene:before{background:linear-gradient(180deg,rgba(1,3,6,.08),rgba(1,3,6,.03) 31%,rgba(1,3,7,.91) 80%),linear-gradient(90deg,rgba(2,4,7,.32),transparent 42%,rgba(2,4,7,.28))!important}html[data-scene-art="commonroom"] .clean-scene:after{content:"";position:absolute;inset:0;z-index:-.5;pointer-events:none;background:radial-gradient(circle at 50% 48%,var(--house-glow),transparent 25%);opacity:.22;animation:commonGlow 4.5s ease-in-out infinite}html[data-scene-art="commonroom"] .clean-scene-inner{justify-content:flex-end!important;width:min(1280px,96vw)!important;min-height:calc(100vh - 112px);padding:25px 18px 30px!important}html[data-scene-art="commonroom"] .clean-scene h1{font-size:clamp(30px,3.8vw,49px)!important;color:#f0d5a1!important;text-shadow:0 5px 26px #000}.common-loading{display:grid;place-items:center;gap:12px;width:min(560px,90vw);min-height:240px;margin:auto;background:rgba(3,6,10,.91);border:1px solid var(--house-accent);box-shadow:0 30px 90px #000}.common-loading span{font-size:48px;color:var(--house-accent);animation:commonFloat 2s infinite}.common-loading b{font:12px Cinzel;color:#d7c39b}.common-motes{position:absolute;inset:0;z-index:-1;overflow:hidden;pointer-events:none}.common-motes i{position:absolute;bottom:3%;width:4px;height:4px;border-radius:50%;background:var(--house-accent);box-shadow:0 0 15px var(--house-accent);animation:commonMote 9s linear infinite}.common-motes i:nth-child(1){left:13%}.common-motes i:nth-child(2){left:52%;animation-delay:-3s}.common-motes i:nth-child(3){left:87%;animation-delay:-6s}.common-motes>span{position:absolute;right:7%;top:11%;font-size:35px;color:var(--house-accent);opacity:.6;animation:commonFloat 3s infinite}.common-shell{width:100%;padding:11px;background:linear-gradient(125deg,rgba(3,6,10,.95),rgba(22,18,13,.92));border:1px solid color-mix(in srgb,var(--house-accent) 58%,#514630);box-shadow:0 32px 100px #000;backdrop-filter:blur(13px)}.common-hero{display:grid;grid-template-columns:76px 1fr auto;align-items:center;gap:16px;padding:16px 19px;background:linear-gradient(90deg,rgba(5,9,14,.92),rgba(28,21,13,.78));border-bottom:1px solid color-mix(in srgb,var(--house-accent) 45%,#3e3529)}.common-hero>img{width:68px;height:80px;object-fit:contain;filter:drop-shadow(0 8px 12px #000)}.common-hero small,.common-board header small,.prefect-card small,.house-event small,.trophy-room small,.dormitory small,.common-dialogue small,.common-finale small{font:8px Cinzel;letter-spacing:1.5px;color:var(--house-accent)}.common-hero h2{margin:4px 0;font:22px Cinzel;color:#ead2a2}.common-hero p{margin:0;color:#a4a097;font:12px/1.45 Georgia}.common-hero>section{display:grid;justify-items:end;min-width:190px;padding:11px;border-right:3px solid var(--house-accent);background:rgba(3,7,11,.68)}.common-hero>section b{margin:5px 0;color:#e3c98f;font:14px Cinzel}.common-hero>section span{color:#88867f;font:7px Cinzel}.common-tabs{display:grid;grid-template-columns:repeat(4,1fr);gap:5px;padding:8px 0}.common-tabs button{display:flex;justify-content:center;align-items:center;gap:8px;padding:10px;background:rgba(4,8,12,.87);border:1px solid #4e493f;color:#8e897f;font:8px Cinzel;cursor:pointer;transition:.2s}.common-tabs button i{color:var(--house-accent);font:normal 15px Cinzel}.common-tabs button:hover,.common-tabs button.active{color:#ead3a5;border-color:var(--house-accent);background:color-mix(in srgb,var(--house-glow) 24%,#080b0f)}.common-view{min-height:390px}.common-lounge{display:grid;grid-template-columns:1.35fr .65fr;gap:9px}.prefect-card{display:grid;grid-template-columns:96px 1fr;gap:18px;align-items:center;padding:23px;background:linear-gradient(135deg,rgba(4,8,13,.94),rgba(29,22,14,.87));border:1px solid #5c5140;border-top:2px solid var(--house-accent)}.prefect-portrait{display:grid;place-items:center;width:91px;height:112px;background:radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--house-accent) 34%,#26313a),#070b10 67%);border:7px double var(--house-accent);clip-path:polygon(50% 0,94% 18%,91% 79%,50% 100%,9% 79%,6% 18%);color:#ebd19a;font:34px Cinzel;filter:drop-shadow(0 13px 18px #000)}.prefect-card h3{margin:5px 0;font:23px Cinzel;color:#e8ce9c}.prefect-card p{margin:5px 0 15px;color:#b4ada0;font:italic 13px/1.5 Georgia}.common-affinity>span{display:flex;justify-content:space-between}.common-affinity b,.common-affinity i{font:normal 8px Cinzel;color:#a39b8e}.common-affinity>div{height:5px;margin-top:6px;background:#11161b}.common-affinity>div>i{display:block;height:100%;background:linear-gradient(90deg,var(--house-accent),#ead294);box-shadow:0 0 11px var(--house-glow)}.prefect-card button{width:100%;margin-top:13px;padding:10px;background:transparent;border:1px solid color-mix(in srgb,var(--house-accent) 70%,#69563b);color:#d7bd89;font:8px Cinzel;cursor:pointer}.prefect-card button:hover{background:color-mix(in srgb,var(--house-glow) 28%,#15120e)}.house-event{display:grid;align-content:center;justify-items:center;padding:23px;text-align:center;background:radial-gradient(circle at 50% 28%,color-mix(in srgb,var(--house-glow) 28%,transparent),rgba(3,7,11,.95) 65%);border:1px solid #5d5241}.house-event>span{font-size:40px;color:var(--house-accent);animation:commonFloat 2.4s infinite}.house-event h3{margin:6px;font:18px Cinzel;color:#ddc493}.house-event p{color:#a7a198;font:italic 12px/1.5 Georgia}.house-event>b{color:#7f7a72;font:7px Cinzel}.common-portals{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin-top:9px}.common-portals button{display:grid;grid-template-columns:49px 1fr;align-items:center;gap:12px;min-height:90px;padding:14px;text-align:left;background:rgba(4,8,12,.91);border:1px solid #51493d;color:#aaa198;cursor:pointer;transition:.23s}.common-portals button:hover{transform:translateY(-3px);border-color:var(--house-accent);box-shadow:0 12px 28px #000}.common-portals button>i{display:grid;place-items:center;width:47px;height:54px;background:#0b1015;border:1px solid var(--house-accent);color:var(--house-accent);font:normal 20px Cinzel}.common-portals small,.common-portals b,.common-portals em{display:block}.common-portals small{color:#8e7750;font:7px Cinzel}.common-portals b{margin:4px 0;color:#dcc497;font:11px Cinzel}.common-portals em{color:#817c74;font:normal 9px Georgia}.common-board{padding:19px;background:rgba(3,7,11,.82);border:1px solid #554b3c}.common-board>header,.trophy-room>header{display:flex;align-items:end;justify-content:space-between;gap:18px}.common-board h2,.trophy-room h2{margin:4px 0;font:22px Cinzel;color:#e8cf9d}.common-board header>span{color:#8f8c85;font:11px Georgia}.common-quest-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:9px;margin-top:14px}.common-quest{display:flex;flex-direction:column;min-height:305px;padding:16px;background:linear-gradient(145deg,#071019,#1e1810);border:1px solid #51493d;border-top:2px solid #80683f}.common-quest.active{border-top-color:var(--house-accent)}.common-quest.completed{border-top-color:#63926a}.common-quest.locked{opacity:.58}.common-quest>header{display:flex;align-items:center;gap:9px}.common-quest>header>i{display:grid;place-items:center;width:36px;height:42px;background:#080c11;border:1px solid var(--house-accent);color:var(--house-accent);font:normal 17px Cinzel}.common-quest h3{margin:4px 0;font:15px/1.3 Cinzel;color:#e2c999}.common-quest>p{color:#9e9a91;font-size:11px;line-height:1.5}.common-objectives{display:grid;gap:5px;margin-bottom:10px}.common-objectives span{display:grid;grid-template-columns:15px 1fr auto;gap:5px;padding:7px;background:#070b10;border-left:2px solid #65583f;color:#9e988d;font:8px/1.35 Cinzel}.common-objectives span>i{font:normal 10px Cinzel;color:var(--house-accent)}.common-objectives span>em{font:normal 7px Cinzel}.common-objectives span.done{border-color:#609068;color:#82aa87}.common-objectives span.locked{opacity:.42}.common-quest footer{display:grid;gap:8px;margin-top:auto}.common-quest footer>small{color:#a3895f;font:7px/1.5 Cinzel}.common-quest footer button{padding:10px;background:transparent;border:1px solid color-mix(in srgb,var(--house-accent) 70%,#66543a);color:#ddc18a;font:8px Cinzel;cursor:pointer}.common-quest footer button:hover:not(:disabled){background:color-mix(in srgb,var(--house-glow) 24%,#17120d)}.common-quest footer button:disabled{opacity:.5}.common-done{padding:9px;text-align:center;border:1px solid #5e8b65;color:#83ad89;font:8px Cinzel}.trophy-room{padding:20px;background:rgba(3,7,11,.84);border:1px solid #584e3f}.trophy-room>header p{margin:3px 0;color:#99968f;font:11px Georgia}.trophy-room>header>b{display:grid;place-items:center;min-width:93px;padding:10px;border:1px solid var(--house-accent);color:#e2c88f;font:22px Cinzel}.trophy-room>header>b small{margin-top:3px;font-size:6px}.trophy-shelves{display:grid;grid-template-columns:repeat(4,1fr);gap:9px;margin-top:15px}.trophy-shelves article{display:grid;justify-items:center;align-content:center;min-height:190px;padding:15px;text-align:center;background:linear-gradient(145deg,rgba(7,12,17,.94),rgba(28,21,13,.87));border:1px solid #574d3d;border-bottom:5px solid #4c3c28}.trophy-shelves article.locked{filter:saturate(.4);opacity:.58}.trophy-shelves article>div{display:grid;place-items:center;width:67px;height:78px;margin-bottom:10px;background:radial-gradient(circle,color-mix(in srgb,var(--house-glow) 42%,#252017),#070a0e 68%);border:5px double var(--house-accent);color:#e7c886;font:27px Cinzel;clip-path:polygon(50% 0,92% 19%,92% 76%,50% 100%,8% 76%,8% 19%)}.trophy-shelves h3{margin:4px 0;font:13px Cinzel;color:#ddc596}.trophy-shelves p{margin:4px;color:#8f8b83;font-size:10px;line-height:1.4}.dormitory{display:grid;grid-template-columns:.7fr 1.3fr;gap:9px}.dormitory-bed{display:grid;align-content:center;justify-items:center;min-height:390px;padding:25px;text-align:center;background:radial-gradient(circle at 50% 22%,color-mix(in srgb,var(--house-glow) 28%,transparent),rgba(3,7,11,.95) 64%);border:1px solid #5b5040}.bed-canopy{display:grid;place-items:center;width:115px;height:105px;margin-bottom:13px;background:linear-gradient(150deg,color-mix(in srgb,var(--house-accent) 62%,#382f26),#090c10 72%);clip-path:polygon(12% 0,88% 0,100% 20%,93% 100%,7% 100%,0 20%);border-bottom:7px solid var(--house-accent);filter:drop-shadow(0 13px 20px #000)}.bed-canopy i{color:#eed6a5;font:normal 34px Cinzel}.dormitory-bed h2{margin:6px;font:22px Cinzel;color:#e6cd9b}.dormitory-bed p{max-width:320px;color:#a7a198;font:12px/1.5 Georgia}.dormitory-bed button{margin-top:12px;padding:11px 16px;background:transparent;border:1px solid var(--house-accent);color:#ddc28b;font:8px Cinzel;cursor:pointer}.dormitory-bed button:disabled{color:#75a27c;border-color:#56775c}.dormitory-belongings{display:grid;grid-template-columns:1fr 1fr;gap:9px}.dormitory-belongings article{display:flex;flex-direction:column;min-height:175px;padding:18px;background:linear-gradient(145deg,rgba(5,10,15,.93),rgba(25,20,14,.88));border:1px solid #554b3d}.dormitory-belongings article>i{color:var(--house-accent);font:normal 25px Cinzel}.dormitory-belongings h3{margin:5px 0;font:14px/1.35 Cinzel;color:#dec696}.dormitory-belongings p{color:#918d85;font-size:10px;line-height:1.4}.dormitory-belongings button{margin-top:auto;padding:8px;background:transparent;border:1px solid #6c5a3d;color:#c9ad79;font:8px Cinzel;cursor:pointer}
.common-dialogue,.common-finale,.dorm-settle{position:fixed;inset:0;z-index:10055;display:grid;place-items:center;padding:20px;opacity:0;background:rgba(1,3,7,.87);backdrop-filter:blur(10px);transition:.35s}.common-dialogue.show,.common-finale.show,.dorm-settle.show{opacity:1}.common-dialogue>section,.common-finale>section,.dorm-settle>section{width:min(550px,92vw);padding:31px;text-align:center;background:radial-gradient(circle at 50% 0,color-mix(in srgb,var(--house-glow) 35%,#2d291f),#05080c 66%);border:1px solid var(--house-accent);box-shadow:0 35px 110px #000;transform:translateY(22px) scale(.95);transition:.4s}.common-dialogue.show>section,.common-finale.show>section,.dorm-settle.show>section{transform:none}.prefect-dialogue-mark,.common-reward{display:grid;place-items:center;width:79px;height:92px;margin:-73px auto 17px;background:radial-gradient(circle,color-mix(in srgb,var(--house-accent) 38%,#29343b),#070b10 68%);border:7px double var(--house-accent);clip-path:polygon(50% 0,94% 19%,91% 78%,50% 100%,9% 78%,6% 19%);color:#ebd19a;font:30px Cinzel;filter:drop-shadow(0 13px 20px #000)}.common-dialogue h2,.common-finale h2,.dorm-settle h2{margin:6px 0 10px;font:25px Cinzel;color:#ead09f}.common-dialogue>section>p,.common-finale p,.dorm-settle p{color:#bbb3a6;font:italic 14px/1.55 Georgia}.prefect-choices{display:grid;grid-template-columns:repeat(3,1fr);gap:6px;margin:18px 0}.prefect-choices>button{min-height:62px;padding:9px;background:#080e14;border:1px solid #665b49;color:#cdbc96;font:9px/1.4 Cinzel;cursor:pointer}.prefect-choices>button:hover{transform:translateY(-3px);border-color:var(--house-accent)}.prefect-result{grid-column:1/-1;display:flex;align-items:center;justify-content:center;gap:13px;padding:14px;background:#070b10;border:1px solid var(--house-accent)}.prefect-result>b{font:28px Cinzel;color:var(--house-accent)}.prefect-result small,.prefect-result strong{display:block;text-align:left}.prefect-result strong{margin-top:4px;color:#d9c193;font:10px Cinzel}.common-reward{width:89px;height:89px;border-radius:50%;clip-path:none;animation:commonReward 2s infinite}.common-finale .quest-finale-rewards{margin:18px 0}.dorm-settle>section>span{display:block;color:var(--house-accent);font-size:55px;animation:commonFloat 2s infinite}.dorm-settle button{margin-top:13px}
@keyframes commonGlow{50%{opacity:.38;filter:brightness(1.12)}}@keyframes commonFloat{50%{transform:translateY(-7px)}}@keyframes commonMote{0%{opacity:0;transform:translateY(0)}20%{opacity:.8}100%{opacity:0;transform:translate(22px,-82vh)}}@keyframes commonReward{50%{filter:drop-shadow(0 0 28px var(--house-accent)) brightness(1.2)}}
@media(max-width:980px){.common-quest-grid{grid-template-columns:repeat(2,1fr)}.trophy-shelves{grid-template-columns:repeat(3,1fr)}.common-lounge{grid-template-columns:1fr}.common-portals{grid-template-columns:1fr}.dormitory{grid-template-columns:1fr}}@media(max-width:680px){html[data-scene-art="commonroom"] .clean-scene-inner{padding:22px 10px 25px!important}.common-hero{grid-template-columns:58px 1fr;padding:13px}.common-hero>img{width:54px;height:65px}.common-hero>section{grid-column:1/-1;justify-items:start;border-right:0;border-left:3px solid var(--house-accent)}.common-tabs{grid-template-columns:1fr 1fr}.common-tabs button{justify-content:flex-start}.prefect-card{grid-template-columns:1fr;text-align:center;justify-items:center}.prefect-portrait{width:75px;height:91px}.common-quest-grid,.trophy-shelves,.dormitory-belongings{grid-template-columns:1fr}.common-board{padding:14px 10px}.common-board>header>span{display:none}.prefect-choices{grid-template-columns:1fr}.common-dialogue>section,.common-finale>section,.dorm-settle>section{padding:28px 16px}}@media(prefers-reduced-motion:reduce){html[data-scene-art="commonroom"] .clean-scene:after,.common-loading span,.common-motes i,.common-motes>span,.house-event>span,.common-reward,.dorm-settle>section>span{animation:none!important}}

/* V0.16.1 — clearer Common Room navigation and living House ambience */
.common-tabs{gap:8px;padding:11px 0}.common-tabs button{position:relative;min-height:58px;padding:13px 16px;background:linear-gradient(145deg,rgba(8,13,19,.98),rgba(27,23,17,.96));border:1px solid color-mix(in srgb,var(--house-accent) 48%,#625845);box-shadow:inset 0 0 0 1px rgba(255,255,255,.025),0 7px 18px rgba(0,0,0,.48);color:#d6c7aa;font-size:11px;font-weight:700;letter-spacing:.75px;text-shadow:0 2px 5px #000}.common-tabs button:after{content:"";position:absolute;left:14px;right:14px;bottom:7px;height:2px;background:var(--house-accent);opacity:0;transform:scaleX(.35);transition:.24s}.common-tabs button i{font-size:21px;filter:drop-shadow(0 0 7px var(--house-glow))}.common-tabs button:hover{color:#f3deb4;border-color:var(--house-accent);transform:translateY(-2px)}.common-tabs button.active{color:#fff0cf;border-color:var(--house-accent);background:linear-gradient(145deg,color-mix(in srgb,var(--house-glow) 46%,#11151a),rgba(15,15,14,.98));box-shadow:inset 0 0 22px color-mix(in srgb,var(--house-glow) 38%,transparent),0 0 0 1px color-mix(in srgb,var(--house-accent) 35%,transparent),0 10px 26px #000}.common-tabs button.active:after{opacity:1;transform:scaleX(1)}.common-tabs button span{line-height:1.25}.common-portals button{background:linear-gradient(145deg,rgba(7,12,18,.97),rgba(25,21,16,.95));border-color:color-mix(in srgb,var(--house-accent) 42%,#5c5243)}.common-portals small{font-size:9px;letter-spacing:1px}.common-portals b{font-size:13px;line-height:1.35}.common-portals em{font-size:11px;line-height:1.4;color:#aaa399}.common-view{position:relative}.common-board,.trophy-room,.dormitory-bed,.dormitory-belongings article,.prefect-card,.house-event{box-shadow:inset 0 0 28px rgba(0,0,0,.2),0 9px 25px rgba(0,0,0,.4)}
.common-motes>b{position:absolute;left:calc(5% + var(--i) * 8%);bottom:-10%;display:block;color:var(--house-accent);font:normal clamp(13px,1.5vw,22px) Cinzel;opacity:0;text-shadow:0 0 8px var(--house-accent),0 0 18px var(--house-glow);filter:drop-shadow(0 0 6px var(--house-glow));animation:houseDrift calc(8s + var(--i) * .45s) linear infinite;animation-delay:calc(var(--i) * -.73s)}html[data-scene-art="commonroom"][data-player-house="gryffindor"] .common-motes>b{color:#f0a13a;animation-name:houseEmber}html[data-scene-art="commonroom"][data-player-house="slytherin"] .common-motes>b{color:#a7e2cf;font-family:Georgia;border-radius:50%;animation-name:houseBubble}html[data-scene-art="commonroom"][data-player-house="ravenclaw"] .common-motes>b{color:#bddcff;animation-name:houseFeather}html[data-scene-art="commonroom"][data-player-house="hufflepuff"] .common-motes>b{color:#e7bd56;animation-name:houseLeaf}
@keyframes houseDrift{0%{opacity:0;transform:translate(0,0) scale(.7)}12%{opacity:.72}55%{transform:translate(22px,-52vh) scale(1)}100%{opacity:0;transform:translate(-18px,-105vh) scale(1.2)}}@keyframes houseEmber{0%{opacity:0;transform:translateY(0) scale(.5) rotate(0)}15%{opacity:.9}55%{transform:translate(25px,-56vh) scale(1.15) rotate(90deg)}100%{opacity:0;transform:translate(-14px,-105vh) scale(.45) rotate(180deg)}}@keyframes houseBubble{0%{opacity:0;transform:translateY(0) scale(.35)}15%{opacity:.68}50%{transform:translate(-20px,-48vh) scale(1)}100%{opacity:0;transform:translate(18px,-105vh) scale(1.35)}}@keyframes houseFeather{0%{opacity:0;transform:translate(0,0) rotate(-25deg)}14%{opacity:.75}45%{transform:translate(35px,-45vh) rotate(28deg)}75%{transform:translate(-18px,-78vh) rotate(-12deg)}100%{opacity:0;transform:translate(12px,-105vh) rotate(35deg)}}@keyframes houseLeaf{0%{opacity:0;transform:translate(0,0) rotate(0)}15%{opacity:.8}45%{transform:translate(-25px,-45vh) rotate(130deg)}75%{transform:translate(20px,-78vh) rotate(260deg)}100%{opacity:0;transform:translate(-8px,-105vh) rotate(390deg)}}
@media(max-width:680px){.common-tabs{gap:6px}.common-tabs button{min-height:55px;padding:11px 12px;font-size:10px}.common-tabs button i{font-size:18px}.common-motes>b:nth-of-type(n+8){display:none}}@media(prefers-reduced-motion:reduce){.common-motes>b{animation:none!important;display:none!important}}
.common-motes>b{left:5%;animation-duration:9s;animation-delay:0s}.common-motes>b:nth-of-type(1){left:5%;animation-delay:-.7s;animation-duration:8.2s}.common-motes>b:nth-of-type(2){left:13%;animation-delay:-1.4s;animation-duration:9.6s}.common-motes>b:nth-of-type(3){left:21%;animation-delay:-2.1s;animation-duration:8.8s}.common-motes>b:nth-of-type(4){left:29%;animation-delay:-2.8s;animation-duration:10.2s}.common-motes>b:nth-of-type(5){left:37%;animation-delay:-3.5s;animation-duration:9.1s}.common-motes>b:nth-of-type(6){left:45%;animation-delay:-4.2s;animation-duration:10.7s}.common-motes>b:nth-of-type(7){left:53%;animation-delay:-4.9s;animation-duration:8.5s}.common-motes>b:nth-of-type(8){left:61%;animation-delay:-5.6s;animation-duration:9.9s}.common-motes>b:nth-of-type(9){left:69%;animation-delay:-6.3s;animation-duration:8.9s}.common-motes>b:nth-of-type(10){left:77%;animation-delay:-7s;animation-duration:10.4s}.common-motes>b:nth-of-type(11){left:85%;animation-delay:-7.7s;animation-duration:9.3s}.common-motes>b:nth-of-type(12){left:93%;animation-delay:-8.4s;animation-duration:10.8s}
.common-motes>b{animation-timing-function:linear;animation-iteration-count:infinite;animation-fill-mode:both}

/* V0.16.2 — high-legibility Common Room and quest board */
.common-shell{background:linear-gradient(125deg,rgba(3,6,10,.985),rgba(18,16,13,.975))}.common-tabs button{min-height:64px;font-size:13px;letter-spacing:.9px}.common-tabs button i{font-size:23px}.common-view{color:#d5cec1}.common-board{padding:24px;background:rgba(3,7,11,.97);border-color:color-mix(in srgb,var(--house-accent) 58%,#71644f)}.common-board>header{align-items:center;padding-bottom:14px;border-bottom:1px solid rgba(190,166,121,.3)}.common-board header small{font-size:10px;color:#d0ad70}.common-board h2{font-size:28px;color:#f1d8a5;text-shadow:0 2px 8px #000}.common-board header>span{max-width:410px;color:#c8c0b3;font-size:13px;line-height:1.5}.common-quest-grid{grid-template-columns:repeat(2,minmax(330px,1fr));gap:14px;margin-top:18px}.common-quest{min-height:350px;padding:21px;background:linear-gradient(145deg,rgba(10,16,23,.995),rgba(32,26,18,.99));border-color:#796b55;border-top-width:3px;box-shadow:0 14px 32px rgba(0,0,0,.62),inset 0 0 25px rgba(255,255,255,.018)}.common-quest.locked{opacity:.88;filter:none}.common-quest>header{gap:13px}.common-quest>header>i{width:44px;height:50px;font-size:21px;background:#080d13;border-color:color-mix(in srgb,var(--house-accent) 75%,#8f7953);box-shadow:inset 0 0 15px var(--house-glow)}.common-quest>header small{font-size:10px;letter-spacing:1.15px;color:#c7b38e}.common-quest h3{margin:6px 0;font-size:19px;line-height:1.35;color:#f0d39b;text-shadow:0 2px 7px #000}.common-quest>p{min-height:45px;margin:14px 0;color:#d0c8bb;font-size:14px;line-height:1.55}.common-objectives{gap:7px;margin:2px 0 16px}.common-objectives span{grid-template-columns:19px 1fr auto;align-items:center;gap:8px;min-height:38px;padding:9px 11px;background:#080d13;border-left-width:3px;color:#d1c9bc;font-size:11px;line-height:1.4;letter-spacing:.25px}.common-objectives span>i{font-size:13px}.common-objectives span>em{color:#aaa295;font-size:10px}.common-objectives span.locked{opacity:.72;color:#a49d92}.common-objectives span.done{color:#a9d2ae;background:#09130e}.common-quest footer{gap:11px}.common-quest footer>small{padding-top:10px;border-top:1px solid rgba(172,145,95,.25);color:#d0ad70;font-size:10px;line-height:1.55;letter-spacing:.55px}.common-quest footer button,.common-done{min-height:45px;padding:12px 15px;background:#070b10;color:#efd39c;font-size:11px;font-weight:700;letter-spacing:.7px}.common-quest footer button:disabled{opacity:.72;color:#b7aa94}.common-done{display:grid;place-items:center;color:#a9d8af}.common-portals button{min-height:105px}.common-portals small{font-size:10px}.common-portals b{font-size:15px}.common-portals em{font-size:12px}.prefect-card small,.house-event small,.trophy-room small,.dormitory small{font-size:10px}.trophy-shelves h3,.dormitory-belongings h3{font-size:15px}.trophy-shelves p,.dormitory-belongings p{color:#bdb5a9;font-size:12px}.dormitory-bed p,.house-event p{color:#c8c0b4;font-size:13px}
@media(max-width:880px){.common-quest-grid{grid-template-columns:1fr}.common-quest{min-height:0}}@media(max-width:680px){.common-tabs button{min-height:60px;font-size:11px}.common-board{padding:18px 12px}.common-board h2{font-size:23px}.common-quest{padding:17px}.common-quest h3{font-size:17px}.common-quest>p{min-height:0;font-size:13px}.common-objectives span{font-size:10px}}
