.mobile-nav{display:none}.adventure-ribbon{display:flex;align-items:center;gap:25px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:22px 0;margin:15px 0 35px}.adventure-ribbon>div:first-child{flex:1}.adventure-ribbon .eyebrow{font-size:9px;margin-bottom:8px}.adventure-ribbon h2{font-size:24px;letter-spacing:-.5px}.adventure-ribbon .zh{font-size:10px}.adventure-ribbon .secondary{font-size:12px;white-space:nowrap}.trail-stamps{display:flex;justify-content:center;gap:10px}.trail-stamp{display:grid;place-items:center;width:40px;height:40px;border:1px dashed #aebba2;border-radius:50%;color:#5c6d51;font-size:15px;font-weight:900;flex-shrink:0}.trail-stamp.earned{color:#fff4c0;background:#64833d;border:2px solid #d7bc67;box-shadow:0 3px 0 #385c28;transform:rotate(-9deg)}.trail-stamp svg{width:23px;height:23px}.adventure-page{padding-top:28px}.adventure-heading{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-bottom:8px}.adventure-heading .eyebrow{margin-bottom:12px;font-size:10px}.adventure-heading h1{font-size:44px;letter-spacing:-1.4px}.adventure-heading p:not(.eyebrow){font-size:15px;color:var(--muted);margin-top:13px}.adventure-heading .zh{font-size:11px}.map-passport{padding:18px 24px;border:1px solid #cfc2a5;border-radius:12px;transform:rotate(5deg);background:#fff0ce;box-shadow:4px 5px 0 #c4b38830;flex-shrink:0}.map-passport strong{display:block;font-size:12px;text-align:center;margin-top:10px}.map-passport .trail-stamp{width:31px;height:31px;font-size:12px}.map-passport .trail-stamps{gap:9px}.adventure-layout{display:grid;grid-template-columns:minmax(0,1fr) 280px;gap:18px;align-items:center;margin-bottom:35px}.map-scene{position:relative;perspective:1100px;min-width:0;padding:12px 0 25px}.map-board{position:relative;width:100%;max-width:820px;margin:auto;aspect-ratio:3/2;transform-style:preserve-3d;transition:transform .6s ease;isolation:isolate}.with-depth .map-board{transform:rotateX(3deg) rotateY(-3deg)}.island-art{display:block;width:100%;height:auto;mix-blend-mode:darken;pointer-events:none}.map-node{position:absolute;left:var(--x);top:var(--y);width:145px;transform:translate(-50%,-50%) translateZ(20px);background:none;padding:0;text-align:center;z-index:2;transition:filter .2s,transform .2s}.map-node:hover{transform:translate(-50%,-55%) translateZ(25px)}.node-medallion{display:block;margin:auto;width:92px;height:92px;background:#fff8df;border:5px solid #e6cb89;box-shadow:0 7px 0 #ad8751,0 12px 12px #183d2920;border-radius:50%;overflow:hidden;transition:border-color .2s,box-shadow .2s}.node-medallion .sprite{width:100%;height:100%;border-radius:50%}.map-node.selected .node-medallion{border-color:#ed9552;box-shadow:0 7px 0 #b85524,0 0 0 5px #fff5c6,0 12px 18px #183d2930}.map-node.completed .node-medallion{border-color:#a1b95a}.node-number{position:relative;display:grid;place-items:center;border:2px solid #c4a66c;width:31px;height:31px;border-radius:50%;background:#fff0bd;margin:-16px auto -3px;z-index:2;font:800 19px/1 var(--serif)}.map-node.selected .node-number{background:#c24c28;color:#fffaf0;border-color:#ffdfa2}.node-title{display:inline-block;font:800 16px/1.15 var(--serif);background:#fff3d1;box-shadow:0 3px 0 #b49b6c;padding:9px 13px;border-radius:10px;white-space:nowrap;color:var(--ink)}.map-node.locked .node-medallion{filter:saturate(.65)}.node-lock{position:absolute;right:12px;bottom:33px;display:grid;place-items:center;width:25px;height:25px;background:#f5e4b8;border-radius:50%;border:1px solid #a39066;font-size:18px}.depth-control{position:absolute;bottom:0;left:10px;min-height:44px;padding:9px 12px;font-size:11px;background:#fff9ed;border:1px solid var(--line);border-radius:9px}.depth-control span{font-size:9px;margin-left:6px;color:var(--muted)}.trail-detail{position:relative;padding:25px 22px;background:#fffdf6;border:1px solid #ddd6bf;border-radius:18px;box-shadow:0 6px 0 #c9bca027}.trail-detail .eyebrow{font-size:9px;letter-spacing:1.3px;margin-bottom:10px}.trail-detail h2{font-size:29px}.trail-detail>.zh{font-size:11px;margin-top:7px}.trail-description{font-size:12px;color:var(--muted);margin-top:18px;line-height:1.7}.trail-friends{display:grid;grid-template-columns:repeat(3,1fr);gap:5px;margin:15px -5px 13px;text-align:center}.trail-friends .sprite{width:65px;max-width:100%;margin:auto}.trail-friends small{font-size:10px;font-weight:800}.phase-list{display:flex;justify-content:space-between;gap:8px;list-style:none;padding:15px 0;margin:8px 0 22px;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}.phase-list li{display:flex;align-items:center;gap:7px;font-size:12px}.phase-list b{display:grid;place-items:center;font-size:10px;border:1px solid #ccd3bc;border-radius:50%;width:21px;height:21px}.phase-list .zh{font-size:8px;letter-spacing:0}.trail-detail .primary{font-size:15px;width:100%;padding:13px;gap:10px;min-height:50px}.trail-saving{font-size:10px;color:var(--muted);text-align:center;margin-top:15px}.trail-saving .zh{font-size:9px;letter-spacing:0}.locked-message{font-size:14px;line-height:1.6;margin:25px 0;color:var(--muted)}.trail-detail .secondary{width:100%;font-size:12px}.chapter-celebration{position:relative;max-width:820px;margin:0 auto;padding:42px 10px 40px;text-align:center}.chapter-celebration .eyebrow{margin:27px 0 16px;font-size:11px}.chapter-celebration h1{font-size:46px;letter-spacing:-1px}.chapter-celebration>p:not(.eyebrow){margin:17px auto;color:var(--muted);font-size:15px}.reward-badge{position:relative;display:grid;place-items:center;width:170px;height:170px;margin:auto;border:7px solid #e4be69;border-radius:50%;background:#fff0b8;box-shadow:0 8px 0 #ad7f35,0 16px 20px #3c51221c;transform:rotate(-7deg);animation:badge-arrive .65s ease-out}.reward-badge .sprite{width:145px;border-radius:50%}.reward-badge>span:not(.sprite){position:absolute;bottom:-18px;right:0;display:grid;place-items:center;background:#c24c28;color:#fff6da;width:48px;height:48px;border-radius:50%;border:4px solid #ffeac0;font:800 27px var(--serif)}.chapter-celebration>.trail-stamps{margin:25px 0}.chapter-celebration .trail-stamp{width:48px;height:48px}.chapter-celebration .reward-note{font-size:12px}.chapter-celebration .reward-note .zh{font-size:10px}.chapter-celebration .summary-actions{margin-top:25px}.chapter-celebration .primary{font-size:16px}.final-friends{display:flex;justify-content:center;gap:7px;flex-wrap:wrap;max-width:600px;margin:22px auto}.final-friends>span{width:48px}.confetti{position:absolute;pointer-events:none;top:60px;left:50%;width:1px;height:1px}.confetti i{position:absolute;display:block;width:8px;height:13px;background:#e7af42;border-radius:2px;transform:rotate(calc(var(--i)*30deg)) translateY(-125px);animation:confetti-in 1.2s ease-out both;animation-delay:calc(var(--i)*20ms)}.confetti i:nth-child(3n){background:#7d9b45}.confetti i:nth-child(3n+1){background:#ce6945}.confetti i:nth-child(3n+2){background:#68a0ad}#howto{max-width:460px;text-align:center}#howto>.icon-button{float:right;margin:-15px -15px 0 0;font-size:25px}#howto h2{font-size:33px}#howto .eyebrow{font-size:10px;margin-bottom:17px}#howto-content>p:not(.eyebrow){font-size:14px;line-height:1.8;margin:19px 0}#howto-content>.zh{font-size:12px;line-height:1.9}#howto-content .help-kindness{font-size:12px;color:var(--muted)}.help-example{height:105px;display:flex;justify-content:center;align-items:center;margin:15px}.help-example .sprite{width:115px;height:115px}.help-example .mini-tiles{transform:rotate(-7deg)}.help-example .mini-tiles b{width:45px;height:57px;font-size:32px}.help-example .headphones{width:65px;height:65px}.game-help{font-size:21px;font-weight:900}.game-top{display:grid;grid-template-columns:auto 1fr auto auto}.game-top .round-track{justify-self:end}.game-top .back{white-space:nowrap}
@keyframes badge-arrive{from{opacity:0;transform:translateY(25px) rotate(-15deg) scale(.85)}to{opacity:1;transform:translateY(0) rotate(-7deg) scale(1)}}@keyframes confetti-in{from{opacity:0;transform:rotate(calc(var(--i)*30deg)) translateY(-55px)}30%{opacity:1}to{opacity:0;transform:rotate(calc(var(--i)*30deg + 20deg)) translateY(-180px)}}
@media(max-width:1100px){.adventure-heading h1{font-size:38px}.adventure-layout{grid-template-columns:minmax(0,1fr) 245px;gap:10px}.trail-detail{padding:22px 17px}.trail-detail h2{font-size:26px}.node-medallion{width:77px;height:77px}.map-node{width:123px}.node-title{font-size:14px;padding:8px 10px}.map-passport{padding:14px 18px}.map-passport .trail-stamp{width:27px;height:27px}.phase-list li{font-size:11px;gap:4px}.phase-list b{width:17px;height:17px}.adventure-ribbon{gap:16px}.adventure-ribbon h2{font-size:22px}.adventure-ribbon .trail-stamp{width:34px;height:34px}}
@media(max-width:800px){.adventure-page{padding-top:25px}.adventure-heading{align-items:start}.adventure-heading h1{font-size:35px}.adventure-heading p:not(.eyebrow){font-size:13px}.adventure-heading .zh{font-size:10px}.map-passport{padding:11px 12px}.map-passport .trail-stamps{gap:5px}.map-passport strong{font-size:10px}.adventure-layout{grid-template-columns:1fr;gap:5px}.map-board{max-width:680px}.map-scene{padding:0 0 20px}.node-medallion{width:83px;height:83px}.map-node{width:135px}.node-title{font-size:15px}.trail-detail{padding:22px;display:grid;grid-template-columns:1fr 1.1fr;gap:0 25px}.trail-detail>.eyebrow,.trail-detail>h2,.trail-detail>.zh,.trail-detail>.trail-description{grid-column:1}.trail-detail>.trail-friends{grid-column:2;grid-row:1/5;margin:0}.trail-detail>.phase-list{grid-column:1/3;margin:20px 0}.trail-detail>.primary,.trail-detail>.secondary,.trail-detail>.locked-message,.trail-detail>.trail-saving{grid-column:1/3}.trail-friends{grid-template-columns:repeat(3,1fr)}.phase-list{justify-content:center;gap:40px}.phase-list li{font-size:13px}.phase-list b{width:24px;height:24px}.phase-list .zh{font-size:9px}.trail-detail>.primary{max-width:400px;margin:auto}.trail-description{font-size:12px}.trail-detail h2{font-size:30px}.adventure-ribbon{flex-wrap:wrap}.adventure-ribbon>div:first-child{flex-basis:calc(100% - 200px)}.adventure-ribbon .secondary{margin-left:auto}.chapter-celebration h1{font-size:40px}}
@media(max-width:600px){body{padding-bottom:81px}.header-inner nav{display:none}.header-inner{justify-content:space-between;min-height:76px;padding:14px 21px}.brand>span{font-size:23px}.brand img{width:30px;height:40px}.brand small{font-size:6.5px;letter-spacing:1.5px}.header-inner>.icon-button{width:44px;height:44px}.mobile-nav{position:fixed;bottom:0;left:0;right:0;display:flex;justify-content:space-around;align-items:stretch;padding:7px 10px calc(7px + env(safe-area-inset-bottom));background:#fffaf0f5;border-top:1px solid #d7d9c5;z-index:10;box-shadow:0 -3px 18px #30523a0b;backdrop-filter:blur(12px)}.mobile-nav a{display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:10px;font-weight:900;min-width:85px;min-height:56px;position:relative;color:var(--muted);border-radius:11px}.mobile-nav a>span{font-size:21px;height:23px;line-height:1}.mobile-nav small{font-size:8px;line-height:1.4;letter-spacing:.4px}.mobile-nav a.active{color:var(--ink);background:#eaf0df}.mobile-nav a.active:before{content:'';position:absolute;top:-7px;width:28px;height:3px;background:var(--orange);border-radius:4px}body[data-view='game']{padding-bottom:0}body[data-view='game'] .mobile-nav{display:none}body[data-view='game'] .brand>span{font-size:19px}body[data-view='game'] .brand img{width:24px;height:32px}body[data-view='game'] .brand small{font-size:5.5px}body[data-view='game'] .game-top{gap:7px;grid-template-columns:auto 1fr auto 40px}body[data-view='game'] .game-help{width:40px;height:40px}body[data-view='game'] .game-heading .eyebrow{font-size:8px;letter-spacing:1.2px}.adventure-ribbon{padding:20px 0;margin:22px 0 27px;gap:17px}.adventure-ribbon>div:first-child{flex-basis:100%}.adventure-ribbon h2{font-size:23px}.adventure-ribbon .eyebrow{font-size:8px;letter-spacing:1.5px}.adventure-ribbon .trail-stamp{width:34px;height:34px}.adventure-ribbon .trail-stamps{gap:7px}.adventure-ribbon .secondary{font-size:11px;padding:9px 12px;min-height:44px}.adventure-heading{gap:12px;margin-bottom:16px}.adventure-heading .eyebrow{font-size:8px;letter-spacing:1.3px;margin-bottom:10px}.adventure-heading h1{font-size:31px;line-height:1.12;letter-spacing:-1px}.adventure-heading p:not(.eyebrow){font-size:12px;max-width:210px;margin-top:12px}.adventure-heading .zh{font-size:10px;max-width:230px}.map-passport{transform:rotate(4deg);padding:11px 8px;min-width:75px;flex-shrink:0}.map-passport .trail-stamps{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.map-passport .trail-stamp{width:25px;height:25px;font-size:10px}.map-passport .trail-stamp svg{width:16px;height:16px}.map-passport strong{font-size:9px;margin-top:8px}.map-scene{margin:0 -16px;padding-bottom:25px}.map-board{width:100%;max-width:none}.node-medallion{width:50px;height:50px;border-width:3px;box-shadow:0 4px 0 #ad8751,0 7px 7px #183d2920}.map-node{width:90px}.map-node.selected .node-medallion{box-shadow:0 4px 0 #b85524,0 0 0 3px #fff5c6,0 7px 10px #183d2920}.node-number{width:22px;height:22px;font-size:13px;border-width:1px;margin:-10px auto -1px}.node-title{font-size:10px;line-height:1.05;padding:6px 7px;border-radius:6px;box-shadow:0 2px 0 #b49b6c}.node-lock{right:11px;bottom:25px;width:18px;height:18px;font-size:13px}.depth-control{font-size:9px;padding:8px 10px;bottom:-8px;left:15px;min-height:40px}.depth-control span{font-size:8px;margin-left:4px}.trail-detail{display:block;padding:23px 20px;margin-top:8px}.trail-detail h2{font-size:29px}.trail-detail>.zh{font-size:11px}.trail-description{font-size:12px;margin-top:13px}.trail-friends{grid-template-columns:repeat(6,1fr);gap:3px;margin:15px -6px}.trail-friends .sprite{width:50px}.trail-friends small{font-size:8px}.trail-detail>.trail-friends{margin:16px -6px}.phase-list{justify-content:space-between;gap:10px;padding:13px 0;margin:15px 0 20px}.phase-list li{font-size:12px}.phase-list b{width:22px;height:22px}.phase-list .zh{font-size:8px}.trail-detail>.primary{font-size:15px;min-height:51px}.trail-saving{margin-top:13px}.chapter-celebration{padding:30px 0}.reward-badge{width:135px;height:135px;border-width:5px}.reward-badge .sprite{width:118px}.reward-badge>span:not(.sprite){width:39px;height:39px;font-size:23px;border-width:3px}.chapter-celebration .eyebrow{font-size:8px;letter-spacing:1.4px;margin:25px 0 14px}.chapter-celebration h1{font-size:35px}.chapter-celebration>p:not(.eyebrow){font-size:13px}.chapter-celebration .reward-note{font-size:10px}.chapter-celebration .reward-note .zh{font-size:10px}.chapter-celebration .summary-actions{gap:10px}.chapter-celebration .primary{font-size:14px;min-height:49px;padding:12px 17px}.chapter-celebration .secondary{font-size:12px}.chapter-celebration .trail-stamp{width:42px;height:42px}.final-friends{gap:4px;margin:17px 0}.final-friends>span{width:39px}.confetti{top:80px}#howto{padding:28px 25px}#howto h2{font-size:29px}#howto-content>p:not(.eyebrow){font-size:13px}#howto-content>.zh{font-size:11px}.help-example{height:85px}.help-example .sprite{width:95px;height:95px}.help-example .mini-tiles b{width:38px;height:50px;font-size:28px}}
@media(min-width:801px) and (max-height:800px){.adventure-page{padding-top:18px}.adventure-heading h1{font-size:35px}.adventure-heading .eyebrow{margin-bottom:9px;font-size:9px}.adventure-heading p:not(.eyebrow){font-size:12px;margin-top:9px}.adventure-layout{grid-template-columns:minmax(0,1fr) 270px;margin-bottom:18px}.map-board{max-width:700px}.map-scene{padding-top:0}.trail-detail{padding:20px}.trail-description{margin-top:12px}.trail-friends{margin-top:10px;margin-bottom:8px}.phase-list{margin-bottom:16px}.chapter-celebration{padding-top:25px}.reward-badge{width:130px;height:130px}.reward-badge .sprite{width:112px}.chapter-celebration .eyebrow{margin-top:22px}.chapter-celebration h1{font-size:38px}}
@media(prefers-reduced-motion:reduce){.with-depth .map-board{transform:none}.map-node:hover{transform:translate(-50%,-50%)}.reward-badge,.confetti i{animation:none}.confetti{display:none}.map-board{transition:none}}

body[data-view='game'] .game-heading .quest-context{display:block;font-size:9px;line-height:1.25;letter-spacing:1.4px;margin:0 0 5px}
.adventure-layout{min-width:0}.trail-detail{min-width:0}.trail-friends{grid-template-columns:repeat(3,minmax(0,1fr))}
@media(max-width:800px){.adventure-layout{grid-template-columns:minmax(0,1fr)}}
@media(max-width:600px){body[data-view='map']{padding-bottom:calc(156px + env(safe-area-inset-bottom))}.trail-detail{display:grid;grid-template-columns:minmax(0,1fr) 132px;gap:0 12px;padding:20px 16px}.trail-detail>.eyebrow{grid-column:1/3;grid-row:1;font-size:8px;letter-spacing:1px}.trail-detail>h2{grid-column:1/3;grid-row:2;font-size:26px}.trail-detail>.zh{grid-column:1/3;grid-row:3}.trail-detail>.trail-description{display:none}.trail-detail>.trail-friends{grid-column:1/3;grid-row:4;grid-template-columns:repeat(6,minmax(0,1fr));margin:14px -3px}.trail-detail>.phase-list{grid-column:1/3;grid-row:5;margin:10px 0 15px}.trail-detail>.primary{position:fixed;bottom:calc(82px + env(safe-area-inset-bottom));left:21px;width:calc(100% - 42px);max-width:none;z-index:11;box-shadow:0 4px 0 #9d3a1c,0 0 0 7px #fffaf0ed;font-size:15px}.trail-detail>.trail-saving{grid-column:1/3;grid-row:6}.trail-detail>.locked-message{grid-column:1/3;grid-row:4}.trail-detail>.secondary{grid-column:1/3;grid-row:5}.depth-control{display:none}.with-depth .map-board{transform:none}.adventure-heading h1{font-size:29px}.map-scene{padding-bottom:8px}.mobile-nav svg{width:22px;height:22px;display:block}body[data-view='game'] .game-heading .quest-context{font-size:8px;letter-spacing:1px;margin-bottom:4px}}

#change-trail{max-width:510px}#change-trail>.icon-button{float:right;font-size:24px;margin:-15px -15px 0 0}#change-trail .eyebrow{font-size:9px}#change-trail h2{font-size:33px}#change-trail>p:not(.eyebrow){font-size:14px;line-height:1.8;margin-top:20px}#change-trail>p.zh{font-size:12px}#change-trail .primary,#change-trail .secondary{font-size:13px;min-height:47px}

.trail-phase-summary.summary{margin:22px auto 30px;padding:20px 15px}.trail-phase-summary .summary-art{display:none}.trail-phase-summary .eyebrow{margin:10px 0 18px}.trail-phase-summary h1{font-size:42px}.trail-phase-summary .results{margin:24px 0}.trail-phase-summary+.passport-strip{display:none}
@media(max-width:600px){.summary{padding:20px 0;margin:0 auto 25px}.summary h1{font-size:34px}.summary .summary-art .sprite{width:85px}.summary .summary-art .sun{font-size:32px}.summary .eyebrow{font-size:8px;margin:14px 0}.summary>p:not(.eyebrow){font-size:12px;margin:12px 0}.summary .results{margin:18px 0;gap:7px}.summary .result-animal{width:45px;font-size:9px}.summary .result-animal .sprite{width:45px}.summary .result-animal .result-mark{font-size:8px}.summary .summary-actions{margin-top:18px;gap:10px}.summary .summary-actions .primary{font-size:14px;min-height:49px}.summary .summary-actions .secondary{font-size:12px;min-height:44px}.trail-phase-summary.summary{padding:22px 0;margin:0 auto 25px}.trail-phase-summary h1{font-size:34px}.trail-phase-summary .summary-actions .primary{width:100%;max-width:330px}.trail-phase-summary .summary-actions .secondary{display:none}body:has(.trail-phase-summary) .site-footer{display:none}.chapter-celebration{padding:22px 0}.chapter-celebration .reward-badge{width:100px;height:100px}.chapter-celebration .reward-badge .sprite{width:88px}.chapter-celebration .reward-badge>span:not(.sprite){width:33px;height:33px;font-size:19px;bottom:-13px}.chapter-celebration .eyebrow{font-size:8px;margin:20px 0 12px}.chapter-celebration h1{font-size:31px}.chapter-celebration>p:not(.eyebrow){font-size:12px;margin:12px auto}.chapter-celebration>.trail-stamps{margin:17px 0}.chapter-celebration .trail-stamp{width:36px;height:36px}.chapter-celebration .reward-note{font-size:10px;max-width:300px}.chapter-celebration .reward-note .zh{font-size:9px}.chapter-celebration .summary-actions{margin-top:18px}.chapter-celebration .summary-actions .primary{width:100%;max-width:330px;font-size:14px;min-height:49px}.chapter-celebration .summary-actions .secondary{display:none}.chapter-celebration .final-friends{display:none}}

.sr-only{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}.map-node.completed .node-number{background:#557b36;color:#fffaf0;border-color:#e3d59e}

@media(prefers-reduced-motion:reduce){.depth-control{display:none}}
