:root{--ink:#102a2c;--deep:#0d2226;--cream:#fffaf0;--gold:#eac77b;--mint:#b8dfc8;--muted:#819394;--red:#b95753;--line:rgba(16,42,44,.12)}
*{box-sizing:border-box}html{min-height:100%;background:var(--deep)}body{margin:0;min-height:100vh;color:var(--ink);font-family:'DM Sans',Arial,sans-serif;background:radial-gradient(ellipse at 10% 0%,#24474a 0,transparent 40%),radial-gradient(ellipse at 100% 90%,#24423c 0,transparent 38%),var(--deep)}button,a{font:inherit}button{cursor:pointer}.shell{width:min(1440px,100%);margin:auto;padding:0 30px}.topbar{height:76px;display:flex;align-items:center;justify-content:space-between;color:#f8f3e8;border-bottom:1px solid rgba(255,255,255,.12)}.brand{color:inherit;text-decoration:none;font:800 13px Manrope,sans-serif;letter-spacing:.16em;display:flex;align-items:center;gap:10px}.brand-mark{font-size:24px;color:var(--gold)}.brand-sub{font-size:10px;color:#aac0b4;letter-spacing:.2em;margin-left:3px}.online{font-size:12px;color:#d2ddd3;display:flex;align-items:center;gap:8px}.live-dot{width:8px;height:8px;border-radius:50%;background:#a9e0ba;box-shadow:0 0 12px #a9e0ba}.screen{min-height:calc(100svh - 118px)}[hidden]{display:none!important}
.lobby{display:grid;grid-template-columns:.95fr 1.05fr;align-items:center;gap:clamp(28px,6vw,90px);padding:48px 3vw 58px;color:var(--cream)}.kicker{text-transform:uppercase;letter-spacing:.18em;font-weight:700;font-size:10px;color:#9fbba9;margin:0 0 12px}.lobby h1,.map-title h1{font:800 clamp(38px,5vw,68px)/.99 Manrope,sans-serif;letter-spacing:-.055em;margin:0}.lobby h1 em,.map-title h1 em{font-style:normal;color:var(--gold)}.intro{color:#d4dfd7;max-width:490px;line-height:1.65;font-size:15px;margin:22px 0 24px}.mission-list{display:grid;gap:9px;max-width:500px}.mission-link{display:flex;align-items:center;gap:14px;padding:13px 16px;border-radius:15px;text-decoration:none;color:var(--cream);background:rgba(255,255,255,.075);border:1px solid rgba(255,255,255,.1);transition:.2s}.mission-link:hover{transform:translateX(4px);background:rgba(255,255,255,.12)}.mission-icon{width:38px;height:38px;border-radius:12px;background:rgba(234,199,123,.14);color:var(--gold);display:grid;place-items:center;font-size:21px}.mission-link b,.mission-link small{display:block}.mission-link b{font-size:14px}.mission-link small{font-size:11px;color:#b3c5bb;margin-top:2px}.arrow{margin-left:auto;color:var(--gold);font-size:20px}.share-note{font-size:11px;color:#96aaa0;margin:13px 0 0}.lobby-art{position:relative;max-width:610px;justify-self:end}.lobby-art img{display:block;width:100%;max-height:76svh;object-fit:cover;border-radius:26px;border:1px solid rgba(255,255,255,.25);box-shadow:0 28px 90px #071619aa}.art-stamp{position:absolute;right:18px;bottom:18px;background:var(--cream);color:var(--ink);padding:12px 16px;border-radius:13px;font-size:9px;line-height:1.55;letter-spacing:.13em;transform:rotate(-3deg);box-shadow:0 8px 25px #06171970}.art-stamp strong{font-size:12px}
.game{display:grid;grid-template-columns:minmax(0,1.12fr) minmax(340px,.78fr);gap:24px;padding:26px 0 35px;align-items:start}.map-panel{color:var(--cream)}.map-title{display:flex;justify-content:space-between;align-items:end;margin:6px 4px 14px}.map-title h1{font-size:clamp(25px,3vw,40px)}.map-title .kicker{margin-bottom:7px}.team-count{border:1px solid rgba(255,255,255,.18);border-radius:999px;padding:8px 12px;font-size:11px;color:#dce8da;white-space:nowrap}.map-stage{position:relative;width:100%;aspect-ratio:2/2.42;border-radius:24px;overflow:hidden;isolation:isolate;background:#193436;box-shadow:0 20px 60px rgba(0,0,0,.28)}.map-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center}.map-stage::after{content:'';position:absolute;inset:0;z-index:0;background:linear-gradient(0deg,rgba(8,28,28,.6),transparent 27%,transparent 70%,rgba(10,29,32,.16));pointer-events:none}.route-line{position:absolute;z-index:1;left:17%;top:78%;width:66%;height:32%;border-left:2px dashed rgba(255,241,203,.72);border-top:2px dashed rgba(255,241,203,.72);border-radius:50% 0 0 0;transform:rotate(-30deg);opacity:.7;pointer-events:none}.map-pin{position:absolute;z-index:2;display:flex;flex-direction:column;align-items:center;gap:2px;background:rgba(12,36,38,.86);border:1.5px solid rgba(255,229,170,.9);color:var(--cream);border-radius:15px;padding:8px 10px;min-width:68px;box-shadow:0 6px 20px #08171970;transform:translate(-50%,-50%);transition:.2s}.map-pin:hover,.map-pin:focus-visible{transform:translate(-50%,-54%) scale(1.04);outline:2px solid #ffe8a6}.map-pin span{font-size:22px;color:var(--gold);line-height:1}.map-pin small{font-weight:800;font-size:8px;letter-spacing:.12em}.map-pin i{position:absolute;right:-4px;top:-4px;background:#879c8f;color:#fff;border:2px solid #143235;width:16px;height:16px;border-radius:50%;font-style:normal;font-size:12px;line-height:12px;text-align:center}.map-pin.is-done i{background:#91d4a6;color:#143235}.pin-annabell{left:22%;top:81%}.pin-sabrina{left:24%;top:50%}.pin-domi{left:78%;top:46%}.map-caption{position:absolute;left:14px;right:14px;bottom:13px;text-align:center;z-index:2;color:white;font-size:11px;text-shadow:0 2px 8px #071718;font-weight:600}.team-progress{display:flex;gap:8px;margin-top:12px}.team-chip{flex:1;display:flex;align-items:center;gap:8px;border:1px solid rgba(255,255,255,.14);background:rgba(255,255,255,.045);color:#dce5dc;border-radius:12px;padding:9px 11px;font-size:10px}.team-chip .chip-icon{color:var(--gold);font-size:17px}.team-chip small{display:block;color:#8ea49a;font-size:9px;margin-top:2px}.team-chip.done{border-color:rgba(160,223,177,.45);background:rgba(145,212,166,.11)}
.story-panel{background:var(--cream);border-radius:24px;padding:clamp(21px,3vw,34px);box-shadow:0 20px 60px rgba(0,0,0,.22);position:sticky;top:20px;min-height:500px}.story-heading{display:flex;align-items:center;gap:14px;padding-bottom:18px;border-bottom:1px solid var(--line)}.character-badge{width:52px;height:52px;border-radius:17px;background:#173c3b;color:var(--gold);display:grid;place-items:center;font-size:24px;flex:none}.story-heading .kicker{color:#738b7d;margin-bottom:5px}.story-heading h2{font:800 22px/1.1 Manrope,sans-serif;letter-spacing:-.04em;margin:0}.story-text{font-size:14px;line-height:1.62;color:#435957;margin:18px 0}.puzzle-area{background:#f5f1e7;border:1px solid #e7e0d2;border-radius:17px;padding:18px}.puzzle-label{font-size:9px;color:#87998d;text-transform:uppercase;letter-spacing:.16em;font-weight:800;margin:0 0 8px}.question{font:700 18px/1.35 Manrope,sans-serif;margin:0 0 15px;color:var(--ink)}.choices{display:grid;grid-template-columns:repeat(3,1fr);gap:8px}.choice{border:1px solid #d9dfd3;background:#fffdf8;color:var(--ink);border-radius:12px;padding:12px 8px;font-size:14px;font-weight:700;min-height:48px}.choice:hover,.choice:focus-visible{border-color:#9abb9f;background:#eff7ec;outline:none}.choice.correct{background:#e2f3e4;border-color:#8bc39a}.picture-tree{display:flex;align-items:center;justify-content:center;gap:12px;margin:12px 0 16px;background:#fffaf0;border-radius:14px;padding:12px}.tree-visual{font-size:60px;line-height:1}.ornaments{display:grid;grid-template-columns:repeat(2,20px);gap:8px}.ornaments span{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd8b4,#bb5552 55%,#733539);box-shadow:0 2px 3px #49342a50}.number-sequence{display:flex;align-items:center;justify-content:center;gap:11px;margin:18px 0}.number-sequence span{font:800 25px Manrope,sans-serif;width:44px;height:48px;display:grid;place-items:center;background:#fffaf0;border:1px solid #e4d9c5;border-radius:12px}.number-sequence span.missing{color:#a85650;border-style:dashed}.feedback{font-size:12px;min-height:18px;margin:12px 2px 0;color:#557163}.feedback.error{color:#b24c43}.family-response{margin-top:14px;padding:13px;border-radius:13px;background:#e5f3e3;color:#315b42;font-size:13px;line-height:1.5}.waiting-copy{color:#82918a;font-size:13px;margin:14px 0}.hint-box{display:flex;gap:9px;color:#72867c;font-size:11px;line-height:1.5;margin-top:16px;padding:12px 13px;background:#f7f3e8;border-radius:12px}.hint-box>span:first-child{color:#b88b45;font-size:16px}.story-footer{display:flex;justify-content:space-between;margin-top:22px;padding-top:13px;border-top:1px solid var(--line);font-size:10px;color:#87958d}.story-footer span:last-child{color:#b68e4e}.final-area{margin-top:16px;padding:19px;text-align:center;border-radius:17px;background:linear-gradient(155deg,#173e3d,#102b2f);color:var(--cream)}.final-area h3{font:800 21px Manrope,sans-serif;margin:5px 0 7px;color:#ffe4a3}.final-area p{font-size:13px;line-height:1.55;color:#e1e8dc}.final-code{display:flex;gap:8px;margin:13px auto;max-width:240px}.final-code input{width:100%;min-width:0;border:1px solid #819a8a;background:#fdf9ef;border-radius:11px;padding:12px 14px;text-align:center;font:800 20px Manrope;letter-spacing:.18em;color:var(--ink)}.primary{border:0;background:var(--gold);color:#183432;border-radius:11px;padding:12px 15px;font-size:12px;font-weight:800}.primary:hover{background:#f4d68f}.final-win{padding:12px 0}.gift{font-size:38px;animation:bob 1.6s ease-in-out infinite}.toast{position:fixed;left:50%;bottom:22px;transform:translate(-50%,20px);opacity:0;background:#fffaf0;color:var(--ink);padding:11px 16px;border-radius:99px;box-shadow:0 8px 24px #07171940;font-weight:700;font-size:12px;transition:.25s;z-index:5;pointer-events:none}.toast.show{opacity:1;transform:translate(-50%,0)}.footer{text-align:center;color:#81978d;font-size:10px;padding:0 0 20px;letter-spacing:.04em}.footer span{color:var(--gold);margin-left:4px}@keyframes bob{50%{transform:translateY(-5px)}}
@media(max-width:900px){.shell{padding:0 19px}.game{grid-template-columns:minmax(0,1fr) minmax(320px,.82fr);gap:15px}.story-panel{padding:22px;min-height:450px}.map-stage{aspect-ratio:2/2.7}.team-chip{padding:8px 7px}.team-chip small{font-size:8px}}
@media(max-width:700px){.shell{padding:0 14px}.topbar{height:60px}.brand{font-size:11px}.brand-sub{font-size:8px}.online{font-size:10px}.lobby{display:flex;flex-direction:column;padding:35px 0 40px;gap:25px;align-items:stretch}.lobby h1{font-size:46px}.intro{font-size:14px;margin:17px 0}.lobby-art{width:100%;max-width:none}.lobby-art img{width:100%;height:min(48svh,520px);object-fit:cover;object-position:center 57%;border-radius:20px}.mission-list{gap:8px}.mission-link{padding:11px 12px}.mission-icon{width:34px;height:34px}.game{display:flex;flex-direction:column;padding:17px 0 28px;gap:15px}.map-title{margin:0 2px 11px}.map-title h1{font-size:26px}.map-stage{aspect-ratio:2/2.55;border-radius:19px}.map-pin{padding:7px 8px;min-width:59px;border-radius:12px}.map-pin span{font-size:19px}.map-pin small{font-size:7px}.pin-annabell{left:21%;top:81%}.pin-sabrina{left:22%;top:50%}.pin-domi{left:78%;top:46%}.team-progress{gap:5px}.team-chip{justify-content:center;gap:5px;padding:8px 5px;font-size:9px}.team-chip small{font-size:8px}.story-panel{position:static;width:100%;min-height:0;padding:20px;border-radius:20px}.story-heading h2{font-size:20px}.story-text{font-size:13px;margin:14px 0}.puzzle-area{padding:15px}.question{font-size:17px}.choices{gap:6px}.choice{padding:10px 5px;font-size:13px}.footer{padding-bottom:15px}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}}
.mission-link{padding:7px 8px 7px 13px;gap:7px}.mission-open{flex:1;min-width:0;display:flex;align-items:center;gap:12px;text-decoration:none;color:inherit;padding:4px 0}.mission-open>span:nth-child(2){min-width:0}.copy-link{border:1px solid rgba(234,199,123,.45);background:rgba(234,199,123,.09);color:#f0d898;border-radius:9px;padding:8px 10px;font-size:10px;font-weight:700;white-space:nowrap}.copy-link:hover{background:rgba(234,199,123,.19)}.final-family{display:block;width:min(100%,280px);margin:12px auto 0;border-radius:13px;box-shadow:0 6px 20px #07171980}
@media(max-width:700px){.mission-link{padding:7px 8px 7px 10px;gap:5px}.mission-open{gap:9px}.copy-link{font-size:9px;padding:8px 7px}.mission-link small{font-size:10px}}
.task-top{display:flex;align-items:center;justify-content:space-between;gap:12px}.task-top .puzzle-label{margin:0}.round-count{font:800 11px Manrope,sans-serif;color:#527261;background:#e4ebdf;padding:6px 9px;border-radius:99px;white-space:nowrap}.mini-progress{display:flex;gap:5px;margin:10px 0 18px}.mini-progress i{height:4px;flex:1;background:#e0e4dc;border-radius:9px}.mini-progress i.current{background:#d3ad58}.mini-progress i.past{background:#8fc19a}.task-visual{display:grid;place-items:center;min-height:96px;margin:10px 0 16px;padding:10px;background:#fffaf0;border:1px solid #eee5d2;border-radius:14px}.task-visual .picture-tree{margin:0;padding:0;background:transparent}.task-visual .ornaments{grid-template-columns:repeat(2,20px)}.task-visual .ornaments i{width:18px;height:18px;border-radius:50%;background:radial-gradient(circle at 35% 30%,#ffd8b4,#bb5552 55%,#733539);box-shadow:0 2px 3px #49342a50}.picture-pattern{display:flex;align-items:center;justify-content:center;gap:clamp(5px,2vw,15px);font-size:clamp(25px,4vw,38px)}.picture-pattern .missing{display:grid;place-items:center;width:39px;height:42px;border:1px dashed #b8b6a8;border-radius:10px;color:#947c4f}.big-emoji{font-size:clamp(27px,4vw,39px);line-height:1.5;text-align:center}.big-emoji.words{font-size:clamp(15px,2.5vw,21px);font-weight:700;color:#547064}.big-emoji.starry{color:#d1a341}.equation{display:grid;grid-template-columns:1fr 1fr;gap:8px;text-align:center;font-weight:700;color:#456453}.equation b{grid-column:1/-1;font-size:21px;color:var(--ink);margin-top:8px}.calendar-number{font:800 48px Manrope,sans-serif;color:#af4c45;text-align:center}.calendar-number span{display:block;font:800 10px 'DM Sans',Arial,sans-serif;letter-spacing:.16em;color:#647b6d}.continue-button{margin-top:8px;padding:9px 12px}.choice:disabled{opacity:.62;cursor:default}.role-complete{text-align:center;padding:12px 0}.role-complete .gift{color:#c49b4c}.role-complete h3{font:800 19px Manrope,sans-serif;margin:5px 0}.role-complete p:not(.puzzle-label){font-size:13px;line-height:1.5;color:#53665e;margin:8px 0}.role-complete strong{color:#9b6936;font-size:17px}
.walker{position:absolute;z-index:3;display:none;align-items:center;gap:5px;transform:translate(-50%,-50%);padding:5px 8px;border:1px solid rgba(255,237,192,.9);border-radius:99px;background:rgba(14,43,43,.92);color:#fff8e9;box-shadow:0 4px 14px #081a1d90;white-space:nowrap;transition:left .9s cubic-bezier(.2,.8,.2,1),top .9s cubic-bezier(.2,.8,.2,1);animation:walker-bob 1.1s ease-in-out infinite}.walker span{font-size:15px;color:#f4d48a}.walker small{font:700 8px Manrope,sans-serif;letter-spacing:.03em}.pin-finale{left:80%;top:12%;padding:8px 11px}.pin-finale.ready{background:#9b6b2f;animation:pin-glow 1.5s ease-in-out infinite}.map-pin.is-done{background:rgba(31,91,67,.92)}.sparkle-burst{position:absolute;z-index:2;color:#c19847;font-size:23px;pointer-events:none;animation:sparkle-rise .9s ease-out forwards}.task-visual{position:relative;overflow:hidden}.combination-lock{display:flex;justify-content:center;gap:10px;margin:16px auto}.lock-digit{display:grid;grid-template-rows:29px 45px 29px;justify-items:center;align-items:center;width:57px;border:1px solid rgba(255,231,179,.42);background:rgba(255,255,255,.07);border-radius:13px;overflow:hidden}.lock-digit button{width:100%;height:100%;border:0;background:transparent;color:#ffe5a3;font-size:19px;font-weight:700}.lock-digit button:hover{background:rgba(255,255,255,.12)}.lock-digit strong{font:800 25px Manrope,sans-serif;color:#fff8e9}.final-area .primary{width:100%}@keyframes walker-bob{50%{margin-top:-4px}}@keyframes pin-glow{50%{box-shadow:0 0 22px #ffe2a0}}@keyframes sparkle-rise{from{opacity:0;transform:translateY(10px) scale(.7)}40%{opacity:1}to{opacity:0;transform:translateY(-30px) scale(1.4)}}
@media(max-width:700px){.walker{gap:3px;padding:4px 6px}.walker span{font-size:13px}.walker small{font-size:7px}.pin-finale{left:80%;top:12%}.combination-lock{gap:7px}.lock-digit{width:54px}}
.reference-setup{margin-top:17px;padding:14px;border:1px solid rgba(255,255,255,.15);background:rgba(255,255,255,.055);border-radius:16px;max-width:540px}.reference-heading{display:flex;align-items:center;gap:10px;margin-bottom:10px}.setup-icon{font-size:20px}.reference-heading h2{font:700 13px Manrope,sans-serif;margin:0;color:#fff7e8}.reference-heading p{font-size:10px;color:#aabbb0;margin:3px 0 0}.reference-row{display:grid;grid-template-columns:minmax(0,1fr) auto;grid-template-areas:"person person" "label label" "file save" "preview status";align-items:center;gap:6px;padding:9px 0;border-top:1px solid rgba(255,255,255,.09)}.reference-person{grid-area:person;display:flex;align-items:baseline;gap:8px;color:#fff8ea;font-size:11px}.reference-person small{font-size:9px;color:#9db0a4}.reference-label{grid-area:label;width:100%;border:1px solid rgba(255,255,255,.16);background:rgba(5,24,27,.5);color:#f4eee2;border-radius:8px;padding:7px 9px;font-size:10px}.reference-file{grid-area:file;min-width:0;max-width:100%;font-size:9px;color:#c3d0c8}.reference-file::file-selector-button{border:1px solid rgba(234,199,123,.3);background:rgba(234,199,123,.09);color:#f2dcaa;border-radius:8px;padding:7px 8px;margin-right:7px;font-size:9px}.save-reference{grid-area:save;border:0;border-radius:8px;background:var(--gold);color:#1b3732;padding:8px 10px;font-size:9px;font-weight:800;white-space:nowrap}.save-reference:disabled,.copy-link:disabled{opacity:.45;cursor:not-allowed}.reference-thumb{grid-area:preview;width:48px;height:36px;object-fit:cover;border-radius:6px;display:none}.reference-thumb[src]{display:block}.reference-status{grid-area:status;justify-self:end;text-align:right;color:#c7b68f;font-size:9px}.reference-status.saved{color:#a9ddb7}.photo-instruction{font-size:12px;color:#60726a;line-height:1.5;margin:9px 0}.photo-reference{position:relative;display:grid;place-items:center;min-height:120px;max-height:230px;overflow:hidden;background:#fffaf0;border:1px solid #e7dec9;border-radius:14px;margin:12px 0}.photo-reference img{width:100%;height:100%;max-height:230px;object-fit:contain}.photo-reference span{position:absolute;padding:8px 10px;border-radius:9px;background:rgba(16,42,44,.82);color:white;font-size:10px}.capture-button{display:block;width:100%;text-align:center;margin:10px 0;padding:13px!important}.capture-button input{position:absolute;width:1px;height:1px;opacity:0;pointer-events:none}.match-badge,.retry-badge{display:block;text-align:center;border-radius:10px;padding:9px 10px;margin:8px 0;font-size:11px;font-weight:800}.match-badge{background:#e4f3e5;color:#356443}.retry-badge{background:#f9e9d8;color:#8c5a28}
@media(max-width:700px){.reference-setup{padding:12px}.reference-row{gap:7px}.reference-label{font-size:11px}.reference-status{font-size:8px}.reference-file{font-size:8px}.save-reference{padding:8px 8px}.photo-reference{min-height:150px}}
.privacy-note{max-width:540px;margin:10px 2px 0;font-size:9px;line-height:1.45;color:#93aaa0}.puzzle-area{position:relative}
.mission-open.link-locked{opacity:.62}.mission-open.link-locked .arrow{opacity:.5}
.preview-controls{position:sticky;top:0;z-index:30;background:#fff4d9;color:#244b43;border:1px solid #d4bd85;border-radius:12px;padding:12px;display:grid;gap:6px;margin:12px 0;font-size:13px}.preview-controls>div{display:flex;gap:6px;flex-wrap:wrap}.preview-controls button{cursor:pointer}.photo-choose{position:relative;display:inline-flex;margin:8px 0;cursor:pointer}.photo-choose input{position:absolute;opacity:0;width:1px;height:1px;overflow:hidden}
.ambience-controls{display:flex;gap:6px;flex-wrap:wrap}.ambience-controls button{border:1px solid #78968c;border-radius:999px;background:#163e3c;color:#fff3d7;padding:7px 11px;font-size:11px;cursor:pointer}.topbar{height:auto;min-height:76px;padding:14px 0;flex-wrap:wrap;gap:12px}.wichtel-card{margin:16px 0;padding:16px;border:1px solid #d6c59a;border-radius:14px;background:#fff7df;color:#28483c;font-size:13px;line-height:1.6}.wichtel-card h3{margin:0 0 8px}.reward-text,.reward-coupon{white-space:pre-line}.reward-coupon{border:2px dashed #bb9557;padding:14px;border-radius:10px;background:#fffdf4;font-weight:700}.reward-image{width:100%;max-height:340px;object-fit:contain;border-radius:12px;margin-top:12px}.advent-lock{text-align:center;padding:24px 10px;line-height:1.6}.advent-lock>span{font-size:48px}.final-stars{display:flex;justify-content:center;gap:24px;margin:18px 0}.final-stars>span{font-size:40px;opacity:.4;color:#d3b168}.final-stars>span.lit{opacity:1;filter:drop-shadow(0 0 8px #ffdc85)}.final-stars small{display:block;font-size:12px;color:#fff}.hold-star{display:block;margin:15px auto;padding:20px 30px;border:2px solid #f3d08b;background:#183e3b;color:#ffe1a1;border-radius:18px;font-size:22px;font-weight:800;touch-action:none;user-select:none;cursor:pointer}.hold-star[aria-pressed=true]{background:#f1cb7d;color:#193b35}#snowLayer{position:fixed;inset:0;overflow:hidden;pointer-events:none;z-index:20}#snowLayer span{position:absolute;top:-30px;color:#fff9e6;opacity:.65;animation:xmas-snowfall linear infinite}@keyframes xmas-snowfall{to{transform:translate(35px,110vh)}}@media(prefers-reduced-motion:reduce){#snowLayer{display:none!important}.sparkle-burst{animation:none!important}}@media(max-width:480px){.ambience-controls{width:100%}.final-stars{gap:16px}}
.admin-link{margin-left:12px;color:#f0d898;text-decoration:none;font-weight:700;font-size:11px;opacity:.82}.admin-link:hover{opacity:1;text-decoration:underline}
.answer-form{display:flex;gap:8px;align-items:stretch;margin:12px 0}.answer-input{flex:1;min-width:0;border:1px solid #d9dfd3;background:#fffdf8;color:var(--ink);border-radius:11px;padding:11px 12px;font-size:16px}.answer-input:focus{outline:2px solid #b4c8ae}.sequence-picked{min-height:42px;display:grid;place-items:center;text-align:center;padding:8px;margin:10px 0;background:#fffaf0;border:1px dashed #cfc7b5;border-radius:11px;color:#476255;font-size:13px;font-weight:700}.sequence-options{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:7px}.sequence-option{min-height:48px;border:1px solid #d9dfd3;background:#fffdf8;border-radius:11px;padding:8px 5px;color:var(--ink);font-size:14px;font-weight:700}.sequence-option.selected{background:#e6f1e5;border-color:#9abb9f}.sequence-option:disabled{opacity:.58}.sequence-actions{display:flex;justify-content:space-between;gap:8px;margin-top:9px}.secondary-button{border:1px solid #d9dfd3;background:#fffdf8;color:#51685c;border-radius:10px;padding:9px 12px;font-size:12px;font-weight:700}@media(max-width:480px){.answer-form{flex-direction:column}.sequence-option{font-size:12px}.sequence-actions button{flex:1}}
.player-gate{min-height:calc(100svh - 150px);display:grid;place-items:center;padding:30px 14px}.player-login-card{width:min(100%,440px);padding:30px;border:1px solid rgba(255,255,255,.16);border-radius:22px;background:rgba(255,255,255,.075);color:var(--cream);box-shadow:0 20px 60px #07161970}.player-login-card h1{font:800 clamp(30px,7vw,46px)/1 Manrope,sans-serif;margin:8px 0 12px}.player-login-card>p:not(.kicker){line-height:1.55;color:#d4dfd7}.player-login-card label{display:block;font-size:13px;font-weight:700;margin:20px 0 7px}.player-login-card input{width:100%;padding:14px;border:1px solid rgba(255,255,255,.24);border-radius:11px;background:#0c2427;color:#fff;font-size:24px;letter-spacing:.3em;text-align:center}.player-login-card button{width:100%;margin:13px 0 4px;padding:13px;border:0;border-radius:11px;background:var(--gold);color:#193532;font-weight:800}.player-login-card a{display:block;text-align:center;color:#d4dfd7;font-size:12px;margin-top:14px}.player-login-card #playerLoginStatus{min-height:20px;color:#f2c59f;font-size:12px}.player-login-card #playerLoginStatus.success{color:#a9ddb7}
.slide-reference{display:flex;align-items:center;gap:10px;margin:12px auto;max-width:330px;color:#718176;font-size:11px}.slide-reference img{width:58px;height:58px;object-fit:cover;border:2px solid #e9d296;border-radius:9px}.slide-board{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:5px;width:min(100%,330px);aspect-ratio:1;margin:12px auto;padding:6px;border-radius:14px;background:#d6c8a2;box-shadow:0 5px 15px #19322c24}.slide-tile,.slide-empty{display:block;min-width:0;min-height:0;aspect-ratio:1;border:0;border-radius:8px}.slide-tile{background-image:var(--slide-image,url("assets/world-winter-neutral-v47.webp?v=80"));background-size:300% 300%;background-position:calc(var(--tile-col)*50%) calc(var(--tile-row)*50%);box-shadow:inset 0 0 0 1px #ffffff8a;touch-action:manipulation}.slide-tile:active{filter:brightness(1.12);transform:scale(.97)}.slide-empty{background:#f7f1df;border:2px dashed #c5b588}.slide-moves{text-align:center;margin:6px 0;color:#718176;font-size:12px;font-weight:700}
.mode-picker{margin:16px 0 8px;padding:13px;border:1px solid rgba(255,255,255,.18);border-radius:13px}.mode-picker legend{padding:0 5px;color:#f2d592;font-size:13px;font-weight:800}.player-login-card .mode-picker label{display:flex;align-items:flex-start;gap:10px;margin:10px 0;padding:10px;border-radius:9px;background:#0c242740;cursor:pointer}.player-login-card .mode-picker input[type=radio]{flex:0 0 18px;width:18px;height:18px;margin:2px 0 0;accent-color:#eac77b}.mode-picker span{display:grid;gap:3px}.mode-picker strong{font-size:13px}.mode-picker small,.mode-picker>p{color:#c2d0ca;font-size:11px;line-height:1.4}.mode-picker>p{margin:10px 2px 0}
.memory-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:9px;margin:18px 0;min-width:0}.memory-board[data-pairs="3"]{grid-template-columns:repeat(3,minmax(0,1fr))}.memory-card{position:relative;display:grid;place-items:center;min-width:0;min-height:48px;aspect-ratio:1;padding:6px;overflow:hidden;border:1px solid #b8c7b8;border-radius:15px;background:#254b43;color:#fff6d9;cursor:pointer;touch-action:manipulation;transition:background-color .18s,border-color .18s,box-shadow .18s}.memory-card[data-face=true]{background:#f8f2e3;border-color:#c3b185;box-shadow:inset 0 0 18px #efd9a92a}.memory-card.matched{background:#e7efdf;border-color:#8aa383;box-shadow:inset 0 0 15px #b8d0ae33}.memory-card:focus-visible{outline:3px solid #b18b4d;outline-offset:3px}.memory-picture-back,.memory-picture-face{display:block;position:relative;width:100%;height:100%;min-width:0;pointer-events:none}.memory-picture-back{opacity:.8;padding:18%}.memory-picture-back svg{width:100%;height:100%;filter:brightness(1.55) saturate(.4)}.memory-picture-face{animation:memory-face-reveal .2s ease-out both}.memory-card .memory-picture,.memory-card .memory-picture-fallback{position:absolute;inset:0;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;margin:0;border:0;border-radius:0;filter:none;pointer-events:none}.memory-picture-face[data-loaded=true] .memory-picture-fallback{visibility:hidden}.memory-picture-fallback{padding:8%}@keyframes memory-face-reveal{from{opacity:.4;transform:perspective(350px) rotateY(-18deg) scale(.96)}to{opacity:1;transform:none}}@media(max-width:350px){.memory-board{grid-template-columns:repeat(3,minmax(0,1fr));gap:7px}}@media(prefers-reduced-motion:reduce){.memory-card,.memory-picture-face{transition:none!important;animation:none!important}}html.comfort-reduce .memory-card,html.comfort-reduce .memory-picture-face{transition:none!important;animation:none!important}.sub-progress{font-weight:700;color:#b48a37}.sub-progress+p{line-height:1.6}

html[data-event] .brand-mark,html[data-event] .primary{background:var(--event-accent)}

.combination-lock{flex-wrap:wrap}.team-progress{flex-wrap:wrap}.team-chip{min-width:130px}

.final-stars{flex-wrap:wrap}

.player-avatar{display:block;width:100%;height:100%;object-fit:contain}.mission-icon:has(.player-avatar){height:56px;width:46px;flex:none}.character-badge:has(.player-avatar){height:68px;width:58px;background:#eef0e7}.walker>span:has(.player-avatar){height:56px;width:42px}.map-pin>span:has(.player-avatar){height:52px;width:40px}

/* v43: optional music library, shared by map and chapter controls. */
.ambience-controls{position:relative;align-items:center}.ambience-controls input[aria-label="Musiklautstärke"]{width:75px;max-width:75px;min-height:36px}.music-picker summary,.music-credits-link{display:inline-flex;align-items:center;min-height:44px;padding:8px 10px;border:1px solid #ffffff35;border-radius:9px;background:#16383b;color:#fff5d9;font-size:11px;text-decoration:none;cursor:pointer}.music-picker summary::after{content:' ▾';margin-left:5px}.music-picker[open] summary{background:#31524c}.music-settings{position:absolute;top:calc(100% + 8px);right:0;z-index:30;width:min(310px,calc(100vw - 36px));padding:16px;border:1px solid #eac77b80;border-radius:14px;box-shadow:0 12px 34px #0008;background:#15373b;color:#fff8e8;text-align:left;font-size:13px;line-height:1.5}.music-settings label{display:block;font-weight:700;margin-bottom:8px}.music-settings select{width:100%;min-height:44px;font-size:16px;padding:9px 5px;border-radius:8px;background:#fffaf0;color:#183432;border:0}.music-settings p{margin:12px 0 8px;overflow-wrap:anywhere}.music-settings small{color:#c1d4c9}.music-picker summary:focus-visible,.music-credits-link:focus-visible{outline:2px solid #eac77b;outline-offset:3px}.scene-ambience .music-picker summary,.scene-ambience .music-credits-link{font-size:11px;min-height:44px}
@media(max-width:600px){.topbar:has(.ambience-controls){height:auto;min-height:76px;padding-top:12px;padding-bottom:12px;gap:12px;flex-wrap:wrap}.ambience-controls{gap:6px}.music-settings{max-height:55svh;overflow:auto}}

.scene-ambience:has(.music-picker[open]){z-index:12}
@media(max-width:600px){.lobby h1{font-size:clamp(30px,9vw,38px);overflow-wrap:anywhere}}

/* v44: additional story poses and illustrated memories. */
.scene-dialogue-art{display:block;width:100%;height:170px;object-fit:contain;margin:10px auto}.scene-family{position:absolute;left:50%;top:24%;transform:translateX(-50%);width:min(85%,610px);height:42%;object-fit:contain;filter:drop-shadow(0 8px 12px #071a2480);pointer-events:none;z-index:2}.final-family{object-fit:contain}.scene-companion img{object-fit:contain}

.sandbox-banner{position:relative;z-index:120;background:#f5dda5;color:#18382e;padding:10px 14px;font-size:13px;text-align:center;display:flex;justify-content:center;align-items:center;gap:12px;flex-wrap:wrap}.sandbox-banner button{min-height:40px;border:1px solid #527257;background:#fff8e6;color:#244837;border-radius:8px;padding:7px 12px}.is-sandbox .story-experience{top:72px;height:calc(100dvh - 72px)}.is-sandbox .comfort-open{z-index:130}

.book-decisions{display:grid;gap:7px;margin:10px 0}.book-decisions:empty{display:none}.book-decisions button{min-height:44px;border:1px solid #eac77b88;border-radius:10px;padding:10px;background:#18383df0;color:#fff6db;text-align:left;font-size:14px}.book-decisions button[aria-pressed=true]{background:#efd498;color:#183830}.book-decisions p,.book-own-hint{font-size:13px;line-height:1.5;background:#12343deb;padding:8px 10px;border-radius:9px}.book-team{padding:16px;background:#e6efde;border:1px solid #a0bd93;border-radius:14px;margin-bottom:16px;color:#1e422f}.book-team h3{margin:0 0 8px}.book-team p{font-size:14px;line-height:1.6}.book-team label{display:grid;gap:7px;font-size:14px}.book-team input{width:100%;padding:12px;font-size:19px;border:1px solid #98b095;border-radius:9px}.book-team button{min-height:44px;padding:10px 13px;margin-top:9px;border:0;border-radius:9px;background:#28523f;color:#fff}.book-album{padding:12px;background:#0d2b37e8;border-radius:12px;margin-bottom:15px}.book-album summary{cursor:pointer;min-height:44px;font-size:16px;color:#fff1c7}.book-album article{padding:12px;border:1px solid #ead39c55;border-radius:12px;margin:12px 0;background:#15353c}.book-album img{width:70px;height:85px;object-fit:cover;float:left;margin:0 12px 8px 0;border-radius:8px}.book-album article p{font-size:13px;line-height:1.6}.book-album article::after{content:'';display:block;clear:both}.book-badges{display:flex;flex-wrap:wrap;gap:7px}.book-badges span{padding:7px 9px;border-radius:20px;background:#f1d69b;color:#223d30;font-size:12px}.scene-companion[data-motion=bounce].waving{animation:book-bounce .8s ease-out}.scene-companion[data-motion=still]{animation:none}@keyframes book-bounce{30%{transform:translate(-50%,-115%)}70%{transform:translate(-50%,-95%)}}

.map-title{flex-wrap:wrap;gap:12px}.map-title>div{min-width:0;flex:1 1 180px}.map-title h1{overflow-wrap:anywhere}.team-count{flex:0 0 auto}.is-sandbox .sandbox-banner{position:fixed;inset:0 0 auto;width:100%}.is-sandbox body{padding-top:var(--sandbox-banner-height,72px)}.is-sandbox .story-experience{top:var(--sandbox-banner-height,72px);height:calc(100dvh - var(--sandbox-banner-height,72px))}

/* Mobile winter story: keep artwork centered inside flexible portrait frames. */
.rpg-ui .scene-stage,.rpg-ui .adv-art{min-width:0;overflow:clip}
.rpg-ui .scene-companions,.rpg-ui #advActors{max-width:100%}
.rpg-ui .scene-companion img,.rpg-ui .adv-actor img{object-fit:contain;object-position:center bottom}
.rpg-ui .scene-task-slot,.rpg-ui .story-panel{min-width:0;overflow-wrap:anywhere}
@media(max-width:650px){.rpg-ui .game{display:flex;flex-direction:column;align-items:stretch}.rpg-ui .game>*{width:100%;min-width:0}.rpg-ui .scene-narration{left:12px;right:12px}.rpg-ui .story-panel{position:relative;top:auto}}

.family-edition .choices{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px}.family-edition .choice{min-height:54px}
