:root{--ui-ink: #1f332d;--ui-muted: #66766d;--ui-panel: rgba(255, 238, 185, .9);--ui-panel-strong: rgba(255, 226, 145, .94);--ui-border: rgba(65, 43, 26, .22);--ui-shadow: rgba(58, 37, 22, .22);--ui-accent: #efb946;--ui-danger: #e67966;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;color:var(--ui-ink);background:#0b1d1a;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*{box-sizing:border-box}html,body,#app{width:100%;height:100%;margin:0;overflow:hidden;touch-action:none}body{overscroll-behavior:none}#app{position:relative;display:grid;place-items:center;background:radial-gradient(circle at 50% 20%,rgba(153,227,204,.26),transparent 36%),linear-gradient(180deg,#14362f,#081311)}#game-root{position:absolute;inset:0}canvas{display:block}#hud{position:fixed;z-index:5;top:max(8px,env(safe-area-inset-top));left:50%;display:flex;width:min(560px,calc(100vw - 16px));flex-direction:column;gap:5px;pointer-events:none;transform:translate(-50%)}.hud-controls{position:absolute;top:106px;right:0;display:flex;gap:5px;pointer-events:auto}.icon-button{display:grid;width:34px;min-width:34px;min-height:32px;height:32px;place-items:center;border:2px solid rgba(255,247,206,.45);border-radius:7px;background:#1e342ddb;box-shadow:0 2px #0813115c;color:#fff3bd;font-size:16px;line-height:1}.icon-button.is-muted{color:#e8b1a0}.hud-main{display:grid;grid-template-columns:48px minmax(0,1fr) 72px;gap:6px;align-items:stretch}.level-chip,.objective-chip,.timer-chip,.hud-stats,.powerup-strip span{border:2px solid var(--ui-border);border-radius:8px;background:var(--ui-panel);box-shadow:0 3px 0 var(--ui-shadow),inset 0 1px #ffffff57}.level-chip{display:grid;place-items:center;min-height:48px;background:var(--ui-accent);color:#3f2a16}.level-chip:before{content:"关";display:block;margin-right:2px;font-size:12px;font-weight:900}.level-chip span{font-size:24px;font-weight:950;line-height:.9}.objective-chip{min-width:0;padding:6px 10px 5px}.objective-chip span,.timer-chip span{display:block;color:var(--ui-muted);font-size:11px;font-weight:900;line-height:1}.objective-chip strong{display:block;overflow:hidden;margin-top:4px;color:var(--ui-ink);font-size:clamp(14px,3.7vw,18px);font-weight:950;line-height:1.05;text-overflow:ellipsis;white-space:nowrap}.timer-chip{display:grid;place-items:center;min-height:48px;padding:4px;background:var(--ui-panel-strong)}.timer-chip strong{color:var(--ui-ink);font-size:24px;font-weight:950;line-height:1}.hud-stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:4px;padding:5px;background:#1c3029c2;box-shadow:0 3px #0d171359}.hud-stats span{min-width:0;color:#fff7dcd1;font-size:clamp(11px,2.7vw,13px);font-weight:850;line-height:1.05;text-align:center}.hud-stats strong{color:#fff5c7;font-size:clamp(14px,3.3vw,18px);font-weight:950}.life-stat strong{display:inline-flex;min-height:18px;align-items:center;justify-content:center;gap:1px;white-space:nowrap}.heart{display:inline-block;color:#ff7d84;font-size:clamp(13px,3vw,17px);line-height:1;text-shadow:0 1px 0 #6b3d39}.heart.lost{color:#e1e6d561;text-shadow:none}.life-hit{animation:heart-loss .46s ease-out}@keyframes heart-loss{0%,to{transform:translate(0)}20%,60%{transform:translate(-5px)}40%,80%{transform:translate(5px)}}.powerup-strip{display:flex;min-height:22px;flex-wrap:wrap;gap:5px}.powerup-strip span{display:inline-flex;align-items:center;min-height:22px;padding:3px 8px;background:#f7e08be6;color:#4f351d;font-size:11px;font-weight:900;line-height:1}.panel{position:fixed;z-index:10;left:50%;top:50%;display:none;width:min(390px,calc(100vw - 32px));max-height:min(78vh,720px);overflow:auto;border:3px solid rgba(88,55,30,.42);border-radius:8px;background:linear-gradient(180deg,#ffedb4f7,#efc370f7),#f3cf84;box-shadow:0 8px #4a2d1838,0 18px 36px #08131147,inset 0 2px #ffffff61;padding:18px 16px 17px;text-align:center;transform:translate(-50%,-50%);pointer-events:auto}.panel.visible{display:block}.panel h1,.panel h2{margin:0;color:#25483e;font-size:clamp(26px,7.2vw,36px);line-height:1.05}.panel p{margin:7px 0 14px;color:#5e4930;font-size:clamp(14px,3.8vw,16px);font-weight:800}.panel-kicker{display:inline-flex;align-items:center;justify-content:center;min-height:24px;margin-bottom:7px;border-radius:999px;background:#24483ee6;padding:3px 10px;color:#fff4c7;font-size:12px;font-weight:950;letter-spacing:0}.level-brief{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;margin:13px 0 17px;text-align:left}.level-brief div{min-width:0;border:2px solid rgba(85,55,32,.18);border-radius:8px;background:#fff8db94;padding:8px}.level-brief div:nth-child(4),.level-brief .wide{grid-column:1 / -1}.level-brief span{display:block;color:#6a5738;font-size:11px;font-weight:950;line-height:1}.level-brief strong{display:block;overflow-wrap:anywhere;margin-top:5px;color:#26483f;font-size:clamp(13px,3.4vw,15px);font-weight:950;line-height:1.22}.level-picker{display:flex;align-items:center;justify-content:space-between;gap:10px;margin:-5px 0 14px;color:#5e4930;font-size:13px;font-weight:900;text-align:left}.level-picker select{width:min(230px,72%);min-height:36px;border:2px solid rgba(85,55,32,.25);border-radius:6px;background:#fff4c9;color:#26483f;font:inherit;font-size:13px;font-weight:850}.result-rank{color:#5c482c;font-size:16px}.pause-panel{width:min(330px,calc(100vw - 32px))}.result-panel.success{background:linear-gradient(180deg,#ffeeb1f7,#f4cd72f7),#f0ca78}.result-panel.failure{background:linear-gradient(180deg,#ffdebaf7,#e79c77f7),#eba27a}button{width:min(240px,100%);min-height:50px;border:0;border-radius:8px;background:linear-gradient(180deg,#ffd265,#eaa33e);box-shadow:0 5px #9d5f23,inset 0 1px #ffffff59;color:#3d2d1d;cursor:pointer;font:inherit;font-size:clamp(18px,5vw,21px);font-weight:900;touch-action:manipulation}button:active{transform:translateY(3px);box-shadow:0 2px #a46624}@media(max-height:650px){.panel{max-height:86vh;padding:13px}.panel h1,.panel h2{font-size:26px}.level-brief{margin:8px 0 10px;gap:5px}.level-brief div{padding:6px}.hud-controls{top:102px}}
