.world-shell{position:relative;width:100%;min-width:0;color:#f8f1dd;border:1px solid #ffffff24;border-radius:26px;background:#112e32;box-shadow:0 24px 80px #06181966;overflow:hidden}.world-toolbar{display:flex;justify-content:space-between;align-items:center;gap:18px;padding:22px 24px 10px}.world-kicker{color:#e9cb83;font-size:10px;letter-spacing:.18em;font-weight:800}.world-toolbar h2{font-size:clamp(21px,2.5vw,34px);line-height:1.15;letter-spacing:-.03em;margin:7px 0}.world-tools{display:flex;gap:7px;flex-wrap:wrap;justify-content:flex-end}.world-tools button{border:1px solid #e6d49d66;background:#1f4447;color:#fff4d5;padding:9px 12px;border-radius:10px;font-size:12px;min-height:40px}.world-tools button:disabled{opacity:.4;cursor:default}.world-tools button:focus-visible,.world-place:focus-visible{outline:3px solid #fff2aa;outline-offset:3px}.world-guide{font-size:12px;color:#bfd0c8;padding:0 24px 14px;margin:0;line-height:1.6}.world-viewport{width:100%;height:clamp(560px,78svh,980px);max-width:none;max-height:none;aspect-ratio:auto!important;border-radius:0;position:relative;overflow:hidden;isolation:isolate;touch-action:none;cursor:grab;background:#14323a;justify-self:stretch;user-select:none}.world-viewport:active{cursor:grabbing}.world-canvas{position:relative;transform-origin:0 0;will-change:transform;min-height:0}.world-canvas>img{position:absolute!important;inset:0;width:100%!important;height:100%!important;max-height:none!important;object-fit:fill!important;border:0!important;border-radius:0!important;box-shadow:none!important;pointer-events:none;user-select:none;-webkit-user-drag:none}.world-canvas .art-stamp{display:none}.world-canvas .map-pin{z-index:5}.world-canvas .walker{z-index:4}.world-story{padding:21px 26px 24px;background:linear-gradient(100deg,#173b3e,#102b31);border-top:1px solid #cdb26f44}.world-page{font-size:10px;color:#e7c983;font-weight:800;letter-spacing:.17em;margin:0 0 7px}.world-story h3{font-size:24px;color:#fff2ce;margin:0 0 8px}.world-narrative{color:#d2ded5;font-size:14px;line-height:1.7;max-width:850px;margin:0}.world-chapters{display:flex;gap:7px;margin-top:15px}.world-chapters span{height:5px;width:32px;background:#ffffff20;border-radius:5px}.world-chapters .lit{background:#ebc979;box-shadow:0 0 9px #edc56b66}.world-places,.world-decor{position:absolute;inset:0;pointer-events:none}.world-places{z-index:6}.world-place{position:absolute;transform:translate(-50%,-50%);display:flex;align-items:center;flex-direction:column;gap:5px;pointer-events:auto;border:0;background:none;color:#fff7dd;text-shadow:0 2px 6px #07171e;min-width:75px;padding:5px;cursor:pointer}.world-place>span{display:grid;place-items:center;width:46px;height:46px;border:1px solid #ffe2a4;border-radius:50%;background:#183841d9;box-shadow:0 0 0 6px #f3d48d19,0 0 24px #f5d39070;font-size:24px;transition:transform .2s}.world-place:hover>span{transform:scale(1.15)}.world-place small{background:#102f39e8;border-radius:7px;padding:4px 7px;font-size:10px;white-space:nowrap}.world-place.visited>span{border-color:#b5ecce;box-shadow:0 0 0 5px #a6efc21c,0 0 20px #98dcaa66}.world-encounter{position:absolute;z-index:12;left:24px;right:24px;bottom:195px;max-width:550px;display:flex;gap:15px;align-items:start;padding:19px 20px;background:#fff8e9f5;color:#243f3c;border:1px solid #ebcd86;border-radius:17px;box-shadow:0 12px 45px #06171d70;backdrop-filter:blur(12px)}.world-encounter strong{font-size:18px}.world-encounter p{font-size:13px;line-height:1.65;margin:7px 0 0}.world-encounter>button{border:0;background:#e9dfc8;color:#314b43;border-radius:50%;min-width:30px;height:30px;font-size:20px}.world-decor{z-index:2;overflow:hidden}.world-decor [data-unlock]{opacity:0;transition:opacity 1.2s}.world-decor .unlocked{opacity:1}.world-moon{position:absolute;width:12%;aspect-ratio:1;border-radius:50%;left:76%;top:3%;background:radial-gradient(circle,#fff4c483,#ffe8a512,transparent 70%);mix-blend-mode:screen}.world-path-lights,.world-window-lights,.world-fireflies{position:absolute;inset:0}.world-path-lights i{position:absolute;width:8px;height:12px;border-radius:50%;background:#ffe9ab;box-shadow:0 0 12px 5px #ffe09d,0 0 25px 10px #ffb64277;animation:world-twinkle 3s ease-in-out infinite alternate}.world-window-lights i{position:absolute;width:1.5%;height:1.1%;background:#ffd879;box-shadow:0 0 15px 7px #ffb85188;border-radius:2px;mix-blend-mode:screen}.world-fireflies i{position:absolute;color:#fff2a2;font-size:20px;text-shadow:0 0 13px #ffec7e;animation:world-float 5s ease-in-out infinite alternate}.world-rabbit{position:absolute;left:28%;top:59%;font-size:clamp(25px,4vw,47px);filter:drop-shadow(0 6px 4px #112d3d77)}.world-lake-glow{position:absolute;left:53%;top:46%;width:23%;height:13%;background:radial-gradient(ellipse,#c4f7ff88,#65d4e533,transparent 70%);mix-blend-mode:screen;animation:world-twinkle 4s ease-in-out infinite alternate}.world-aurora{position:absolute;left:5%;top:0;width:94%;height:29%;border-radius:50%;background:linear-gradient(125deg,transparent 15%,#65f2b540,#5da6ff60,#dd8dff38,transparent 80%);filter:blur(20px);mix-blend-mode:screen;animation:world-aurora 12s ease-in-out infinite alternate}.world-sled{position:absolute;left:42%;top:10%;font-size:55px;transform:rotate(-12deg)}.world-sled span{font-size:25px;color:#fff1b2;text-shadow:0 0 15px #fff7aa}.world-shooting-star{position:absolute;left:67%;top:7%;font-size:28px;color:#fff5c2;text-shadow:-20px 10px 8px #fff4bf;animation:world-star 8s infinite}.world-tree-glow{position:absolute;left:26%;top:67%;font-size:90px;color:#fff1a5;text-shadow:0 0 20px #ffd759,0 0 70px #ffb95e;mix-blend-mode:screen;animation:world-twinkle 2s ease-in-out infinite alternate}.world-celebration{position:absolute;left:30%;top:30%;font-size:80px;color:#ffdf85;text-align:center;text-shadow:0 0 25px #fff0ae;animation:world-float 4s ease-in-out infinite alternate}.world-animal,.world-flurry,.world-ripples{opacity:0;position:absolute}.world-animal{left:74%;top:64%;font-size:65px}.world-flurry{left:10%;top:32%;color:#f4ffff;font-size:60px;text-shadow:0 0 18px #fff}.world-ripples{left:53%;top:47%;width:22%;height:12%;border:5px solid #c9fbff;border-radius:50%;box-shadow:0 0 24px #a5e6ff}.world-shell[data-effect=deer] .world-animal{animation:world-hop 3.5s both}.world-shell[data-effect=forest] .world-flurry{animation:world-snow-puff 3.5s both}.world-shell[data-effect=lake] .world-ripples{animation:world-ripple 3.5s both}.world-shell[data-effect=windows] .world-window-lights,.world-shell[data-effect=bells] .world-window-lights{opacity:1;animation:world-twinkle .6s 5 alternate}.world-shell[data-effect=tree] .world-tree-glow{opacity:1;animation:world-twinkle .5s 6 alternate}.world-shell[data-effect=sleigh] .world-sled{opacity:1;animation:world-sleigh 4s both}.world-new-chapter .world-story{animation:world-chapter 1.6s ease-out}.world-expanded{position:fixed;inset:12px;z-index:60;width:auto;display:flex;flex-direction:column;border-radius:20px}.world-expanded .world-viewport{flex:1;min-height:0;height:auto}.world-expanded .world-story{padding:12px 24px}.world-expanded .world-story h3{font-size:19px}.world-expanded .world-narrative{font-size:12px}.world-expanded .world-encounter{bottom:170px}.world-other-event .world-decor,.world-other-event .world-places{display:none}.lobby{display:flex;flex-direction:column;align-items:stretch;gap:32px;padding:30px 0 40px}.lobby>.world-shell{order:-1}.lobby-copy{max-width:1100px;width:100%;margin:auto}.lobby-copy .mission-list{max-width:none;grid-template-columns:repeat(3,minmax(0,1fr))}.lobby-copy .intro{max-width:850px}.game{display:flex;flex-direction:column;gap:25px}.map-panel{width:100%}.game>.story-panel{width:100%;min-height:0}.shell{width:min(1720px,100%)}.game .world-viewport{height:clamp(600px,82svh,1100px)}
@keyframes world-twinkle{to{filter:brightness(1.4);transform:scale(1.07)}}@keyframes world-float{to{transform:translate(15px,-17px)}}@keyframes world-aurora{to{transform:translate(4%,10%) skewX(-12deg)}}@keyframes world-star{0%,65%{transform:translate(0,0);opacity:0}70%{opacity:1}90%,100%{transform:translate(-260px,150px);opacity:0}}@keyframes world-hop{0%{opacity:0;transform:translate(40px,0)}15%,85%{opacity:1}40%{transform:translate(-45px,-40px)}70%{transform:translate(-90px,0)}100%{opacity:0;transform:translate(-150px,-20px)}}@keyframes world-snow-puff{0%{opacity:0;transform:scale(.6)}25%{opacity:1}100%{opacity:0;transform:translate(35px,70px) scale(1.4)}}@keyframes world-ripple{0%{opacity:0;transform:scale(.3)}20%{opacity:1}100%{opacity:0;transform:scale(1.5)}}@keyframes world-sleigh{0%{transform:translate(200px,100px);opacity:0}20%,75%{opacity:1}100%{transform:translate(-400px,-100px);opacity:0}}@keyframes world-chapter{0%{box-shadow:inset 0 0 90px #f1cb7d77}100%{box-shadow:inset 0 0 0 transparent}}
@media(min-width:1100px){.game>.story-panel{display:block;max-width:1100px;margin:auto;padding:35px 45px}.game>.story-panel .puzzle-area{max-width:850px;margin-left:auto;margin-right:auto}.lobby-copy .mission-link{gap:8px;padding:13px}.lobby-copy .mission-link b{font-size:13px}}
@media(max-width:700px){.world-toolbar{flex-direction:column;align-items:start;padding:17px 15px 8px;gap:8px}.world-tools{justify-content:start;gap:6px}.world-tools button{font-size:11px;padding:8px 10px}.world-guide{padding:0 15px 12px;font-size:11px}.world-viewport,.game .world-viewport{height:65svh;min-height:420px}.world-story{padding:18px 16px}.world-story h3{font-size:21px}.world-narrative{font-size:13px}.world-encounter{left:12px;right:12px;bottom:230px;padding:14px;gap:9px}.world-place>span{width:38px;height:38px;font-size:21px}.world-place small{font-size:9px}.world-place{min-width:65px}.world-expanded{inset:0;border-radius:0}.world-expanded .world-viewport{min-height:150px}.world-expanded .world-story{max-height:155px;overflow:auto;padding:12px 15px}.world-expanded .world-guide{display:none}.world-expanded .world-encounter{bottom:165px}.lobby-copy .mission-list{grid-template-columns:1fr}.lobby{gap:25px;padding-top:20px}.world-chapters{gap:5px}.world-chapters span{width:24px}.world-sled{font-size:35px}.world-celebration{font-size:48px}}
@media(prefers-reduced-motion:reduce){.world-shell *,.world-shell *::before,.world-shell *::after{animation:none!important;transition:none!important}.world-shell[data-effect=deer] .world-animal,.world-shell[data-effect=forest] .world-flurry,.world-shell[data-effect=lake] .world-ripples{opacity:1}.world-shooting-star{opacity:1}.world-canvas{will-change:auto}}

.world-return{display:flex;justify-content:space-between;align-items:center;gap:12px;padding:12px 14px;margin-bottom:23px;border:1px solid #dcc88d;border-radius:12px;background:#fff8e4;font-size:12px;color:#526b5d}.world-return button{border:0;background:#234b45;color:#fff4d9;padding:9px 12px;border-radius:9px;white-space:nowrap;font-size:12px}.world-toolbar h2{overflow-wrap:anywhere}

.world-chapter-map .map-pins{display:none}.world-chapter-map .world-place:disabled{opacity:.42;cursor:default}.world-chapter-map .world-place:disabled span{animation:none;box-shadow:none}.world-chapter-map .world-place small{white-space:normal;max-width:150px}

.world-other-event.world-chapter-map .world-places{display:block}

.world-chapter-map :is(.map-pin:not(.pin-finale),.walker,.route-line,.map-path,.map-route,.map-caption){display:none}
.world-chapter-map .map-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.world-chapter-map .world-place{min-width:48px;min-height:48px}
.world-chapter-map .world-place small{white-space:nowrap;max-width:128px;overflow:hidden;text-overflow:ellipsis;font-size:9px}

.world-chapter-map .pin-finale{left:auto!important;top:auto!important;right:6%;bottom:7%;transform:none;width:56px;height:56px;min-width:56px;min-height:56px;padding:5px;border:1px solid rgba(255,255,255,.3);border-radius:50%;background:rgba(36,68,80,.75);color:#fff5df;box-shadow:none}
.world-chapter-map .pin-finale>span{font-size:18px}.world-chapter-map .pin-finale small{font-size:8px}.world-chapter-map .pin-finale i{font-size:9px}

.world-chapter-map .walker{display:none!important}

.world-companions{position:absolute;inset:0;z-index:7;pointer-events:none}
.world-companion{position:absolute;transform:translate(-50%,-100%);transform-origin:50% 100%;width:clamp(55px,18vw,100px);min-width:48px;min-height:48px;padding:0;border:0;border-radius:20px;background:transparent;color:#fff5e5;pointer-events:auto;cursor:pointer}
.world-companion img{display:block;max-width:100%;height:clamp(65px,15vw,110px);margin:auto;object-fit:contain;transform-origin:50% 90%}
.world-companion small{display:block;font:11px/1.4 Georgia,serif;background:rgba(26,55,66,.68);border-radius:12px;padding:2px 6px;width:max-content;max-width:100%;margin:3px auto 0}
.world-companion::before{content:'';position:absolute;inset:8%;border-radius:50%;background:radial-gradient(ellipse,rgba(255,223,173,.2),transparent 70%);opacity:0;pointer-events:none;transition:opacity .3s}
.world-companion.fairy-greeted::before{opacity:.45}
.fairy-in-view .world-companion img{animation:fairy-breathe 7s cubic-bezier(.4,0,.2,1) infinite}
@media(prefers-reduced-motion:reduce){.world-companion img{animation:none!important}}

/* The portrait artwork keeps its proportions at every window size. */
.world-viewport{background:radial-gradient(ellipse at 50% 40%,#254957,#102c35 75%)}
.shell:has(#gameView){max-width:1480px}
.world-shell .world-toolbar>div{min-width:0}
.world-shell .world-tools{min-width:0}
.world-shell .world-tools button{min-height:44px}
.world-chapter-map .world-place:disabled{pointer-events:none}
.world-chapter-map .world-place:not(:disabled){z-index:2}
@media(min-width:1000px){
  .world-chapter-map:not(.world-expanded){display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);grid-template-rows:auto auto 1fr;align-items:start}
  .world-chapter-map:not(.world-expanded)>.world-viewport{grid-column:1;grid-row:1 / 4;height:clamp(300px,calc(100svh - 400px),820px);min-height:0;align-self:stretch}
  .world-chapter-map:not(.world-expanded)>.world-toolbar{grid-column:2;grid-row:1;flex-direction:column;align-items:start;gap:14px;padding:24px 24px 12px}
  .world-chapter-map:not(.world-expanded) .world-tools{justify-content:start}
  .world-chapter-map:not(.world-expanded)>.world-guide{grid-column:2;grid-row:2;padding-bottom:20px}
  .world-chapter-map:not(.world-expanded)>.world-story{grid-column:2;grid-row:3;align-self:stretch;border-top:0;background:transparent;padding:12px 24px 24px}
  .game .map-title h1{font-size:clamp(24px,2.3vw,34px)}
  .preview-controls{grid-template-columns:auto minmax(0,1fr) auto;align-items:center;gap:8px 16px}
}
.world-expanded{max-height:calc(100dvh - 24px);overflow:auto}
.world-expanded>.world-toolbar{flex:0 0 auto;padding:12px 16px 8px}
.world-expanded>.world-guide{display:none}
.world-expanded>.world-viewport{flex:1 1 120px;min-height:120px;height:auto}
.world-expanded>.world-story{flex:0 0 auto;max-height:min(22dvh,120px);overflow:auto}
@media(max-width:700px){.world-expanded{max-height:100dvh}}
/* Map journey: original landscape and percentage coordinates remain proportional. */
.journey-actor,.journey-pois,.journey-trail,.journey-test-tools,.journey-counter,.journey-status{display:none}
html.map-journey-open{overflow:hidden}
body.map-journey #gameView:not([hidden]){position:fixed;z-index:50;inset:var(--play-top,0px) 0 auto;height:var(--play-height,100dvh);width:100%;max-width:none;margin:0;padding:0;display:block;overflow:hidden;background:#143849}
body.map-journey #gameView>.map-panel{display:block;height:100%;width:100%;margin:0;padding:0;border:0;border-radius:0;background:transparent;box-shadow:none;overflow:hidden}
body.map-journey #gameView .world-shell{position:relative;display:block;height:100%;max-height:none;width:100%;max-width:none;margin:0;border:0;border-radius:0;background:#143849;box-shadow:none;overflow:hidden}
body.map-journey #gameView .world-shell::before{content:'';position:absolute;inset:0;background:radial-gradient(ellipse at 50% 40%,#244956,#102c35 80%);pointer-events:none}
body.map-journey #gameView .world-viewport{position:absolute;inset:68px 0 var(--rpg-hud-height,70px);height:auto!important;min-height:0!important;max-height:none!important;width:100%;aspect-ratio:auto;border:0;border-radius:0;background:transparent}
body.map-journey #gameView .world-toolbar{position:absolute;z-index:25;inset:8px 10px auto;display:flex;flex-direction:row;justify-content:space-between;align-items:center;gap:8px;min-height:52px;height:56px;padding:4px 8px;border:1px solid #ffffff4d;border-radius:18px;background:#173f4bcf;color:#f5f4e5;backdrop-filter:blur(8px)}
body.map-journey #gameView .world-toolbar>div:first-child{flex:1;min-width:0;padding:0}
body.map-journey #gameView .world-tools{display:flex;flex-wrap:nowrap;align-items:center;gap:4px;padding:0;margin:0;overflow:auto}
body.map-journey #gameView .world-tools button{min-height:48px;min-width:48px;flex:none;padding:6px;font-size:12px;border-radius:12px}
body.map-journey #gameView .world-toolbar :is(h2,.world-kicker),body.map-journey #gameView :is(.world-guide,.world-story,.map-title,.story-launch,.map-pin,.walker,.map-caption,.route-line),body.map-journey #gameView .world-tools :is([data-world=task],[data-world=expand]){display:none!important}
body.map-journey #gameView>.story-panel{display:none}
body.map-journey #gameView .journey-counter{display:block;color:#fff1d2;font:14px/1.4 Georgia,serif;white-space:nowrap}
body.map-journey #gameView .world-places{z-index:6}
body.map-journey #gameView .world-place{min-width:48px;min-height:48px;width:48px;height:48px;overflow:visible;padding:0}
body.map-journey #gameView .world-place>span{flex:0 0 44px;width:44px;height:44px;min-height:44px}
body.map-journey #gameView .world-place small{position:absolute;top:calc(100% + 3px);left:50%;transform:translateX(-50%);display:block;flex:none;width:max-content;max-width:110px;height:auto;min-height:20px;padding:3px 6px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;color:#f7f5e9;background:#163c4be8;font:11px/1.35 system-ui}
body.map-journey #gameView .world-place:disabled{opacity:.35}
body.map-journey #gameView .journey-current>span{border-color:#fff3ca;box-shadow:0 0 12px #ffdda880;background:#325a62ed}
body.map-journey #gameView .journey-complete>span::after{content:'✓';position:absolute;right:-4px;top:-5px;display:grid;place-items:center;width:19px;height:19px;border-radius:50%;background:#d9eadb;color:#24493b;font:700 12px system-ui}
body.map-journey #gameView .journey-beacon{outline:3px solid #fff0b6;outline-offset:5px;border-radius:50%}
body.map-journey #gameView .journey-trail{position:absolute;inset:0;display:block;width:100%;height:100%;z-index:6;overflow:visible;pointer-events:none;filter:drop-shadow(0 0 2px #305c99) drop-shadow(0 0 5px #d5f7ff)}
.journey-footprints{fill:none;stroke:#ecfcff;stroke-width:.7;stroke-dasharray:.28 1.05;stroke-linecap:round;opacity:.95}
body.map-journey #gameView .journey-actor{position:absolute;z-index:7;display:block;width:clamp(48px,17%,98px);height:clamp(54px,18%,132px);padding:0!important;border:0!important;outline-offset:6px;background:transparent!important;box-shadow:none!important;transform:translate(-50%,-100%);touch-action:manipulation;overflow:visible;cursor:pointer}
body.map-journey #gameView .journey-actor::before{content:'';position:absolute;width:62%;height:9%;left:19%;bottom:1%;background:#12394f66;border-radius:50%;filter:blur(2px)}
body.map-journey #gameView .journey-actor>img,body.map-journey #gameView .journey-actor>canvas{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;pointer-events:none;background:transparent}
body.map-journey #gameView .journey-actor>[hidden],body.map-journey #gameView .journey-trail[hidden]{display:none!important}
body.map-journey #gameView .journey-pet{width:clamp(40px,13%,64px);height:clamp(44px,15%,84px)}
body.map-journey #gameView .journey-name{position:absolute;left:50%;top:100%;transform:translateX(-50%);max-width:110px;padding:3px 6px;background:#143a48e8;border-radius:7px;color:#f8f4db;font:10px/1.4 system-ui;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
body.map-journey #gameView .journey-walking>img{animation:journey-steps .65s ease-in-out infinite}
@keyframes journey-steps{0%,100%{transform:translateY(0) rotate(-2deg)}50%{transform:translateY(-3px) rotate(2deg)}}
body.map-journey #gameView .journey-pois{position:absolute;z-index:26;display:flex;flex-direction:column;gap:5px;left:8px;top:78px;max-height:calc(var(--play-height,100dvh) - 170px);overflow:auto;padding:3px}
body.map-journey #gameView .journey-pois button{display:grid;place-items:center;flex:none;min-width:48px;min-height:48px;width:48px;height:48px;border-radius:50%;border:1px solid #ffffff4d;background:#1c4552d9;color:#f5f4e1;backdrop-filter:blur(6px);font:23px/1 Georgia,serif;padding:6px}
body.map-journey #gameView .journey-status{position:absolute;display:block;width:1px;height:1px;overflow:hidden;clip-path:inset(50%)}
body.map-journey #gameView .journey-test-tools{position:absolute;z-index:27;display:block;left:10px;right:10px;bottom:calc(var(--rpg-hud-height,70px) + 4px);max-height:36vh;overflow:auto;border-radius:16px}
body.map-journey #gameView .journey-test-tools:empty{display:none}
body.map-journey #gameView .journey-test-tools .preview-controls{position:static;margin:0;font-size:12px}
body.map-journey #gameView .world-encounter{position:absolute;z-index:28;left:12px;right:12px;bottom:calc(var(--rpg-hud-height,70px) + 16px);width:min(540px,calc(100% - 24px));max-height:45vh;margin:auto;overflow:auto;border:1px solid #ffffff4d;border-radius:20px;background:#f3f6ebf5;color:#29474c;padding:18px 64px 18px 18px;box-shadow:0 12px 40px #06253655}
body.map-journey #gameView .world-encounter>button{min-width:48px;min-height:48px;right:7px;top:7px}
body.map-journey #gameView .journey-has-pet .world-companion[data-companion=akira]{display:none}
@media(prefers-reduced-motion:reduce){body.map-journey #gameView .journey-walking>img{animation:none}}

body.map-journey #gameView .journey-mover{position:absolute;inset:0;width:100%;height:100%;pointer-events:none;z-index:7;will-change:transform}
body.map-journey #gameView .journey-mover>.journey-actor{left:0;top:0;pointer-events:auto}
body.map-journey #rpgActionBar [data-rpg-action=task],body.map-journey>#rpgActionBar [data-rpg-action=journal]{display:none}

/* Illustrated sheets keep the original artists' frames and proportions. */
body.map-journey #gameView .journey-actor{width:clamp(42px,12%,78px);height:auto;aspect-ratio:3/4;min-height:48px}
body.map-journey #gameView .journey-actor>.world-walk-sprite{position:absolute;inset:0;display:block;pointer-events:none;image-rendering:auto;background-repeat:no-repeat;transform-origin:50% 85%;filter:drop-shadow(0 3px 2px #122b4055)}
body.map-journey #gameView .journey-actor>.world-walk-sprite[hidden]{display:none!important}
body.map-journey #gameView .journey-walking>img{animation:none}
body.map-journey #gameView .journey-entrance{position:absolute;z-index:9;transform:translate(-50%,0);box-sizing:border-box;width:max-content;max-width:240px;min-width:48px;min-height:48px;border:1px solid #ffffff4d;background:#173c42f5;backdrop-filter:blur(8px);color:#fff4d9;border-radius:20px;padding:12px 16px;font:600 13px/1.4 system-ui,sans-serif;text-align:center;white-space:normal;word-break:normal;overflow-wrap:break-word;hyphens:none;touch-action:manipulation;box-shadow:0 0 18px #f5dca833}
body.map-journey #gameView .world-canvas [data-entrance-reserved=true],body.map-journey #gameView .world-canvas [data-entrance-reserved=true] *{pointer-events:none!important}
body.map-journey #gameView .journey-entrance[hidden]{display:none}
body.map-journey #gameView .world-tools [data-world=follow]{min-width:74px}
body.map-journey #gameView .world-viewport{inset:76px 0 var(--rpg-hud-height,70px)}
body.map-journey #gameView .journey-pois{inset:auto auto 8px 50%;transform:translateX(-50%);display:flex;flex-direction:row;max-width:calc(100% - 16px);max-height:62px;overflow-x:auto;overflow-y:hidden;border-radius:32px;background:#163d44b8;padding:5px;gap:5px;backdrop-filter:blur(8px)}
body.map-journey #gameView .journey-pois[data-ui=compact]{inset:auto auto 8px 50%;transform:translateX(-50%);width:min(520px,calc(100% - 16px));max-height:none;overflow:visible;border-radius:22px;padding:5px;gap:4px;box-sizing:border-box}
body.map-journey #gameView .journey-pois[data-ui=compact]>button{display:flex;flex-direction:column;justify-content:center;gap:3px;flex:1 1 0;min-width:0;width:auto;height:auto;min-height:56px;border-radius:17px;font:600 12px/1.2 system-ui,sans-serif;padding:6px 3px;white-space:normal}
.journey-action-label{font:600 12px/1.2 system-ui,sans-serif}
.journey-more-content{display:grid;gap:9px;min-width:0}.journey-more-content>button{width:100%;min-height:48px;text-align:left;justify-content:flex-start;font:15px/1.4 system-ui,sans-serif}
.journey-pois>section[hidden]{display:none!important}
body.map-journey #gameView .journey-pois button[hidden]{display:none!important}
body.map-journey:not(:has(#storyExperience:not([hidden]))) #rpgActionBar{display:none!important}
body.map-journey #gameView .journey-counter{min-height:48px;display:flex;align-items:center;cursor:help}
body.map-journey #gameView .world-shell,body.map-journey #gameView .world-viewport{overflow:clip}
body.map-journey #gameView .journey-actor{width:clamp(14px,12%,78px);min-width:0!important;min-height:0!important}
body.map-journey #gameView .journey-pois svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
body.map-journey #gameView .world-place{transform:translate(-50%,-50%) scale(var(--world-ui-scale,1))}
body.map-journey #gameView .journey-entrance{transform:translate(-50%,0);transform-origin:50% 0}
body.map-journey #gameView .journey-name{transform:translateX(-50%) scale(var(--world-ui-scale,1));transform-origin:50% 0}

/* One measured map header; visual markers never change authored walking points. */
.journey-map-controls[hidden]{display:none!important}
body.map-journey #gameView .world-shell[data-journey-goals=true]>.world-toolbar[data-journey-hud=compact]{display:grid;grid-template-columns:minmax(0,1fr) 48px;align-items:center;gap:4px 8px;inset:6px 8px auto;box-sizing:border-box;height:auto;min-height:60px;padding:5px 6px;border-radius:17px;background:#153c46db}
body.map-journey #gameView .world-toolbar[data-journey-hud=compact]>[hidden]{display:none!important}
body.map-journey #gameView .world-toolbar[data-journey-hud=compact]>.journey-goalbar{position:static;display:grid;grid-template-columns:minmax(0,1fr) 72px;align-items:center;gap:7px;min-width:0;min-height:48px;padding:0;border:0;background:none;color:#fff7e7;font:13px/1.35 system-ui,sans-serif}
body.map-journey #gameView .journey-goalbar>p{min-width:0;margin:0;overflow-wrap:anywhere;font:inherit;color:inherit}
body.map-journey #gameView .journey-goalbar>button{box-sizing:border-box;min-height:48px;min-width:48px;width:72px;padding:5px 7px;border:1px solid #fff2ce65;border-radius:12px;background:#ffffff12;color:#fff7e7;font:600 12px/1.3 system-ui,sans-serif;white-space:normal;touch-action:manipulation}
body.map-journey #gameView .world-toolbar[data-journey-hud=compact]>.journey-map-controls{display:contents}
body.map-journey #gameView .journey-map-controls>summary{box-sizing:border-box;display:grid;place-items:center;grid-column:2;grid-row:1;width:48px;min-width:48px;min-height:48px;padding:4px;border:1px solid #ffffff4d;border-radius:12px;list-style:none;background:#ffffff0d;color:#fff7e7;font:600 11px/1.3 system-ui,sans-serif;text-align:center;cursor:pointer;touch-action:manipulation}
body.map-journey #gameView .journey-map-controls>summary::-webkit-details-marker{display:none}
body.map-journey #gameView .journey-map-controls[open]>summary{background:#ffffff24;border-color:#fff0bb9c}
body.map-journey #gameView .world-toolbar[data-journey-hud=compact] .journey-map-controls>.world-tools{grid-column:1/-1;grid-row:2;display:flex;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:5px;min-width:0;padding:5px 0 0;margin:0;overflow:visible;border-top:1px solid #ffffff25}
body.map-journey #gameView .journey-map-controls:not([open])>.world-tools{display:none!important}
body.map-journey #gameView .world-toolbar[data-journey-hud=compact] .world-tools button{min-width:48px;min-height:48px;padding:6px 9px;border-radius:12px;font-size:12px}
body.map-journey #gameView .world-shell[data-journey-goals=true]>.world-viewport{top:var(--journey-goal-clearance,72px)}
body.map-journey #gameView .journey-goal-edge{position:absolute;z-index:28;display:grid;place-items:center;box-sizing:border-box;width:48px;height:48px;min-width:48px;min-height:48px;max-width:48px;padding:0;border:1px solid #ffffff80;border-radius:50%;transform:translate(-50%,-50%);background:#163f4bde;color:#fff7e7;backdrop-filter:blur(7px);box-shadow:0 3px 12px #092a3b33;touch-action:manipulation;opacity:1;transition:opacity .24s ease-out}
.journey-goal-arrow{font:25px/1 Georgia,serif;color:#f7e4bc;pointer-events:none}
body.map-journey #gameView .journey-goal-edge-name{position:absolute;left:50%;top:calc(100% + 6px);box-sizing:border-box;max-width:240px;padding:7px 10px;border:1px solid #ffffff50;border-radius:11px;background:#153b46f7;color:#fff7e7;font:13px/1.35 system-ui,sans-serif;text-align:center;white-space:normal;overflow-wrap:anywhere;transform:translateX(calc(-50% + var(--goal-tip-shift,0px)));visibility:hidden;opacity:0;pointer-events:none}
body.map-journey #gameView .journey-goal-edge[data-tip-side=above]>.journey-goal-edge-name{top:auto;bottom:calc(100% + 6px)}
body.map-journey #gameView .journey-goal-edge:focus-visible>.journey-goal-edge-name{visibility:visible;opacity:1}
@media(hover:hover){body.map-journey #gameView .journey-goal-edge:hover>.journey-goal-edge-name{visibility:visible;opacity:1}}
body.map-journey #gameView .world-panning .journey-goal-edge{opacity:0;visibility:hidden;pointer-events:none;transition:none}
body.map-journey #gameView :is(.journey-goalbar,.journey-goal-edge)[hidden]{display:none!important}
body.map-journey #gameView .world-place>.journey-goal-number{position:absolute;z-index:5;top:50%;left:50%;display:grid;place-items:center;width:36px;height:40px;box-sizing:border-box;transform:translate(-50%,-50%);border:1px solid #ffffff9c;border-radius:12px 12px 15px 15px;background:#194752b8;backdrop-filter:blur(6px);color:#fff9e8;text-shadow:0 1px 3px #0b2939b3;box-shadow:inset 0 1px 5px #fff7d629,0 2px 8px #1037434d;font:700 19px/1 Georgia,serif;pointer-events:none}
body.map-journey #gameView .world-place>.journey-goal-number[data-state=current]{animation:journey-marker-warmth 5.6s ease-in-out infinite}
body.map-journey #gameView .world-place>.journey-goal-number[data-state=complete]{width:21px;height:21px;top:10px;left:36px;border:1px solid #d5e9d88a;border-radius:50%;background:#315c52bb;color:#eff8ed;box-shadow:none;font-size:13px}
body.map-journey #gameView .world-place>.journey-goal-number[hidden]{display:none!important}
body.map-journey #gameView .world-place.journey-current>small{max-width:180px;background:#173d48e8;color:#fff6df;font-size:12px}
body.map-journey #gameView :is(.journey-goalbar>button,.journey-goal-edge,.journey-map-controls>summary):focus-visible{outline:3px solid #fff1b8;outline-offset:3px}
body.winter-replay .journey-goalbar,body.winter-replay .journey-map-controls{visibility:hidden;pointer-events:none}
/* Authored location targets stay fixed. Captions never become displaced targets. */
body.map-journey #gameView .world-place small{pointer-events:none;transform:translate(calc(-50% + var(--journey-label-x,0px)),var(--journey-label-y,0px))}
body.map-journey #gameView .world-place[data-label-hidden=true] small{visibility:hidden}
body.map-journey #gameView .journey-actor[data-presentation=decorative],body.map-journey #gameView .journey-actor[data-presentation=decorative] *{pointer-events:none!important;cursor:default}
body.map-journey #gameView .journey-entrance:not([hidden]):not(:disabled){animation:journey-entrance-warmth 4.8s ease-in-out infinite}
@keyframes journey-entrance-warmth{0%,100%{box-shadow:0 0 12px #f5dca82e;border-color:#ffffff66}50%{box-shadow:0 0 22px #f5dca85c;border-color:#ffe1ab9c}}
html.comfort-reduce body.map-journey #gameView .journey-entrance,body.map-journey #gameView .world-shell:has(.world-canvas[data-winter-atmosphere-intensity=quiet])>.journey-entrance{animation:none!important}
@media(prefers-reduced-motion:reduce){body.map-journey #gameView .journey-entrance{animation:none!important}}
body.map-journey #gameView :is(.world-shell[data-journey-paused=true],.world-panning) .journey-goal-number{animation-play-state:paused}
body.map-journey #gameView .world-canvas:is([data-winter-atmosphere-intensity=quiet],[data-winter-atmosphere-paused=true]) .journey-goal-number,html.comfort-reduce body.map-journey #gameView .journey-goal-number{animation:none!important}
@keyframes journey-marker-warmth{0%,100%{box-shadow:inset 0 1px 5px #fff7d629,0 2px 8px #1037434d}50%{box-shadow:inset 0 1px 7px #fff0b647,0 0 14px #f1cb865e}}
@media(min-width:900px){body.map-journey #gameView .world-toolbar[data-journey-hud=compact]>.journey-goalbar{font-size:15px;grid-template-columns:minmax(0,1fr) 92px;gap:16px}body.map-journey #gameView .journey-goalbar>button{width:92px;font-size:13px}}
@media(prefers-reduced-motion:reduce){.journey-goalbar,.journey-goal-edge,.journey-goal-number{animation:none!important;transition:none!important}}
/* Focus the live interaction while its own animals and props occupy the route. */
.world-canvas[data-map-event-active=true]>.winter-map-life{visibility:hidden;pointer-events:none}
.world-canvas[data-map-event-active=true] .world-place small{visibility:hidden}

.journey-album-entry{display:flex;align-items:center;justify-content:center;box-sizing:border-box;min-height:48px;padding:12px 16px;border:1px solid #91a597;border-radius:14px;background:#173e43;color:#fff;text-decoration:none;font:15px/1.4 system-ui,sans-serif;overflow-wrap:anywhere}.journey-more-content>.journey-album-entry{width:100%;text-align:left;justify-content:flex-start}.journey-album-entry[hidden]{display:none!important}
