/* Four permanent destinations. The adventure, not the chrome, is the hero. */
.journey-screen[data-mode]{padding:16px clamp(16px,2.4vw,52px) 10px}
.journey-screen[data-mode] .journey-window{width:100%;max-width:none;height:calc(100dvh - 26px);min-height:0;display:grid;grid-template-areas:'header' 'title' 'tabs' 'main' 'dock' 'footer';grid-template-rows:auto auto auto minmax(0,1fr) auto auto;gap:12px}
.journey-screen[data-mode] .lobby-top{grid-area:header;display:grid;grid-template-columns:minmax(210px,1fr) auto minmax(280px,1fr);gap:22px;min-height:70px}
.journey-screen[data-mode] .profile-plaque{width:clamp(210px,20vw,300px);justify-self:start;padding:6px 15px 6px 4px}
.journey-screen[data-mode] .level-shield{width:48px;height:51px;font-size:25px}
.journey-screen[data-mode] .profile-plaque strong{font-size:15px}
.journey-screen[data-mode] .camp-brand{padding:0 12px}
.journey-screen[data-mode] .camp-brand span{font-size:17px}
.journey-screen[data-mode] .camp-brand strong{font-size:35px}
.journey-screen[data-mode] .lobby-wallet{justify-self:end;gap:8px}
.journey-screen[data-mode] .lobby-wallet button{min-width:0;padding:6px 10px 6px 3px;border-color:#3d9df4;gap:4px}
.journey-screen[data-mode] .lobby-wallet .ui-art{width:33px;height:33px}
.journey-screen[data-mode] .lobby-wallet strong{font-size:22px}
.journey-screen[data-mode] .lobby-wallet small{font-size:10px}
.journey-screen[data-mode] .journey-toolbar{grid-area:title;min-height:42px;padding:0;gap:16px}
.journey-screen[data-mode] .journey-toolbar h2{font-size:clamp(23px,2.1vw,34px);outline:none}
.journey-screen[data-mode] .journey-content{grid-area:main;min-width:0;min-height:0;overflow:auto;overscroll-behavior:contain;scrollbar-color:#499cff #0c2b63}
.journey-screen[data-mode=home] .journey-content{flex:auto;overflow:auto;padding:0 4px 8px}
.journey-screen[data-mode=home] .journey-toolbar{display:none}
.journey-screen[data-mode] .camp-tabs{grid-area:tabs;display:flex;gap:9px;overflow-x:auto;padding:2px 4px 8px;scrollbar-width:thin;scrollbar-color:#78cfff transparent}
.journey-screen[data-mode] .camp-tabs:empty{display:none}
.camp-tabs button{flex-shrink:0;min-height:42px;padding:8px 18px;border-radius:13px;background:#0c2c6eea;color:#d5edff!important;border:2px solid #3274cb!important;font-size:13px!important;font-weight:800!important}
.camp-tabs button[aria-current=page]{color:#fff!important;border-color:#4deaff!important;background:#1553bf;box-shadow:0 3px #081a55}
.journey-screen[data-mode] .camp-dock{grid-area:dock;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));width:min(940px,100%);justify-self:center;gap:12px;padding:8px 6px}
.camp-dock button{position:relative;display:flex;align-items:center;justify-content:center;gap:10px;min-height:67px;border:3px solid #398efa!important;border-radius:19px;background:linear-gradient(#1758cc,#103383);box-shadow:0 6px #071b51,inset 0 2px #a8d7ff33;color:white!important;font-size:clamp(16px,1.4vw,22px)!important;font-weight:900!important}
.camp-dock .ui-art{width:46px;height:46px}
.camp-dock button[aria-current=page]{background:linear-gradient(#ffe54a,#ffbc08);border-color:#fff288!important;color:#172e65!important;box-shadow:0 6px #ac6006,inset 0 2px #fffab4}
.camp-dock button[data-action=play-now] .ui-art{width:28px;height:28px;color:currentColor}
.dock-badge{position:absolute;right:6px;top:-9px;min-width:25px;height:25px;padding:2px 6px;display:grid;place-items:center;border:2px solid #ffd0d7;border-radius:10px;background:#ee285d;color:white;font-size:12px;font-weight:900}
.dock-badge[hidden]{display:none}
.journey-screen[data-mode] .camp-footer{grid-area:footer;min-height:24px;gap:8px;font-size:10px;padding:0}
.camp-footer .save-note{margin:0 auto 0 0}
.journey-screen .camp-footer .camp-sound{width:29px;height:29px;min-height:0;padding:3px;border-radius:9px}
.journey-screen .camp-footer .camp-sound .ui-art{width:19px;height:19px}
.journey-screen[data-mode] .camp-notice{position:fixed;left:50%;bottom:150px;z-index:9;transform:translateX(-50%);max-width:calc(100vw - 30px)}

/* A single launch card. Milo has space to breathe, without clipped props. */
.camp-scene{height:100%;min-height:470px;width:100%;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(350px,.9fr);gap:clamp(20px,4vw,90px);align-items:center;padding:0 clamp(10px,4vw,85px)}
.camp-milo{position:relative;height:100%;min-height:440px;isolation:isolate}
.camp-milo:before{content:'';position:absolute;inset:16% 7% 0;background:radial-gradient(ellipse at 50% 70%,#099fff40,transparent 68%);z-index:-1}
.camp-greeting{text-align:center;position:absolute;left:0;right:0;top:3%;text-shadow:0 3px #10235e,0 5px 16px #031035;color:white;z-index:1}
.camp-greeting>span{font-size:14px;font-weight:650;color:#b6f7ff}
.camp-greeting h1{font-size:clamp(29px,2.8vw,48px);letter-spacing:-1px;line-height:1.1;margin:7px 0 0;font-weight:900}
.camp-model{position:absolute;inset:70px 0 34px;max-width:820px;margin:auto}
.camp-model canvas{display:block;width:100%;height:100%;object-fit:contain}
.milo-nameplate{position:absolute;bottom:10px;left:50%;transform:translateX(-50%);white-space:nowrap;border:2px solid #48beeb;background:#0c337ccf;border-radius:30px;padding:8px 19px;box-shadow:0 4px #071e53;color:#e1faff;display:flex;align-items:center;gap:6px;font-size:13px;font-weight:750}
.milo-nameplate>.ui-art{width:24px;height:24px}
.camp-adventure{display:flex;flex-direction:column;gap:22px;width:100%;max-width:540px;justify-self:center;padding:5px 0 10px}
.next-expedition{position:relative;border:3px solid #51cfff;border-bottom:7px solid #092264;border-radius:29px;overflow:hidden;background:#1044a5;color:white;box-shadow:0 12px 28px #020d3c7a,inset 0 2px #ffffff88}
.next-expedition-art.chapter-art{display:block;width:100%;height:clamp(110px,17vh,220px);border:0;border-radius:0;background-size:500% auto;background-position:var(--chapter-x,0%) 48%;position:relative}
.expedition-chapter{display:block;position:relative;margin:-30px 18px 0;width:fit-content;max-width:calc(100% - 36px);background:#071f5cf2;border:1px solid #57d9ff;border-radius:10px;padding:8px 13px;font-size:12px;font-weight:800;color:#d5f7ff}
.next-expedition-copy{padding:19px 25px 17px}
.expedition-step{display:flex;justify-content:space-between;gap:7px;font-size:11px;color:#bbdfff;font-weight:700}
.next-expedition-copy h2{font-size:clamp(28px,2.4vw,41px);line-height:1.08;letter-spacing:-.7px;margin:10px 0 8px;color:#fff;text-shadow:0 3px #072870;font-weight:900}
.next-expedition-copy p{margin:0;color:#dbf5ff;font-size:13px;line-height:1.4}
.expedition-checkpoints{display:flex;gap:7px;margin:17px 0 21px;align-items:center}
.expedition-checkpoints i{font-style:normal;display:grid;place-items:center;width:27px;height:27px;font-size:11px;font-weight:800;background:#092769;color:#b6d5ff;border:2px solid #347bdd;border-radius:50%}
.expedition-checkpoints i.complete{background:#ffcf18;border-color:#fff075;color:#724209}
.journey-screen .camp-adventure .play-big{width:100%;height:64px;border:3px solid #fff387!important;border-radius:17px;font-size:clamp(27px,2.4vw,36px)!important;font-style:normal;background:linear-gradient(#ffe83d,#ffbb00);box-shadow:0 6px #a56305,inset 0 2px #fff4a8;color:#112b62!important;text-shadow:none}
.camp-adventure .play-big>.ui-art{width:24px;height:24px;color:currentColor}
.choose-world{display:flex;align-items:center;justify-content:center;gap:7px;width:100%;padding:12px 4px 0;margin-top:10px;min-height:40px;background:none;border:0;color:#d6faff!important;font-size:12px!important;font-weight:700!important}
.choose-world>.ui-art{width:26px;height:26px}
.camp-rewards-link{display:flex;align-items:center;gap:16px;padding:10px 18px;min-height:83px;border:2px solid #6593ff!important;border-bottom:5px solid #14255c!important;border-radius:20px;background:#173f99f0;color:#fff!important;box-shadow:0 6px 20px #081c4655;text-align:left}
.camp-rewards-link>.ui-art{width:63px;height:63px;margin:-4px 0}
.camp-rewards-link strong{font-size:clamp(17px,1.5vw,23px);display:block;line-height:1.15}
.camp-rewards-link small{display:block;font-size:12px;color:#c7ecff;margin-top:5px}
.camp-rewards-link>b{margin-left:auto;font-size:30px;color:#8ee9ff}

/* Related rewards live together; secondary tabs do not compete with the dock. */
.journey-screen[data-mode=rewards] .journey-content{border:0;background:none;padding:4px 6px 12px;box-shadow:none}
.rewards-hub{max-width:1360px;margin:0 auto;color:#fff}
.rewards-heading{display:flex;align-items:center;justify-content:space-between;margin:0 0 19px}
.rewards-heading h3{font-size:clamp(24px,2.5vw,36px);text-shadow:0 3px #122964}
.rewards-heading p{margin:0;color:#d6eeff;font-size:14px}
.rewards-heading>.ui-art{width:88px;height:88px}
.reward-gift{display:grid;grid-template-columns:100px 1fr auto;gap:18px;align-items:center;border:3px solid #ffc261;border-bottom:7px solid #8b1646;border-radius:24px;padding:18px 26px;background:linear-gradient(115deg,#e62a6a,#aa1967);box-shadow:0 8px 18px #04163866;color:white;margin-bottom:24px}
.reward-gift .gift-art>.ui-art{width:100px;height:100px;transform:rotate(-7deg)}
.reward-gift h3{font-size:27px;margin:0 0 3px}
.reward-gift p{font-size:14px;margin:0 0 5px;color:#fff1db}
.reward-gift small{color:#ffe3ee;font-size:11px}
.journey-screen .reward-gift .claim-button{width:auto;min-width:180px;font-size:17px;border-radius:14px;padding:14px 18px;background:linear-gradient(#ffed66,#ffc21c);border:2px solid #fff39c;color:#4b2c08;box-shadow:0 5px #8b4118}
.journey-screen .reward-gift .claim-button:disabled{background:#8e225d;color:#ffd4e4;border-color:#d1749c;box-shadow:none}
.reward-routes{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:23px}
.reward-route{display:grid;grid-template-columns:94px 1fr auto;align-items:center;gap:16px;padding:22px;min-height:182px;text-align:left;border:3px solid #3e96fa!important;border-bottom:7px solid #0b2059!important;border-radius:24px;background:linear-gradient(125deg,#1556ca,#123782);color:#fff!important;box-shadow:0 6px 17px #020d3244}
.reward-route>.ui-art{width:94px;height:94px}
.reward-route-copy{min-width:0;display:flex;flex-direction:column;gap:7px}
.reward-route-copy>strong{font-size:clamp(22px,2vw,28px);line-height:1.12;color:white}
.reward-route-copy>span{font-size:13px;line-height:1.4;color:#c8eaff}
.reward-route-copy>small{font-size:12px;color:#ffdd66;font-weight:750}
.reward-route-copy .meta-meter{margin:1px 0 0;height:10px;background:#061d5a;border-color:#2e77cd}
.reward-route-copy .meta-meter i{background:#12d4ff;border-color:#97f6ff}
.reward-ready{font-size:11px;align-self:start;border:1px solid #ffe98d;border-radius:9px;background:#ffca0a;padding:6px 8px;color:#242854;white-space:nowrap}
.reward-chevron{font-size:32px;color:#93dfff}
.journey-screen:is([data-mode=reward],[data-mode=loss]) .lobby-top,.journey-screen:is([data-mode=reward],[data-mode=loss]) .camp-dock{display:none}
.journey-screen[data-mode=festival] .journey-content{overflow:auto}

/* Pause shares the game's materials, and gives two unambiguous exits. */
#overlay{position:fixed;inset:0;z-index:25;display:grid;place-items:center;padding:24px;background:#04133bb8;backdrop-filter:blur(5px);overflow:auto}
#overlay[hidden]{display:none}
#overlay .overlay-inner{position:relative;width:min(500px,calc(100vw - 48px));max-width:500px;padding:34px 32px 24px;border:3px solid #61dbff;border-bottom:8px solid #0a1a58;border-radius:32px;background:radial-gradient(ellipse at 50% 0,#2477f4,#123a98 67%);box-shadow:0 18px 60px #02092399,inset 0 2px #c9f8ff66;text-align:center;color:white}
.pause-art{display:block;width:116px;height:116px;margin:-10px auto 1px;background:url('./assets/art/menu-treasures-v19.png') 100% 100%/300% 300% no-repeat;filter:drop-shadow(0 8px 4px #03133e88);transform:rotate(-12deg)}
#overlay h2{font-family:'Avenir Next','Trebuchet MS',system-ui,sans-serif;font-size:clamp(30px,4vw,39px);font-weight:900;letter-spacing:-.7px;color:white;line-height:1.1;margin:7px 0 12px;text-shadow:0 3px #092267}
#overlay #overlay-copy{font-size:16px;color:#daf4ff;line-height:1.45;margin:0 auto 20px;max-width:38ch;white-space:normal}
.pause-facts{display:flex;justify-content:center;gap:11px;margin:0 0 25px}
.pause-facts>span{padding:9px 14px;display:flex;align-items:center;gap:7px;border:1px solid #4085dd;border-radius:12px;background:#0a2a73;color:#d7f1ff;font-size:13px}
.pause-facts b{color:#ffe360;font-size:19px}
.pause-facts .pause-heart{color:#ff7793;font-size:20px;font-weight:800;letter-spacing:3px}
#overlay .start{display:block;width:100%;min-height:62px;border:3px solid #fff395;border-radius:18px;background:linear-gradient(#ffea5a,#ffc00a);box-shadow:0 6px #a96606;color:#193363;font-size:24px;font-family:'Avenir Next','Trebuchet MS',system-ui,sans-serif;font-weight:900;cursor:pointer;padding:13px;text-shadow:none}
.pause-secondary{display:flex;gap:10px;margin:22px 0 0}
.pause-secondary button{font:750 14px 'Avenir Next',system-ui;color:white;background:#113680;border:2px solid #4481c9;border-radius:13px;padding:11px 13px;cursor:pointer;min-height:44px}
#pause-camp{flex:1}
#pause-sound{flex:0 0 48px;font-size:21px;padding:8px}
.pause-keyhint{margin:18px 0 0;color:#b0d7f9;font-size:11px}
.pause-keyhint kbd{padding:2px 5px;border:1px solid #6196d9;border-radius:4px;background:#193a80;color:#fff}
.pause-controls{border-top:1px solid #80c4ff44;padding-top:14px;margin-top:17px;font-size:12px;color:#bfdfff;display:flex;justify-content:center;flex-wrap:wrap;gap:6px 15px}
#overlay button:focus-visible{outline:3px solid white;outline-offset:4px}
#overlay [hidden]{display:none!important}
@media(min-width:961px) and (max-height:820px){
 .journey-screen[data-mode]{padding-top:10px;padding-bottom:7px}.journey-screen[data-mode] .journey-window{height:calc(100dvh - 17px);gap:7px}
 .journey-screen[data-mode] .lobby-top{min-height:58px}.journey-screen[data-mode] .camp-dock{padding:5px;gap:10px}.camp-dock button{min-height:56px;border-radius:16px;font-size:18px!important}.camp-dock .ui-art{width:38px;height:38px}
 .camp-scene{min-height:407px;gap:25px;padding:0 5vw}.camp-milo{min-height:400px}.camp-model{inset:58px 0 31px}.camp-greeting{top:0}.camp-greeting h1{font-size:31px}.camp-greeting>span{font-size:12px}
 .camp-adventure{max-width:470px;gap:14px}.next-expedition-art.chapter-art{height:105px}.next-expedition-copy{padding:14px 20px 9px}.next-expedition-copy h2{font-size:29px;margin:8px 0}.next-expedition-copy p{font-size:12px}.expedition-checkpoints{margin:12px 0 15px}.camp-adventure .play-big{height:55px!important;font-size:28px!important}.choose-world{padding-top:9px;margin-top:9px;font-size:11px!important}.camp-rewards-link{min-height:68px;padding:8px 14px}.camp-rewards-link>.ui-art{width:50px;height:50px}.camp-rewards-link strong{font-size:19px}.camp-rewards-link small{font-size:11px}
 .rewards-heading{margin-bottom:13px}.rewards-heading>.ui-art{width:65px;height:65px}.reward-gift{padding:12px 20px}.reward-gift .gift-art>.ui-art{width:80px;height:80px}.reward-route{min-height:152px;padding:16px;gap:13px;grid-template-columns:74px 1fr auto}.reward-route>.ui-art{width:74px;height:74px}
}
@media(max-width:1100px){.reward-route{grid-template-columns:72px 1fr}.reward-route>.ui-art{width:72px;height:72px}.reward-ready,.reward-chevron{grid-column:2;justify-self:start;align-self:center}.reward-chevron{display:none}.camp-scene{gap:20px;padding:0 6px}}
@media(max-width:960px){
 .journey-screen[data-mode]{padding:12px 16px 7px}.journey-screen[data-mode] .journey-window{height:calc(100dvh - 19px);min-height:0;gap:9px}
 .journey-screen[data-mode] .lobby-top{grid-template-columns:minmax(160px,1fr) auto;gap:12px;min-height:63px}.journey-screen[data-mode] .profile-plaque{width:210px}.journey-screen[data-mode] .camp-brand{display:none}.journey-screen[data-mode] .lobby-wallet .ui-art{width:28px;height:28px}.journey-screen[data-mode] .lobby-wallet strong{font-size:19px}.journey-screen[data-mode] .lobby-wallet button{padding:7px}
 .camp-scene{grid-template-columns:minmax(0,1fr) minmax(310px,1fr);min-height:480px;gap:15px;padding:0 3px}.camp-milo{min-height:460px}.camp-greeting h1{font-size:30px}.camp-model{inset:100px 0 44px}.camp-greeting{top:20px}.milo-nameplate{font-size:11px;padding:8px 12px}
 .next-expedition-copy{padding:16px}.next-expedition-copy h2{font-size:29px}.expedition-step{font-size:10px}.next-expedition-art.chapter-art{height:140px}.camp-rewards-link{padding:9px 12px;gap:10px}.camp-rewards-link>.ui-art{width:52px;height:52px}.camp-rewards-link strong{font-size:18px}.camp-rewards-link small{font-size:11px}
 .camp-dock button{font-size:17px!important;gap:7px;min-height:62px}.camp-dock .ui-art{width:37px;height:37px}.journey-screen[data-mode] .camp-dock{gap:9px}
 .reward-gift{grid-template-columns:80px 1fr;padding:16px;gap:12px}.reward-gift .gift-art>.ui-art{width:80px;height:80px}.reward-gift .claim-button{grid-column:2;justify-self:start}.reward-routes{gap:15px}.reward-route{padding:15px}.reward-route-copy>strong{font-size:23px}
}
@media(max-width:620px){
 .journey-screen[data-mode]{padding:9px 10px calc(6px + env(safe-area-inset-bottom,0px))}.journey-screen[data-mode] .journey-window{height:calc(100dvh - 15px - env(safe-area-inset-bottom,0px));gap:7px}
 .journey-screen[data-mode] .lobby-top{grid-template-columns:1fr auto;gap:8px;min-height:51px}.journey-screen[data-mode] .profile-plaque{width:100%;max-width:210px;gap:5px;padding:5px 8px 5px 2px;border-radius:12px}.journey-screen[data-mode] .level-shield{width:35px;height:40px;font-size:20px}.journey-screen[data-mode] .profile-plaque strong{font-size:12px}.journey-screen[data-mode] .profile-plaque small{font-size:8px}.journey-screen[data-mode] .profile-plaque .meta-meter{height:6px}
 .journey-screen[data-mode] .lobby-wallet{gap:4px}.journey-screen[data-mode] .lobby-wallet button{min-height:46px;gap:3px;padding:5px 6px;border-radius:10px}.journey-screen[data-mode] .lobby-wallet .ui-art{width:25px;height:25px}.journey-screen[data-mode] .lobby-wallet strong{font-size:16px}.journey-screen[data-mode] .lobby-wallet small{font-size:8px}.journey-screen[data-mode] .lobby-wallet i{display:none}.journey-screen[data-mode] .lobby-wallet button[data-nav=pass]{display:none}
 .journey-screen[data-mode] .journey-toolbar{min-height:35px;gap:7px}.journey-screen[data-mode] .journey-toolbar h2{font-size:22px}.journey-screen .back-camp{padding:7px;font-size:11px!important}.back-camp span{display:none}.journey-screen .resume-game{font-size:10px!important;padding:8px}.journey-screen .resume-game .ui-art{display:none}
 .journey-screen[data-mode] .camp-tabs{gap:7px;padding-bottom:6px}.camp-tabs button{font-size:11px!important;min-height:38px;padding:7px 12px}
 .journey-screen[data-mode] .camp-dock{gap:6px;padding:5px 2px 7px}.camp-dock button{min-height:65px;flex-direction:column;gap:0;font-size:12px!important;border-width:2px!important;border-radius:14px}.camp-dock .ui-art{width:34px;height:34px}.camp-dock button[data-action=play-now] .ui-art{width:22px;height:27px;margin:3px 0}.dock-badge{min-width:20px;height:20px;font-size:10px;right:1px;top:-7px;padding:0 3px;border-radius:7px}
 .journey-screen[data-mode] .camp-footer{font-size:8px;min-height:23px}.journey-screen .camp-footer .camp-sound{width:24px;height:24px}.camp-footer a{font-size:0!important}.camp-footer a .ui-art{width:23px;height:23px}.camp-footer .save-note{line-height:1.25}.journey-screen[data-mode] .camp-notice{bottom:125px;font-size:12px}
 .camp-scene{grid-template-columns:1fr;grid-template-rows:300px auto;min-height:0;height:auto;gap:14px;padding:0 4px 14px}.camp-milo{min-height:0}.camp-greeting{top:6px}.camp-greeting h1{font-size:29px;margin-top:4px}.camp-greeting>span{font-size:11px}.camp-model{inset:53px 0 27px}.milo-nameplate{bottom:0;font-size:10px;padding:5px 11px}.milo-nameplate>.ui-art{width:19px;height:19px}
 .camp-adventure{padding:0;gap:15px;max-width:none}.next-expedition{border-radius:22px}.next-expedition-art.chapter-art{height:112px}.expedition-chapter{font-size:11px;margin:-25px 12px 0;padding:6px 10px;max-width:calc(100% - 24px)}.next-expedition-copy{padding:14px 17px 10px}.next-expedition-copy h2{font-size:28px}.next-expedition-copy p{font-size:12px}.expedition-checkpoints{margin:13px 0 17px;gap:6px}.expedition-checkpoints i{width:24px;height:24px}.journey-screen .camp-adventure .play-big{height:58px;font-size:29px!important}.camp-rewards-link{min-height:73px;border-radius:17px}.camp-rewards-link strong{font-size:18px}.camp-rewards-link>.ui-art{width:55px;height:55px}
 .rewards-heading{margin:3px 0 15px;gap:10px}.rewards-heading h3{font-size:26px;line-height:1.1}.rewards-heading p{font-size:12px}.rewards-heading>.ui-art{width:64px;height:64px}.reward-gift{grid-template-columns:68px 1fr;border-radius:20px;padding:14px;gap:10px;margin-bottom:17px}.reward-gift .gift-art>.ui-art{width:68px;height:68px}.reward-gift h3{font-size:22px}.reward-gift p{font-size:12px}.reward-gift small{font-size:10px}.journey-screen .reward-gift .claim-button{font-size:14px;min-width:0;padding:11px 13px}.reward-routes{grid-template-columns:1fr}.reward-route{min-height:135px;border-radius:20px;grid-template-columns:75px 1fr;padding:16px;gap:10px 14px}.reward-route-copy>strong{font-size:23px}
 #overlay{padding:18px}#overlay .overlay-inner{padding:24px 22px 20px;border-radius:27px}.pause-art{width:98px;height:98px;margin-top:-4px}#overlay h2{font-size:32px}#overlay #overlay-copy{font-size:14px}.pause-facts{gap:8px;margin-bottom:22px}.pause-facts>span{font-size:12px;padding:8px 10px}#overlay .start{min-height:58px;font-size:23px}
}
@media(max-height:560px){#overlay .overlay-inner{padding:15px 24px}.pause-art{display:none}#overlay h2{font-size:29px}#overlay #overlay-copy{margin-bottom:12px}.pause-facts{margin-bottom:16px}.pause-secondary{margin-top:15px}.pause-keyhint{margin-top:10px}.pause-controls{padding-top:8px;margin-top:10px}.journey-screen[data-mode] .journey-window{min-height:0}}
@media(prefers-reduced-motion:reduce){.camp-dock button,.camp-tabs button,#overlay button{transition:none}}

.reward-gift .daily-countdown{color:#fff0a3}
/* The reward destinations use the same saturated game palette as the hub. */
.journey-screen:is([data-mode=missions],[data-mode=pass],[data-mode=profile],[data-mode=shop]) .journey-content{background:#0c2c71ed;border-color:#378fe8;color:#f5fbff;box-shadow:0 6px #061a4a}
.journey-screen :is(.section-lead,.section-label) h3{color:#fff}
.journey-screen :is(.section-lead,.section-label) p,.journey-screen .section-label>span{color:#c1e5ff}
.journey-screen .pass-hero{background:linear-gradient(120deg,#5036bd,#8526b6);border:2px solid #ab79ff;color:white;box-shadow:0 5px #291465}
.journey-screen .pass-hero p,.journey-screen .pass-hero small{color:#e3dcff}
.journey-screen .pass-stop,.journey-screen .shop-card{background:linear-gradient(145deg,#164fb4,#122f76);border:2px solid #477fd5;box-shadow:0 5px #061943;color:white}
.journey-screen .pass-stop h3,.journey-screen .shop-card h3{color:white}
.journey-screen .pass-stop p,.journey-screen .pass-stop>small,.journey-screen .shop-card p{color:#c4e5ff}
.journey-screen .pass-stop.claim-ready{border-color:#ffe145;background:#234ea9;box-shadow:0 5px #9b6e13}
.journey-screen .pass-stop.claimed{background:#123c83;border-color:#32cabe}
.journey-screen :is(.pass-stop,.shop-card) .meta-meter{background:#061d56;border-color:#3469b8}
.journey-screen :is(.pass-stop,.shop-card) .meta-meter i{background:#12cfff;border-color:#c0f9ff}
.journey-screen .tier-number{background:#0c2d75;border-color:#5ca9f7;color:white}
.journey-screen .pass-stop.claimed .tier-number{background:#0b997a;border-color:#7dffe3}
.journey-screen .claim-button:disabled{background:#173d80;color:#b8d4f5;border-color:#41639d;box-shadow:none}
.journey-screen .mission-card{background:#16469a;border-color:#347bd5;color:white;box-shadow:0 4px #092560}
.journey-screen .mission-card.claim-ready{border-color:#ffdc35}
.journey-screen .mission-details h3{color:white}.journey-screen .mission-details small,.journey-screen .mission-count{color:#c6ecff}
.journey-screen .mission-prize{color:#ffe460}.journey-screen .mission-card.claimed{background:#0c376b;border-color:#399b9d}
.journey-screen .bonus-card,.journey-screen .stone-collection{background:#14418b;border-color:#5686e1;color:white}
.journey-screen .bonus-card p,.journey-screen .stone-collection p,.journey-screen .journey-help{color:#c6e7ff}
.journey-screen .stone-collection h3,.journey-screen .bonus-card h3{color:white}
.journey-screen .shop-balance{background:#0a2969;color:#ffdf47;border:2px solid #477fce}
.journey-screen[data-mode=shop] .daily-gift{display:none}
@media(max-width:620px){
 .camp-scene{grid-template-rows:clamp(175px,28vh,235px) auto}
 .camp-greeting h1{font-size:25px}.camp-greeting>span{font-size:10px}
 .camp-model{inset:44px 0 24px}.next-expedition-art.chapter-art{height:80px}
 .next-expedition-copy h2{font-size:26px}.next-expedition-copy p{display:none}
}

#pause-sound{position:relative}#pause-sound[aria-pressed=false]:after{content:"";position:absolute;left:12px;top:21px;width:24px;height:2px;background:#b7daf8;transform:rotate(-45deg)}#pause-sound[aria-pressed=true]{background:#106c94;border-color:#81f8ff}

/* A small, always findable music mixer; no extra full-screen settings page. */
.music-control{display:flex;align-items:center;justify-content:space-between;gap:12px;color:#d0f4ff;font-size:12px;font-weight:800}.music-control small{display:block;font-size:10px;font-weight:500;color:#b2d0f7}.music-control input{accent-color:#ffcf20;cursor:pointer;width:120px;min-height:28px;max-width:50%;margin:0}.pause-music{background:#061c5d66;border-radius:12px;padding:6px 12px;margin:12px 0 4px}.camp-music{gap:6px;margin-right:14px}.camp-music input{width:90px;max-width:none}.camp-footer .save-note{flex:1}.camp-music:focus-within{outline:2px solid #fff;border-radius:8px;outline-offset:3px}
.journey-screen .camp-save{color:#fff;background:#103b8dd9;padding:5px 10px;border:1px solid #4daaff;border-radius:9px;white-space:nowrap;font-size:11px;min-height:29px}
.save-adventure{max-width:660px;margin:24px auto;padding:28px clamp(18px,4vw,42px);background:linear-gradient(145deg,#1456cb,#112c80);border:3px solid #4fbfff;border-radius:28px;box-shadow:0 9px 0 #071e58;text-align:center;color:white}
.account-card{max-width:620px;margin:24px auto;padding:28px clamp(18px,4vw,40px);background:linear-gradient(145deg,#1456cb,#112c80);border:3px solid #4fbfff;border-radius:28px;box-shadow:0 9px 0 #071e58;color:white}.account-card h3{color:#ffdf32;font-size:30px}.account-card p{line-height:1.5}.account-card label{display:block;font-weight:800;margin:15px 0 6px}.account-card input,.account-card select{display:block;max-width:100%;width:100%;padding:12px;font:inherit;border:2px solid #71c8ff;border-radius:10px;color:#102c58;background:#fff}.journey-screen .account-card button{display:inline-block;margin:12px 8px 0 0;padding:11px 15px;border-radius:11px;color:#123469;background:#ffda24;font-weight:850}.account-card .account-status{color:#ffe481;min-height:1.5em}
.save-emblem .ui-art{width:100px;height:100px}.save-adventure h3{font-size:clamp(25px,3vw,36px);color:#ffdf32;margin:12px 0}.save-adventure p{font-size:16px;line-height:1.5}.save-facts{display:flex;justify-content:center;gap:24px;padding:14px;border-radius:15px;background:#071c5d88}.save-facts span{font-size:13px}.save-facts b{display:block;color:#ffdc32;font-size:25px}.save-description{color:#e1f4ff}.save-adventure .save-start{display:block;margin:20px auto 14px;padding:14px 26px;font-size:21px;border-radius:14px;background:#ffce09;color:#143b6b;border:3px solid #ffef91;box-shadow:0 5px 0 #b57a00;min-height:52px}.save-adventure .save-cancel,.save-adventure .save-restore{padding:10px 16px;border:2px solid #65b5ff;background:#174aaf;border-radius:12px;color:white;font-weight:800;font-size:14px}.save-backup{margin-top:24px;border-top:1px solid #68a9e7;padding-top:12px}.save-backup p{font-size:13px}.journey-screen[data-mode=save] .journey-content{background:none;border:0;box-shadow:none}
@media(max-width:620px){.save-adventure{margin:8px auto;padding:18px 15px}.save-emblem .ui-art{width:70px;height:70px}.save-adventure p{font-size:13px}.save-adventure .save-start{font-size:18px}.camp-save{margin-left:auto}}
@media(max-width:620px){.camp-music{margin-right:0;font-size:10px;gap:4px}.camp-music input{width:64px}.camp-footer .save-note{display:none}.pause-music{margin:8px 0 2px;padding:4px 10px}.overlay .overlay-inner{padding-bottom:18px!important}.pause-controls{margin-top:8px!important}}

/* A clear finish line after signing in: the next adventure is one click away. */
.account-card .account-hero{text-align:center;padding:8px 0 2px}
.account-card .account-emblem{display:grid;place-items:center;width:72px;height:72px;margin:0 auto 14px;border:3px solid #83f3ff;border-radius:24px;background:linear-gradient(145deg,#37c5ed,#2674d8);box-shadow:0 5px 0 #074285,0 0 22px #4fe8ff75;font-size:35px}
.account-card .account-hero-warning .account-emblem{background:linear-gradient(145deg,#ffc94e,#e98b28);border-color:#ffe8a6;box-shadow:0 5px 0 #99520c}
.account-card .account-hero h4{margin:0;color:#ffe35a;font-size:clamp(24px,3vw,32px);line-height:1.15}
.account-card .account-hero p{max-width:470px;margin:14px auto;color:#fff;font-size:16px}
.account-card .account-hero .account-hint{padding:13px 15px;border:1px solid #67bcf6;border-radius:14px;background:#082f79a8;color:#d8efff;font-size:14px}
.journey-screen .account-card .account-primary{display:block;width:min(100%,340px);min-height:56px;margin:22px auto 8px;padding:13px 22px;border:3px solid #fff29a;border-radius:14px;background:linear-gradient(#ffea55,#ffbe08);box-shadow:0 5px 0 #a66a03;color:#16376f;font-size:18px}
.account-card .account-primary span{display:inline-block;margin-left:8px}
.account-card .account-secondary{display:flex;flex-wrap:wrap;justify-content:center;gap:8px;margin-top:24px;padding-top:17px;border-top:1px solid #69adf46e}
.journey-screen .account-card .account-secondary button{min-height:42px;margin:0;padding:9px 14px;border:2px solid #8ccfff;background:#123b91;color:#e9f8ff;font-size:13px}
.account-card button:focus-visible{outline:3px solid white;outline-offset:3px}
@media(max-width:620px){.account-card .account-emblem{width:58px;height:58px;font-size:28px}.account-card .account-hero p{font-size:14px}.account-card .account-secondary{margin-top:18px}.journey-screen .account-card .account-primary{font-size:16px}}

/* An entrance into Milo's underground world. No playable UI sits in front of it. */
.account-entry[hidden]{display:none!important}
.account-entry{position:fixed;inset:0;z-index:10000;overflow:auto;color:#fff;background:#092d72 url('./assets/art/crystal-base-v27.webp') center/cover no-repeat}
.account-entry::before{content:"";position:fixed;inset:0;pointer-events:none;background:linear-gradient(90deg,#061b45d9 0%,#09285c95 49%,#081b4de0 100%)}
.entry-stage{position:relative;min-height:100svh;max-width:1720px;margin:auto;padding:clamp(22px,4.2vw,70px);display:grid;grid-template-columns:minmax(0,1fr) minmax(340px,510px);gap:clamp(30px,7vw,115px);align-items:center}
.entry-world{min-width:0;align-self:stretch;display:flex;flex-direction:column;justify-content:space-between}
.entry-logo{display:flex;flex-direction:column;align-items:flex-start;width:max-content;line-height:.9;filter:drop-shadow(0 4px 0 #143b81)}
.entry-logo span{font-size:clamp(17px,1.7vw,23px);font-weight:700;letter-spacing:.03em;margin-left:4px}
.entry-logo strong{color:#ffda26;font-size:clamp(37px,4.6vw,66px);font-weight:1000;letter-spacing:-.055em;-webkit-text-stroke:1px #ffe980;text-shadow:0 4px 0 #ba6e00}
.entry-logo small{margin:10px 0 0 3px;color:#d5f4ff;font-size:11px;font-weight:900;letter-spacing:.13em;text-transform:uppercase}
.entry-world-copy{max-width:690px;padding:50px 0 clamp(40px,8vh,100px);text-shadow:0 3px 5px #041c40}
.entry-world-copy .entry-intro{font-size:clamp(17px,1.5vw,21px);color:#90efff;font-weight:850;margin:0 0 12px}
.entry-world-copy h1{margin:0;color:#fff;font-weight:1000;letter-spacing:-.04em;line-height:1.05;font-size:clamp(43px,5.2vw,78px)}
.entry-world-copy>p:not(.entry-intro){max-width:440px;margin:22px 0 0;color:#e2f8ff;font-size:clamp(16px,1.3vw,20px);font-weight:650;line-height:1.5}
.entry-treasures{display:flex;align-items:center;margin-top:26px;gap:12px}
.entry-treasure{display:block;width:clamp(70px,6vw,90px);height:clamp(70px,6vw,90px);background-image:url('./assets/art/menu-treasures-v19.png');background-size:300% 300%;background-repeat:no-repeat;filter:drop-shadow(0 6px 6px #03143caa)}
.entry-map{background-position:0 50%}.entry-gems{background-position:50% 100%}.entry-chest{background-position:100% 0}
.entry-panel{padding:clamp(22px,3vw,38px);border:3px solid #79e5ff;border-radius:30px;background:linear-gradient(155deg,#0d62ccf5,#0b318af5 64%,#09276ff5);box-shadow:0 9px 0 #061c59,0 25px 65px #001230a3}
.entry-panel-heading{display:flex;align-items:flex-start;gap:15px}
.entry-panel-heading h2{margin:0;color:#ffdf39;font-size:clamp(25px,2.5vw,37px);font-weight:1000;letter-spacing:-.03em;line-height:1.1}
.entry-panel-heading p{margin:10px 0 0;color:#e6f7ff;font-size:15px;line-height:1.45}
.entry-spark{flex:none;display:grid;place-items:center;width:48px;height:48px;border:2px solid #ffec9a;border-radius:15px;background:#ffa61b;box-shadow:0 4px 0 #b15b03;color:#fff8bd;font-size:30px}
.account-entry .account-card{max-width:none;margin:22px 0 0;padding:20px 0 0;border:0;border-top:1px solid #9deaff78;border-radius:0;background:none;box-shadow:none;color:#fff}
.account-entry .account-card h3{position:absolute;clip:rect(0,0,0,0);clip-path:inset(50%);height:1px;width:1px;overflow:hidden;white-space:nowrap}
.account-entry .account-card p{font-size:15px;line-height:1.5;margin:0 0 12px;color:#e7f6ff}
.account-entry .account-card label{margin:16px 0 7px;color:#fff;font-size:14px;font-weight:850}
.account-entry .account-card input,.account-entry .account-card select{min-height:54px;border:2px solid #a6eafa;border-radius:13px;padding:12px 15px;color:#123968;background:#fff;font-size:16px;box-sizing:border-box}
.account-entry .account-card input:focus-visible,.account-entry .account-card select:focus-visible,.account-entry .account-card button:focus-visible{outline:3px solid #fff48b;outline-offset:3px}
.account-entry .account-card button{display:block;width:100%;min-height:53px;margin:12px 0 0;padding:12px 16px;border:2px solid #ffe98b;border-radius:14px;background:linear-gradient(#ffe659,#ffbf0e);box-shadow:0 4px 0 #a96100;color:#173b73;font:inherit;font-weight:950;font-size:16px;cursor:pointer}
.account-entry .account-card button[data-account="cancel"],.account-entry .account-card button[data-account="sign-out"],.account-entry .account-card button[data-account="inspect"]{min-height:42px;border-color:#85c9f3;background:#16458e;box-shadow:0 3px 0 #092760;color:#e8f7ff;font-size:14px}
.account-entry .account-card button:disabled{opacity:.65;cursor:wait}
.account-entry .account-card .account-status{margin:14px 0 0;color:#ffed9a;font-weight:750}
@media(max-width:800px){.entry-stage{grid-template-columns:1fr;gap:16px;align-content:start;padding:24px 20px 38px}.entry-world{gap:30px}.entry-world-copy{padding:0}.entry-world-copy h1{font-size:clamp(37px,9vw,56px)}.entry-world-copy>p:not(.entry-intro){font-size:15px;margin-top:12px}.entry-treasures{display:none}.entry-panel{padding:22px;max-width:550px;width:100%;box-sizing:border-box}.account-entry::before{background:linear-gradient(#061a43ce,#071e50eb)}}
@media(max-width:420px){.entry-stage{padding:18px 14px 28px}.entry-world{gap:23px}.entry-world-copy h1{font-size:36px}.entry-world-copy>p:not(.entry-intro){display:none}.entry-panel{padding:19px 17px;border-radius:24px}.entry-spark{width:40px;height:40px;font-size:25px}.entry-panel-heading h2{font-size:25px}}

/* Player names can be longer than the original fixed label. */
.journey-screen .profile-plaque>span:not(.level-shield){min-width:0}.journey-screen .profile-plaque strong{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.account-entry .account-card small{display:block;margin:9px 0 0;color:#d4ecff;line-height:1.4}

/* A short celebration stays in the cave before the expedition rewards. */
.victory-overlay:not([open]){display:none}
.victory-overlay[open]{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:18px;display:grid;place-items:center;overflow:auto;border:0;background:transparent;color:#fff}
.victory-overlay::backdrop{background:rgba(3,12,35,.58)}
.victory-popup{position:relative;isolation:isolate;overflow:hidden;width:min(100%,430px);max-height:calc(100dvh - 36px);overflow-y:auto;padding:28px 27px 24px;border:3px solid #77e5ff;border-radius:30px;background:radial-gradient(ellipse at 50% -15%,#258bf6 0,#1255bf 46%,#103185 100%);box-shadow:0 8px 0 #071f58,0 18px 36px #00102d99,inset 0 2px 0 #d1f8ff77;text-align:center;animation:victory-popup-enter .42s cubic-bezier(.18,.9,.24,1.2) both}
.victory-popup::before,.victory-popup::after{content:'✦';position:absolute;z-index:-1;color:#ffe566;text-shadow:0 0 16px #ffd60099;pointer-events:none}
.victory-popup::before{left:24px;top:54px;font-size:24px;transform:rotate(-15deg)}
.victory-popup::after{right:28px;top:75px;font-size:17px;transform:rotate(14deg)}
.victory-popup__eyebrow{display:inline-block;padding:6px 15px;border-radius:999px;background:#0d2d79;color:#b7f7ff;font-size:clamp(12px,1.1vw,15px);font-weight:800;box-shadow:inset 0 1px 0 #ffffff40}
.victory-popup__title{margin:12px 0 7px;color:#fffef7;font-size:clamp(27px,3vw,39px);line-height:1.08;letter-spacing:-.035em;text-shadow:0 3px 0 #09327c}
.victory-popup__text{margin:0;color:#dcf5ff;font-size:clamp(15px,1.4vw,17px);font-weight:650;line-height:1.35}
.victory-popup__stars{display:flex;align-items:center;justify-content:center;gap:10px;min-height:70px;margin:11px 0 15px;font-size:50px;line-height:1;color:#ffdf36;text-shadow:0 4px 0 #b96d00,0 6px 12px #08184399}
.victory-popup__stars>*{display:block}
.victory-popup__button{width:100%;min-height:52px;padding:11px 18px;border:3px solid #fff19b;border-radius:15px;background:linear-gradient(#ffe44c,#ffb900);box-shadow:0 5px 0 #aa6500,inset 0 2px 0 #fff9;color:#123875;font-size:clamp(17px,1.5vw,20px);font-weight:900;line-height:1.2}
.victory-popup__button:hover{filter:brightness(1.06)}
.victory-popup__button:active{transform:translateY(3px);box-shadow:0 2px 0 #aa6500,inset 0 2px 0 #fff9}
.victory-popup__button:focus-visible{outline:3px solid #fff;outline-offset:4px}
@keyframes victory-popup-enter{from{opacity:0;transform:translateY(14px) scale(.92)}to{opacity:1;transform:translateY(0) scale(1)}}
@media(max-width:600px),(max-height:520px){.victory-overlay[open]{padding:10px}.victory-popup{width:min(100%,340px);max-height:calc(100dvh - 20px);padding:16px 20px 17px;border-radius:22px}.victory-popup__title{font-size:clamp(24px,6vw,30px);margin:8px 0 4px}.victory-popup__text{font-size:14px}.victory-popup__stars{min-height:40px;margin:5px 0 9px;font-size:35px}.victory-popup__button{min-height:46px;font-size:16px}.victory-popup::before{left:13px;top:36px}.victory-popup::after{right:15px;top:51px}}
@media(prefers-reduced-motion:reduce){.victory-popup{animation:none}}
.victory-popup__star{color:#8fa9d1;opacity:.58;text-shadow:0 3px 0 #354d83;transform:rotate(-10deg)}
.victory-popup__star:nth-child(2){font-size:1.18em;transform:translateY(-4px)}
.victory-popup__star:nth-child(3){transform:rotate(10deg)}
.victory-popup__star.is-earned{color:#ffdf36;opacity:1;text-shadow:0 4px 0 #b96d00,0 6px 12px #08184399}
