:root{--red: #c41e3a;--red-dark: #8f1430;--red-light: #e8505e;--military: #3a7d3f;--military-dark: #2d6a34;--defense-blue: #1e5a8f;--gold: #ffd700;--gold-dark: #c9a227;--bg-dark: #12241a;--bg-panel: rgba(255, 255, 255, .06);--text-main: #f5f0e8;--text-dim: rgba(245, 240, 232, .6);--green: #2ecc71;--green-dark: #1f9d55;--topic-primary: #3a7d3f;--topic-accent: #ffd700;--topic-bg-from: #0f241a;--topic-bg-to: #0a1a12;--touch-min: 64px;--radius: 18px;--font-size-base: 20px}*{margin:0;padding:0;box-sizing:border-box;-webkit-tap-highlight-color:transparent}html,body{height:100%;overflow:hidden}body{font-family:PingFang SC,Microsoft YaHei,Noto Sans SC,system-ui,sans-serif;background:var(--bg-dark);color:var(--text-main);font-size:var(--font-size-base);-webkit-user-select:none;user-select:none;-webkit-font-smoothing:antialiased}button{font-family:inherit;border:none;cursor:pointer;touch-action:manipulation}input{font-family:inherit}#app{height:100%}.page{height:100vh;height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;position:relative;overflow:hidden;padding:24px}.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:var(--touch-min);padding:0 36px;border-radius:16px;font-size:24px;font-weight:700;letter-spacing:2px;transition:transform .12s ease,box-shadow .12s ease,filter .12s ease;touch-action:manipulation}.btn:active{transform:scale(.96)}.btn-primary{background:linear-gradient(135deg,var(--gold) 0%,#f5c842 60%,var(--gold-dark) 100%);color:#5c3a00;box-shadow:0 8px 24px #ffd70059}.btn-primary:hover{filter:brightness(1.08)}.btn-ghost{background:var(--bg-panel);color:var(--text-main);border:2px solid rgba(255,255,255,.25);box-shadow:0 4px 16px #0003}.btn-ghost:hover{background:#ffffff1f}::-webkit-scrollbar{width:10px;height:10px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#fff3;border-radius:5px}@keyframes fadeInUp{0%{opacity:0;transform:translateY(24px)}to{opacity:1;transform:translateY(0)}}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.04)}}@keyframes shake{0%,to{transform:translate(0)}20%{transform:translate(-10px)}40%{transform:translate(10px)}60%{transform:translate(-6px)}80%{transform:translate(6px)}}@keyframes popIn{0%{transform:scale(0);opacity:0}70%{transform:scale(1.15);opacity:1}to{transform:scale(1);opacity:1}}.anim-fade-up{animation:fadeInUp .5s ease both}
