:root{color:#202124;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;--ink:#202124;--muted:#73766f;--line:#dedfd8;--paper:#f7f7f3;--white:#fff;--coral:#ed6652;--green:#18745e;--yellow:#f4bd3c;--blue:#4f78c8;background:#f1f2ed;font-family:Avenir Next,Microsoft YaHei,PingFang SC,system-ui,sans-serif}*{box-sizing:border-box;letter-spacing:0}html{background:#f1f2ed;min-width:320px;min-height:100%}body{overscroll-behavior:none;min-width:320px;min-height:100%;margin:0;overflow-x:hidden}button,input{font:inherit}button{color:inherit;-webkit-tap-highlight-color:transparent}button:focus-visible,input:focus-visible{outline-offset:3px;outline:3px solid #202124}button:disabled{cursor:not-allowed}#root{min-height:100dvh}.icon-button,.toolbar-button{border:1px solid var(--line);width:46px;height:46px;color:var(--ink);background:var(--white);cursor:pointer;border-radius:8px;flex:0 0 46px;place-items:center;padding:0;transition:transform .12s,background .12s;display:inline-grid}.icon-button:hover,.toolbar-button:hover{background:#eceee8}.icon-button:active,.toolbar-button:active{transform:scale(.94)}.icon-button.subtle{background:0 0;border-color:#0000}.hub-shell{width:min(100%,780px);min-height:100dvh;padding-bottom:calc(28px + env(safe-area-inset-bottom));background:var(--paper);border-inline:1px solid #e4e5df;margin:0 auto}.hub-hero{padding:calc(18px + env(safe-area-inset-top)) clamp(18px, 5vw, 38px) 22px;border-bottom:1px solid var(--line);background:var(--white)}.hub-topline,.modal-heading,.section-heading,.game-header{justify-content:space-between;align-items:center;display:flex}.brand-lockup{color:#5e625b;align-items:center;gap:9px;font-size:12px;font-weight:800;display:flex}.brand-dot{border:3px solid var(--ink);background:var(--yellow);border-radius:50%;width:10px;height:10px}.hero-content{grid-template-columns:minmax(0,1fr) minmax(112px,170px);align-items:center;gap:16px;min-height:216px;display:grid}.hero-copy h1{max-width:420px;margin:0;font-size:clamp(34px,9vw,58px);font-weight:950;line-height:1.02}.hero-copy p{color:#62665f;margin:12px 0 22px;font-size:clamp(15px,3.4vw,18px);font-weight:650}.hero-mascot{filter:drop-shadow(0 10px #2021241a);justify-self:end;width:100%;max-width:170px;display:block;transform:rotate(3deg)}.primary-command{border:2px solid var(--ink);min-height:48px;color:var(--white);background:var(--ink);box-shadow:4px 4px 0 var(--yellow);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:10px;padding:0 18px;font-weight:850;transition:transform .12s,box-shadow .12s;display:inline-flex}.primary-command:hover{box-shadow:6px 6px 0 var(--yellow);transform:translate(-1px,-1px)}.primary-command:active{box-shadow:1px 1px 0 var(--yellow);transform:translate(3px,3px)}.primary-command.wide{width:100%}.hub-stats{border:1px solid var(--line);background:#fafaf7;border-radius:8px;grid-template-columns:repeat(3,1fr);display:grid}.hub-stats>div{border-right:1px solid var(--line);grid-template-columns:auto auto;justify-content:center;align-items:center;column-gap:7px;min-height:64px;padding:8px;display:grid}.hub-stats>div:last-child{border-right:0}.hub-stats svg{color:#8f6110}.hub-stats strong{font-size:20px}.hub-stats span{color:var(--muted);text-align:center;grid-column:1/-1;font-size:11px}.level-map{padding:28px clamp(18px,5vw,38px) 18px}.chapter-tabs{overscroll-behavior-inline:contain;scrollbar-width:thin;scroll-snap-type:x proximity;grid-auto-columns:minmax(88px,1fr);grid-auto-flow:column;gap:8px;margin:-4px 0 24px;padding:4px 2px 9px;display:grid;overflow-x:auto}.chapter-tabs button{scroll-snap-align:start;border:1px solid var(--line);color:#5f635c;text-align:left;background:var(--white);cursor:pointer;border-radius:8px;grid-template-columns:24px minmax(0,1fr);align-items:center;gap:6px;min-height:48px;padding:7px 9px;display:grid;position:relative}.chapter-tabs button strong{width:24px;height:24px;color:var(--white);background:#8a8e86;border-radius:50%;place-items:center;font-size:12px;display:grid}.chapter-tabs button span{text-overflow:ellipsis;white-space:nowrap;font-size:11px;font-weight:850;overflow:hidden}.chapter-tabs button svg{position:absolute;top:3px;right:3px}.chapter-tabs button.is-active{border-color:var(--ink);color:var(--ink);box-shadow:3px 3px 0 var(--yellow)}.chapter-tabs button.is-active strong{background:var(--ink)}.chapter-tabs button:disabled{color:#a0a39d;background:#eeefea}.chapter-tabs button:disabled strong{background:#b9bcb5}.section-heading{margin-bottom:18px}.section-kicker,.result-kicker{color:#777b74;font-size:10px;font-weight:900}.section-heading h2,.modal-heading h2{margin:3px 0 0;font-size:23px}.map-count{color:var(--muted);font-size:13px;font-weight:800}.level-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;display:grid}.level-card{--level-accent:#4f78c8;--level-soft:#e1e9fa;text-align:left;background:var(--white);cursor:pointer;border:1px solid #d7d9d2;border-radius:8px;grid-template-rows:25px auto;grid-template-columns:48px minmax(0,1fr) 24px;gap:5px 11px;min-height:104px;padding:12px;transition:transform .14s,box-shadow .14s,border-color .14s;display:grid;position:relative;overflow:hidden}.level-card:before{background:var(--level-accent);content:"";width:4px;position:absolute;inset:0 auto 0 0}.level-card:hover:not(:disabled){border-color:var(--level-accent);transform:translateY(-2px);box-shadow:0 8px 18px #20212414}.level-card:disabled{color:#8d908a;background:#eeefea}.level-card:disabled:before{background:#bfc1bb}.level-number{color:var(--level-accent);grid-column:1;font-size:11px;font-weight:950}.level-icon{width:44px;height:44px;color:var(--level-accent);background:var(--level-soft);border-radius:8px;grid-area:2/1;place-items:center;display:grid}.level-copy{flex-direction:column;grid-area:1/2/span 2;align-self:center;gap:5px;min-width:0;display:flex}.level-copy strong{overflow-wrap:anywhere;font-size:15px}.level-copy small{color:#777b74;font-size:11px}.level-state{color:var(--level-accent);grid-area:1/3/span 2;align-self:center;place-items:center;display:grid}.level-card.is-complete .level-state{width:24px;height:24px;color:var(--white);background:var(--level-accent);border-radius:50%}.hub-footer{color:#8b8e87;text-align:center;padding:20px;font-size:11px;font-weight:800}.game-shell{--level-accent:#4f78c8;--level-soft:#e1e9fa;background:var(--paper);border-inline:1px solid #e0e1dc;grid-template-rows:auto minmax(0,1fr) auto;width:min(100%,560px);height:100dvh;min-height:560px;margin:0 auto;display:grid;overflow:hidden}.game-header{min-height:calc(70px + env(safe-area-inset-top));padding:calc(12px + env(safe-area-inset-top)) 16px 10px;border-bottom:1px solid var(--line);background:var(--white)}.game-title{flex-direction:column;align-items:center;min-width:0;display:flex}.game-title small{color:var(--level-accent);font-size:9px;font-weight:950}.game-title strong{text-overflow:ellipsis;white-space:nowrap;max-width:230px;font-size:17px;overflow:hidden}.game-time{width:46px;color:var(--ink);font-variant-numeric:tabular-nums;justify-content:center;font-size:17px;font-weight:900;display:flex}.game-time small{color:var(--muted);align-self:flex-end;margin:0 0 2px 2px;font-size:9px}.game-body{grid-template-rows:auto minmax(0,1fr);min-height:0;padding:14px 14px 8px;display:grid}.level-prompt{color:#676b64;text-align:center;min-height:24px;margin:0;font-size:13px;font-weight:700}.game-stage{overscroll-behavior:contain;place-items:center;min-height:0;display:grid;overflow:auto}.stage-loading{color:var(--muted);align-items:center;gap:10px;font-size:13px;font-weight:700;display:flex}.stage-loading span{border:3px solid #d8dad3;border-top-color:var(--level-accent);border-radius:50%;width:18px;height:18px;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.game-toolbar{min-height:calc(68px + env(safe-area-inset-bottom));padding:10px 16px calc(12px + env(safe-area-inset-bottom));border-top:1px solid var(--line);background:var(--white);align-items:flex-start;gap:16px;display:flex}.toolbar-button{background:var(--paper)}.toolbar-progress{background:#e0e2dc;border-radius:3px;flex:1;align-self:center;height:5px;overflow:hidden}.toolbar-progress span{border-radius:inherit;background:var(--level-accent);height:100%;display:block}.modal-backdrop{z-index:50;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#2021249e;place-items:center;padding:18px;animation:.16s ease-out fade-in;display:grid;position:fixed;inset:0}@keyframes fade-in{0%{opacity:0}}.modal-card{border:2px solid var(--ink);background:var(--white);width:min(100%,390px);max-height:min(680px,100dvh - 36px);box-shadow:8px 8px 0 var(--yellow);border-radius:8px;padding:22px;animation:.2s ease-out pop-in;overflow:auto}@keyframes pop-in{0%{opacity:0;transform:translateY(10px)scale(.97)}}.settings-card{gap:10px;display:grid}.modal-heading{margin-bottom:8px}.setting-row{border-bottom:1px solid var(--line);justify-content:space-between;align-items:center;min-height:54px;padding:8px 4px;font-weight:800;display:flex}.setting-row span{align-items:center;gap:10px;display:flex}.setting-row input{appearance:none;border:2px solid var(--ink);cursor:pointer;background:#d6d8d1;border-radius:16px;width:48px;height:28px;margin:0;position:relative}.setting-row input:after{background:var(--white);content:"";border-radius:50%;width:18px;height:18px;transition:transform .14s;position:absolute;top:3px;left:3px;box-shadow:0 1px 2px #00000040}.setting-row input:checked{background:var(--green)}.setting-row input:checked:after{transform:translate(20px)}.danger-command,.text-command{cursor:pointer;background:0 0;border:0;min-height:44px;font-weight:800}.danger-command{color:#bd3f34;margin-top:8px}.pause-card,.result-card{text-align:center}.pause-card h2,.result-card h2{margin:10px 0 20px;font-size:30px}.modal-symbol{border:2px solid var(--ink);background:var(--level-soft);border-radius:50%;place-items:center;width:58px;height:58px;margin:0 auto;display:grid}.modal-actions{grid-template-columns:1fr 1fr;gap:10px;margin-top:14px;display:grid}.modal-actions button{border:1px solid var(--line);background:var(--paper);cursor:pointer;border-radius:8px;justify-content:center;align-items:center;gap:8px;min-height:46px;font-weight:800;display:inline-flex}.result-card img{border:2px solid var(--ink);border-radius:22px;width:86px;margin:-64px auto 8px;box-shadow:4px 4px #20212429}.result-card{margin-top:38px;overflow:visible}.result-card h2{margin:5px 0 8px;font-size:36px}.result-card p{color:var(--muted);margin:8px 0 20px;font-size:13px;font-weight:700}.result-stars{color:#caccc5;justify-content:center;gap:4px;display:flex}.result-stars .earned{color:var(--yellow);filter:drop-shadow(0 2px #9c6a11)}.next-arrow{transform:rotate(180deg)}@media (width<=520px){.hub-shell,.game-shell{border-inline:0}.hero-content{grid-template-columns:minmax(0,1fr) 118px}.level-grid{grid-template-columns:1fr}.level-card{min-height:92px}}@media (width<=360px){.hub-hero{padding-inline:14px}.hero-content{grid-template-columns:minmax(0,1fr) 96px;min-height:200px}.hero-copy h1{font-size:34px}.hero-copy p{font-size:14px}.primary-command{padding-inline:13px;font-size:14px}.game-body{padding-inline:8px}}@media (height<=650px){.game-header{min-height:calc(60px + env(safe-area-inset-top));padding-top:calc(7px + env(safe-area-inset-top));padding-bottom:7px}.game-toolbar{min-height:calc(58px + env(safe-area-inset-bottom));padding-top:6px}.level-prompt{min-height:19px;font-size:12px}.game-body{padding-top:8px}}@media (prefers-reduced-motion:reduce){*,:before,:after{scroll-behavior:auto!important;transition-duration:.01ms!important;animation-duration:.01ms!important;animation-iteration-count:1!important}}
