:root{color-scheme:light;--ink:#182a45;--muted:#4c5f72;--night:#192a47;--gold:#f6d27d;--paper:#fffcf5;--line:#d7dfdf;--teal:#357e78;--teal-dark:#165c59;font-family:ui-rounded,"Avenir Next",Avenir,"Segoe UI",sans-serif}*{box-sizing:border-box}html{background:#f4f4ed}body{margin:0;color:var(--ink);background:#f4f4ed}button,input{font:inherit}button{cursor:pointer}a{color:inherit}button:focus-visible,a:focus-visible,input:focus-visible+span{outline:3px solid #117ade;outline-offset:4px}[hidden]{display:none!important}.escape-skip{position:absolute;z-index:5;left:1rem;top:-5rem;padding:.8rem;background:white}.escape-skip:focus{top:1rem}.escape-header{max-width:1260px;margin:auto;padding:1.35rem 2rem;display:flex;justify-content:space-between;align-items:center;gap:1rem}.escape-brand{display:flex;align-items:center;gap:.65rem;text-decoration:none;font-size:1.1rem;letter-spacing:-.035em}.escape-brand>span{display:grid;place-items:center;width:2.5rem;height:2.5rem;border-radius:.7rem;color:white;background:#1d59aa;font-size:2rem;font-weight:800;line-height:1}.escape-brand strong span{color:#546780;font-weight:500}.escape-back{font-weight:700;color:#37526b;text-decoration:none}.escape-back:hover{text-decoration:underline}.escape-main{max-width:1220px;margin:auto;padding:0 1.5rem 3.5rem}.escape-intro{position:relative;overflow:hidden;min-height:22rem;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;border-radius:1.5rem;padding:3.4rem 0 3.4rem 3.5rem;background:radial-gradient(circle at 70% 20%,#38536a 0,transparent 35%),linear-gradient(130deg,#182846,#243c56);color:white;box-shadow:0 18px 50px #20365022}.escape-intro:before{content:"";position:absolute;inset:0;opacity:.23;background-image:radial-gradient(#fff 1px,transparent 1px);background-size:47px 47px;pointer-events:none}.escape-intro-copy{position:relative;z-index:1}.escape-eyebrow,.escape-overline{margin:0 0 .6rem;font-weight:800;text-transform:uppercase;letter-spacing:.12em;font-size:.72rem}.escape-eyebrow{color:#f2d994}.escape-intro h1{font-family:Georgia,serif;font-size:clamp(2.6rem,5vw,4.5rem);line-height:1.06;letter-spacing:-.04em;margin:0 0 1.1rem}.escape-intro h1 em{color:#f6d493;font-weight:400;font-style:normal}.escape-intro-copy>p:not(.escape-eyebrow){font-size:1.1rem;line-height:1.65;color:#eef3f3;max-width:33rem;margin:0}.escape-chips{display:flex;flex-wrap:wrap;gap:.55rem;margin-top:1.45rem}.escape-chips span{border:1px solid #ffffff42;border-radius:3rem;padding:.45rem .7rem;background:#ffffff0c;color:#f4f2e8;font-size:.78rem;font-weight:700}.escape-hero-art{align-self:end;margin:-2rem 0 -3.4rem -2rem;position:relative}.escape-hero-art svg{width:100%;height:auto;display:block}.escape-panel{background:var(--paper);border:1px solid #d9ded7;border-radius:1.35rem;box-shadow:0 12px 30px #3141500d}.escape-setup{padding:2rem 2.2rem;margin-top:1.4rem}.escape-section-heading{display:flex;justify-content:space-between;align-items:center;gap:1rem}.escape-overline{color:#96701e}.escape-section-heading h2,.escape-game-top h2{font-family:Georgia,serif;font-size:clamp(1.5rem,2.5vw,2rem);letter-spacing:-.025em;margin:0 0 .5rem}.escape-section-heading p:not(.escape-overline){color:var(--muted);line-height:1.5;margin:0}.escape-heading-icon{display:grid;place-items:center;flex:none;width:3rem;height:3rem;border-radius:1rem;color:#9b6f1e;background:#fff0cc;font-size:1.6rem}.escape-rows{border:0;padding:0;margin:1.6rem 0 0}.escape-rows legend{font-size:.88rem;font-weight:800;margin-bottom:.7rem}.escape-row-options{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:.55rem}.escape-row-options label{position:relative;cursor:pointer}.escape-row-options input{position:absolute;opacity:0;pointer-events:none}.escape-row-options span{height:3.4rem;display:grid;place-items:center;border:1.5px solid #bdcacc;border-radius:.65rem;background:#fff;color:#52657a;font-weight:800;transition:background .15s,border-color .15s,color .15s}.escape-row-options input:checked+span{color:#fff;background:#316f6d;border-color:#316f6d;box-shadow:0 3px 0 #1d5553}.escape-row-options label:hover span{border-color:#1d5553}.escape-setup-actions{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.5rem}.escape-setup-actions p{margin:0;font-size:.9rem;color:#596b77}.escape-primary,.escape-secondary,.escape-text-button,.escape-choice{border:0;font-weight:800;transition:transform .15s,background .15s,box-shadow .15s}.escape-primary{display:inline-flex;align-items:center;justify-content:center;gap:.8rem;min-height:3.2rem;padding:.8rem 1.35rem;border-radius:.65rem;background:#f0c769;color:#233244;box-shadow:0 3px 0 #c49a42}.escape-primary:hover{background:#f7d588;transform:translateY(-1px)}.escape-secondary{min-height:2.9rem;padding:.65rem 1rem;border:1px solid #b8c9c8;border-radius:.6rem;color:#245f60;background:#f7fbf8}.escape-secondary:hover{background:#e9f3ed}.escape-text-button{padding:.5rem .25rem;color:#315f68;background:transparent;text-decoration:underline;text-underline-offset:.2em}.escape-game{margin-top:1.5rem}.escape-game-top{display:flex;align-items:center;justify-content:space-between;gap:1rem;margin:0 .2rem .9rem}.escape-game-top h2{margin:0}.escape-progress{display:flex;gap:.45rem;margin:0 .2rem 1.2rem}.escape-progress>*{flex:1}.escape-progress .step{min-height:.45rem;background:#d2dcda;border-radius:1rem}.escape-progress .step.active,.escape-progress .step.done{background:#36827b}.escape-board{display:grid;grid-template-columns:minmax(14rem,.8fr) minmax(0,1.2fr);min-height:25rem;overflow:hidden;background:var(--paper);border:1px solid #d9ded7;border-radius:1.35rem;box-shadow:0 12px 35px #31415012}.escape-scene{position:relative;overflow:hidden;background:radial-gradient(circle at 70% 24%,#536979,#31475d 42%,#1d304b);min-height:21rem}.escape-scene[data-room="1"]{background:radial-gradient(circle at 70% 24%,#566f70,#34495b 42%,#202c47)}.escape-scene[data-room="2"]{background:radial-gradient(circle at 70% 24%,#766b70,#49505e 42%,#252e46)}.escape-scene[data-room="3"]{background:radial-gradient(circle at 70% 24%,#526d78,#394858 42%,#202b42)}.escape-scene[data-room="4"]{background:radial-gradient(circle at 70% 24%,#82776d,#465466 42%,#27344a)}.escape-scene-stars{position:absolute;top:13%;left:13%;width:65%;color:#f2d8a6;font-size:1.2rem;letter-spacing:2rem;opacity:.75}.escape-scene-stars span{position:relative;top:2.5rem}.escape-scene-moon{position:absolute;width:4.3rem;height:4.3rem;right:17%;top:14%;border-radius:50%;background:#f7dfae;box-shadow:0 0 0 1rem #f6db9e10,0 0 0 2rem #f6db9e08}.escape-scene-mountain{position:absolute;bottom:17%;width:85%;height:40%;transform:rotate(45deg);border-radius:15%;background:#283d4f}.mountain-one{left:-30%}.mountain-two{right:-42%;bottom:11%;background:#334b53}.escape-scene-ground{position:absolute;bottom:0;height:27%;width:100%;background:#243c3f;border-radius:45% 35% 0 0}.escape-scene-path{position:absolute;bottom:-4%;left:35%;width:32%;height:24%;background:#a58e73;clip-path:polygon(42% 0,59% 0,100% 100%,0 100%);opacity:.8}.escape-scene-castle{position:absolute;bottom:20%;left:24%;width:52%;height:43%;filter:drop-shadow(0 5px 0 #16283b33)}.castle-wall{position:absolute;bottom:0;left:19%;width:62%;height:65%;background:#8d9996;border:4px solid #283b4b;border-bottom:0;border-radius:.3rem .3rem 0 0}.castle-wall:before,.castle-wall:after{content:"";position:absolute;top:-15%;width:30%;height:15%;background:#8d9996;border:4px solid #283b4b;border-bottom:0}.castle-wall:before{left:-4px}.castle-wall:after{right:-4px}.tower{position:absolute;bottom:0;width:30%;height:86%;background:#9aa6a0;border:4px solid #283b4b;border-radius:.2rem .2rem 0 0}.tower-left{left:0}.tower-right{right:0;height:100%}.tower:before{content:"";position:absolute;left:-25%;right:-25%;bottom:100%;height:37%;background:#253c4c;clip-path:polygon(50% 0,100% 100%,0 100%)}.tower i{position:absolute;top:25%;left:35%;width:30%;height:22%;background:#f4d38d;border:3px solid #283b4b;border-radius:50% 50% 0 0}.castle-door{position:absolute;bottom:0;left:41%;width:18%;height:32%;border:4px solid #283b4b;border-bottom:0;border-radius:50% 50% 0 0;background:#b88c62}.castle-window{position:absolute;width:5%;height:11%;top:53%;background:#f6db9c;border-radius:3rem}.window-one{left:30%}.window-two{right:30%}.window-three{top:39%;left:47%}.castle-flag{position:absolute;left:85%;bottom:100%;width:2px;height:25%;background:#edc77b}.castle-flag:after{content:"";position:absolute;left:1px;top:0;width:1.6rem;height:.9rem;background:#e8b76a;clip-path:polygon(0 0,100% 0,75% 50%,100% 100%,0 100%)}.escape-scene-label{position:absolute;left:1.1rem;bottom:1rem;color:#f4e6c2;font-size:.7rem;font-weight:800;letter-spacing:.15em}.escape-puzzle{padding:2.2rem;display:flex;flex-direction:column;justify-content:center}.escape-puzzle h3{font-family:Georgia,serif;font-size:1.6rem;letter-spacing:-.02em;margin:0 0 .8rem}.escape-puzzle p{color:#526273;line-height:1.6}.escape-puzzle p:first-child{margin-top:0}.escape-choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(5rem,1fr));gap:.6rem;margin:1.2rem 0}.escape-choice{min-height:3.4rem;padding:.65rem;border:1.5px solid #cad5d1;border-radius:.7rem;background:#fff;color:#263c50;font-size:1.1rem;box-shadow:0 3px 0 #dce4df}.escape-choice:hover{border-color:#4b8b83;background:#f2f8f4}.escape-choice.selected,.escape-choice[aria-pressed="true"]{color:#fff;background:#357e78;border-color:#357e78;box-shadow:0 3px 0 #205e5b}.escape-puzzle-actions{display:flex;gap:.6rem;flex-wrap:wrap;margin-top:1.1rem}.escape-hint{border-left:3px solid #e2ba60;background:#fff5d9;border-radius:0 .6rem .6rem 0;padding:.75rem 1rem;color:#5c4b29;line-height:1.5}.escape-feedback{min-height:1.4em;font-weight:700;color:#2f6e62!important}.escape-feedback:empty{display:none}.escape-equation{font-size:clamp(1.9rem,4vw,2.8rem);font-weight:850;letter-spacing:.02em;color:#1a3446}.escape-puzzle input:not([type=checkbox]){max-width:8rem;padding:.7rem;border:1.5px solid #9ab0ae;border-radius:.6rem;font-size:1.2rem}.escape-inventory{display:flex;align-items:center;gap:1.5rem;margin-top:1rem;padding:1.1rem 1.4rem;border:1px solid #d9ded7;border-radius:1rem;background:#fdfcf6}.escape-inventory-heading{display:flex;align-items:center;gap:.8rem;flex:none}.escape-inventory-icon{display:grid;place-items:center;width:2.7rem;height:2.7rem;border-radius:.7rem;color:#8e681b;background:#fff0ce;font-size:1.3rem}.escape-inventory h3{margin:0;font-size:1rem}.escape-inventory .escape-overline{font-size:.62rem;margin:0 0 .2rem}.escape-inventory-items{display:flex;align-items:center;flex-wrap:wrap;gap:.5rem}.escape-inventory-items p{margin:0;color:#657579;font-size:.9rem}.escape-inventory-item{border:1px solid #e6d4ac;border-radius:.5rem;padding:.45rem .7rem;background:#fff7e3;font-weight:800}.escape-note{display:flex;align-items:flex-start;gap:.7rem;padding:1.2rem .2rem;color:#566b72;font-size:.92rem}.escape-note>span{font-size:1.3rem;color:#8e702a}.escape-note p{margin:.2rem 0;line-height:1.5}.escape-footer{max-width:1220px;margin:0 auto;padding:1.3rem 1.5rem 2rem;display:flex;align-items:center;gap:1.5rem;flex-wrap:wrap;color:#586d76;font-size:.83rem}.escape-footer a{font-weight:700;text-decoration:none}.escape-footer a:hover{text-decoration:underline}.escape-footer span{flex:1}
@media(max-width:850px){.escape-intro{padding:2.7rem 0 2.7rem 2.4rem}.escape-hero-art{margin-bottom:-2.7rem}.escape-row-options{grid-template-columns:repeat(6,minmax(0,1fr))}.escape-board{grid-template-columns:minmax(11rem,.72fr) minmax(0,1.28fr)}.escape-puzzle{padding:1.5rem}}
@media(max-width:600px){.escape-header{padding:1rem}.escape-main{padding:0 1rem 2rem}.escape-brand{font-size:.95rem}.escape-back{font-size:.85rem}.escape-intro{display:block;padding:2.1rem 1.4rem 0;min-height:0}.escape-intro h1{font-size:2.6rem}.escape-intro-copy>p:not(.escape-eyebrow){font-size:1rem}.escape-hero-art{width:100%;max-width:28rem;margin:-.5rem auto 0}.escape-setup{padding:1.4rem}.escape-row-options{grid-template-columns:repeat(6,minmax(0,1fr));gap:.4rem}.escape-row-options span{height:2.8rem}.escape-setup-actions{align-items:stretch;flex-direction:column}.escape-setup-actions .escape-primary{width:100%}.escape-board{display:flex;flex-direction:column}.escape-scene{min-height:13rem}.escape-scene-castle{left:34%;width:32%;height:53%}.escape-puzzle{padding:1.3rem}.escape-inventory{align-items:flex-start;flex-direction:column;gap:.7rem}.escape-footer span{flex-basis:100%;order:3}.escape-choice-grid{grid-template-columns:repeat(auto-fit,minmax(4.2rem,1fr))}}
@media(prefers-reduced-motion:reduce){*,*:before,*:after{transition:none!important;animation:none!important}}
/* Das Burgbild ist dekorativ; alle Hinweise stehen zusätzlich im Text. */
.escape-hero-art{align-self:stretch;min-height:22rem;margin:-3.4rem 0 -3.4rem -5rem;overflow:hidden}.escape-hero-art img{display:block;width:100%;height:100%;object-fit:cover;object-position:70% center;mask-image:linear-gradient(to right,transparent,#000 24%);-webkit-mask-image:linear-gradient(to right,transparent,#000 24%)}
.escape-scene,.escape-scene[data-room="1"],.escape-scene[data-room="2"],.escape-scene[data-room="3"],.escape-scene[data-room="4"]{background-image:linear-gradient(180deg,#1b304822 50%,#122a39c9),url('/assets/escape/zahlenburg.jpg');background-position:center,70% center;background-size:cover}
.escape-scene[data-room="1"]{background-position:center,52% center}.escape-scene[data-room="2"]{background-position:center,72% center}.escape-scene[data-room="3"]{background-position:center,85% center}.escape-scene[data-room="4"]{background-position:center,64% center}.escape-scene-stars,.escape-scene-moon,.escape-scene-mountain,.escape-scene-castle,.escape-scene-ground,.escape-scene-path{display:none}.escape-scene-label{font-size:.75rem;text-shadow:0 1px 6px #071721;color:white}
.escape-progress-step{height:.5rem;background:#d2dcda;border-radius:1rem}.escape-progress-step.current,.escape-progress-step.complete{background:#36827b}.escape-progress-step.current{box-shadow:0 0 0 3px #36827b33}
.escape-question{border:0;padding:0;margin:1rem 0 0;min-width:0}.escape-question legend{font-weight:800;margin-bottom:.5rem;line-height:1.45}.escape-code-grid{display:grid;grid-template-columns:repeat(3,minmax(0,5rem));gap:.6rem;margin:1.1rem 0}.escape-code-label{display:flex;flex-direction:column;gap:.35rem;color:#536a71;font-size:.85rem;font-weight:800}.escape-code-label input{width:100%;max-width:none!important;text-align:center}.escape-selection{font-weight:700;color:#3b6c69}.escape-finish-icon{display:grid;place-items:center;width:3.7rem;height:3.7rem;margin-bottom:1rem;border-radius:1rem;background:#e5f3e7;color:#267767;font-size:1.8rem}.escape-summary{padding:1rem;border-radius:.7rem;background:#eef7ef;color:#305d52;line-height:1.5}.escape-puzzle button:disabled{opacity:.72;cursor:default;transform:none}
@media(max-width:850px){.escape-hero-art{margin:-2.7rem 0 -2.7rem -5rem}}
@media(max-width:600px){.escape-hero-art{height:12rem;min-height:0;width:calc(100% + 2.8rem);max-width:none;margin:.9rem -1.4rem 0}.escape-hero-art img{object-position:68% 55%;mask-image:linear-gradient(to bottom,transparent,#000 24%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 24%)}.escape-scene{min-height:12rem}}
.escape-progress-step{font-size:0;overflow:hidden}.escape-hint{margin-top:1rem}.escape-hint summary{cursor:pointer;font-weight:800}.escape-hint p{margin:.6rem 0 0;color:#5c4b29}.escape-choice-grid:has(.escape-book){grid-template-columns:repeat(2,minmax(0,1fr))}
/* Keep the language picker readable without forcing a narrow screen wider. */
.escape-header .escape-language{color:#37526b}
.escape-header .escape-language select:disabled{opacity:.65;cursor:not-allowed}
@media(max-width:600px){.escape-header{flex-wrap:wrap}.escape-header .escape-language{width:100%;justify-content:flex-end}.escape-header .escape-language select{max-width:min(100%,12rem)}}
.escape-recap{margin:1rem 0;padding:1rem 1.1rem;border:1px solid #d1e4db;border-radius:.7rem;background:#f5faf5}.escape-recap h4{margin:0 0 .5rem;font-size:1rem}.escape-recap p{margin:.35rem 0;color:#365d54;line-height:1.5}

/* Each chamber has its own illustrated setting; all art is decorative. */
.escape-room-art{position:absolute;inset:0;width:100%;height:100%;display:block;pointer-events:none}
.escape-room-art .room-art{display:none}
.escape-scene[data-room="0"] .room-art-0,.escape-scene[data-room="1"] .room-art-1,.escape-scene[data-room="2"] .room-art-2,.escape-scene[data-room="3"] .room-art-3,.escape-scene[data-room="4"] .room-art-4{display:inline}
.escape-scene-label{z-index:2;padding:.55rem .75rem;border:1px solid #fff5d733;border-radius:.55rem;background:#0d2135bd;backdrop-filter:blur(4px);letter-spacing:.13em}
.escape-board{box-shadow:0 18px 45px #23364819}
.escape-puzzle{background:linear-gradient(145deg,#fffefa,#faf7ee)}
.escape-puzzle h3{font-size:clamp(1.55rem,2.8vw,2rem);line-height:1.14}
.escape-choice{position:relative;min-height:3.8rem;border-color:#c8d7cf;background:linear-gradient(180deg,#fff,#f9fbf7);box-shadow:0 3px 0 #d4dfd8,0 6px 12px #263f3f0a}
.escape-choice:hover{box-shadow:0 3px 0 #b6d5c5,0 6px 14px #263f3f12}
.escape-choice[aria-pressed="true"]{background:linear-gradient(145deg,#387e76,#245f61);box-shadow:0 3px 0 #1d5251,0 6px 14px #263f3f18}
.escape-hint{box-shadow:inset 0 0 0 1px #ebd9a7}
.escape-inventory{box-shadow:0 7px 20px #263f3f0a}
.escape-inventory-item{box-shadow:0 2px 0 #e8d4a7}
@media(max-width:600px){.escape-scene{min-height:14rem}.escape-room-art{object-position:center 42%}.escape-choice{min-height:3.35rem}.escape-scene-label{bottom:.7rem;left:.7rem}}
.escape-scene[data-room="2"]{background-image:linear-gradient(180deg,#1020330d 55%,#0b1a2ab8),url('/assets/escape/bibliothek.jpg');background-position:center,46% center}
.escape-scene[data-room="3"]{background-image:linear-gradient(180deg,#1020330d 55%,#0b1a2ab8),url('/assets/escape/lichtkammer.jpg');background-position:center,50% center}
.escape-scene[data-room="4"]{background-image:linear-gradient(180deg,#1020330d 55%,#0b1a2ab8),url('/assets/escape/burgtor.jpg');background-position:center,67% center}
.escape-scene[data-room="2"] .room-art-2,.escape-scene[data-room="3"] .room-art-3,.escape-scene[data-room="4"] .room-art-4{display:none}
.escape-resume:not([hidden]){display:flex;align-items:center;gap:.75rem;padding:1rem 1.1rem;margin:0 0 1.5rem;border:1px solid #bad7c9;background:#edf7ef;border-radius:.8rem}
.escape-save-note{color:#526b70;font-size:.9rem;line-height:1.5;margin:1rem 0 0}
.escape-header .brand{display:inline-flex;align-items:center;gap:12px;text-decoration:none;letter-spacing:normal}
.escape-header .brand-icon{width:46px!important;height:44px!important;flex:0 0 46px!important;border-radius:13px!important;background:linear-gradient(145deg,#1d5eb3,#133e7a)!important;border:0!important;box-shadow:3px 3px 0 #f5d96d!important;display:inline-flex!important;align-items:center!important;justify-content:center!important;gap:2px!important;color:#fff!important;font-weight:900!important;font-size:18px!important;letter-spacing:-1px!important;line-height:1!important}
.escape-header .brand-icon .brand-dot{width:6px;height:6px;border-radius:99px;background:#ffd859;display:inline-block;margin:0 1px;font-size:0;line-height:0;color:transparent;flex-shrink:0}
.escape-header .brand-text{display:flex!important;flex-direction:column;line-height:1.05;gap:2px;background:none!important;border:0!important;box-shadow:none!important;width:auto!important;height:auto!important;border-radius:0!important;color:inherit}
.escape-header .brand-top{display:flex;align-items:center;gap:6px}
.escape-header .brand-name{font-size:21px;font-weight:900;letter-spacing:-.8px;color:#fff8eb}
.escape-header .beta-badge{display:inline-flex;align-items:center;padding:2px 7px;border-radius:99px;background:#fef3c7;color:#92400e;border:1px solid #f59e0b;font-size:10px;font-weight:800;letter-spacing:.5px;line-height:1.1;text-transform:uppercase;white-space:nowrap}
.escape-header .brand-end{font-size:13px;font-weight:700;color:#9fd1ff;letter-spacing:.3px;line-height:1.1}
.escape-save-note-game{margin:.1rem .2rem 1rem;color:#526b70;font-size:.8rem}
.escape-scene[data-room="1"]{background-image:linear-gradient(180deg,#1020330d 55%,#0b1a2ab8),url('/assets/escape/symboltuer.jpg');background-position:center,68% center}
.escape-scene[data-room="1"] .room-art-1{display:none}

/* A short visual transition supports the narrative without delaying input. */
@keyframes escape-room-arrive{from{opacity:.72;transform:translateY(.45rem)}to{opacity:1;transform:translateY(0)}}
@keyframes escape-scene-arrive{from{filter:brightness(.76)}to{filter:brightness(1)}}
@keyframes escape-unlock-glow{0%,100%{opacity:0}35%{opacity:.72}}
.escape-board.is-entering{animation:escape-room-arrive .48s ease-out both}
.escape-scene.is-entering{animation:escape-scene-arrive .55s ease-out both}
.escape-scene.is-unlocked::after,.escape-board.is-unlocked .escape-scene::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:radial-gradient(ellipse at 50% 48%,#ffe4a66b 0,#fbd78b2b 36%,transparent 72%);opacity:0;animation:escape-unlock-glow .85s ease-out}
.escape-story{position:relative;margin:0 0 1.35rem;padding:1rem 1.15rem 1rem 1.25rem;border:1px solid #e2d2ad;border-left:4px solid #c79b42;border-radius:.35rem .75rem .75rem .35rem;background:#fff8e9;color:#344856;box-shadow:0 4px 12px #644c1d0a}
.escape-puzzle .escape-story p{margin:.2rem 0;line-height:1.6;color:#384e5d}
.escape-story-kicker{display:block;margin:0 0 .35rem;color:#8a641d;font-size:.7rem;font-weight:800;letter-spacing:.1em;text-transform:uppercase}
.escape-puzzle input.escape-answer{display:inline-block;width:6.2rem;max-width:100%;min-height:3.4rem;padding:.45rem .65rem;border:2px solid #8ba9a2;border-radius:.7rem;background:#fff;color:#17384b;font-size:1.55rem;font-weight:800;text-align:center;box-shadow:inset 0 2px 3px #1a3f350a}
.escape-puzzle input.escape-answer:focus-visible{outline:3px solid #117ade;outline-offset:3px;border-color:#176e6b}
.escape-puzzle input.escape-answer:disabled{opacity:.8;color:#24584e;background:#eff8f0}
.escape-note-input{display:block;color:#526b70;font-size:.88rem;line-height:1.45;margin:.35rem 0 0}
@media(max-width:600px){.escape-story{padding:.85rem 1rem;margin-bottom:1.1rem}.escape-puzzle input.escape-answer{font-size:1.35rem;min-height:3.1rem}}
@media(prefers-reduced-motion:reduce){.escape-board.is-entering,.escape-scene.is-entering,.escape-scene.is-unlocked::after,.escape-board.is-unlocked .escape-scene::after{animation:none!important;transform:none!important;filter:none!important;opacity:1}.escape-scene.is-unlocked::after,.escape-board.is-unlocked .escape-scene::after{opacity:0}}
.escape-puzzle input.escape-answer[aria-invalid="true"]{border-color:#b24432;background:#fff1eb;box-shadow:0 0 0 2px #b2443224}
.escape-light-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.escape-light-card{padding:.65rem;border:1px solid #d8e0d9;border-radius:.8rem;background:#fff}
.escape-light-card .escape-choice{width:100%}
.escape-light-label{display:flex;align-items:center;justify-content:space-between;gap:.4rem;margin:.7rem .15rem .1rem;color:#405a60;font-size:.85rem;font-weight:700}
.escape-puzzle input.escape-light-answer{width:5rem;font-size:1.2rem;min-height:2.8rem}
@media(max-width:360px){.escape-light-label{align-items:flex-start;flex-direction:column}}
@media(max-width:400px){.escape-light-card .escape-choice{font-size:.95rem;white-space:nowrap;padding:.4rem .2rem}}
@keyframes escape-lantern-sweep{0%{opacity:0;transform:translateX(-130%) skewX(-15deg)}25%{opacity:.55}100%{opacity:0;transform:translateX(180%) skewX(-15deg)}}
@keyframes escape-scene-unlock{0%,100%{filter:brightness(1)}40%{filter:brightness(1.18) saturate(1.12)}}
.escape-scene.is-entering::before{content:"";position:absolute;inset:-10% 45% -10% -30%;z-index:1;pointer-events:none;background:linear-gradient(90deg,transparent,#ffe2a655,transparent);animation:escape-lantern-sweep .95s ease-out both}
.escape-scene.is-unlocked{animation:escape-scene-unlock .85s ease-in-out}
@media(prefers-reduced-motion:reduce){.escape-scene.is-entering::before,.escape-scene.is-unlocked{animation:none!important}.escape-scene.is-entering::before{display:none}}

/* The artwork identifies the adventure without covering the main castle. */
.escape-hero-badge{position:absolute;right:1.15rem;bottom:1.15rem;z-index:2;display:inline-flex;align-items:center;gap:.5rem;padding:.55rem .75rem;color:#ffe3a2;background:#14243de8;border:1px solid #f4d18b99;border-radius:.65rem;box-shadow:0 4px 14px #07111c66;font-size:.72rem;font-weight:800;letter-spacing:.12em;line-height:1.2;white-space:nowrap}
.escape-hero-badge svg{display:block;width:1.05rem;height:1.05rem;flex:none}
@media(max-width:600px){.escape-hero-badge{right:.8rem;bottom:.7rem;padding:.45rem .65rem;font-size:.67rem}}
.escape-legacy-note{margin:0;color:#375e55;font-size:.88rem;line-height:1.45}
@media(max-width:600px){.escape-resume:not([hidden]){align-items:flex-start;flex-direction:column}}

/* A small illustrated route keeps the adventure visible between puzzles. */
.escape-progress{display:flex;align-items:flex-start;gap:0;margin:0 0 1.35rem;padding:.85rem .5rem .3rem;border:1px solid #e4dbc6;border-radius:1rem;background:#fffcf5;box-shadow:0 6px 18px #27392d09}
.escape-progress-step{position:relative;display:flex;flex:1 1 0;min-width:0;height:auto;overflow:visible;align-items:center;flex-direction:column;gap:.4rem;border-radius:0;background:none!important;color:#687d7c;text-align:center;font-size:.76rem;line-height:1.25;box-shadow:none!important}
.escape-progress-step:not(:last-child)::after{content:"";position:absolute;top:1rem;left:calc(50% + 1.1rem);right:calc(-50% + 1.1rem);height:2px;border-top:2px dashed #bdcfbf}
.escape-progress-step.complete:not(:last-child)::after{border-color:#70ad92}
.escape-route-mark{position:relative;z-index:1;display:grid;place-items:center;width:2rem;height:2rem;flex:none;border:1px solid #bdcfc5;border-radius:50%;background:#f3f7ef;color:#66807b;font-size:1rem;font-weight:800}
.escape-progress-step.current .escape-route-mark{border:2px solid #b7832c;background:#fff0be;color:#835519;box-shadow:0 0 0 4px #f8e5ae76}
.escape-progress-step.complete .escape-route-mark{border-color:#568b71;background:#e0f1e4;color:#276849}
.escape-progress-step.current .escape-route-label{color:#1f5251;font-weight:800}
.escape-route-label{max-width:100%;padding:0 .15rem;overflow-wrap:anywhere}

/* The castle wakes up around the child without hiding any puzzle controls. */
.escape-scene-sparkles{position:absolute;inset:0;z-index:1;overflow:hidden;pointer-events:none}
.escape-scene-sparkles i{position:absolute;width:4px;height:4px;border-radius:50%;background:#fff2c0;box-shadow:0 0 8px 3px #ffd67a8a;opacity:.48;animation:castle-firefly 5s ease-in-out infinite alternate}
.escape-scene-sparkles i:nth-child(1){left:16%;top:18%;animation-delay:-1s}.escape-scene-sparkles i:nth-child(2){left:60%;top:12%;animation-delay:-3.5s}.escape-scene-sparkles i:nth-child(3){left:83%;top:39%;animation-delay:-2s}.escape-scene-sparkles i:nth-child(4){left:30%;top:58%;animation-delay:-4.2s}.escape-scene-sparkles i:nth-child(5){left:72%;top:69%;animation-delay:-.5s}.escape-scene-sparkles i:nth-child(6){left:12%;top:78%;animation-delay:-2.7s}
@keyframes castle-firefly{0%{opacity:.16;transform:translate(0,4px) scale(.7)}50%{opacity:.8}100%{opacity:.25;transform:translate(8px,-12px) scale(1.1)}}
.escape-scene-success{position:absolute;z-index:3;right:1rem;bottom:4.2rem;left:1rem;padding:.85rem 1rem;border:1px solid #f2d6959c;border-radius:.8rem;background:#122c35ed;color:#fff8df;font-size:.9rem;font-weight:750;line-height:1.45;box-shadow:0 8px 24px #081a29a6;opacity:0;transform:translateY(8px);pointer-events:none;transition:opacity .35s,transform .35s}
.escape-scene.is-unlocked .escape-scene-success,.escape-scene.is-finished .escape-scene-success{opacity:1;transform:translateY(0)}
.escape-scene.is-finished .escape-scene-sparkles i{background:#fff5bd;opacity:.9;box-shadow:0 0 12px 5px #ffe6a6}
@media(max-width:600px){.escape-progress{padding:.75rem .15rem .3rem}.escape-progress-step{font-size:.62rem}.escape-route-mark{width:1.8rem;height:1.8rem;font-size:.9rem}.escape-progress-step:not(:last-child)::after{top:.9rem;left:calc(50% + 1rem);right:calc(-50% + 1rem)}.escape-scene-success{right:.7rem;bottom:3.5rem;left:.7rem;font-size:.8rem;padding:.65rem .75rem}}
@media(prefers-reduced-motion:reduce){.escape-scene-sparkles i{animation:none!important;opacity:.4}.escape-scene-success{transition:none!important}}
