*{box-sizing:border-box}html{background:#b4dbe2;scroll-behavior:smooth}body{margin:0;font-family:"PingFang SC","Microsoft YaHei",system-ui,sans-serif;color:#4b3927}button,a{-webkit-tap-highlight-color:transparent}button{font:inherit}a{color:inherit}button:focus-visible,a:focus-visible{outline:3px solid #247c73;outline-offset:5px}body.home{background:linear-gradient(90deg,#aad3d7,#e6efd5 50%,#aad3d7)}.planet{width:min(100%,600px);aspect-ratio:941/1671;position:relative;margin:auto;overflow:hidden;isolation:isolate;box-shadow:0 0 65px #214f4928;container-type:inline-size}.landscape{position:absolute;inset:0;width:100%;height:100%;object-fit:fill}.scenery{position:absolute;inset:0;pointer-events:none;z-index:1}.island{position:absolute;display:block;border:0;background:none;padding:0;z-index:3;cursor:pointer;border-radius:30%;transition:filter .28s;text-decoration:none;touch-action:pan-y}.island-art{position:absolute;inset:0;pointer-events:none;background-image:url('assets/foreground-v2.webp');background-repeat:no-repeat;background-size:var(--sx) var(--sy);background-position:var(--bx) var(--by);filter:drop-shadow(0 4px 4px #433a2720)}.island.is-active,.island:focus-visible{filter:drop-shadow(0 5px 8px #fff7)}.island:focus-visible{outline:3px solid #fff;outline-offset:-8px}.touch-hand{position:absolute;right:8%;bottom:13%;font-size:clamp(36px,8cqw,54px);opacity:0;transform:translateY(7px) rotate(-15deg);transition:opacity .16s,transform .2s;filter:drop-shadow(0 3px 3px #52301766);pointer-events:none}.is-active .touch-hand,.island:focus-visible .touch-hand{opacity:1;transform:translateY(0) rotate(-15deg)}
.brand{left:20%;top:1.5%;width:58%;height:17%;transform-origin:50% 0;animation:sign-sway 7s ease-in-out infinite}.brand.is-active{animation-play-state:paused}.brand .touch-hand{right:17%;bottom:9%}.knowledge{left:0;top:10.5%;width:52%;height:29.5%;clip-path:polygon(0 0,38% 0,38% 24%,85% 26%,100% 48%,100% 88%,70% 100%,0 100%)}.math{left:54%;top:25.5%;width:46%;height:22%}.idioms{left:3%;top:37%;width:49%;height:21%}.english{left:54%;top:46%;width:46%;height:23%}.games{left:0;top:57%;width:54%;height:22.5%}.pets{left:54%;top:64.5%;width:46%;height:22.5%}.mystery{left:7%;top:73%;width:66%;height:27%}.about{left:75%;top:86.2%;width:23%;height:8.5%;z-index:5}.about .touch-hand{right:3%;bottom:10%}
/* Environmental layers keep their positions in the same portrait coordinate system. */
.windmill{position:absolute;width:7%;aspect-ratio:1;filter:drop-shadow(0 1px 1px #72512266)}.mill-one{left:86%;top:18.5%}.mill-two{left:93%;top:22%}.rotor{display:block;width:100%;height:100%;animation:rotate 12s linear infinite}.mill-two .rotor{animation-duration:16s;animation-direction:reverse}.rotor:after{content:"";position:absolute;width:15%;height:15%;background:#b76d2c;border:1px solid #eec17a;border-radius:50%;left:42.5%;top:42.5%}.rotor i{position:absolute;left:43%;top:0;width:14%;height:50%;transform-origin:50% 100%;background:repeating-linear-gradient(0deg,transparent 0 5px,#d8ad698c 5px 7px),#a5673266;border:1px solid #d9ac67;border-radius:1px}.rotor i:nth-child(2){transform:rotate(90deg)}.rotor i:nth-child(3){transform:rotate(180deg)}.rotor i:nth-child(4){transform:rotate(270deg)}.lamp{position:absolute;width:8%;aspect-ratio:1;border-radius:50%;background:radial-gradient(circle,#fff6bdbb,#ffc65c60 30%,#ffd76500 70%);mix-blend-mode:screen;animation:warm-glow 3.8s ease-in-out infinite;z-index:5}.lamp-one{left:6%;top:4%}.lamp-two{left:0%;top:19.6%;animation-delay:-1.2s}.lamp-three{left:7%;top:38.5%;animation-delay:-2s}.lamp-four{left:81%;top:46%;animation-delay:-.8s}.lamp-five{left:63%;top:71%;animation-delay:-2.6s}.portal{position:absolute;left:32%;top:80%;width:14%;height:10%;border-radius:50%;transform:rotate(15deg);z-index:4;pointer-events:none;mix-blend-mode:screen;background:radial-gradient(ellipse,#ecffffaa 0,#63e9ff30 35%,transparent 67%)}.portal span{position:absolute;inset:10%;border:1px solid #abf5ffbb;border-left-color:transparent;border-radius:50%;box-shadow:0 0 8px #3cdbff88;animation:rotate 14s linear infinite}.portal span:nth-child(2){inset:22%;animation-direction:reverse;animation-duration:10s}.portal span:nth-child(3){inset:35%;animation-duration:6s}.butterfly{position:absolute;width:3%;aspect-ratio:1;z-index:7;animation:butterfly-flight 11s ease-in-out infinite;filter:drop-shadow(0 2px 2px #28261a40)}.butterfly-one{left:90%;top:54%}.butterfly-two{left:91%;top:68%;animation-delay:-4s}.butterfly-three{left:15%;top:76%;animation-delay:-7s}.butterfly i{position:absolute;top:15%;left:0;width:48%;height:80%;border:1px solid #884618;border-radius:80% 20% 60% 40%;background:radial-gradient(circle at 40% 35%,#fff4b9 2%,#ffc448 25%,#e88a24 70%);transform-origin:right center;animation:wing-flap .4s ease-in-out infinite alternate}.butterfly i:nth-child(2){left:48%;border-radius:20% 80% 40% 60%;transform-origin:left center;animation-delay:-.2s}.spark{position:absolute;color:#fef7b7;animation:sparkle 4s ease-in-out infinite;font-size:3cqw}.spark-one{left:32%;top:23%}.spark-two{left:87%;top:61%;animation-delay:-2s}.spark-three{left:41%;top:88%;animation-delay:-1s}.no-script{padding:16px;text-align:center}.motion-paused .planet *,.tab-hidden .planet *{animation-play-state:paused!important}
.inner-page{min-height:100svh;background:radial-gradient(ellipse at 90% 0,#e0efc5 0,transparent 60%),linear-gradient(145deg,#e6f4f3,#f8f2df);padding:env(safe-area-inset-top) 0 env(safe-area-inset-bottom)}.page-shell{width:min(100% - 32px,720px);margin:0 auto;padding:26px 0 32px}.home-link{display:inline-flex;align-items:center;min-height:44px;text-decoration:none;color:#386b58;font-weight:600;margin-bottom:20px}.story-card,.info-card{border:1px solid #d9d8b5;background:#fffcf1ed;border-radius:28px;box-shadow:0 10px 40px #4c725416}.story-card{text-align:center;padding:32px clamp(20px,5vw,48px)}.eyebrow{font-size:12px;letter-spacing:.16em;color:#648362;font-weight:600}.page-mascot{width:clamp(140px,40vw,210px);height:auto;aspect-ratio:1;object-fit:contain;display:block;margin:15px auto 0;animation:mascot-bob 4s ease-in-out infinite}.story-card h1{font-size:clamp(26px,6vw,38px);line-height:1.4;margin:12px 0}.story-card p,.info-card p{font-size:15px;line-height:1.9}.subtitle{color:#8a744f}.notice{text-align:left;background:#edf3e0;border-radius:18px;padding:20px;margin:28px 0}.notice span{font-weight:600;color:#527548}.notice p{margin-bottom:0}.primary-link{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:12px 22px;border-radius:30px;background:#396f54;color:#fff;text-decoration:none;font-size:15px}.primary-link:hover{background:#285c42}.page-footer{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;padding:28px 0 0;color:#64806a;font-size:12px}.page-footer a{min-height:28px}.about-hero{display:flex;align-items:center;justify-content:space-between;gap:12px;padding:20px 10px 30px}.about-hero h1{font-size:clamp(32px,7vw,48px);line-height:1.3;letter-spacing:.03em;margin:12px 0;color:#365d41}.about-hero p{font-size:14px;line-height:1.7}.about-hero img{width:34%;height:auto;animation:mascot-bob 5s ease-in-out infinite}.section-nav{display:flex;flex-wrap:wrap;gap:10px;margin-bottom:24px}.section-nav a{padding:12px 17px;border:1px solid #c9d8bd;border-radius:25px;background:#ffffff90;text-decoration:none;min-height:44px;font-size:14px}.info-card{padding:clamp(22px,5vw,36px);margin-bottom:20px;scroll-margin-top:20px}.section-number{font-size:11px;letter-spacing:.15em;color:#78926c}.info-card h2{font-size:24px;margin:12px 0 18px;color:#395f44}.info-card h3{font-size:16px;margin:24px 0 8px}.info-card a{color:#34765b;text-underline-offset:4px;overflow-wrap:anywhere}.mini-note{padding:16px;background:#f0eedb;border-radius:12px;font-size:13px;line-height:1.8}.contact-placeholder{border:1px dashed #b9c9a2;border-radius:18px;background:#f0f3e6;padding:24px;text-align:center;line-height:1.8;font-size:15px}.info-card .small-text{font-size:12px;color:#7c876e}.error-shell{min-height:90svh;display:grid;align-items:center}.lost-mascot{animation:lost-bob 4s ease-in-out infinite}.countdown{color:#617450}.countdown strong{font-size:25px;color:#3c7154;font-variant-numeric:tabular-nums}.text-button{display:block;background:none;border:0;text-decoration:underline;text-underline-offset:4px;color:#647c58;margin:18px auto 0;min-height:44px;cursor:pointer}.travel-overlay{position:fixed;inset:0;z-index:100;display:flex;align-items:center;justify-content:center;background:#e9f3e8f5;backdrop-filter:blur(14px);padding:24px;opacity:0;visibility:hidden;transition:opacity .22s}.travel-overlay.visible{visibility:visible;opacity:1}.travel-card{width:min(100%,420px);text-align:center}.travel-card img{width:150px;height:150px;object-fit:contain;animation:mascot-bob 1.8s ease-in-out infinite}.travel-card h2{font-size:23px;margin:12px 0}.travel-card p{font-size:14px;line-height:1.8}.travel-dots{display:flex;justify-content:center;gap:8px;margin:22px}.travel-dots i{width:8px;height:8px;border-radius:50%;background:#75966c;animation:dot-bounce 1s ease-in-out infinite}.travel-dots i:nth-child(2){animation-delay:.15s}.travel-dots i:nth-child(3){animation-delay:.3s}.travel-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px;margin-top:22px}.travel-actions button{min-height:44px;padding:10px 18px;border:1px solid #a0ba92;border-radius:22px;background:#fffdf1;color:#466340;cursor:pointer}.travel-actions .retry{background:#397451;color:#fff}.travel-overlay.failed .travel-dots{display:none}.travel-overlay.failed img{animation:none}.hidden{display:none!important}
@keyframes sign-sway{0%,100%{transform:rotate(-4deg)}50%{transform:rotate(4deg)}}@keyframes rotate{to{transform:rotate(360deg)}}@keyframes warm-glow{0%,100%{opacity:.35;transform:scale(.9)}50%{opacity:.95;transform:scale(1.15)}}@keyframes wing-flap{to{transform:rotateY(65deg)}}@keyframes butterfly-flight{0%,100%{transform:translate(0,0) rotate(-15deg)}25%{transform:translate(-3cqw,-3cqw) rotate(10deg)}50%{transform:translate(-6cqw,2cqw) rotate(-10deg)}75%{transform:translate(-2cqw,4cqw) rotate(15deg)}}@keyframes sparkle{0%,100%{opacity:.1;transform:scale(.7)}50%{opacity:.85;transform:scale(1.1)}}@keyframes mascot-bob{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}@keyframes lost-bob{0%,100%{transform:translateY(0) rotate(-3deg)}50%{transform:translateY(-6px) rotate(3deg)}}@keyframes dot-bounce{0%,100%{transform:translateY(0);opacity:.4}50%{transform:translateY(-6px);opacity:1}}
@media(max-width:360px){.page-shell{width:calc(100% - 24px)}.about-hero{padding-inline:0}.about-hero .eyebrow{letter-spacing:0;font-size:11px}.section-nav{gap:6px}.section-nav a{padding:11px 13px;font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*:before,*:after{animation:none!important;transition:none!important}.island.is-active,.island:focus-visible{transform:none}.touch-hand{transform:none}}
.home{min-height:0}



.planet:before{content:"";display:block;padding-top:177.57705%}.landscape{object-fit:cover}.motion-paused .planet *:before,.motion-paused .planet *:after,.tab-hidden .planet *:before,.tab-hidden .planet *:after{animation-play-state:paused!important}

.mystery .portal{left:37.8788%;top:25.9259%;width:21.2121%;height:37.0370%}

.home{padding-top:env(safe-area-inset-top);padding-left:env(safe-area-inset-left);padding-right:env(safe-area-inset-right)}

/* Keep island art visible even when JavaScript is unavailable. */
.brand .island-art{--sx:172.413793%;--sy:588.235294%;--bx:47.619048%;--by:1.807229%;}
.knowledge .island-art{--sx:192.307692%;--sy:338.983051%;--bx:0.000000%;--by:14.893617%;}
.math .island-art{--sx:217.391304%;--sy:454.545455%;--bx:100.000000%;--by:32.692308%;}
.idioms .island-art{--sx:204.081633%;--sy:476.190476%;--bx:5.882353%;--by:46.835443%;}
.english .island-art{--sx:217.391304%;--sy:434.782609%;--bx:100.000000%;--by:59.740260%;}
.games .island-art{--sx:185.185185%;--sy:444.444444%;--bx:0.000000%;--by:73.548387%;}
.pets .island-art{--sx:217.391304%;--sy:444.444444%;--bx:100.000000%;--by:83.225806%;}
.mystery .island-art{background-image:url("assets/mystery-v2.webp");--sx:112.121212%;--sy:274.074074%;--bx:12.5%;--by:102.12766%;}
.about .island-art{--sx:434.782609%;--sy:1176.470588%;--bx:97.402597%;--by:94.207650%;}

/* Restore the original connecting paths beneath the independently moving islands. */
.walkway{position:absolute;inset:0;width:100%;height:100%;z-index:1;pointer-events:none}
.path-1{clip-path:polygon(44% 24%,51% 25%,51% 29%,60% 32%,66% 31%,68% 35%,60% 36%,48% 33%,45% 33%,42% 28%)}
.path-2{clip-path:polygon(59% 41%,68% 41%,65% 44%,57% 46%,51% 49%,52% 53%,49% 56%,46% 56%,44% 51%,46% 46%,54% 44%,58% 42%)}
.path-3{clip-path:polygon(45% 48%,50% 48%,50% 51%,61% 53%,61% 57%,49% 55%,45% 53%)}
.path-4{clip-path:polygon(54% 57%,61% 57%,60% 60%,53% 61%,50% 63%,50% 65%,63% 67%,63% 72%,53% 70%,50% 68%,48% 65%,44% 64%,45% 60%,52% 58%)}
.path-5{clip-path:polygon(53% 69%,59% 69%,63% 72%,62% 74%,59% 76%,57% 78%,57% 79%,65% 81%,69% 83%,68% 86%,73% 87%,78% 90%,78% 93%,73% 97%,65% 100%,50% 100%,62% 95%,68% 91%,67% 88%,62% 86%,59% 84%,52% 82%,47% 80%,49% 76%,54% 74%,52% 72%)}

/* Mobile WebViews: fill the visible height without losing any island or hit area. */
html{-webkit-text-size-adjust:100%;text-size-adjust:100%}
body.home{min-height:var(--planet-viewport-height,100vh)}
.home .planet{min-height:var(--planet-viewport-height,100vh)}
.home .planet>.landscape{object-fit:fill}
@supports(height:100dvh){body.home,.home .planet{min-height:var(--planet-viewport-height,100dvh)}}
