/* The explorer's camp: a game lobby and one visual language for every menu. */
.camp-open{overflow:hidden}.journey-screen[hidden]{display:none}.journey-screen{--ink:#173e67;--teal:#087c75;--gold:#ffd642;--paper:#eff7ff;position:fixed;inset:0;z-index:30;padding:16px 24px 8px;background:#154f6d url('./assets/art/explorer-camp-v16.png') center/cover no-repeat;color:var(--ink);font-family:'Avenir Next','Trebuchet MS',system-ui,sans-serif;overflow:auto}.journey-screen:before{content:'';position:fixed;inset:0;background:linear-gradient(#05254152,transparent 35%,#063f5544);pointer-events:none}.journey-window{position:relative;width:min(1400px,100%);height:calc(100dvh - 24px);min-height:570px;margin:auto;display:flex;flex-direction:column;gap:12px}.journey-screen button,.journey-screen a{font:inherit;-webkit-tap-highlight-color:transparent}.journey-screen button{cursor:pointer;border:0;transition:transform .15s,filter .15s;color:inherit}.journey-screen button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-2px)}.journey-screen button:active:not(:disabled){transform:translateY(2px)}.journey-screen button:disabled{cursor:default;opacity:1}.journey-screen :focus-visible{outline:3px solid #ffdd57;outline-offset:4px}.ui-art{display:inline-block;width:40px;height:40px;vertical-align:middle;flex-shrink:0;color:#65d5ac;filter:drop-shadow(0 3px 1px #173e6722)}.journey-screen p{line-height:1.55}.journey-screen h2,.journey-screen h3,.journey-screen strong{font-weight:850}.journey-screen h3{margin:0 0 8px}.lobby-top{display:grid;grid-template-columns:245px 1fr auto;align-items:center;gap:24px;flex-shrink:0;min-height:78px}.profile-plaque{display:flex;align-items:center;gap:12px;text-align:left;background:#173e67ed!important;color:white!important;padding:10px 18px 10px 4px;border:2px solid #92d8d3!important;border-radius:17px;box-shadow:0 5px 0 #102d4b,0 7px 18px #0a294a40}.profile-plaque>span:last-child{flex:1}.profile-plaque strong{font-size:17px}.level-shield{display:grid;place-items:center;width:58px;height:60px;background:#5589e5;border:3px solid #c5e7ff;clip-path:polygon(50% 0,96% 18%,96% 72%,50% 100%,4% 72%,4% 18%);font-size:29px;font-weight:900;color:white}.profile-plaque small{font-size:10px;color:#bfe3ef;display:block}.meta-meter{height:10px;background:#d0e1ed;border:2px solid #b5ccd9;border-radius:20px;overflow:hidden;min-width:40px;margin:10px 0 5px}.meta-meter i{display:block;height:100%;background:linear-gradient(#96edc1,#40cba4);border-radius:20px;border-top:2px solid #c7ffe0}.profile-plaque .meta-meter{height:9px;margin:5px 0 3px;background:#183959;border-color:#112c4a}.profile-plaque .meta-meter i{background:#67edbd}.camp-brand{background:none!important;text-align:center;color:white!important;line-height:.9;filter:drop-shadow(0 3px 0 #164568)!important;transform:rotate(-5deg)!important;font-style:italic;justify-self:center}.camp-brand span{display:block;font-size:21px}.camp-brand strong{font-size:38px;letter-spacing:-2px;color:#ffe888}.lobby-wallet{display:flex;gap:10px}.lobby-wallet button{display:flex;align-items:center;gap:6px;background:#173e67ed;border:2px solid #8ccbd3;border-radius:13px;padding:6px 13px 6px 5px;box-shadow:0 4px 0 #102e4f;color:white;text-align:left;min-width:108px}.lobby-wallet .ui-art{width:40px;height:40px}.lobby-wallet small{font-size:10px;display:block;color:#cce7f3}.lobby-wallet strong{font-size:23px;line-height:1.1;font-variant-numeric:tabular-nums}.lobby-wallet i{font-style:normal;font-size:12px;color:#c4dfea}.journey-toolbar{display:flex;align-items:center;gap:20px;color:white;flex-shrink:0}.journey-toolbar h2{margin:0;font-size:30px;letter-spacing:-1px;text-shadow:0 3px #164969}.back-camp,.resume-game{display:flex;align-items:center;gap:6px;border:2px solid #9fdfd9!important;border-radius:12px;background:#174d6ae8;color:white!important;padding:7px 14px;box-shadow:0 3px #103a55;font-size:13px!important;font-weight:800!important}.back-camp .ui-art{width:24px;height:24px;color:white}.resume-game{margin-left:auto}.resume-game .ui-art{width:20px;height:20px;color:white}.resume-game[hidden]{display:none}.journey-nav{display:flex;justify-content:center;gap:7px;flex-shrink:0}.journey-nav button{background:#e5f5ff;border:2px solid #8cbccc;border-radius:12px;padding:8px 17px;box-shadow:0 4px #2b647d;display:flex;align-items:center;gap:8px;font-weight:800;font-size:13px;white-space:nowrap}.journey-nav .ui-art{width:28px;height:28px}.journey-nav button[aria-current=page]{background:#ffdf63;border-color:#fff1a8;box-shadow:0 4px #a17a20}.journey-content{min-height:0;flex:1;overflow-y:auto;overscroll-behavior:contain;background:#eff7fff5;border:3px solid #b6e5ed;border-radius:24px;padding:24px;box-shadow:0 6px 0 #174d6b88,0 15px 40px #0c294333;scrollbar-color:#69a7bd #dcebf2;scrollbar-width:thin}.camp-footer{display:flex;align-items:center;justify-content:space-between;gap:15px;flex-shrink:0;color:#e1f5ff;font-size:11px;text-shadow:0 1px 3px #12324c}.save-note{margin:0;flex:1}.camp-footer a{display:flex;align-items:center;gap:6px;color:#fff1be;text-decoration:none}.camp-footer a .ui-art{width:25px;height:25px}.camp-sound{position:relative;background:#154563c9;border:1px solid #bce8e7!important;border-radius:9px;padding:4px!important}.camp-sound .ui-art{color:white;width:22px;height:22px}.camp-sound.sound-off:after{content:'';position:absolute;left:6px;right:5px;top:14px;height:2px;background:#ffb49f;transform:rotate(-45deg)}.camp-notice{position:fixed;bottom:30px;left:50%;transform:translateX(-50%);max-width:90vw;padding:15px 25px;border-radius:16px;background:#fff5bc;border:3px solid #ffd75a;box-shadow:0 5px #8b6228;color:#284b56;font-weight:850;z-index:45;text-align:center}.camp-notice[hidden]{display:none}
/* Home is a scene, with controls around the hero. */
.journey-screen[data-mode=home] .journey-toolbar,.journey-screen[data-mode=home] .journey-nav{display:none}.journey-screen[data-mode=home] .journey-content{border:0;padding:0;background:none;box-shadow:none;overflow:visible}.lobby-layout{height:100%;display:grid;grid-template-columns:165px minmax(0,1fr) 300px;grid-template-rows:minmax(0,1fr) 116px;gap:14px 28px}.lobby-rail{display:flex;flex-direction:column;justify-content:center;gap:14px;padding-left:2px}.rail-button{position:relative;background:linear-gradient(115deg,#2e6897ef,#234e7eef);border:2px solid #8ac0d9!important;border-radius:16px;padding:8px 8px 8px 58px;min-height:76px;text-align:left;box-shadow:0 5px #173b60;color:white!important}.rail-button>.ui-art{position:absolute;width:58px;height:58px;left:-7px;top:7px;transform:rotate(-8deg)}.rail-button strong{display:block;font-size:15px;line-height:1.15}.rail-button small{display:block;color:#c0e2ef;font-size:10px;margin-top:5px}.gift-shortcut{background:linear-gradient(120deg,#986edf,#6b55bb);border-color:#d2a7ff!important}.gift-shortcut:disabled{filter:saturate(.6)}.ready-dot{position:absolute;right:-7px;top:-7px;background:#ff657a;border:2px solid #fff0b8;color:white;display:grid;place-items:center;width:23px;height:23px;border-radius:50%;font-weight:900}.lobby-hero{position:relative;min-height:0;text-align:center}.hero-name{position:absolute;z-index:1;left:0;right:0;top:5px;color:white;text-shadow:0 2px 8px #1a526c}.hero-name span{font-size:12px;color:#d8fff1}.hero-name h1{font-size:25px;margin:2px 0;font-weight:900;letter-spacing:-.5px}.lobby-model{position:absolute;inset:38px -25px 12px}.lobby-model canvas{display:block;width:100%;height:100%;object-fit:contain;outline:none}.hero-customize{position:absolute;bottom:0;left:50%;transform:translateX(-50%)!important;white-space:nowrap;display:flex;align-items:center;gap:7px;border:2px solid #c7f9e2!important;padding:8px 16px;border-radius:20px;background:#125c67d9;color:white!important;font-size:12px!important;font-weight:800!important;box-shadow:0 3px #13404e}.hero-customize .ui-art{width:20px;height:20px}.lobby-goals{display:flex;flex-direction:column;justify-content:center;gap:18px;padding-top:12px}.lobby-missions{background:#f0f8ff;border:3px solid #86d8e1!important;border-radius:21px;padding:16px;text-align:left;box-shadow:0 6px #226181,0 12px 24px #143d5b33}.panel-heading{display:flex;align-items:center;gap:8px;margin-bottom:8px}.panel-heading>.ui-art{width:38px;height:38px}.panel-heading strong{font-size:20px}.count-badge{margin-left:auto;background:#fa7285;color:white;display:grid;place-items:center;border-radius:9px;width:25px;height:25px;font-size:13px}.mini-mission{display:grid;grid-template-columns:1fr auto;gap:0 12px;padding:8px 0;font-size:12px;font-weight:750}.mini-mission>span{max-width:200px}.mini-mission small{font-size:11px;color:#397b8b;align-self:center}.mini-mission .meta-meter{grid-column:1/-1;margin:7px 0 0}.panel-link{display:flex;justify-content:space-between;align-items:center;padding-top:9px;color:#117c81;border-top:1px solid #cfe1eb;font-size:11px;font-weight:800}.panel-link b{font-size:24px;line-height:16px}.lobby-pass{display:grid;grid-template-columns:56px 1fr;gap:6px 10px;background:linear-gradient(125deg,#6650ad,#453b84);border:3px solid #bba3fa!important;border-radius:21px;padding:15px;text-align:left;box-shadow:0 6px #333367;color:white!important}.pass-emblem>.ui-art{width:58px;height:58px;transform:rotate(-12deg)}.pass-copy{display:flex;flex-direction:column;justify-content:center;gap:5px}.pass-copy small{font-size:10px;color:#e0d5ff}.pass-copy strong{font-size:17px}.pass-copy>span{font-size:10px;color:#fbe1a1}.lobby-pass .meta-meter{grid-column:1/-1;margin:0;background:#302e62;border-color:#302e62}.lobby-pass .meta-meter i{background:#ffdc62;border-color:#fff1a8}.pass-count{grid-column:1/-1;font-size:10px;color:#e6deff}.lobby-festival{align-self:end;display:flex;align-items:center;gap:13px;grid-column:1/3;width:min(390px,100%);border:3px solid #ffce85!important;border-radius:19px;padding:13px 18px;background:linear-gradient(105deg,#bd5c80,#864778);color:white!important;box-shadow:0 6px #643c62;text-align:left}.festival-emblem>.ui-art{width:66px;height:66px;color:#ffd567;transform:rotate(-12deg)}.lobby-festival>span:nth-child(2){display:flex;flex-direction:column;gap:5px}.lobby-festival small{color:#ffebc4;font-size:10px}.lobby-festival strong{font-size:19px}.lobby-festival span span{color:#ffe0d4;font-size:11px}.lobby-festival>b{margin-left:auto;font-size:30px}.lobby-launch{align-self:end;display:flex;flex-direction:column;gap:8px}.world-selector{display:flex;align-items:center;gap:9px;background:#164765e6;border:1px solid #a0dad8!important;border-radius:12px;padding:8px 12px;color:white!important;text-align:left}.world-selector>span:first-child{font-size:25px}.world-selector span span{display:block}.world-selector small{display:block;font-size:9px;color:#b9dfdf}.world-selector strong{font-size:13px;display:block}.world-selector b{margin-left:auto}.play-big{height:63px;display:flex;align-items:center;justify-content:center;gap:8px;background:linear-gradient(#ffe983,#ffd035);border:3px solid #fff4ab!important;border-radius:16px;box-shadow:0 7px #c48a24,0 10px 22px #293f6055;font-size:29px!important;font-weight:950!important;font-style:italic;color:#234a62!important;text-shadow:0 1px white}.play-big .ui-art{color:#234a62;width:30px;height:30px}
/* World map */
.section-lead{display:flex;align-items:center;justify-content:space-between;gap:20px;margin-bottom:23px}.section-lead h3{font-size:26px;letter-spacing:-.7px}.section-lead p{font-size:13px;color:#527288;margin:0;max-width:620px}.section-counter{font-size:36px;font-weight:900;white-space:nowrap;color:#188d87}.section-counter small{font-size:12px;color:#527288}.lead-art{width:68px;height:68px}.chapter-title{display:flex;align-items:center;gap:10px;font-size:18px!important;margin:22px 0 15px!important}.chapter-title>span{display:grid;place-items:center;width:27px;height:27px;border-radius:50%;background:#1a8b8b;color:white;font-size:14px}.chapter-title small{font-size:11px;font-weight:500;color:#618095;margin-left:auto}.world-path{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:18px}.world-node{display:flex;flex-direction:column;padding:0 0 15px;background:white;border:2px solid #bfd9e8!important;border-radius:19px;box-shadow:0 4px #b2cbdc;overflow:hidden;text-align:center}.world-scene{height:118px;width:100%;display:block;position:relative;background:linear-gradient(135deg,color-mix(in srgb,var(--world-color),white 65%),var(--world-color));overflow:hidden}.world-scene:before,.world-scene:after{content:'';position:absolute;border-radius:50%;background:#ffffff26;width:100px;height:100px;top:-35px;right:-15px}.world-scene:after{left:-45px;top:40px;width:130px;height:130px}.world-number{position:absolute;left:10px;top:9px;background:#173e6770;color:white;min-width:27px;border-radius:9px;font-size:12px;padding:4px}.world-orb{position:absolute;top:10px;left:50%;transform:translateX(-50%);font-size:52px;z-index:1;filter:drop-shadow(0 5px 2px #183c6644)}.world-orb>.ui-art{width:65px;height:65px;color:#baf2ff}.world-island{position:absolute;bottom:10px;left:calc(50% - 53px);width:106px;height:27px;border-radius:50%;background:#e8ffce;border:5px solid #62b78d;box-shadow:0 7px #8d724c,0 13px #a48a62,0 17px 8px #173e6730}.world-node>strong{font-size:14px;margin:13px 6px 3px}.world-stars{display:flex;gap:5px;justify-content:center;color:#c8d8e4;font-size:25px;line-height:1.4}.world-stars i{font-style:normal}.world-stars .earned{color:#edb328;text-shadow:0 1px #ad7622}.world-node>small{font-size:10px;color:#6a8091}.world-complete{position:absolute;top:7px;right:8px;z-index:2;background:#148f7b;border-radius:50%}.world-complete .ui-art{width:25px;height:25px;color:white}.world-node.locked .world-scene{filter:saturate(.45)}.world-node.locked .world-orb{opacity:.85}.star-rules{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.star-rules span{padding:8px 12px;border:1px solid #f1d9a2;background:#fff5d6;color:#8a661f;border-radius:10px;font-size:11px}.journey-help{font-size:11px;color:#668397}.section-label{display:flex;align-items:center;justify-content:space-between;gap:12px;margin:22px 0 14px}.section-label h3{font-size:18px;margin:0}.section-label>span{font-size:11px;color:#658399}
/* Missions */
.missions-list{display:grid;gap:12px}.mission-card{display:grid;grid-template-columns:70px 1fr 190px;gap:18px;align-items:center;padding:17px 20px;background:white;border:2px solid #cadfeb;border-radius:19px;box-shadow:0 3px #c0d5e4}.mission-art{display:grid;place-items:center;width:70px;height:70px;background:#e8f4fe;border-radius:19px}.mission-art .ui-art{width:52px;height:52px}.mission-details>small{font-size:10px;color:#618296;font-weight:700}.mission-details h3{font-size:16px;margin:5px 0 7px}.mission-details .meta-meter{margin-top:4px}.mission-count{font-size:11px;font-weight:800;color:#45978e}.mission-prize{display:flex;align-items:center;justify-content:center;gap:8px;flex-wrap:wrap;font-size:15px;font-weight:800}.mission-prize .ui-art{width:25px;height:25px}.mission-prize .claim-button{width:100%;margin-top:3px}.claim-button{display:flex;align-items:center;justify-content:center;gap:6px;background:linear-gradient(#ffe57b,#ffcf48);color:#694d16!important;border:2px solid #fff2ad!important;border-radius:11px;padding:10px 15px;box-shadow:0 4px #ba8e32;font-size:13px!important;font-weight:850!important;min-height:40px}.claim-button .ui-art{width:24px;height:24px}.claim-button:disabled{background:#e5edf3;color:#627b8e!important;border-color:#d1e0e9!important;box-shadow:0 3px #bdcfdb}.claim-ready{border-color:#65cfb2!important;background:#f2fffa!important}.claimed .mission-art{background:#e2f3ee}.claimed .claim-button{background:#d7f2e8;color:#39836e!important;box-shadow:0 3px #b4d8cb;border-color:#c4e9dc!important}.long-missions{grid-template-columns:repeat(2,minmax(0,1fr))}.long-missions .mission-card{grid-template-columns:50px 1fr;gap:12px;padding:16px}.long-missions .mission-art{width:50px;height:50px}.long-missions .mission-art .ui-art{width:40px;height:40px}.long-missions .mission-prize{grid-column:1/-1;justify-content:flex-end}.long-missions .mission-prize .claim-button{width:auto;margin-left:auto;min-width:120px}
/* Reward trail, shop and event */
.pass-hero{display:flex;align-items:center;gap:22px;border:2px solid #cbb8ff;border-radius:20px;padding:22px 25px;background:linear-gradient(115deg,#5747a1,#7962c7);color:white;box-shadow:0 4px #d9cee9;margin-bottom:25px}.pass-hero>.ui-art{width:85px;height:85px}.pass-hero>div{flex:1}.pass-hero small{font-size:11px;color:#e0d5ff}.pass-hero h3{font-size:29px;margin:5px 0 7px}.pass-hero p{font-size:12px;color:#eee7ff;margin:0;max-width:530px}.pass-hero>strong{font-size:38px;text-align:center;color:#ffe58c}.pass-hero strong>span{display:block;font-size:10px;color:#eee7ff}.pass-track{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:24px 14px;padding-top:12px}.pass-stop{position:relative;text-align:center;background:white;border:2px solid #c7d9e8;border-radius:18px;padding:17px 13px 13px;display:flex;flex-direction:column;align-items:stretch;box-shadow:0 4px #bdd1e2}.tier-number{width:32px;height:32px;display:grid;place-items:center;border:3px solid #ebf5ff;background:#497ca9;color:white;border-radius:50%;position:absolute;top:-16px;left:calc(50% - 16px);font-size:13px;font-weight:900}.pass-stop.claimed .tier-number{background:#37a88b}.pass-stop .prize-art{height:85px}.prize-art{color:var(--item-color,#8a8fed);display:grid;place-items:center;position:relative}.prize-art>.ui-art{width:88px;height:88px;transform:rotate(-8deg);color:inherit;filter:drop-shadow(0 5px 1px #294d6926)}.pass-stop .prize-art>.ui-art{width:65px;height:65px}.pass-stop>small{font-size:10px;color:#718b9f}.pass-stop h3{font-size:14px;margin:7px 0 0;min-height:34px;display:grid;place-items:center}.pass-stop p{font-size:10px;color:#6b8296;margin:4px 0 0}.pass-stop button{font-size:10px!important;padding:9px 6px}.pass-stop .meta-meter{margin-top:auto}.extra-goals{display:grid;grid-template-columns:1fr 1fr;gap:15px;margin-top:24px}.bonus-card{display:flex;align-items:center;gap:15px;padding:17px;background:#e1edf8;border-radius:17px;border:1px solid #c1d9e9}.bonus-card>.ui-art,.bonus-card>span>.ui-art{width:52px;height:52px;color:inherit}.bonus-card h3{font-size:14px}.bonus-card p{font-size:11px;color:#658197;margin:0}.bonus-card button{padding:8px 11px;border-radius:9px;background:#c6e6dc;font-size:10px;font-weight:800;flex-shrink:0}.bonus-card button:disabled{background:#d1e0ea;color:#7791a6}.shop-balance{display:flex;align-items:center;gap:7px;font-size:26px;font-weight:900;color:#9c7825}.daily-gift{display:flex;align-items:center;gap:18px;padding:12px 20px;background:#ede7ff;border:2px solid #c9baf1;border-radius:20px;margin-bottom:16px;box-shadow:0 4px #d7cbea}.daily-gift>.ui-art{width:42px;height:42px}.daily-gift>div{flex:1}.daily-gift h3{font-size:17px}.daily-gift p{font-size:12px;margin:0;color:#746591}.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}.shop-card{position:relative;text-align:center;padding:15px 18px;background:white;border:2px solid color-mix(in srgb,var(--item-color),white 40%);border-radius:20px;box-shadow:0 4px #c0d5e5}.shop-card .prize-art{height:90px;background:radial-gradient(ellipse,color-mix(in srgb,var(--item-color),transparent 73%),transparent 70%)}.rarity{font-size:10px;font-weight:800;background:color-mix(in srgb,var(--item-color),white 75%);color:#324e6c;padding:4px 9px;border-radius:8px;display:inline-block}.shop-card h3{font-size:16px;min-height:32px;display:grid;place-items:center}.shop-card .claim-button{width:100%}.shop-card p{font-size:10px;margin:9px 0 0;color:#6b8498}.festival-scene{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:32px;padding:15px 30px;min-height:370px}.festival-trophy{position:relative;display:flex;align-items:center;justify-content:center;flex-direction:column;min-height:310px;border:3px solid #ffdb90;border-radius:50% 50% 22px 22px;background:radial-gradient(#fff9b9,#ffe1ae 45%,#ffb7a9);overflow:hidden;box-shadow:0 7px #da8b83}.festival-trophy>.ui-art{width:205px;height:205px;color:#ee5e91;transform:rotate(-16deg);filter:drop-shadow(0 12px 6px #9e548740)}.festival-trophy>span{background:#9355a5;color:white;transform:rotate(-4deg);padding:9px 38px;font-weight:900;border:2px solid #d394dd;border-radius:9px;font-size:17px}.trophy-rays{position:absolute;inset:-50%;background:repeating-conic-gradient(#fff5 0deg 12deg,transparent 12deg 24deg);border-radius:50%}.festival-story>small{color:#a65a80;font-size:11px;font-weight:800}.festival-story h3{font-size:31px;line-height:1.1;margin:8px 0 14px;letter-spacing:-1px}.festival-story p{font-size:13px;color:#618092}.fragment-row{display:flex;gap:13px;margin:20px 0 12px}.fragment-row>span{position:relative;background:#dce8ef;border:2px solid #bfd2de;border-radius:14px;width:68px;height:68px;display:grid;place-items:center;color:#a4bac9}.fragment-row .ui-art{color:inherit;width:43px;height:43px}.fragment-row .found{background:#d6f4e8;color:#329a7c;border-color:#7cccac}.fragment-row small{position:absolute;bottom:-6px;right:-6px;border:2px solid white;background:#6b92aa;color:white;width:22px;height:22px;border-radius:50%;display:grid;place-items:center;font-weight:800}.festival-count{font-size:12px;color:#5c8d96;display:block;margin:7px 0 13px}.festival-story>.claim-button{width:100%}.festival-note{display:block;line-height:1.5;margin-top:15px;color:#738da1!important;font-weight:500!important}
/* Wardrobe and end-of-round rewards */
.wardrobe{display:grid;grid-template-columns:minmax(260px,35%) 1fr;gap:25px}.hero-preview{position:sticky;top:0;align-self:start;text-align:center;padding:20px 14px;border-radius:23px;border:2px solid #90c8cc;background:radial-gradient(ellipse at 45% 45%,#caf6de,#7fc5bd 75%);box-shadow:0 4px #9dbfcb}.hero-preview h3{font-size:16px;color:#245668}.hero-preview #costume-preview{height:clamp(180px,calc(100dvh - 450px),335px)}.hero-preview canvas{display:block;width:100%;height:100%}.hero-preview>button{padding:10px 20px;background:#e8fff2;border:2px solid #b9e8ce!important;border-radius:12px;font-size:12px;font-weight:800;box-shadow:0 3px #5c9d91}.wardrobe-collection .section-label{margin-top:0}.reward-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.reward-item{position:relative;display:flex;flex-direction:column;align-items:center;gap:5px;padding:15px 11px 12px;border:2px solid color-mix(in srgb,var(--item-color),white 50%);border-radius:16px;background:white;text-align:center;box-shadow:0 3px #c5d9e5}.reward-item .prize-art{height:83px;width:100%;background:radial-gradient(ellipse,color-mix(in srgb,var(--item-color),transparent 80%),transparent 70%)}.reward-item .prize-art>.ui-art{width:63px;height:63px}.reward-item>strong{font-size:12px;line-height:1.25;min-height:30px;display:grid;place-items:center}.reward-item>small{font-size:9px;color:#628196;line-height:1.5}.item-status{align-self:flex-end;font-size:9px;color:#4d8d84;min-height:18px;font-weight:800}.item-status>.ui-art{width:19px;height:19px}.reward-item.equipped{border-color:#39b998;background:#e5fff2;box-shadow:0 3px #42a88b}.reward-item.item-locked .prize-art{opacity:.72}.reward-summary{max-width:660px;margin:0 auto;text-align:center;padding:12px 0}.completion-icon>.ui-art{width:72px;height:72px}.reward-summary h3{font-size:27px;margin-top:10px}.reward-summary p{font-size:12px;color:#638399}.earned-stars{display:flex;justify-content:center;gap:18px;font-size:64px;color:#c6d9e5;line-height:1.2;margin:12px 0}.earned-stars .lit{color:#ffd347;filter:drop-shadow(0 3px #c39328)}.new-star{animation:star-pop .5s ease-out both}.new-star:nth-child(2){animation-delay:.15s}.new-star:nth-child(3){animation-delay:.3s}.reward-summary ul{padding:0;list-style:none;text-align:left}.reward-summary li{padding:10px 12px;border-bottom:1px solid #ccdee8;display:flex;justify-content:space-between;gap:10px;font-size:13px}.reward-summary li small{color:#338f80;font-size:10px}.gain-summary{display:flex;gap:10px;justify-content:center;margin:20px 0 10px}.gain-summary strong{display:flex;align-items:center;justify-content:center;gap:6px;padding:12px 17px;border:2px solid #bae1dc;border-radius:13px;background:#e4f5f2;color:#28887f;font-size:11px}.gain-summary b{font-size:19px}.gain-summary .ui-art{width:25px;height:25px}.level-up{background:#e5dcff;color:#7c51aa!important;padding:10px;border-radius:12px;font-weight:850}.new-reward{display:flex;align-items:center;gap:17px;padding:15px;border:2px solid #e8ca74;background:#fff4cc;border-radius:17px;margin:20px 0;text-align:left}.new-reward>.ui-art{width:62px;height:62px;color:var(--item-color)}.new-reward>div{flex:1}.new-reward small{display:block;font-size:10px;color:#ae8336;margin-bottom:4px}.new-reward strong{font-size:17px}.reward-actions{display:flex;justify-content:center;gap:10px;flex-wrap:wrap}.reward-actions>button:not(.claim-button){padding:10px 15px;border-radius:12px;border:2px solid #bfd9e8;background:#dcecf5;font-size:12px;font-weight:800;box-shadow:0 3px #b4cddd}@keyframes star-pop{from{transform:scale(.1) rotate(-20deg);opacity:0}70%{transform:scale(1.18)}to{transform:scale(1);opacity:1}}
/* Small laptops, landscape phones, and portrait touch screens. */
@media(max-width:1100px){.journey-screen{padding:12px 16px 6px}.journey-window{height:calc(100dvh - 18px);gap:10px}.lobby-top{grid-template-columns:220px 1fr auto;gap:14px}.lobby-wallet{gap:7px}.lobby-wallet button{min-width:90px;padding-right:9px}.lobby-wallet .ui-art{width:32px;height:32px}.lobby-wallet strong{font-size:20px}.lobby-layout{grid-template-columns:142px minmax(0,1fr) 270px;gap:14px 18px;grid-template-rows:minmax(0,1fr) 111px}.rail-button{padding-left:48px;min-height:69px}.rail-button>.ui-art{width:49px;height:49px}.rail-button strong{font-size:13px}.rail-button small{font-size:9px}.lobby-rail{gap:13px}.panel-heading strong{font-size:18px}.lobby-missions{padding:13px}.lobby-pass{padding:13px}.pass-copy strong{font-size:15px}.journey-nav button{padding:8px 12px;font-size:12px}.journey-content{padding:20px}.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.pass-track{grid-template-columns:repeat(5,minmax(0,1fr));gap:14px 9px}.pass-stop{padding:17px 8px 12px}.pass-stop h3{font-size:12px}.extra-goals{grid-template-columns:1fr}.world-path{gap:13px}.festival-scene{padding:15px 10px}}
@media(max-width:800px){.lobby-top{grid-template-columns:180px 1fr;gap:10px}.camp-brand{display:none}.profile-plaque{padding:6px 12px 6px 3px;gap:6px}.level-shield{width:42px;height:48px;font-size:25px}.profile-plaque strong{font-size:14px}.lobby-wallet{justify-self:end}.lobby-wallet button{min-width:70px;gap:3px;padding:5px}.lobby-wallet small{font-size:8px}.lobby-wallet .ui-art{width:28px;height:28px}.lobby-wallet strong{font-size:17px}.lobby-wallet i{font-size:10px}.lobby-layout{grid-template-columns:108px minmax(0,1fr) 232px;gap:13px;grid-template-rows:minmax(0,1fr) 108px}.rail-button{padding:8px 4px 9px;text-align:center;min-height:88px}.rail-button>.ui-art{position:static;width:40px;height:40px;display:block;margin:0 auto 3px}.rail-button small{display:none}.rail-button strong{font-size:11px}.lobby-rail{gap:10px}.hero-name h1{font-size:20px}.hero-name span{font-size:10px}.lobby-model{inset:40px -35px 12px}.lobby-goals{gap:15px}.lobby-missions{padding:11px}.panel-heading strong{font-size:16px}.panel-heading>.ui-art{width:29px;height:29px}.mini-mission{font-size:11px}.pass-copy strong{font-size:14px}.lobby-pass{grid-template-columns:40px 1fr;padding:12px}.pass-emblem>.ui-art{width:42px;height:42px}.lobby-festival{padding:11px;width:310px;gap:8px}.lobby-festival strong{font-size:16px}.festival-emblem>.ui-art{width:52px;height:52px}.play-big{font-size:24px!important}.journey-toolbar h2{font-size:24px}.journey-nav{gap:5px;justify-content:stretch}.journey-nav button{flex:1;flex-direction:column;gap:3px;padding:6px 4px;font-size:10px}.journey-nav .ui-art{width:25px;height:25px}.world-path{grid-template-columns:repeat(3,minmax(0,1fr))}.chapter-title small{display:none}.shop-grid{gap:12px}.shop-card{padding:12px}.shop-card h3{font-size:14px}.mission-card{grid-template-columns:55px 1fr 150px;gap:12px;padding:14px}.mission-art{width:55px;height:55px}.mission-art>.ui-art{width:42px;height:42px}.pass-track{grid-template-columns:repeat(3,minmax(0,1fr));gap:24px 12px}.wardrobe{grid-template-columns:230px 1fr;gap:16px}.hero-preview #costume-preview{height:270px}.hero-preview h3{font-size:13px}.festival-scene{gap:20px;padding:0}.festival-trophy{min-height:290px}.festival-trophy>.ui-art{width:170px;height:170px}.festival-story h3{font-size:27px}.section-lead h3{font-size:23px}.section-lead p{font-size:12px}.long-missions{grid-template-columns:1fr}.pass-hero{padding:17px}.pass-hero h3{font-size:24px}.pass-hero>.ui-art{width:62px;height:62px}}
@media(max-width:600px){.journey-screen{padding:8px 9px 4px}.journey-window{height:calc(100dvh - 12px);min-height:640px;gap:9px}.lobby-top{min-height:60px;grid-template-columns:145px 1fr;gap:6px}.profile-plaque{border-radius:12px;padding:5px 7px 5px 2px}.level-shield{width:36px;height:43px;font-size:23px}.profile-plaque strong{font-size:12px}.profile-plaque small{font-size:8px}.lobby-wallet{gap:4px}.lobby-wallet button{min-width:49px;padding:5px 5px 5px 3px;gap:2px;border-radius:10px}.lobby-wallet .ui-art{width:22px;height:22px}.lobby-wallet small{display:none}.lobby-wallet strong{font-size:14px}.lobby-wallet i{display:none}.lobby-layout{grid-template-columns:80px 1fr;grid-template-rows:minmax(210px,1fr) 141px 103px;gap:12px 9px}.lobby-rail{grid-column:1;grid-row:1;gap:8px;justify-content:center}.rail-button{min-height:56px;padding:4px 3px;border-radius:12px;box-shadow:0 3px #173b60}.rail-button>.ui-art{width:30px;height:30px;float:left;margin:5px 0 2px}.rail-button strong{font-size:10px;margin-top:5px;line-height:1.15}.rail-button.gift-shortcut strong{padding-right:3px}.rail-button .ready-dot{width:19px;height:19px;font-size:11px}.lobby-hero{grid-column:2;grid-row:1}.hero-name{top:2px}.hero-name span{font-size:9px}.hero-name h1{font-size:17px}.lobby-model{inset:25px -14px 20px}.hero-customize{font-size:10px!important;padding:5px 12px;bottom:0}.hero-customize .ui-art{width:18px;height:18px}.lobby-goals{grid-row:2;grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:10px;padding:0;align-items:stretch}.lobby-missions{border-width:2px!important;border-radius:15px;padding:9px;box-shadow:0 4px #226181}.panel-heading{gap:4px;margin:0}.panel-heading strong{font-size:13px}.panel-heading>.ui-art{width:26px;height:26px}.mini-mission{font-size:10px;gap:0 5px;padding:8px 0}.mini-mission:nth-of-type(3){display:none}.mini-mission small{font-size:9px}.mini-mission .meta-meter{height:9px}.panel-link{font-size:9px;padding-top:4px}.lobby-pass{border-width:2px!important;border-radius:15px;padding:10px;grid-template-columns:32px 1fr;gap:4px 5px;box-shadow:0 4px #333367}.pass-emblem>.ui-art{width:36px;height:36px}.pass-copy{gap:4px}.pass-copy small{font-size:8px}.pass-copy strong{font-size:12px}.pass-copy>span{font-size:9px}.pass-count{font-size:9px}.lobby-festival{grid-column:1;grid-row:3;flex-direction:column;justify-content:center;align-self:stretch;padding:5px;gap:3px;width:auto;min-width:0;border-radius:14px;border-width:2px!important;box-shadow:0 4px #643c62;text-align:center}.lobby-festival .festival-emblem>.ui-art{width:31px;height:31px}.lobby-festival>span:nth-child(2){gap:3px}.lobby-festival small,.lobby-festival b{display:none}.lobby-festival strong{font-size:10px;line-height:1.1}.lobby-festival span span{font-size:8px}.lobby-launch{grid-row:3;grid-column:2;gap:6px;align-self:stretch}.world-selector{padding:6px 10px}.world-selector>span:first-child{font-size:21px}.world-selector strong{font-size:12px}.world-selector small{font-size:8px}.play-big{flex:1;height:auto;min-height:47px;font-size:25px!important;border-radius:13px;box-shadow:0 5px #c48a24}.play-big .ui-art{width:23px;height:23px}.camp-footer{font-size:8px;gap:8px}.camp-footer a{font-size:9px}.camp-footer a .ui-art{width:19px;height:19px}.save-note{max-width:190px}.camp-sound .ui-art{width:18px;height:18px}.journey-toolbar{gap:8px}.journey-toolbar h2{font-size:19px;letter-spacing:-.6px}.back-camp{padding:6px 9px;font-size:10px!important}.back-camp .ui-art{width:19px;height:19px}.resume-game{font-size:9px!important;padding:6px 8px;gap:4px}.resume-game .ui-art{width:15px;height:15px}.journey-nav{gap:3px}.journey-nav button{font-size:8px;box-shadow:0 3px #2b647d;border-radius:9px;padding:5px 2px}.journey-nav .ui-art{width:22px;height:22px}.journey-nav button:first-child{display:none}.journey-content{border-width:2px;border-radius:17px;padding:14px}.section-lead{gap:10px;margin-bottom:18px}.section-lead h3{font-size:20px}.section-lead p{font-size:11px}.section-counter{font-size:27px}.section-counter small{font-size:10px;display:block}.lead-art{width:50px;height:50px}.chapter-title{font-size:15px!important;margin-top:18px!important}.world-path{grid-template-columns:repeat(2,minmax(0,1fr));gap:13px 10px}.world-scene{height:103px}.world-node{border-radius:15px;padding-bottom:11px}.world-node>strong{font-size:12px;margin-top:10px}.world-node>small{font-size:9px}.world-orb{font-size:44px}.world-orb>.ui-art{width:56px;height:56px}.world-island{width:91px;left:calc(50% - 45px);height:23px}.world-stars{font-size:22px}.star-rules{gap:6px}.star-rules span{font-size:9px;padding:7px}.section-label h3{font-size:15px}.section-label>span{font-size:9px}.mission-card{grid-template-columns:42px 1fr;gap:10px;padding:12px;border-radius:15px}.mission-art{width:42px;height:42px;border-radius:12px}.mission-art>.ui-art{width:34px;height:34px}.mission-details h3{font-size:13px}.mission-details>small{font-size:9px}.mission-prize{grid-column:1/-1;flex-wrap:nowrap;justify-content:flex-end;font-size:13px}.mission-prize>.claim-button{width:auto;margin:0 0 0 auto;min-width:110px;font-size:11px!important}.mission-prize .ui-art{width:21px;height:21px}.long-missions .mission-card{grid-template-columns:42px 1fr}.long-missions .mission-art{width:42px;height:42px}.pass-hero{gap:12px;padding:14px;border-radius:15px}.pass-hero>.ui-art{display:none}.pass-hero h3{font-size:22px}.pass-hero small{font-size:9px}.pass-hero p{font-size:10px}.pass-hero>strong{font-size:25px}.pass-hero>strong span{font-size:8px}.pass-track{grid-template-columns:repeat(2,minmax(0,1fr));gap:25px 12px}.pass-stop h3{font-size:13px}.pass-stop>small{font-size:9px}.pass-stop button{font-size:9px!important}.bonus-card{padding:12px;gap:10px}.bonus-card h3{font-size:12px}.bonus-card p{font-size:10px}.bonus-card>.ui-art,.bonus-card>span>.ui-art{width:37px;height:37px}.bonus-card button{font-size:9px;min-width:68px;max-width:90px}.daily-gift{display:grid;grid-template-columns:42px 1fr;padding:12px;gap:10px}.daily-gift>.ui-art{width:42px;height:42px}.daily-gift h3{font-size:13px}.daily-gift p{font-size:10px}.daily-gift .claim-button{grid-column:1/-1;width:100%;font-size:11px!important}.shop-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:14px 10px}.shop-card{padding:10px;border-radius:15px}.shop-card .prize-art{height:90px}.prize-art>.ui-art{width:70px;height:70px}.shop-card h3{font-size:12px;min-height:33px}.shop-card button{font-size:10px!important;padding:7px 5px;min-height:36px}.shop-card button .ui-art{width:20px;height:20px}.shop-card p{font-size:9px}.rarity{font-size:8px}.shop-balance{font-size:19px}.shop-balance>.ui-art{width:28px;height:28px}.wardrobe{grid-template-columns:1fr;gap:20px}.hero-preview{position:static;padding:12px}.hero-preview #costume-preview{height:225px}.hero-preview h3{font-size:14px;margin:0}.hero-preview>button{font-size:10px;padding:7px 16px}.reward-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px}.reward-item>strong{font-size:12px}.festival-scene{grid-template-columns:1fr;gap:24px}.festival-trophy{min-height:210px;border-radius:22px}.festival-trophy>.ui-art{width:145px;height:145px}.festival-trophy>span{padding:6px 28px;font-size:13px}.festival-story h3{font-size:27px}.festival-story p{font-size:12px}.fragment-row{justify-content:center}.festival-story{text-align:center}.festival-count{font-size:11px}.reward-summary h3{font-size:22px}.reward-summary p{font-size:11px}.earned-stars{font-size:52px}.reward-summary li{font-size:11px;padding:9px 2px}.reward-summary li small{font-size:9px;text-align:right}.gain-summary{gap:6px}.gain-summary strong{padding:9px 6px;gap:3px;font-size:9px}.gain-summary b{font-size:15px}.gain-summary .ui-art{width:20px;height:20px}.new-reward{padding:12px;gap:10px}.new-reward>.ui-art{width:42px;height:42px}.new-reward strong{font-size:13px}.new-reward button{font-size:11px!important;padding:8px 13px}.reward-actions{gap:10px}.reward-actions>button{font-size:11px!important}}
@media(max-height:620px) and (min-width:601px){.journey-window{min-height:480px}.lobby-top{min-height:63px}.lobby-layout{grid-template-rows:minmax(0,1fr) 95px}.rail-button{min-height:55px}.rail-button>.ui-art{width:38px;height:38px}.lobby-rail{gap:9px}.lobby-goals{gap:11px;padding-top:0}.lobby-missions{padding:10px}.mini-mission{padding:5px 0}.lobby-pass{padding:9px}.pass-copy small{display:none}.pass-emblem>.ui-art{width:36px;height:36px}.lobby-festival{padding:7px 12px}.festival-emblem>.ui-art{width:45px;height:45px}.play-big{height:48px;font-size:25px!important}.hero-name span{display:none}.hero-name h1{font-size:20px}.lobby-model{top:22px}.world-selector{padding:5px 10px}.camp-footer{font-size:9px}.journey-toolbar h2{font-size:23px}.journey-nav button{padding:5px 10px}}
@media(prefers-reduced-motion:reduce){.journey-screen *{animation:none!important;transition:none!important}}

@media(min-width:801px){.missions-list:not(.long-missions){grid-template-columns:repeat(3,minmax(0,1fr))}.missions-list:not(.long-missions) .mission-card{display:flex;flex-direction:column;align-items:stretch;gap:10px;padding:15px}.missions-list:not(.long-missions) .mission-art{width:52px;height:52px;margin:auto}.missions-list:not(.long-missions) .mission-art .ui-art{width:40px;height:40px}.missions-list:not(.long-missions) .mission-details h3{font-size:15px;min-height:36px}.missions-list:not(.long-missions) .mission-prize{display:grid;grid-template-columns:1fr 1fr;text-align:center;gap:6px}.missions-list:not(.long-missions) .mission-prize .claim-button{grid-column:1/-1}}

/* v19: rendered menu treasures, with one shared transparent atlas. */
.ui-render{background-image:url('./assets/art/menu-treasures-v19.png');background-size:300% 300%;background-position:var(--art-x) var(--art-y);background-repeat:no-repeat;filter:drop-shadow(0 4px 3px #071b3e45);isolation:isolate}
.rail-button{background:linear-gradient(145deg,#3977a4f5 0%,#225a87f2 48%,#16436ef5 100%);border-color:#9dd7e9!important;box-shadow:inset 0 2px 0 #efffff55,inset 0 -4px 0 #0a284e66,0 6px 0 #112f50,0 10px 17px #04203c45}
.rail-button.gift-shortcut{background:linear-gradient(145deg,#a579ec,#7655c2 52%,#523799);border-color:#e0bbff!important;box-shadow:inset 0 2px 0 #f5e6ff70,inset 0 -4px 0 #40216e66,0 6px 0 #302251,0 10px 17px #04203c45}
.rail-button>.ui-render{transform:rotate(-4deg);filter:drop-shadow(2px 5px 2px #09244770)}
.lobby-pass{box-shadow:inset 0 2px 0 #f3deff66,inset 0 -4px 0 #311f6555,0 6px #302650,0 12px 20px #03283b35}
.hero-customize{box-shadow:inset 0 2px #d6fff64d,0 5px #123e4c,0 9px 18px #04334555}
.hero-customize .ui-render{width:27px;height:27px}
.prize-art .ui-render,.world-orb .ui-render{filter:drop-shadow(0 8px 5px #17365b55)}
@media(min-width:1101px) and (min-height:621px){
.rail-button{min-height:86px;padding-left:68px}
.rail-button>.ui-render{width:84px;height:84px;left:-21px;top:-2px}
.lobby-rail{gap:18px}
.panel-heading>.ui-render{width:48px;height:48px;margin:-7px 0 -2px -3px}
.pass-emblem>.ui-render{width:72px;height:72px;margin-left:-10px}
.festival-emblem>.ui-render{width:78px;height:78px}
}
@media(max-width:600px){.rail-button>.ui-render{width:34px;height:34px;margin:2px 0 0 -1px}.hero-customize .ui-render{width:22px;height:22px}}
@media(prefers-reduced-motion:reduce){.rail-button,.hero-customize{transition:none}}
.ui-equipment{background-image:url('./assets/art/equipment-v19.png');background-size:400% 400%;background-position:var(--art-x) var(--art-y);background-repeat:no-repeat;filter:drop-shadow(0 7px 4px #17365b50)}
.item-locked .ui-equipment{filter:grayscale(.65) saturate(.45) opacity(.65)}
