@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@500;600;700&family=EB+Garamond:ital,wght@0,400;0,500;0,600;1,400&display=swap');
:root{--paper:#e9dfc7;--gold:#b59350;--gold-light:#d7bf7d;--night:#0b0e0c}
*{box-sizing:border-box;margin:0;padding:0}
html,body{min-height:100%}
body{min-height:100svh;overflow-x:hidden;font-family:"EB Garamond",Georgia,serif;color:var(--paper);background:#0d100e}
button,input{font:inherit}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.entry-page{min-height:100svh;position:relative;overflow:hidden;isolation:isolate;display:grid;place-items:center;padding:50px clamp(12px,3vw,44px) 24px;background:linear-gradient(rgba(6,8,7,.18),rgba(6,8,7,.42)),url("img/wall.webp") center/cover fixed}
.entry-page::after{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:radial-gradient(circle at 50% 45%,var(--scene-glow,rgba(179,144,78,.09)),transparent 39%),linear-gradient(90deg,rgba(0,0,0,.43),transparent 21%,transparent 79%,rgba(0,0,0,.45)),linear-gradient(180deg,rgba(0,0,0,.04),rgba(0,0,0,.3))}
.back-link{position:absolute;top:20px;left:max(3vw,18px);z-index:30;color:#c9bea1;text-decoration:none;font-family:"Cinzel",serif;text-transform:uppercase;letter-spacing:.16em;font-size:.66rem;opacity:.78;transition:.2s ease}.back-link:hover{opacity:1;color:#fff;transform:translateX(-2px)}
.scene{width:min(1220px,96vw);min-height:min(760px,88svh);position:relative;display:grid;place-items:center;z-index:2}
.scene-image-button{appearance:none;border:0;background:transparent;padding:0;margin:0;cursor:pointer;line-height:0;filter:drop-shadow(0 28px 34px rgba(0,0,0,.58));transition:transform .32s ease,filter .32s ease;position:relative;z-index:5}.scene-image-button img{display:block;width:100%;height:auto;object-fit:contain;pointer-events:none}.scene-image-button:hover{transform:translateY(-3px) scale(1.008);filter:drop-shadow(0 34px 42px rgba(0,0,0,.7)) brightness(1.035)}.scene-image-button:focus-visible{outline:2px solid #d4bb73;outline-offset:8px}
.wall-torch{position:absolute;z-index:2;width:clamp(74px,7vw,112px);height:auto;pointer-events:none;user-select:none;filter:drop-shadow(0 17px 20px rgba(0,0,0,.62));opacity:.86}.torch-left{left:3%;top:34%}.torch-right{right:3%;top:34%;transform:scaleX(-1)}
.reveal-panel{position:absolute;z-index:15;width:min(390px,88vw);padding:14px;border:1px solid rgba(216,193,132,.34);background:linear-gradient(180deg,rgba(18,20,17,.97),rgba(8,10,8,.98));box-shadow:0 20px 60px rgba(0,0,0,.62),inset 0 0 28px rgba(175,139,70,.03);backdrop-filter:blur(7px);opacity:0;transform:translateY(9px) scale(.98);transition:opacity .22s ease,transform .22s ease}.reveal-panel.visible{opacity:1;transform:translateY(0) scale(1)}.reveal-panel[hidden]{display:none}.reveal-panel label{display:block;margin-bottom:8px;color:#e4d8bb;font-size:1rem;line-height:1.35}.reveal-panel input{width:100%;min-height:44px;padding:9px 11px;border:1px solid rgba(223,207,167,.38);outline:0;background:rgba(237,228,201,.065);color:white;font-size:1.05rem}.reveal-panel input:focus{border-color:#cbb16b;box-shadow:0 0 0 3px rgba(181,147,80,.11)}.reveal-panel button[type="submit"]{min-height:44px;padding:0 16px;border:1px solid #c2a35f;background:#af8f4e;color:#18130b;cursor:pointer;font-family:"Cinzel",serif;font-size:.66rem;font-weight:700;text-transform:uppercase;letter-spacing:.12em}.portrait-password form,.slytherin-password form{display:grid;grid-template-columns:1fr auto;gap:8px}.error-message{min-height:18px;margin-top:8px;color:#d79d8d;font-size:.9rem;font-style:italic}
/* Nebelvír */
.entry-page.gryff{--scene-glow:rgba(132,47,33,.18)}.gryff-scene{overflow:visible}.portrait-art{width:min(470px,62vw);transform:rotate(-.25deg)}.portrait-art:hover{transform:rotate(0deg) translateY(-3px) scale(1.008)}.portrait-art.listening{animation:portraitWake .65s ease}@keyframes portraitWake{35%{transform:rotate(.8deg) scale(1.012)}70%{transform:rotate(-.4deg) scale(1.006)}}.ambient-painting{position:absolute;z-index:2;height:auto;pointer-events:none;filter:drop-shadow(0 20px 24px rgba(0,0,0,.55));opacity:.8}.painting-left{left:9%;top:21%;width:clamp(115px,12vw,180px);transform:rotate(-2deg)}.painting-right{right:8%;top:23%;width:clamp(110px,11vw,170px);transform:rotate(1.5deg)}.gryff .torch-left{left:1.5%;top:42%}.gryff .torch-right{right:1.5%;top:42%}.portrait-password{left:50%;bottom:22px;transform:translate(-50%,9px) scale(.98)}.portrait-password.visible{transform:translate(-50%,0) scale(1)}
/* Havraspár */
.entry-page.raven{--scene-glow:rgba(56,92,137,.2)}.raven-door-art{width:min(560px,68vw)}.raven-door-art img{max-height:720px}.raven-door-art.questioning{filter:drop-shadow(0 34px 44px rgba(0,0,0,.72)) brightness(1.045)}.knocker-glow{position:absolute;left:50%;top:55%;width:110px;height:110px;transform:translate(-50%,-50%);border-radius:50%;background:radial-gradient(circle,rgba(211,169,77,.25),transparent 66%);opacity:0;pointer-events:none;transition:.3s ease}.raven-door-art.questioning .knocker-glow{opacity:1;animation:knockerPulse 1.7s ease-in-out infinite}@keyframes knockerPulse{50%{transform:translate(-50%,-50%) scale(1.15);opacity:.55}}.raven-riddle{left:50%;bottom:12px;transform:translate(-50%,9px) scale(.98);width:min(520px,90vw)}.raven-riddle.visible{transform:translate(-50%,0) scale(1)}.inline-answer{display:grid;grid-template-columns:1fr auto;gap:8px}.raven .torch-left{left:4%;top:34%}.raven .torch-right{right:4%;top:34%}
/* Zmijozel */
.entry-page.slyth{--scene-glow:rgba(22,72,49,.15)}.slytherin-scene{overflow:visible}.slyth-left{left:5%;top:30%}.slyth-right{right:5%;top:30%;transform:scaleX(-1)}.old-armor{position:absolute;z-index:3;right:12%;bottom:1%;width:clamp(150px,17vw,245px);height:auto;opacity:.72;filter:drop-shadow(0 24px 25px rgba(0,0,0,.68)) brightness(.72) saturate(.72);pointer-events:none}.secret-wall-hotspot{position:absolute;z-index:6;left:50%;top:50%;width:min(500px,45vw);height:min(560px,64vh);transform:translate(-50%,-50%);border:0;background:transparent;cursor:pointer}.secret-wall-hotspot::after{content:"";position:absolute;inset:22% 18%;border-radius:44%;background:radial-gradient(circle,rgba(68,105,76,.045),transparent 70%);opacity:0;transition:.25s ease}.secret-wall-hotspot:hover::after,.secret-wall-hotspot.touched::after{opacity:1}.secret-wall-hotspot:focus-visible{outline:2px solid rgba(196,178,116,.48);outline-offset:5px}.slytherin-password{left:50%;top:52%;transform:translate(-50%,-50%) scale(.98);width:min(360px,86vw)}.slytherin-password.visible{transform:translate(-50%,-50%) scale(1)}.slytherin-portal{position:absolute;z-index:8;left:50%;top:50%;width:min(520px,67vw);transform:translate(-50%,-48%) scale(.88);opacity:0;pointer-events:none;filter:drop-shadow(0 30px 40px rgba(0,0,0,.7)) brightness(.76) saturate(.85);transition:opacity .75s ease,transform .9s cubic-bezier(.2,.8,.25,1),filter .8s ease}.slytherin-portal img{display:block;width:100%;height:auto}.slytherin-scene.opening .slytherin-portal{opacity:1;transform:translate(-50%,-50%) scale(1);filter:drop-shadow(0 34px 46px rgba(0,0,0,.74)) brightness(.98) saturate(.98)}.slytherin-scene.opening .old-armor{opacity:.32}.slytherin-scene.opening .secret-wall-hotspot{pointer-events:none}
/* Mrzimor */
.entry-page.huff{--scene-glow:rgba(148,105,31,.18)}.barrel-niche{width:min(790px,90vw);height:min(650px,78vh);position:relative;display:grid;place-items:center}.barrel-niche::before{content:"";position:absolute;inset:4% 7% 3%;border-radius:45% 45% 7% 7% / 22% 22% 7% 7%;background:radial-gradient(ellipse at 50% 38%,rgba(29,21,11,.64),rgba(8,8,7,.85) 73%);box-shadow:inset 0 0 70px rgba(0,0,0,.82),0 20px 45px rgba(0,0,0,.25);border:1px solid rgba(142,112,61,.1)}.five-barrels{position:relative;z-index:4;width:min(650px,84vw);height:520px}.sud{appearance:none;border:0;background:transparent;padding:0;position:absolute;width:clamp(140px,15vw,190px);cursor:pointer;line-height:0;filter:drop-shadow(0 15px 18px rgba(0,0,0,.56));transition:filter .2s ease,transform .2s ease}.sud img{display:block;width:100%;height:auto;pointer-events:none}.sud-1{left:12%;top:38px;transform:rotate(-1.5deg)}.sud-2{right:12%;top:30px;transform:rotate(1.2deg)}.sud-3{left:3%;top:265px;transform:rotate(-1deg)}.sud-4{left:50%;top:245px;transform:translateX(-50%) rotate(.5deg)}.sud-5{right:3%;top:265px;transform:rotate(1.4deg)}.sud:hover{filter:drop-shadow(0 19px 21px rgba(0,0,0,.68)) brightness(1.04);z-index:8}.sud.tapped{animation:barrelTap .2s ease}@keyframes barrelTap{50%{margin-top:5px;filter:brightness(1.08)}}.sud.opening{animation:barrelOpen .9s ease forwards}@keyframes barrelOpen{to{transform:translateX(105px) rotate(9deg);opacity:.12}}.huffle-passage{position:absolute;z-index:2;left:50%;top:57%;width:215px;height:300px;transform:translate(-50%,-50%) scale(.86);border-radius:48% 48% 7px 7px / 29% 29% 7px 7px;background:radial-gradient(ellipse at 50% 35%,rgba(205,159,70,.15),transparent 47%),#080908;box-shadow:inset 0 0 30px #000,0 0 34px rgba(199,153,70,.06);border:1px solid rgba(194,154,80,.14);opacity:0;transition:.65s ease}.huffle-scene.open .huffle-passage{opacity:1;transform:translate(-50%,-50%) scale(1)}.vinegar-splash{position:absolute;inset:0;z-index:14;pointer-events:none;opacity:0;background:radial-gradient(circle at 34% 49%,rgba(216,196,118,.7) 0 5px,transparent 6px),radial-gradient(circle at 44% 42%,rgba(225,208,128,.55) 0 10px,transparent 11px),radial-gradient(circle at 59% 54%,rgba(205,183,95,.48) 0 14px,transparent 15px),radial-gradient(ellipse at 50% 50%,rgba(176,154,75,.28),transparent 38%);transform:scale(.7)}.vinegar-splash.show{animation:splash .72s ease}@keyframes splash{0%{opacity:0;transform:scale(.55)}35%{opacity:1;transform:scale(1.04)}100%{opacity:0;transform:scale(1.28)}}.huffle-scene.wrong .five-barrels{animation:rackShake .42s ease}@keyframes rackShake{20%{transform:translateX(-9px)}40%{transform:translateX(8px)}60%{transform:translateX(-5px)}80%{transform:translateX(3px)}}.barrel-message{position:absolute;z-index:18;left:50%;bottom:0;transform:translate(-50%,8px);padding:8px 14px;border:1px solid rgba(197,151,91,.28);background:rgba(24,9,5,.83);color:#e5b39d;font-size:1rem;font-style:italic;opacity:0;transition:.22s ease;white-space:nowrap}.barrel-message.show{opacity:1;transform:translate(-50%,0)}
@media(max-width:900px){.scene{min-height:760px}.wall-torch{width:clamp(66px,11vw,96px)}.ambient-painting{opacity:.56}.painting-left{left:0}.painting-right{right:0}.old-armor{right:2%;opacity:.55}.raven-door-art{width:min(500px,78vw)}}
@media(max-width:650px){.entry-page{padding:48px 8px 18px}.scene{width:100%;min-height:720px}.ambient-painting{display:none}.portrait-art{width:min(390px,82vw)}.gryff .torch-left,.raven .torch-left,.slyth-left,.huff .torch-left{left:-3%}.gryff .torch-right,.raven .torch-right,.slyth-right,.huff .torch-right{right:-3%}.old-armor{width:125px;right:-2%;bottom:9%;opacity:.45}.secret-wall-hotspot{width:68vw}.barrel-niche{height:620px}.five-barrels{width:94vw;height:520px}.sud{width:clamp(118px,29vw,155px)}.sud-1{left:18%;top:50px}.sud-2{right:18%;top:45px}.sud-3{left:3%;top:270px}.sud-4{top:255px}.sud-5{right:3%;top:270px}.barrel-message{white-space:normal;width:max-content;max-width:90vw;text-align:center}.raven-riddle{bottom:20px}.inline-answer{grid-template-columns:1fr}.inline-answer button{width:100%}}

/* v34 — galerie u vstupu do Nebelvíru: bez původního kouzelníka, různá měřítka */
.gryff-scene .ambient-painting{opacity:.72;filter:drop-shadow(0 16px 18px rgba(0,0,0,.58));}
.gryff-scene .painting-a{left:5%;top:17%;width:clamp(92px,8.5vw,135px);transform:rotate(-2.2deg)}
.gryff-scene .painting-b{left:14%;bottom:11%;width:clamp(105px,10.5vw,165px);transform:rotate(1.3deg)}
.gryff-scene .painting-c{right:16%;top:13%;width:clamp(82px,8vw,126px);transform:rotate(1.8deg)}
.gryff-scene .painting-d{right:5%;bottom:13%;width:clamp(118px,12vw,190px);transform:rotate(-1.1deg)}
@media(max-width:900px){.gryff-scene .painting-a{left:0}.gryff-scene .painting-b{left:5%}.gryff-scene .painting-c{right:6%}.gryff-scene .painting-d{right:0}}
@media(max-width:650px){.gryff-scene .ambient-painting{display:none}}

/* v42 — bohatší vstupní stěny */
.entry-page.gryff{background:linear-gradient(rgba(7,5,4,.22),rgba(5,4,3,.42)),url("img/hall-v24-gallery.webp") center/cover fixed no-repeat}
.gryff-scene{width:min(1320px,98vw)}
.gryff-scene .portrait-art{width:min(430px,46vw);margin-top:3%;filter:drop-shadow(0 26px 35px rgba(0,0,0,.72))}
.gryff-scene .portrait-art img{max-height:70vh;object-fit:contain}
.gryff-scene:before{content:"";position:absolute;z-index:1;left:50%;top:50%;width:min(520px,54vw);height:min(680px,78vh);transform:translate(-50%,-50%);background:radial-gradient(ellipse,rgba(151,88,48,.09),transparent 64%);pointer-events:none}
.entry-page.slyth{background:radial-gradient(circle at 50% 46%,rgba(23,65,45,.17),transparent 33%),linear-gradient(rgba(3,7,5,.22),rgba(2,5,4,.58)),url("img/wall.webp") center/cover fixed no-repeat}
.slytherin-founder{position:absolute;z-index:3;left:8%;top:13%;width:clamp(150px,17vw,255px);height:auto;filter:brightness(.68) saturate(.72) drop-shadow(0 20px 28px #000);opacity:.86;transform:rotate(-1deg)}
.slytherin-crest{position:absolute;z-index:3;left:50%;top:8%;transform:translateX(-50%);width:clamp(86px,8vw,126px);height:auto;filter:brightness(.72) saturate(.75) drop-shadow(0 12px 18px #000);opacity:.78}
.slytherin-scene:before,.slytherin-scene:after{content:"";position:absolute;z-index:1;top:13%;bottom:12%;width:1px;background:linear-gradient(transparent,rgba(89,128,96,.35),transparent);box-shadow:0 0 28px rgba(67,120,84,.13);pointer-events:none}.slytherin-scene:before{left:31%}.slytherin-scene:after{right:31%}
@media(max-width:800px){.slytherin-founder{left:1%;top:18%;width:130px;opacity:.58}.slytherin-crest{top:10%;width:78px}.gryff-scene .portrait-art{width:min(390px,72vw)}}
@media(max-width:600px){.slytherin-founder,.slytherin-crest{display:none}.gryff-scene .portrait-art{width:min(360px,80vw)}}

.slytherin-wall-emblem{position:absolute;z-index:2;top:48%;width:clamp(54px,5vw,78px);height:auto;opacity:.22;filter:grayscale(.35) brightness(.55) sepia(.18) drop-shadow(0 9px 14px #000);pointer-events:none}.slytherin-wall-emblem.emblem-left{left:29%;transform:translate(-50%,-50%) rotate(-4deg)}.slytherin-wall-emblem.emblem-right{right:29%;transform:translate(50%,-50%) rotate(4deg)}
@media(max-width:800px){.slytherin-wall-emblem{opacity:.14;width:50px}.slytherin-wall-emblem.emblem-left{left:24%}.slytherin-wall-emblem.emblem-right{right:24%}}
@media(max-width:600px){.slytherin-wall-emblem{display:none}}


/* v42.1 — čisté kolejní vstupy: žádné dodatečné brnění, pochodně ani okolní obrazy */
.entry-page.gryff{background:linear-gradient(180deg,rgba(18,8,6,.15),rgba(7,5,4,.48)),url('img/vstup-nebelvir-v421.webp') center/cover fixed no-repeat!important;--scene-glow:rgba(132,47,33,.16)}
.entry-page.slyth{background:linear-gradient(180deg,rgba(3,16,11,.18),rgba(3,8,6,.56)),url('img/vstup-zmijozel-v421.webp') center/cover fixed no-repeat!important;--scene-glow:rgba(22,72,49,.15)}
.entry-page.gryff .wall-torch,.entry-page.gryff .ambient-painting,.entry-page.slyth .wall-torch,.entry-page.slyth .old-armor,.entry-page.slyth .slytherin-founder,.entry-page.slyth .slytherin-crest,.entry-page.slyth .slytherin-wall-emblem{display:none!important}
.gryff-scene .portrait-art{width:min(455px,58vw);z-index:7}
@media(max-width:700px){.entry-page.gryff,.entry-page.slyth{background-attachment:scroll!important}.gryff-scene .portrait-art{width:min(390px,78vw)}}

/* v42.2 — Nebelvír: vrácené původní hradní pozadí a přirozeněji rozmístěné obrazy. */
.entry-page.gryff{background:linear-gradient(rgba(7,5,4,.22),rgba(5,4,3,.42)),url("img/hall-v24-gallery.webp") center/cover fixed no-repeat!important}
.entry-page.gryff .wall-torch,.entry-page.gryff .ambient-painting{display:block!important}
.gryff-scene .painting-a{left:4%!important;top:15%!important;width:clamp(78px,7vw,118px)!important}
.gryff-scene .painting-b{left:13%!important;bottom:12%!important;width:clamp(92px,8.5vw,142px)!important}
.gryff-scene .painting-c{right:14%!important;top:14%!important;width:clamp(72px,6.6vw,108px)!important}
.gryff-scene .painting-d{right:4%!important;bottom:14%!important;width:clamp(100px,10vw,158px)!important}
.gryff .torch-left{left:1.8%!important;top:42%!important}.gryff .torch-right{right:1.8%!important;top:42%!important}
@media(max-width:760px){.entry-page.gryff{background-attachment:scroll!important}.entry-page.gryff .ambient-painting{opacity:.52!important}.gryff-scene .painting-b,.gryff-scene .painting-d{display:none!important}.gryff-scene .painting-a{left:0!important;top:18%!important}.gryff-scene .painting-c{right:0!important;top:18%!important}.entry-page.gryff .wall-torch{opacity:.58}}

/* v42.3 — vstupy podle posledních schválených podkladů */
.entry-page.gryff{background:linear-gradient(180deg,rgba(10,6,5,.08),rgba(7,5,4,.30)),url('img/vstup-nebelvir-v423.webp') center/cover fixed no-repeat!important}
.entry-page.gryff .wall-torch,.entry-page.gryff .ambient-painting{display:none!important}
.gryff-scene .portrait-art{width:min(330px,31vw)!important;margin-top:1%!important;filter:drop-shadow(0 24px 32px rgba(0,0,0,.72))!important}
.gryff-scene .portrait-art img{max-height:62vh!important;object-fit:contain!important}
.slytherin-portal{width:min(340px,36vw)!important;transform:translate(-50%,-49%) scale(.84)!important}
.slytherin-scene.opening .slytherin-portal{transform:translate(-50%,-50%) scale(.96)!important}
@media(max-width:700px){.entry-page.gryff{background-attachment:scroll!important}.gryff-scene .portrait-art{width:min(285px,64vw)!important}.slytherin-portal{width:min(300px,62vw)!important}}


/* v42.3.1 — kolejní vstupy nikdy nesmí zobrazovat odznaky jako dekoraci */
.entry-page img[src*="badge-"]{display:none!important}

/* v43 — vstup do Nebelvíru: světlejší schválené pozadí, větší Baculatá dáma, bez odznaku/zakladatele */
.entry-page.gryff{background:linear-gradient(180deg,rgba(255,245,220,.08),rgba(255,245,220,.025)),url('img/vstup-nebelvir-v423.webp') center/cover fixed no-repeat!important;--scene-glow:rgba(166,104,55,.10)}
.entry-page.gryff::after{background:radial-gradient(circle at 50% 46%,rgba(203,157,91,.06),transparent 42%),linear-gradient(90deg,rgba(0,0,0,.16),transparent 18%,transparent 82%,rgba(0,0,0,.16)),linear-gradient(180deg,transparent,rgba(0,0,0,.10))!important}
.gryff-scene .portrait-art{width:min(430px,42vw)!important;margin-top:1%!important;filter:drop-shadow(0 24px 32px rgba(0,0,0,.62))!important}
.gryff-scene .portrait-art img{max-height:74vh!important;object-fit:contain!important}
.entry-page.gryff img[src*="badge-"],.entry-page.gryff .founder-godric-entry{display:none!important}
/* Zmijozel: průchod po vyslovení hesla má zůstat jen menším otvorem ve stěně. */
.slytherin-portal{width:min(285px,30vw)!important}
.slytherin-scene.opening .slytherin-portal{transform:translate(-50%,-50%) scale(.94)!important}
@media(max-width:700px){.gryff-scene .portrait-art{width:min(350px,78vw)!important}.slytherin-portal{width:min(245px,56vw)!important}}
