:root{--bg-color: #0b1315;--panel-bg: rgba(18, 28, 32, .92);--border-color: #3d5a5b;--accent-amber: #f4a261;--accent-red: #e76f51;--accent-jade: #2a9d8f;--text-main: #f0f4f5;--text-muted: #8fa3a6;--font-family: -apple-system, BlinkMacSystemFont, "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", "WenQuanYi Micro Hei", "Noto Sans SC", "Segoe UI", Roboto, sans-serif}*{box-sizing:border-box;margin:0;padding:0;user-select:none;-webkit-user-select:none;-webkit-touch-callout:none}html,body{width:100%;height:100%;overflow:hidden;background-color:var(--bg-color);font-family:var(--font-family);color:var(--text-main);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-rendering:optimizeLegibility}#app{width:100vw;height:100vh;display:flex;justify-content:center;align-items:center;position:relative}#game-container{width:100%;height:100%;display:flex;justify-content:center;align-items:center}canvas{image-rendering:-webkit-optimize-contrast;image-rendering:auto;max-width:100%;max-height:100%;box-shadow:0 10px 40px #000000e6}.overlay{position:absolute;top:0;left:0;width:100%;height:100%;background:#080e10d9;backdrop-filter:blur(8px);display:flex;justify-content:center;align-items:center;z-index:100;transition:opacity .3s ease}.hidden{display:none!important}.modal-card{background:var(--panel-bg);border:2px solid var(--border-color);border-radius:12px;padding:32px 40px;max-width:480px;width:90%;text-align:center;box-shadow:0 12px 40px #0009}.full-cover-overlay{background:linear-gradient(#060b0d73,#060b0dc7),url(./ui/cover_night_market.jpg) center/cover no-repeat;background-size:cover;background-position:center;backdrop-filter:blur(2px);-webkit-backdrop-filter:blur(2px)}.full-screen-hero-card{max-width:580px;width:90%;padding:36px 44px;background:#0f181ce0;backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);border:2px solid rgba(244,162,97,.8);border-radius:16px;box-shadow:0 24px 70px #000000f2,0 0 35px #f4a26159;text-align:center}.cover-content{padding:0}.badge{display:inline-block;font-size:11px;font-weight:700;text-transform:uppercase;letter-spacing:2px;color:var(--accent-amber);background:#f4a26126;border:1px solid rgba(244,162,97,.3);padding:4px 10px;border-radius:20px;margin-bottom:12px}.title{font-size:32px;font-weight:900;letter-spacing:4px;color:var(--text-main);text-shadow:0 0 12px rgba(244,162,97,.4);margin-bottom:8px}.subtitle{font-size:14px;color:var(--text-muted);line-height:1.5;margin-bottom:24px}.controls-hint{background:#0a121499;border:1px solid rgba(61,90,91,.4);border-radius:8px;padding:12px;font-size:13px;color:var(--text-muted);margin-bottom:24px;display:flex;flex-direction:column;gap:6px}.controls-hint span{color:var(--accent-jade);font-weight:600}.btn{background:var(--border-color);color:var(--text-main);border:none;padding:12px 28px;font-size:16px;font-weight:700;letter-spacing:1px;border-radius:8px;cursor:pointer;transition:all .2s ease;width:100%}.btn:hover{filter:brightness(1.15);transform:translateY(-1px)}.btn:active{transform:translateY(1px)}.primary-btn{background:linear-gradient(135deg,var(--accent-red) 0%,var(--accent-amber) 100%);color:#0b1315;box-shadow:0 4px 16px #e76f5166}.version-tag{font-size:11px;color:var(--text-muted);margin-top:16px}.error-card{border-color:var(--accent-red)}.error-title{color:var(--accent-red);font-size:20px;margin-bottom:12px}.error-text{font-size:14px;color:var(--text-main);margin-bottom:12px}.error-stack{background:#060b0c;color:#ff8a80;font-family:monospace;font-size:11px;padding:10px;border-radius:6px;text-align:left;max-height:140px;overflow-y:auto;margin-bottom:20px;white-space:pre-wrap;word-break:break-all}.portrait-hint{display:none;position:fixed;top:14px;left:50%;transform:translate(-50%);background:linear-gradient(135deg,var(--accent-red) 0%,var(--accent-amber) 100%);color:#0b1315;font-size:12px;font-weight:700;padding:6px 16px;border-radius:20px;box-shadow:0 4px 16px #0009;z-index:99;pointer-events:none;white-space:nowrap;animation:pulseHint 2.4s infinite ease-in-out}@keyframes pulseHint{0%,to{opacity:.88;transform:translate(-50%) scale(1)}50%{opacity:1;transform:translate(-50%) scale(1.03)}}@media (orientation: portrait) and (max-width: 768px){.portrait-hint{display:block}}
