:root{--ink:#184f50;--muted:#7d9990;--teal:#2a9d94;--coral:#ee8266;--cream:#fffdf6;--safe-top:env(safe-area-inset-top,0px);--safe-bottom:env(safe-area-inset-bottom,0px)}*{box-sizing:border-box}html,body{margin:0;width:100%;min-height:100%;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:var(--ink);overscroll-behavior:none}body{background:radial-gradient(ellipse at 15% 8%,#fff3d3,transparent 48%),#d1ebe4;display:flex;justify-content:center}button,a,input,textarea{-webkit-tap-highlight-color:transparent}button{font:inherit;border:0;cursor:pointer;color:inherit}button:focus-visible,a:focus-visible,canvas:focus-visible{outline:3px solid #e78358;outline-offset:3px}button:disabled{cursor:default}button:active:not(:disabled){transform:translateY(2px)}[hidden]{display:none!important}#app{position:relative;width:100%;max-width:480px;min-height:100svh;background:#f5f9ed;box-shadow:0 0 70px #367f7e24;isolation:isolate}.topbar{position:absolute;top:calc(16px + var(--safe-top));left:22px;right:22px;z-index:10;display:flex;justify-content:space-between;align-items:center;pointer-events:none}.brand{width:102px;height:38px;object-fit:contain;background:#fff;border-radius:10px;box-shadow:0 3px 15px #407f6f08}.top-actions{display:flex;gap:9px}.circle-button{width:35px;height:35px;background:#ffffffd9;border:1px solid #ffffffb3;border-radius:50%;font-size:19px;font-weight:700;display:grid;place-items:center;box-shadow:0 3px 12px #195b5120;pointer-events:auto}.circle-button[aria-pressed=false]{color:#b1beb3}.welcome{min-height:max(720px,100svh);height:100svh;max-height:1000px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(#fbfcf0 0,#eff8ef 40%,#d5eee5 80%)}.welcome-heading{position:relative;z-index:3;padding:calc(86px + var(--safe-top)) 24px 0;text-align:center}.eyebrow{font-size:9px;line-height:1.5;letter-spacing:.17em;font-weight:700;color:#6b9c91}.game-name{font-size:14px;letter-spacing:.12em;font-weight:700;margin:13px 0 8px;color:#527c70}.welcome h1{font-size:clamp(38px,11vw,51px);line-height:1.2;letter-spacing:-.065em;margin:0;font-weight:900}.welcome h1 span{color:#ed8264}.welcome-description{font-size:12px;color:#73948b;letter-spacing:.06em;margin:14px 0}.hero-world{position:absolute;inset:36% 0 16%;background:linear-gradient(#e8f8e800,#dcf1e599),url('assets/waterpark.jpg.png') center 64% / cover no-repeat;mask-image:linear-gradient(transparent,black 22%,black 77%,transparent);-webkit-mask-image:linear-gradient(transparent,black 22%,black 77%,transparent)}.hero-light{position:absolute;inset:0;background:linear-gradient(#ecf7e7b3,transparent 38%,#b7e6dc38)}.hero-toys{position:absolute;inset:7% 5% 0}.hero-toy{position:absolute;background-image:url('assets/partners-original.png');background-size:200% 200%;background-repeat:no-repeat;width:45%;aspect-ratio:1;filter:drop-shadow(0 12px 13px #156b6428);animation:bob 4.4s ease-in-out infinite}.toy-turtle{background-position:0 0;left:3%;top:33%;transform:rotate(-10deg)}.toy-star{background-position:100% 0;right:1%;top:39%;animation-delay:-.8s;transform:rotate(4deg)}.toy-blue{background-position:0 100%;left:32%;top:2%;width:39%;animation-delay:-1.3s}.toy-purple{background-position:100% 100%;left:30%;top:49%;width:43%;animation-delay:-2.4s}.hero-bubble{position:absolute;border:1.5px solid #ffffffb3;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff9,#fff0 48%);box-shadow:inset -2px -3px 8px #7fcfc926}.b1{width:30px;height:30px;left:10%;top:22%}.b2{width:17px;height:17px;right:17%;top:10%}.b3{width:45px;height:45px;right:4%;bottom:19%}.hero-pop{position:absolute;top:30%;left:40%;background:#fff7d3;color:#de9153;border:2px solid #fff9;border-radius:50%;padding:11px;font-size:18px;font-weight:900;transform:rotate(-12deg)}.welcome-bottom{position:relative;z-index:5;margin-top:auto;background:linear-gradient(#fffdf800,#fffdf5ee 25%,#fffdf8);padding:30px 26px calc(19px + var(--safe-bottom));text-align:center}.welcome-pills{display:flex;justify-content:center;gap:8px;margin-bottom:16px;font-size:10px;color:#6b9184}.welcome-pills span{padding:7px 11px;background:#fffdf7e6;border:1px solid #ffffffb3;border-radius:20px}.primary{width:100%;min-height:52px;padding:13px 15px;border-radius:16px;background:linear-gradient(110deg,#f49d72,#ed7e68);color:#fffdf7;font-size:16px;font-weight:800;box-shadow:0 5px 0 #dd78511a,0 10px 23px #d07b5420;letter-spacing:.025em}.primary:disabled{opacity:.5}.secondary{width:100%;min-height:44px;padding:10px 15px;border-radius:14px;margin-top:11px;background:#fffef7;border:1px solid #d9e7dc;font-size:13px;font-weight:700;color:#5c8e7e}.text-button{font-size:11px;font-weight:600;background:none;padding:5px;color:#75998b}.welcome-meta{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#91a294;margin-top:13px}.welcome-meta strong{margin-left:4px;color:#4f8b73}.welcome-note{font-size:10px;color:#a29e82;margin:12px 0 0}.play{min-height:100svh;padding:calc(76px + var(--safe-top)) 20px calc(16px + var(--safe-bottom));background:radial-gradient(ellipse at 0 38%,#fff3d740,transparent 70%),linear-gradient(#f4f8ed,#e4f2e9)}.play-heading{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.play-heading .eyebrow{margin:0 0 4px;font-size:10px;letter-spacing:.05em}.play-heading h2{font-size:20px;letter-spacing:-.04em;line-height:1.3;margin:0;font-weight:850}.play-heading .circle-button{height:31px;width:31px;font-size:14px;background:#fff8;box-shadow:none;border:1px solid #d5e5da}.scorebar{display:flex;justify-content:space-between;align-items:center;background:#fffdf4c7;border:1px solid #fff;border-radius:21px;padding:11px 17px;box-shadow:0 4px 15px #4b8d7910;min-height:87px}.scorebox{position:relative}.scorebox>span{font-size:10px;display:block;color:#839a87;margin-bottom:1px}.scorebox>strong{font-size:37px;font-weight:900;line-height:1;letter-spacing:-.06em;color:#e88568;font-variant-numeric:tabular-nums}.scorebox small{font-size:9px;margin-left:11px;color:#9eab94}.scorebox b{font-weight:700;color:#7d947d}.next-box{display:grid;grid-template-columns:1fr 46px;column-gap:8px;align-items:center}.next-box>span{font-size:9px;color:#869e90}.next-box canvas{grid-column:2;grid-row:1/3;width:46px;height:46px}.next-box>small{font-size:11px;font-weight:700;color:#547f73;max-width:72px}.goal-strip{display:flex;align-items:center;gap:6px;font-size:10px;margin:10px 2px;color:#74967b;min-height:17px}.goal-spark{color:#c5a466;font-size:17px;line-height:1}#goal-progress{margin-left:auto;background:#fff9;border-radius:10px;font-size:9px;padding:2px 7px;white-space:nowrap}.board-wrap{position:relative;width:100%;max-height:56svh;aspect-ratio:360/490;min-height:330px;border-radius:26px;overflow:hidden;border:2px solid #fffaf0;box-shadow:0 6px 0 #b8d9cb60,0 12px 35px #46857818;background:#d2ede2;touch-action:none}#board{display:block;width:100%;height:100%;touch-action:none;cursor:crosshair}.instruction{position:absolute;left:8px;right:8px;top:43%;text-align:center;pointer-events:none;font-size:12px;letter-spacing:.02em;color:#4e8e818c;transition:opacity .3s}.combo-label{position:absolute;top:17%;left:0;right:0;pointer-events:none;text-align:center;color:#e67957;font-weight:900;font-size:27px;letter-spacing:-.05em;text-shadow:0 2px 0 #fff;opacity:0;transition:opacity .18s,transform .18s}.combo-label.visible{opacity:1;transform:translateY(-7px)}.danger-label{position:absolute;left:8px;right:8px;top:13px;text-align:center;color:#dc6555;font-size:11px;font-weight:700;pointer-events:none;background:#fff5eeec;padding:6px;border-radius:10px}.wave-label{position:absolute;left:0;right:0;top:46%;text-align:center;color:#fff;font-size:24px;font-weight:850;text-shadow:0 2px 12px #2d9d9d;pointer-events:none}.play-bottom{padding:11px 0 0}.evolution-label{display:flex;align-items:center;justify-content:space-between;font-size:10px;color:#829985}.evolution-label .text-button{font-size:9px;padding:0}.evolution{display:flex;align-items:center;justify-content:space-between;margin:6px 0 11px;gap:3px}.evolution-item{position:relative;min-width:0;flex:1;aspect-ratio:1;display:block;opacity:.55;border:1px solid transparent;border-radius:50%;padding:2px;background:#ffffff40}.evolution-item.unlocked{opacity:1;background:#fff8}.evolution-item.current{border-color:#96bd9f;box-shadow:0 0 0 2px #fff7}.evolution-item canvas{width:100%;height:100%;display:block}.controls{display:flex;gap:9px}.wave-button{display:flex;align-items:center;text-align:left;flex:1;gap:10px;background:linear-gradient(115deg,#7acdc4,#4cb4ad);color:white;border-radius:16px;padding:10px 13px;min-height:53px;box-shadow:0 4px 0 #348d841c}.wave-icon{font-size:35px;line-height:1;font-weight:400;transform:rotate(-8deg)}.wave-button strong{font-size:14px;display:block;line-height:1.5}.wave-button small{font-size:9px;color:#ebffed;display:block;line-height:1.5}.wave-button b{margin-left:auto;border-radius:50%;width:23px;height:23px;display:grid;place-items:center;background:#fff3;font-size:13px}.wave-button:disabled{background:#c0d9ce;box-shadow:none}.settle-button{width:91px;background:#fffdf2;border:1px solid #d7e3d3;color:#809477;border-radius:16px;font-size:11px;line-height:1.7;font-weight:700}.settle-button small{font-size:9px;font-weight:400;color:#a0ad95}.modal{position:fixed;inset:0;z-index:100;background:#164f5791;backdrop-filter:blur(12px);display:flex;align-items:center;justify-content:center;padding:calc(22px + var(--safe-top)) 22px calc(22px + var(--safe-bottom));overflow-y:auto}.panel{position:relative;max-width:400px;width:100%;max-height:calc(100dvh - 44px - var(--safe-top) - var(--safe-bottom));overflow-y:auto;overscroll-behavior:contain;background:#fffdf6;border:1px solid #fff;border-radius:28px;padding:31px 24px 23px;text-align:center;box-shadow:0 20px 70px #164b5038;scrollbar-width:thin;scrollbar-color:#c4ded1 transparent}.panel h2{font-size:25px;line-height:1.35;font-weight:850;letter-spacing:-.04em;margin:10px 0 13px}.panel>p{font-size:12px;line-height:1.8;color:#829b8a;margin:12px 0 20px}.panel>.text-button{margin-top:14px}.panel .primary{margin-top:13px}.modal-close{position:absolute;top:10px;right:12px;width:27px;height:27px;background:#eff4e9;border-radius:50%;font-size:21px;color:#a0b29d;line-height:1}.steps{text-align:left;list-style:none;padding:0;margin:25px 0}.steps li{display:flex;align-items:flex-start;gap:12px;margin:19px 0}.steps li>span{width:27px;height:27px;flex-shrink:0;display:grid;place-items:center;font-size:10px;font-weight:800;border-radius:10px;background:#e8f3e5;color:#73a58d}.steps h3{margin:2px 0 5px;font-size:13px;font-weight:750}.steps p{font-size:11px;line-height:1.85;color:#889c8d;margin:0}.panel .fine-print{font-size:9px;line-height:1.7;color:#a1ac98;margin:15px 0 0}.album-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:10px;margin:20px 0}.album-card{border:1px solid #e5ecdc;background:#f4f7eccc;border-radius:18px;padding:9px}.album-card canvas{width:83px;height:83px;display:block;margin:auto}.album-card span{display:block;font-size:11px;font-weight:700;color:#77967f}.album-card small{display:block;font-size:9px;color:#a1ac97;margin-top:4px}.result-panel{padding-top:27px}.result-panel h2{margin-bottom:0}#result-portrait{width:110px;height:110px;margin:8px auto -4px;display:block}.panel>.result-friend{font-size:11px;color:#85a27e;margin:0}.result-score strong{font-size:64px;font-weight:900;letter-spacing:-.07em;line-height:1.15;display:block;color:#e88c66}.result-score span{font-size:11px;color:#b8a384;letter-spacing:.08em}.result-stats{display:flex;margin:20px 0 12px;padding:12px 0;background:#edf4e6;border-radius:15px}.result-stats>div{flex:1;border-right:1px solid #dce8d5}.result-stats>div:last-child{border:0}.result-stats strong{display:block;font-size:17px;color:#6f9174}.result-stats span{display:block;font-size:9px;color:#9bae93;margin-top:3px}.panel>.result-record{font-size:11px;color:#6a9b7b;margin:8px 0}.panel>.reward-status{font-size:12px;color:#b69b6a;margin:10px 0 12px}.experience-notice{text-align:left;padding:13px 14px;background:#fff0e4;border:1px solid #f0c2a9;border-left:4px solid #ea9b73;border-radius:13px;margin:15px 0 10px;color:#79513d}.experience-notice h3{font-size:18px;line-height:1.4;margin:0 0 7px;color:#ac6848}.experience-notice p{font-size:16px;line-height:1.6;margin:5px 0}.experience-notice strong{font-weight:800}.booking{display:flex;align-items:center;justify-content:center;min-height:48px;text-decoration:none;background:#dcefd6;border:1px solid #c4ddb8;border-radius:14px;color:#688e55;font-size:14px;font-weight:800;padding:12px;margin-top:12px}.panel label{display:block;font-size:11px;color:#7c9a83;text-align:left;margin:20px 0 7px}textarea{width:100%;resize:none;border:1px solid #dce7d5;padding:12px;border-radius:12px;background:#f6f8ed;color:#71947c;font:11px/1.8 system-ui,sans-serif;overflow-wrap:anywhere}.toast{position:fixed;left:50%;bottom:calc(28px + var(--safe-bottom));transform:translateX(-50%);max-width:88vw;width:max-content;z-index:200;background:#235c58ef;color:#fff8e8;padding:11px 18px;border-radius:22px;font-size:12px;line-height:1.5;box-shadow:0 5px 20px #1b555733;pointer-events:none}.reward-celebration{animation:glow 1s ease-in-out 2}.screen-shake{animation:shake .35s ease-out}.pop-score{animation:score-pop .28s ease-out}@keyframes bob{0%,100%{translate:0 0}50%{translate:0 -9px}}@keyframes glow{50%{background:#fff2c9;box-shadow:0 0 18px #e6c57255}}@keyframes shake{20%{translate:-2px 1px}50%{translate:2px 0}80%{translate:-1px 0}}@keyframes score-pop{50%{scale:1.08}}@media(min-width:600px){#app{margin:16px 0;border-radius:30px;overflow:hidden;min-height:0;box-shadow:0 20px 80px #337f7c28}.welcome{height:min(92svh,940px);min-height:760px}.play{min-height:0}.board-wrap{max-height:540px;min-height:0}.play-heading h2{font-size:22px}.play{padding-left:26px;padding-right:26px}.welcome h1{font-size:50px}.hero-world{inset:35% 0 17%}.hero-toys{inset:10% 5% 0}}@media(max-height:760px){.welcome{min-height:650px}.welcome-heading{padding-top:calc(72px + var(--safe-top))}.welcome h1{font-size:37px}.game-name{margin:9px 0 6px}.welcome-description{margin:9px 0}.welcome-bottom{padding-bottom:calc(13px + var(--safe-bottom));padding-top:23px}.welcome-pills{margin-bottom:10px}.welcome-note{margin-top:7px}.play{padding-top:calc(69px + var(--safe-top))}.play-heading{margin-bottom:7px}.play-heading h2{font-size:17px}.scorebar{min-height:68px;padding:7px 14px}.scorebox>strong{font-size:29px}.next-box canvas{width:40px;height:40px}.next-box{grid-template-columns:1fr 40px}.goal-strip{margin:7px 2px}.board-wrap{min-height:295px;max-height:51svh}.play-bottom{padding-top:9px}.evolution{margin:5px 0 8px}.wave-button{min-height:48px;padding:7px 11px}.panel{padding:25px 21px 20px}}@media(max-width:350px){.play{padding-left:12px;padding-right:12px}.topbar{left:16px;right:16px}.welcome-heading{padding-left:16px;padding-right:16px}.welcome-bottom{padding-left:20px;padding-right:20px}.welcome h1{font-size:36px}.goal-strip{font-size:9px}.play-heading h2{font-size:17px}.board-wrap{min-height:300px}.wave-button{gap:6px}.wave-button small{font-size:8px}.panel{padding-left:19px;padding-right:19px}.experience-notice p{font-size:16px}}@media(prefers-reduced-motion:reduce){*{animation:none!important;scroll-behavior:auto!important}.combo-label{transition:none}}

.hero-toy{background-image:none}.hero-toy canvas{width:100%;height:100%;display:block}.toy-star{transform:none}.board-wrap{min-height:0;max-height:none;height:auto;aspect-ratio:360/490}

/* Home v1.1: distant final form and readable reward requirement. */
.welcome-note{display:flex;flex-direction:column;align-items:center;gap:3px;margin:0 0 15px;padding:11px 14px;background:#fff1df;border:1.5px solid #e6ae79;border-radius:15px;box-shadow:0 4px 14px #d4944a12;line-height:1.4}
.welcome-note span{font-size:17px;font-weight:750;color:#785431;letter-spacing:.02em}
.welcome-note strong{font-size:22px;font-weight:900;color:#b44924;letter-spacing:.035em}
.welcome-pills{margin-bottom:10px}
.hero-world{inset:31% 0 25%;mask-image:linear-gradient(transparent,black 14%,black 87%,transparent);-webkit-mask-image:linear-gradient(transparent,black 14%,black 87%,transparent)}
.hero-toys{inset:0 5%}
.hero-final{position:absolute;top:3%;left:31%;width:38%;z-index:1;text-align:center;filter:drop-shadow(0 10px 9px #288c8d20)}
.hero-final::before{content:"";position:absolute;inset:12% -16% -3%;border-radius:50%;background:radial-gradient(ellipse,#fff8cdcc,transparent 68%);z-index:-1}
#final-boss{position:relative;z-index:2;display:block;width:100%;height:auto;aspect-ratio:1}
.final-label{display:inline-block;position:relative;z-index:3;white-space:nowrap;font-size:10px;font-weight:800;color:#80602c;background:#fff5d9;border:1px solid #e9c78a;border-radius:20px;padding:5px 8px;box-shadow:0 3px 8px #98843212}
.final-platform{position:absolute;left:7%;right:7%;bottom:-1%;height:14%;border-radius:50%;background:radial-gradient(ellipse,#faf9dc 45%,#a0d9cf 50%,#e4f5d7 58%,#84c6bc99 63%,transparent 68%)}
.hero-toys{z-index:2}
.toy-turtle{width:37%;left:0;top:46%;transform:rotate(-7deg)}
.toy-star{width:37%;right:0;top:47%;transform:none}
.toy-blue{width:31%;left:53%;top:30%}
.toy-purple{width:38%;left:26%;top:59%}
.hero-pop{top:45%;left:38%;z-index:3;font-size:14px;padding:9px}
@media(max-height:760px){.hero-world{inset:34% 0 29%}.welcome-pills{display:none}.welcome-note{margin-bottom:12px;padding:9px 12px}.welcome-note span{font-size:16px}.welcome-note strong{font-size:20px}.hero-final{top:0;left:32%;width:36%}.final-label{font-size:9px;padding:4px 6px}.welcome-bottom{padding-top:15px}}
@media(min-width:600px){.hero-world{inset:30% 0 24%}}
