:root{color-scheme:dark;--ink:#2d2739;--night:#342d40;--cream:#fff6e9;--mint:#bde9c9;--pink:#f6b7c8;--line:#654d62;--gold:#ffd57a;font-family:system-ui,-apple-system,BlinkMacSystemFont,"PingFang TC","PingFang SC","Noto Sans CJK TC","Microsoft JhengHei",sans-serif;font-synthesis:none}
*{box-sizing:border-box}html,body,#app{margin:0;width:100%;height:100%;min-height:100%;overflow:hidden}body{background:var(--night);color:var(--cream)}button,select{font:inherit}button{cursor:pointer;border:2px solid #3c3243;background:#f8e9d6;color:#342536;font-weight:800;padding:10px 17px;box-shadow:inset -3px -3px #c5ad9b,0 3px #211d28;min-height:44px}button:hover:not(:disabled){filter:brightness(1.06);transform:translateY(-1px)}button:active:not(:disabled){transform:translateY(2px);box-shadow:inset -2px -2px #c5ad9b}button:focus-visible,select:focus-visible{outline:3px solid #a7e9fd;outline-offset:3px}button:disabled{opacity:.45;cursor:not-allowed}.primary{background:#f0abc1;box-shadow:inset -3px -3px #d2839d,0 3px #211d28}.hidden{display:none!important}.screen{width:100%;height:100%}.topline{height:58px;display:flex;align-items:center;justify-content:space-between;padding:0 clamp(16px,4vw,60px);border-bottom:3px solid #211c29;background:#3c3346}.brand{font:800 13px/1.2 monospace;letter-spacing:.15em;color:#efd6c3}.lang-wrap{display:flex;gap:8px;align-items:center;font-size:13px;font-weight:700}.lang-wrap select{min-height:35px;background:#fff8eb;color:#302638;border:2px solid #231e29;padding:4px 8px;max-width:200px}.eyebrow{font-size:13px;font-weight:900;color:var(--gold);letter-spacing:.09em;text-transform:uppercase}.menu-screen,.chapter-screen{background:radial-gradient(circle at 70% 30%,#695564 0,#3c3346 46%,#302b3c 100%)}.menu-layout{min-height:calc(100% - 58px);max-width:1120px;margin:auto;display:grid;grid-template-columns:1.15fr .85fr;gap:30px;align-items:center;padding:28px clamp(20px,5vw,80px)}.menu-copy h1,.chapter-inner h1{font-size:clamp(36px,5vw,72px);line-height:1.13;margin:18px 0;color:#fff3e5;text-shadow:4px 4px #2c2434}.menu-copy p{font-size:clamp(16px,1.7vw,22px);line-height:1.6;color:#f7dce2;max-width:38ch}.menu-buttons{display:flex;flex-wrap:wrap;gap:12px;margin-top:32px}.menu-buttons button{font-size:17px}.menu-art{display:grid;place-items:center;gap:12px;font-family:monospace;font-size:18px;font-weight:900;color:#f7e5d7}.art-frame{width:min(35vw,350px);aspect-ratio:1;background:linear-gradient(160deg,#edbdd0,#a2d2b4);border:8px solid #241f2d;box-shadow:14px 14px #221e2a;display:grid;place-items:center;image-rendering:pixelated}.art-frame canvas{width:73%;height:73%;image-rendering:pixelated}.story-screen{display:grid;place-items:center;padding:20px;background:linear-gradient(145deg,#483746,#78665e)}.story-card{width:min(640px,100%);background:#2d2938;border:5px solid #f3d5be;box-shadow:10px 10px #211d28;padding:clamp(20px,4vw,42px);text-align:center}.story-bird{height:160px;margin:20px auto;display:grid;place-items:center;background:repeating-linear-gradient(90deg,#65535e,#65535e 32px,#715d64 32px,#715d64 64px);image-rendering:pixelated}.story-bird canvas{width:128px;height:128px;image-rendering:pixelated}.story-card p{font-size:clamp(18px,2.5vw,25px);line-height:1.6;min-height:6em}.story-progress{letter-spacing:.4em;color:#f6c2d0;margin-bottom:20px}.row{display:flex;justify-content:space-between;gap:12px}.chapter-inner{max-width:1050px;margin:auto;padding:24px clamp(16px,4vw,54px);height:calc(100% - 58px);overflow:auto}.chapter-inner h1{font-size:clamp(32px,4vw,54px)}.chapter-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin:25px 0}.chapter-card{text-align:left;min-height:195px;display:flex;flex-direction:column;gap:10px;padding:22px;background:#f8edd9}.chapter-card:nth-child(2){background:#dfebdc}.chapter-card strong{font-size:28px}.chapter-card small{font-size:15px;line-height:1.4}.chapter-card b{margin-top:auto;color:#8f4c64}.chapter-number{font:900 18px monospace;color:#bd7591}.chapter-later{line-height:1.5;color:#f0d3d9}.game-screen{position:relative;background:#d8c7af;touch-action:none}.game-screen canvas#gameCanvas{width:100%;height:100%;display:block;image-rendering:pixelated}.hud{position:absolute;top:0;left:0;right:0;height:74px;display:flex;align-items:center;gap:10px;padding:5px 10px;background:#352e3eee;border-bottom:3px solid #241e2e;color:#fff8ed;z-index:5}.hud-portrait{width:48px;height:48px;image-rendering:pixelated;border:2px solid #f3d8b6;background:#8c8799;flex:none}.vitals{width:min(270px,27vw);min-width:130px;display:grid;gap:4px}.vital-line{display:flex;align-items:center;gap:5px;font-size:10px;font-weight:900}.vital-line span{min-width:25px}.vital-line b{min-width:37px;text-align:right;font:800 11px monospace}.meter{height:12px;flex:1;border:2px solid #1d1b25;background:#70697a;overflow:hidden}.meter i{display:block;height:100%;width:100%}.meter.hp i{background:#69d889}.meter.xp i{background:#75d5e8}.weapons{display:flex;gap:3px;align-self:flex-end;margin-bottom:4px}.weapon{width:39px;height:43px;background:#4b4351;border:1px solid #82738b;display:flex;flex-direction:column;align-items:center;justify-content:center}.weapon canvas{width:23px;height:23px;image-rendering:pixelated}.weapon>b{font:900 18px monospace;color:#ffe4ae}.weapon small{font:700 9px monospace}.timer{margin:auto;font:900 clamp(15px,2vw,27px) monospace;white-space:nowrap}.coins{display:flex;gap:5px;align-items:center;font:900 18px monospace;white-space:nowrap}.coin-pixel{display:block;width:15px;height:15px;border:3px solid #a45e30;background:#f3c66a;box-shadow:inset -2px -2px #c88c4d}.pause-button{color:#fff7eb;background:#4d4354;border:1px solid #b7a1b1;box-shadow:none;min-width:41px;padding:4px 8px;font-size:23px}.goal-badge{position:absolute;top:82px;left:10px;background:#423941d9;border-left:4px solid #f3c5a5;padding:7px 10px;font-size:12px;font-weight:800;z-index:3;max-width:min(390px,70vw)}.toast{position:absolute;z-index:7;top:24%;left:50%;transform:translateX(-50%);max-width:min(540px,90vw);background:#2b2634ee;border:3px solid #ffcf8d;color:white;padding:12px 18px;text-align:center;font-size:clamp(15px,2vw,21px);font-weight:800;box-shadow:5px 5px #221e2b;pointer-events:none}.touch-controls{position:absolute;z-index:6;bottom:max(14px,env(safe-area-inset-bottom));left:0;right:0;display:none;justify-content:space-between;align-items:end;padding:0 14px;pointer-events:none}.stick{width:100px;height:100px;border:3px solid #f4d8bb;background:#3834409c;display:grid;place-items:center;pointer-events:auto;touch-action:none}.knob{width:40px;height:40px;background:#e1d5c4;border:3px solid #514251;pointer-events:none}.touch-actions{display:flex;gap:8px;align-items:end;pointer-events:auto}.touch-actions button{height:48px;min-height:48px;min-width:48px;padding:4px 7px;background:#f5dce0;font:900 17px monospace}.touch-actions button:last-child{font-size:11px;min-width:62px}.overlay{position:absolute;z-index:15;inset:0;display:grid;place-items:center;padding:20px;background:#1d1a27ba}.overlay-card{max-height:min(90vh,700px);overflow:auto;width:min(650px,100%);background:#fff3e3;color:#332737;border:5px solid #342b3b;box-shadow:10px 10px #15141c;padding:22px}.overlay-card h2{font-size:clamp(25px,3vw,36px);margin:0 0 18px}.overlay-card p{font-size:16px;line-height:1.5}.overlay-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:22px}.upgrade-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:10px}.upgrade-card{height:160px;text-align:left;padding:13px;display:flex;flex-direction:column;gap:8px;background:#d9e7d9}.upgrade-card b{font-size:18px}.upgrade-card small{font-size:13px;line-height:1.35}.upgrade-card em{margin-top:auto;font:900 20px monospace;color:#8e536c}.result-stats{display:flex;gap:9px;flex-wrap:wrap}.result-stats span{padding:8px 12px;background:#e7decf;border:2px solid #8e7b71}.save-warning{position:absolute;bottom:10px;left:10px;z-index:50;background:#6c333d;color:#fff;padding:10px;max-width:320px}
@media(pointer:coarse){.touch-controls{display:flex}}
@media(max-width:760px){.menu-layout{grid-template-columns:1fr;align-content:center;padding:22px}.menu-art{display:none}.menu-copy h1{font-size:39px}.menu-buttons{gap:9px}.menu-buttons button{font-size:15px}.topline{padding:0 13px}.brand{font-size:10px}.chapter-grid{grid-template-columns:1fr}.chapter-card{min-height:150px}.hud{height:61px;gap:5px;padding:4px}.hud-portrait{width:38px;height:38px}.vitals{min-width:97px;width:27vw}.vital-line{font-size:8px}.vital-line span{min-width:20px}.vital-line b{min-width:25px;font-size:9px}.weapons{gap:2px}.weapon{width:29px;height:36px}.weapon canvas{width:17px;height:17px}.weapon>b{font-size:14px}.weapon small{font-size:7px}.timer{font-size:14px}.coins{font-size:12px}.coin-pixel{width:11px;height:11px}.pause-button{min-width:33px;font-size:18px}.goal-badge{top:66px;font-size:10px}.upgrade-list{grid-template-columns:1fr}.upgrade-card{height:auto;min-height:84px}.story-card p{font-size:18px}}
@media(max-width:440px){.hud .weapon:nth-child(3),.hud .weapon:nth-child(4){display:none}.vitals{min-width:100px}.goal-badge{max-width:80vw}.lang-wrap span{display:none}.lang-wrap select{max-width:155px}.menu-copy h1{font-size:34px}.chapter-inner{padding:12px}}
@media(max-height:520px){.story-bird{height:75px}.story-bird canvas{width:70px;height:70px}.story-card p{min-height:2em}.menu-layout{padding-top:8px;padding-bottom:8px}}
.character-select{display:flex;gap:12px;align-items:center;font-weight:800}.character-select select{min-height:42px;padding:6px 10px;background:#fff3e3;color:#302638;border:2px solid #241f2d}.chapter-card:nth-child(3){background:#d7e6e5}.chapter-card:nth-child(4){background:#e2d9ed}.chapter-card:nth-child(5){background:#f3dcdf}
.shop-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:24px 0}.shop-card{background:#f8edd9;color:#342536;border:3px solid #342536;padding:20px;min-height:225px;display:flex;flex-direction:column}.shop-card:nth-child(2){background:#dfebdc}.shop-card:nth-child(3){background:#e2d9ed}.shop-card h2{margin:0 0 9px}.shop-card p{line-height:1.45}.shop-card button{margin-top:auto}.shop-coins{color:#ffd57a;font-weight:900;font-size:20px}@media(max-width:760px){.shop-grid{grid-template-columns:1fr}.shop-card{min-height:185px}}
