/* Live landscape and projection controls */
#wishDelta:not(:empty){display:inline-block;margin-left:5px;background:#ffdda2;color:#283a33;padding:1px 5px;border-radius:12px;font:700 10px system-ui,sans-serif}.light-world .camera-bar{display:flex}.light-world .camera-bar button{display:none}
#gardenViewport{position:absolute;inset:0;display:none;z-index:1;overflow:hidden}
.world-active #gardenViewport{display:block;background:#a2c8cf}
#gardenViewport canvas{display:block;width:100%;height:100%;touch-action:none;cursor:grab}
#gardenViewport canvas:active{cursor:grabbing}
.world-active .sky-stage{display:none}
.world-active .field{visibility:hidden;pointer-events:none}
.world-active::after{content:"";position:absolute;inset:0;pointer-events:none;z-index:1;background:linear-gradient(140deg,#123f463d,transparent 40%),linear-gradient(0deg,#163a453b,transparent 17%)}
#wall .wall-head{z-index:2}.world-active .world-title{text-shadow:0 2px 8px #214d59b0}
.world-active .world-title .eyebrow{color:#fff8d9}.world-active .world-title h1{font-size:clamp(32px,3.65vw,71px);color:#fffdf3;letter-spacing:-.07em}
.world-active .world-title h1 span{color:#fff4ca;background:none}.world-active .caption{color:white}
.wall-count{background:#173b45e8;border-color:#e7f1db77}.current-count{color:#e4ecdb;font-size:11px}
.camera-bar{display:none;position:absolute;left:clamp(18px,3.5vw,68px);top:clamp(128px,17vh,190px);gap:3px;padding:4px;border:1px solid #fffff17a;border-radius:30px;background:#183541df;z-index:3;align-items:center;color:white;box-shadow:0 4px 15px #17323c30}
.world-active .camera-bar{display:flex}
.camera-bar span{font:700 10px system-ui,sans-serif;letter-spacing:.04em;padding:0 8px;color:#ffe6a5}
.camera-bar button{border:0;color:#f6f5e8;background:transparent;border-radius:18px;font-size:12px;padding:6px 10px}
.camera-bar button:hover,.camera-bar button:focus-visible{background:#f4ebcb;color:#23393f}
#wall:has(#gardenViewport[data-camera="tour"]) [data-camera="tour"]:is(button),#wall:has(#gardenViewport[data-camera="follow"]) [data-camera="follow"]:is(button),#wall:has(#gardenViewport[data-camera="overview"]) [data-camera="overview"]:is(button){background:#e6efd9;color:#263c3a}
.wish-metrics{padding:10px 14px;background:#12333eeb;border:1px solid #dbefdf75;border-radius:15px;backdrop-filter:blur(8px);color:#edf4e8;max-width:460px}
.metrics-title{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:5px}.metrics-title b{font-size:14px}.metrics-title a{font-size:11px;color:#ffdc87}
#topicCounts{display:flex;gap:7px 12px;flex-wrap:wrap}
#topicCounts span{font-size:11px;white-space:nowrap}#topicCounts i{display:inline-block;width:7px;height:7px;border-radius:50%;margin-right:4px}
.shelf-list{max-height:50vh;overflow:auto;display:grid;grid-template-columns:1fr 1fr;gap:7px}.shelf-list button{font-size:12px}
.topic-label{display:block}.topic-label small{display:block;font-size:12px;color:#c2cee2;margin:4px 0 8px}
#page-present{background:#101f29;min-height:calc(100dvh - 68px);color:#e9eee8}
.presentation{padding:clamp(12px,2.7vw,48px);max-width:1700px;margin:auto}
.stage-tools,.stage-footer,.stage-tools>div,.stage-switch{display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap;gap:8px 14px}
.stage-tools{margin-bottom:16px}.stage-tools>div:first-child{justify-content:flex-start}
.stage-tools span{color:#f4d590;font-size:12px}.stage-tools button,.stage-footer button{background:#243f49;color:#fff;border:1px solid #56747c;padding:7px 12px;border-radius:9px;font-size:12px}
.stage-tools button[aria-pressed="true"]{background:#f2e3b9;color:#223d41}
.stage-screen{position:relative;isolation:isolate;background:#f7f4e9;color:#213d43;min-height:clamp(370px,65vh,790px);border-radius:18px;overflow:hidden;display:grid}
.stage-screen:has(#stagePicture:not([hidden])){background:#07151c}
.stage-screen [hidden]{display:none!important}
#stageStatistic{position:relative;padding:clamp(25px,4.5vw,80px);isolation:isolate;background:radial-gradient(ellipse at 96% 14%,#ffc57260,transparent 43%),radial-gradient(ellipse at 95% 99%,#8fc6b763,transparent 52%)}
#stageStatistic::after{content:"";position:absolute;z-index:-1;right:-15%;top:20%;width:45%;aspect-ratio:1;border:1px solid #b5c7ab;border-radius:50%;box-shadow:0 0 0 25px #faf8ee65,0 0 0 26px #bacbb16b,0 0 0 60px #faf8ee40,0 0 0 61px #bacbb16b;pointer-events:none}
.stage-kicker{color:#637c72;font:750 clamp(10px,1vw,17px) system-ui,sans-serif;letter-spacing:.22em}
.stage-screen h1{font-size:clamp(33px,4.4vw,90px);letter-spacing:-.07em;line-height:1.15;margin:.37em 0}
.stage-screen h1 em{color:#386f60;font-style:normal}
#stageOverview>p{margin:12px 0 3px;font-size:clamp(13px,1.45vw,25px)}#stageTotal{font:bold clamp(56px,7vw,130px)/1.15 system-ui;color:#b4712a;letter-spacing:-.07em;margin-right:12px}
#stageOverview #stageFoot,#stageDetail small{font-size:clamp(10px,1vw,17px);color:#5b6c66}#stageLead{font-size:clamp(12px,1.4vw,26px)}
.stage-bar{display:grid;grid-template-columns:6.5em 1fr 6em;align-items:center;gap:14px;margin:clamp(7px,1.5vh,17px) 0;font-size:clamp(12px,1.5vw,27px)}
.stage-bar i{background:#d6dfd7;border-radius:40px;height:.69em;overflow:hidden}.stage-bar em{display:block;height:100%;border-radius:40px;box-shadow:inset 0 -2px 0 #23404433}.stage-bar b{text-align:right}
#stagePicture{width:100%;height:clamp(370px,65vh,790px);object-fit:contain}
.stage-footer{margin-top:10px}.stage-footer p,#stageNotice{font-size:12px;color:#b9cdcb}.stage-footer b{padding:0 13px}
#page-present:fullscreen{overflow:auto}.presentation:has(:focus-visible) :focus-visible{outline:3px solid #d9a146}
@media(max-width:700px){.nav a{padding:7px 10px}#wall .wall-head{padding:14px 12px 0}.world-active .world-title h1{font-size:clamp(26px,6vw,38px);white-space:normal}.world-title .eyebrow{font-size:7px;letter-spacing:.07em}.world-active .caption{font-size:10px}.camera-bar{left:12px;top:105px}.camera-bar button{font-size:10px;padding:6px 7px}.camera-bar span{font-size:8px;padding:0 5px}
 .wall-count{max-width:85px}.current-count{font-size:9px}.wall-bottom{gap:6px}.wish-metrics{padding:6px 9px;width:100%}.metrics-title{margin-bottom:1px}.metrics-title b,.metrics-title a{font-size:10px}#topicCounts{gap:2px 7px}#topicCounts span{font-size:9px}.wall-controls .secondary{font-size:10px}.stage-screen,.stage-screen #stagePicture{min-height:385px}.stage-tools button{font-size:10px;padding:7px}.stage-bar{gap:4px}}
@media(max-height:540px) and (orientation:landscape){.camera-bar{top:58px;left:16px}.camera-bar button,.camera-bar span{font-size:9px;padding:4px 7px}.world-active .world-title h1{font-size:25px}.wish-metrics{padding:5px 9px}.metrics-title b{font-size:11px}.wall-bottom .wish-metrics{max-width:45%}#topicCounts span{font-size:9px}.presentation{padding:8px}.stage-screen{min-height:260px}}
.world-active::after{background:linear-gradient(148deg,#0b303fc9 0%,#16383b4f 19%,transparent 38%),linear-gradient(0deg,#163a456b,transparent 18%)}
.world-active .world-title{text-shadow:0 1px 3px #18333d80,0 3px 15px #1c364d99}
.count-kicker{white-space:nowrap}
@media(max-width:700px){.wall-count{min-width:91px;max-width:98px}.count-kicker{font-size:8px;letter-spacing:.04em}.wall-count .arrival-notice:not(:empty){top:calc(100% + 42px)}}
@media(max-height:540px) and (orientation:landscape){.wall-head{padding-top:5px}}
.world-picker{display:none;position:absolute;z-index:3;left:clamp(18px,3.5vw,68px);top:calc(clamp(128px,17vh,190px) + 44px);gap:5px;max-width:calc(100% - 24px);padding:8px;border:1px solid #e6eed853;border-radius:17px;background:#143641ec;box-shadow:0 5px 20px #0b20382b;color:#edf6e8}
.world-active .world-picker{display:grid}
#worldChoice{display:flex;gap:4px}#worldChoice button{flex:1;min-height:38px;padding:7px 13px;border-radius:11px;font-size:12px;background:#254954;color:#e7f3ee;white-space:nowrap}#worldChoice button[aria-pressed=true]{background:#fff0c6;color:#183e47;box-shadow:0 2px 8px #07181d33}
.map-tools{display:flex;align-items:center;justify-content:space-between;gap:8px}.map-tools button{padding:5px 7px;border-radius:9px;font-size:10px;background:transparent;color:#dbebe9;border:1px solid #d6e9e544}.map-tools button[aria-pressed=true]{color:#ffe4a3;border-color:#e8cd8d80}.world-picker label{display:flex;align-items:center;gap:4px;color:#dfeee6;font-size:10px}
#mapChoiceHint{font-size:9px;line-height:1.4;color:#c3d6d5;padding:1px 3px}.light-world .map-tools label{display:none}
.world-picker select{font:650 12px 'Malgun Gothic',sans-serif;padding:2px 0;border:0;background:#193842;color:white;border-radius:6px;max-width:150px}
@media(max-width:700px){.world-picker{left:12px;top:143px;padding:6px}.world-picker select{font-size:10px;max-width:108px}.world-picker label{font-size:9px}#worldChoice button{font-size:11px;padding:7px 9px}#mapChoiceHint{font-size:8px}}
@media(max-height:540px) and (orientation:landscape){.world-picker{top:94px;left:16px;padding:5px}#worldChoice button{min-height:30px;padding:5px 8px;font-size:10px}.map-tools{gap:5px}#mapChoiceHint{display:none}}
#myWallTicket:not([hidden]){margin-top:5px;border-top:1px solid #ffffff42;padding-top:4px;display:flex;align-items:center;justify-content:space-between;gap:6px}
#myWallTicket span{font-size:11px;color:#fff0bc}#findMyWish{padding:3px 9px;border-radius:15px;font-size:11px;background:#ffe3a6;color:#173644}

.map-curtain{position:absolute;inset:0;z-index:12;display:grid;place-content:center;justify-items:center;align-content:center;gap:8px;overflow:hidden;background:radial-gradient(ellipse at 80% 95%,#e5c8ab 0%,transparent 37%),radial-gradient(ellipse at 15% 72%,#80d5db 0%,transparent 52%),linear-gradient(157deg,#1c4374 3%,#337fb2 50%,#99cddd 93%);color:#fffdf1;opacity:1;transition:opacity .42s ease}
.map-curtain::before{content:"";position:absolute;inset:0;background-image:radial-gradient(ellipse,#ffedb7 1px,transparent 1.7px),radial-gradient(ellipse,#e0fcfa 1px,transparent 1.8px);background-size:123px 107px,193px 149px;background-position:13px 37px,47px 2px;mask-image:linear-gradient(0deg,transparent,#000 80%);opacity:.66}
.map-curtain>*{position:relative}.map-curtain[hidden]{display:none}.map-curtain.done{opacity:0;pointer-events:none}.journey-mark{width:clamp(150px,18vw,218px);filter:drop-shadow(0 6px 11px #25588777)}.journey-mark svg{display:block;width:100%}.rising-star{transform-origin:110px 52px;animation:sky-lift 2.6s ease-in-out infinite}.map-sparks{animation:sky-shine 2s ease-in-out infinite alternate}
.journey-kicker{font:700 10px system-ui,sans-serif;letter-spacing:.24em;color:#fff2c5}.map-curtain strong{font-size:clamp(22px,3vw,41px);letter-spacing:-.045em;text-shadow:0 2px 10px #274d6f7d}.map-curtain small{font-size:12px;color:#fff}
.journey-line{width:134px;height:3px;overflow:hidden;border-radius:8px;background:#ffffff46;margin:7px 0}.journey-line i{display:block;width:48%;height:100%;border-radius:8px;background:#ffe3a1;animation:sky-trace 1.65s ease-in-out infinite}
@keyframes sky-lift{50%{transform:translateY(-6px) rotate(6deg)}}@keyframes sky-shine{to{opacity:.35}}@keyframes sky-trace{0%{transform:translateX(-100%)}100%{transform:translateX(210%)}}
@media(prefers-reduced-motion:reduce){.map-curtain *{animation:none!important}.map-curtain{transition:none}.journey-line i{width:100%}}

.sound-dock{position:relative;z-index:3;pointer-events:auto;display:flex;align-items:center;gap:4px;flex-wrap:wrap;margin:4px 0}.sound-dock button{padding:3px 9px;border:1px solid #fff6ad77;color:#fff1bd;background:#234650;border-radius:14px;font-size:11px;font-weight:700}.sound-dock input{width:62px;height:17px;padding:0;accent-color:#ffdd8a}
@media print{.presentation{display:none}}

/* A readable fallback keeps the selected map and explains how 3D returns. */
#wall.light-world .world-title h1{font-size:clamp(28px,3.1vw,48px);line-height:1.16;margin:8px 0}
.world-recovery{position:absolute;z-index:5;left:28px;bottom:112px;max-width:min(440px,calc(100% - 56px));padding:12px 16px;border-radius:18px;background:#fff8e9f5;color:#294e56;box-shadow:0 6px 24px #15373e30;font-size:12px;line-height:1.6}
.world-recovery[hidden]{display:none}.world-recovery button{display:block;margin-top:8px;background:#275a65;color:#fff8e9;border:0;border-radius:20px;padding:8px 16px;font:inherit;cursor:pointer}
.world-recovery button[hidden]{display:none}
@media(max-width:700px){.world-recovery{left:16px;bottom:155px;max-width:calc(100% - 32px);font-size:11px}#wall.light-world .world-title h1{font-size:27px}}
.wish-picker{min-inline-size:0;border:0;padding:0;margin:18px 0 24px}
.wish-picker legend{font-size:16px;font-weight:750;margin:0 0 9px;padding:0;color:#e9f4ff}
.wish-picker .choice-grid{display:grid;gap:7px}
.topic-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,104px),1fr))}
.wish-choice{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:5px;min-width:0;min-height:46px;padding:8px 4px;border:1px solid #536987;border-radius:13px;background:#182a44;color:#eff6ff;cursor:pointer;text-align:center;line-height:1.25;overflow:hidden}
.wish-choice input{position:absolute;inset:0;width:100%;height:100%;margin:0;opacity:0;cursor:pointer;z-index:1}
.wish-choice:has(input:checked){border-color:var(--choice-tone);background:linear-gradient(150deg,#29435b,#1d344c);box-shadow:inset 0 0 0 1px var(--choice-tone)}
.choice-tick{display:none;position:absolute;top:3px;right:4px;color:#112339;background:var(--choice-tone);font:bold 11px/15px system-ui;border-radius:50%;width:15px;height:15px}
.wish-choice input:checked~.choice-tick{display:block}
.wish-choice:has(input:focus-visible){outline:3px solid #fff1c7;outline-offset:2px}
.choice-art,.choice-name{display:block}.choice-name{font-size:clamp(11px,2.8vw,13px);font-weight:650;word-break:keep-all}
.choice-art{display:grid;place-items:center;color:var(--choice-tone);width:100%}.choice-art svg,.choice-art img{display:block;object-fit:contain}
.topic-grid .choice-art svg{width:23px;height:23px}
#wishOptions>summary small{display:block;font-size:12px;margin:3px 0 0 15px}
@media(max-width:540px){.topic-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.wish-picker{margin:14px 0 20px}}

.carrier-draw{--reel-step:84px;border:1px solid #53758d;border-radius:17px;background:#14263b;overflow:hidden;margin:14px 0}
.carrier-draw[hidden],.reel-again[hidden]{display:none}
#captureForm[data-step="type-review"] .carrier-draw{order:-2}
#captureForm[data-step="type-review"] #typeReviewHead{order:-4}
.reel-window{height:102px;position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 50% 110%,#427384 0,transparent 56%),linear-gradient(115deg,#17233d,#253d59 47%,#24253f)}
.reel-window::before{content:"";position:absolute;inset:0;background:radial-gradient(1px 1px at 20% 40%,#dffaff 80%,transparent),radial-gradient(1px 1px at 65% 22%,#ffe7b8 80%,transparent);background-size:87px 59px,123px 87px;opacity:.6}
.reel-window::after{content:"";pointer-events:none;position:absolute;inset:0;background:linear-gradient(90deg,#152439 0,transparent 27%,transparent 73%,#202339 100%)}
.reel-track{position:absolute;left:50%;top:3px;bottom:0;display:flex;align-items:center;width:max-content;pointer-events:none}
.reel-slot{flex:0 0 var(--reel-step);width:var(--reel-step);height:78px;display:grid;place-items:center}
.reel-slot svg,.reel-slot img{width:74px;height:74px;object-fit:contain;display:block}
.reel-halo{position:absolute;left:50%;top:13px;bottom:7px;width:var(--reel-step);transform:translateX(-50%);border-radius:18px;border:1px solid #f1d298aa;box-shadow:0 0 21px #b7ddcf39,inset 0 0 18px #fff3bb24;background:linear-gradient(155deg,#c0d5ef37,#f6d5a018)}
.reel-pointer{position:absolute;z-index:1;top:5px;left:calc(50% - 5px);width:10px;height:10px;transform:rotate(45deg);background:#ffe0a0;box-shadow:0 0 8px #ffe9b4}
.reel-footer{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:9px 15px 11px;border-top:1px solid #59707b70}
.reel-footer span#drawLabel,.reel-footer strong{display:block}.reel-footer #drawLabel{color:#b6ccdc;font-size:12px}.reel-footer strong{color:#fff3cf;font-size:18px;line-height:1.4}
.reel-again{min-height:44px;padding:7px 13px;border:1px solid #90b6c5;border-radius:25px;color:#e2f6ff;background:#23445a;font-weight:700;white-space:nowrap}
.reel-again span{font-size:17px}.reel-again:focus-visible{outline:3px solid #ffe8ac;outline-offset:2px}
.reel-again[aria-disabled=true]{opacity:.55;cursor:default}
.carrier-draw[data-state=settled] .reel-slot:not([data-stop]){opacity:.47}
.carrier-draw[data-state=settled] .reel-slot[data-stop]{animation:reel-arrive .48s ease-out}
.reel-sparks{pointer-events:none;position:absolute;z-index:1;left:50%;top:48%;width:4px;height:4px;border-radius:50%;opacity:0;background:#fff0bf;box-shadow:-42px -24px #ffe5a4,36px -21px #aff9ff,-38px 15px #c1faff,44px 11px #ffdeb7,-23px -33px #ffe1ae,24px 28px #ffedaf}
.carrier-draw[data-state=settled] .reel-sparks{animation:reel-sparks .62s ease-out both}
@keyframes reel-arrive{0%{transform:scale(.93)}55%{transform:scale(1.10)}100%{transform:scale(1)}}
@keyframes reel-sparks{0%{transform:scale(.52);opacity:0}28%{opacity:1}100%{transform:scale(1.44);opacity:0}}
@media(max-width:540px){.carrier-draw{--reel-step:68px}.reel-window{height:89px}.reel-slot svg,.reel-slot img{width:64px;height:64px}.reel-footer{padding:8px 11px}.reel-footer strong{font-size:16px}}
@media(prefers-reduced-motion:reduce){.carrier-draw[data-state=settled] .reel-slot[data-stop],.carrier-draw[data-state=settled] .reel-sparks{animation:none}}
