:root{font-family:PingFang SC,Hiragino Sans GB,Microsoft YaHei,sans-serif;color:#23433f;font-synthesis:none;font-weight:600;--cream:#fffdf1;--ink:#23433f;--green:#315d47;--yellow:#ffe99a}*{box-sizing:border-box}html,body{margin:0;width:100%;height:100%;overflow:hidden}body{background:#a3d4de}button{font:inherit;cursor:pointer;color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible{outline:4px solid #efb750;outline-offset:5px}button:disabled{cursor:default;opacity:.45}#world{position:fixed;top:0;right:0;bottom:0;left:0;width:100%;height:100%;display:block}#vignette{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none;box-shadow:inset 0 0 130px #3b929e20}#app{position:fixed;top:0;right:0;bottom:0;left:0;pointer-events:none}#app button,#app input,#app .panel{pointer-events:auto}.topbar{position:absolute;top:30px;left:36px;right:36px;display:flex;align-items:center;justify-content:space-between;gap:18px}.brand{display:flex;gap:12px;align-items:center;font-weight:850;letter-spacing:2px;font-size:17px}.brand-icon{display:grid;place-items:center;background:var(--cream);border-radius:18px;width:46px;height:46px;font-size:25px;box-shadow:0 4px #629b8e24}.brand small{display:block;font-size:9px;letter-spacing:3px;margin-top:4px;opacity:.65}.tools{display:flex;gap:10px}.round{border:1px solid #fff9;background:#fff9;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px);border-radius:50%;width:44px;height:44px;display:grid;place-items:center;font-size:19px;transition:transform .2s,background .2s}.round:hover{transform:translateY(-3px);background:#fff}.hero{position:absolute;left:6.4%;top:21%;width:370px;animation:rise .7s both}.eyebrow{font-size:11px;letter-spacing:4px;display:flex;align-items:center;gap:10px;margin-bottom:20px}.eyebrow:before{content:"";width:24px;height:2px;background:currentColor}.hero h1{font-size:clamp(48px,5.7vw,82px);line-height:1.1;letter-spacing:-4px;margin:0 0 20px;font-weight:950;text-shadow:0 3px 0 #fff8}.hero h1 span{color:#fffdf1;text-shadow:0 4px 0 #729f82,0 7px 20px #40686315}.hero p{font-size:14px;line-height:1.9;max-width:270px;margin-bottom:26px}.pill{display:inline-flex;align-items:center;gap:9px;padding:9px 14px;border-radius:30px;background:#fff6;border:1px solid #fff7;font-size:11px}.primary{display:flex;justify-content:space-between;align-items:center;gap:30px;background:var(--green);color:var(--cream);border:1px solid #ffffff30;border-radius:19px;padding:18px 24px;box-shadow:0 6px #1a3b30,0 14px 30px #34583e20;min-width:235px;font-size:17px;transition:transform .15s,box-shadow .15s}.primary:hover{transform:translateY(-3px);box-shadow:0 9px #1a3b30,0 18px 30px #34583e20}.primary:active{transform:translateY(3px);box-shadow:0 2px #1a3b30}.secondary{border:1px solid #fff8;background:#fff9;border-radius:16px;padding:13px 21px;font-size:13px}.hero .secondary{margin-top:19px;min-width:235px}.footer{position:absolute;bottom:27px;left:36px;right:36px;display:flex;align-items:center;justify-content:space-between;font-size:11px;letter-spacing:1px}.footer .pill{-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px)}.island-label{position:absolute;right:8%;bottom:14%;text-align:right;animation:rise .9s both}.island-label small{letter-spacing:3px;font-size:10px}.island-label h3{font-size:22px;margin:8px 0}.island-label p{font-size:11px;opacity:.65}.dot{width:6px;height:6px;background:#517760;border-radius:50%;display:inline-block;margin-right:6px}.overlay{position:absolute;top:0;right:0;bottom:0;left:0;display:grid;place-items:center;background:#314e4a45;-webkit-backdrop-filter:blur(9px);backdrop-filter:blur(9px);pointer-events:auto;padding:20px;animation:fade .2s}.panel{width:min(620px,95vw);max-height:90vh;overflow:auto;background:#fffdf1f5;border:1px solid #fff;border-radius:32px;box-shadow:0 28px 100px #1d483c40;padding:34px;position:relative;animation:rise .3s}.panel h2{font-size:30px;letter-spacing:-1px;margin:8px 0 14px}.panel .close{position:absolute;right:20px;top:20px;background:#e2e8d6}.panel p{font-size:14px;line-height:1.85;font-weight:500}.panel .kicker{font-size:10px;letter-spacing:3px;color:#829171}.panel .actions{display:flex;gap:14px;margin-top:24px;justify-content:center;flex-wrap:wrap}.panel .actions .primary{min-width:200px}.levels{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:24px}.level{height:103px;border:1px solid #d7dfcb;border-radius:18px;background:#edf1df;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px}.level strong{font-size:25px}.level small{font-size:10px;white-space:nowrap}.level.done{background:#e1ecc9}.level.current{background:#ffe8a0;border-color:#e0c777}.level:hover:not(:disabled){transform:translateY(-3px)}.stars{color:#c79b38;letter-spacing:3px;font-size:11px}.hud{position:absolute;top:24px;left:28px;right:28px;display:flex;align-items:flex-start;justify-content:space-between;gap:20px}.hud-title{border:1px solid #fff9;border-radius:22px;background:#fffdf0dc;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);padding:14px 20px;min-width:190px}.hud-title small{font-size:9px;letter-spacing:2px;color:#6a8974}.hud-title h2{margin:5px 0 0;font-size:20px}.hud-center{display:flex;gap:10px}.counter{background:#fffdf0e6;border:1px solid #fff9;border-radius:18px;padding:12px 20px;font-variant-numeric:tabular-nums;text-align:center;min-width:110px;font-size:22px}.counter small{display:block;font-size:9px;letter-spacing:2px;color:#7d947c;margin-bottom:4px}.counter.warn{color:#c77553}.game-bottom{position:absolute;bottom:26px;left:28px;right:28px;display:flex;align-items:flex-end;justify-content:space-between}.controls{background:#fffdf0ce;border:1px solid #fff9;border-radius:19px;padding:13px 18px;font-size:11px;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);line-height:2}.key{display:inline-block;min-width:23px;line-height:23px;text-align:center;background:#fff;border:1px solid #d4dccb;border-bottom:3px solid #c3d0bb;border-radius:6px;margin:0 3px;font-weight:800}.hide-button{border:1px solid #fff8;color:#fffdf1;background:#335b47e8;border-radius:22px;padding:14px 24px;min-width:145px;box-shadow:0 5px #243f35;touch-action:none}.hide-button b{font-size:20px;display:block}.hide-button small{font-size:10px;opacity:.8}.status-toast{position:absolute;top:116px;left:50%;transform:translate(-50%);padding:10px 20px;background:#fff9;border:1px solid #fff9;border-radius:30px;font-size:12px;white-space:nowrap;-webkit-backdrop-filter:blur(15px);backdrop-filter:blur(15px)}.alertbar{position:absolute;bottom:110px;left:50%;transform:translate(-50%);width:200px;background:#fff9;border-radius:10px;padding:5px;transition:opacity .2s}.alertbar div{height:6px;background:#ef9976;border-radius:6px}.alertbar span{font-size:10px;display:block;text-align:center;margin-bottom:5px}.result{text-align:center}.result-emblem{font-size:56px;margin-top:8px}.result-stars{font-size:32px;letter-spacing:10px;color:#dab052;margin:16px 0}.result .metric-row{display:flex;justify-content:center;gap:30px;margin:20px}.metric-row strong{display:block;font-size:25px}.metric-row small{font-size:10px;color:#81917b}.how-row{display:flex;gap:14px;align-items:flex-start;margin:18px 0}.how-row>span{font-size:24px;width:36px}.how-row p{margin:0}.how-row b{display:block;margin-bottom:3px}.toggle{display:flex;justify-content:space-between;align-items:center;gap:20px;margin-top:20px;padding:16px;background:#edf0e2;border-radius:17px}.toggle label{font-size:13px}.toggle small{display:block;font-size:10px;margin-top:5px;color:#7a8b74}.toggle input{accent-color:#426649;width:22px;height:22px}.dpad{display:none;grid-template-columns:repeat(3,44px);grid-template-rows:repeat(3,40px);gap:3px;touch-action:none}.dpad button{background:#fff9;border:1px solid #fffc;border-radius:12px;font-size:22px;touch-action:none}.dpad button:nth-child(1){grid-column:2}.dpad button:nth-child(2){grid-column:1;grid-row:2}.dpad button:nth-child(3){grid-column:3;grid-row:2}.dpad button:nth-child(4){grid-column:2;grid-row:3}.error{position:fixed;top:0;right:0;bottom:0;left:0;padding:15%;background:#e7f0da;z-index:10}.loading{position:absolute;bottom:50%;left:50%;transform:translate(-50%,50%);background:#fffdf1;border-radius:22px;padding:24px}.sound-note{font-size:10px;opacity:.6;margin-top:18px}.map-icon{font-size:26px}.ending{background:linear-gradient(130deg,#fff6cb,#eef7df)}@keyframes rise{0%{opacity:0;transform:translateY(18px)}to{opacity:1;transform:translateY(0)}}@keyframes fade{0%{opacity:0}to{opacity:1}}@media(max-width:1050px){.hero{left:5%;width:260px;top:23%}.hero h1{font-size:58px}.hero p{font-size:12px;max-width:225px}.island-label{right:5%}.hero .primary,.hero .secondary{min-width:210px}.topbar,.footer{left:24px;right:24px}}@media(pointer:coarse){.dpad{display:grid}.controls{display:none}}@media(max-width:650px){.topbar{top:18px;left:18px;right:18px}.brand{font-size:13px;letter-spacing:1px}.brand small{font-size:7px}.hero{top:100px;left:24px;width:90%}.hero h1{font-size:43px;letter-spacing:-2px}.hero h1 br{display:none}.hero .eyebrow{font-size:9px;margin-bottom:10px}.hero p{margin-top:10px;max-width:none;font-size:12px;margin-bottom:14px}.hero .primary{position:fixed;bottom:90px;left:0}.hero .secondary{position:fixed;bottom:27px;left:0;margin:0}.hero{height:calc(100% - 100px)}.hero>.pill{display:none}.island-label{bottom:115px;right:22px}.island-label h3{font-size:16px}.footer{bottom:14px;font-size:8px}.footer>.pill{display:none}.hud{top:14px;left:12px;right:12px;gap:8px}.hud-title{padding:10px 12px;min-width:110px;border-radius:15px}.hud-title h2{font-size:14px}.hud-title small{font-size:8px}.hud-center{gap:5px}.counter{font-size:17px;min-width:65px;padding:9px 10px;border-radius:14px}.counter small{font-size:7px}.hud .round{width:36px;height:36px}.status-toast{top:95px;font-size:10px;max-width:95vw;white-space:normal;text-align:center}.game-bottom{left:18px;right:18px;bottom:22px}.panel{padding:26px 22px;border-radius:25px}.panel h2{font-size:25px}.levels{grid-template-columns:repeat(5,1fr);gap:5px}.level{height:86px;border-radius:13px}.level small{font-size:8px}.level strong{font-size:20px}.hide-button{min-width:112px;padding:12px 16px}.alertbar{bottom:170px}.footer>span:last-child{display:none}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}.hero{width:460px}.hero h1{font-size:clamp(48px,5.2vw,75px);white-space:nowrap;letter-spacing:-3px}.hero p{max-width:320px}.hero .eyebrow{letter-spacing:3px}@media(max-width:1050px){.hero{width:360px}.hero h1{font-size:58px}}@media(max-width:650px){.hero{width:90%}.hero h1{font-size:36px;letter-spacing:-2px}.hero p{max-width:none}.hero .eyebrow{font-size:8px;letter-spacing:2px}}
