:root{--color-bg: #0A0E0C;--color-bg-glass: rgba(15, 42, 30, .55);--color-bg-glass-strong: rgba(15, 42, 30, .78);--color-bg-glass-ultra: rgba(15, 42, 30, .85);--color-primary: #0F2F1E;--color-primary-hi: #1F5A3D;--color-primary-glow: #2A6B4A;--color-accent: #D4AF37;--color-accent-dim: #8B7220;--color-accent-hi: #E8C957;--color-danger: #C73E3A;--color-success: #5BBF7A;--color-warning: #F2A93B;--color-info: #7eb6ff;--color-text: #F2EAD3;--color-text-dim: rgba(242, 234, 211, .6);--color-text-bright: #FFFFFF;--color-text-muted: rgba(242, 234, 211, .35);--color-text-gold: #D4AF37;--color-border: rgba(212, 175, 55, .18);--color-border-hi: rgba(212, 175, 55, .55);--color-border-glow: rgba(212, 175, 55, .85);--color-border-dim: rgba(127, 217, 176, .18);--color-border-active: rgba(232, 201, 87, .9);--grad-gold: linear-gradient(135deg, #E8C957 0%, #D4AF37 50%, #8B7220 100%);--grad-gold-soft: linear-gradient(135deg, rgba(232, 201, 87, .18) 0%, rgba(212, 175, 55, .06) 100%);--grad-green: linear-gradient(135deg, #2A6B4A 0%, #0F2F1E 100%);--grad-card: linear-gradient(180deg, rgba(255, 255, 255, .06) 0%, rgba(255, 255, 255, .01) 100%);--font-sans: "Inter", -apple-system, BlinkMacSystemFont, "PingFang SC", "Microsoft YaHei", sans-serif;--font-mono: "JetBrains Mono", ui-monospace, "Menlo", "Consolas", monospace;--radius-sm: 4px;--radius-md: 8px;--radius-lg: 12px;--radius-xl: 20px;--radius-2xl: 28px;--shadow-glass: 0 8px 32px rgba(0, 0, 0, .4), inset 0 1px 0 rgba(255, 255, 255, .06);--shadow-glass-strong: 0 16px 48px rgba(0, 0, 0, .5), inset 0 1px 0 rgba(255, 255, 255, .08);--shadow-glow: 0 0 24px rgba(212, 175, 55, .3);--shadow-glow-strong: 0 0 32px rgba(212, 175, 55, .55);--shadow-glow-soft: 0 0 16px rgba(212, 175, 55, .18);--shadow-lift: 0 12px 36px rgba(0, 0, 0, .5), 0 0 0 1px rgba(212, 175, 55, .35);--shadow-lift-strong: 0 20px 48px rgba(0, 0, 0, .6), 0 0 0 1px rgba(212, 175, 55, .55);--shadow-modal: 0 24px 48px rgba(0, 0, 0, .5), 0 0 0 1px rgba(212, 175, 55, .25);--shadow-modal-strong: 0 32px 64px rgba(0, 0, 0, .7), 0 0 0 1px rgba(212, 175, 55, .45);--ease-out: cubic-bezier(.16, 1, .3, 1);--ease-out-expo: cubic-bezier(.19, 1, .22, 1);--ease-in-out: cubic-bezier(.65, 0, .35, 1);--ease-spring: cubic-bezier(.34, 1.56, .64, 1);--ease-spring-soft: cubic-bezier(.34, 1.3, .64, 1);--ease-bouncy: cubic-bezier(.68, -.55, .27, 1.55);--duration-fast: .15s;--duration-base: .24s;--duration-slow: .36s;--duration-slower: .5s;--z-canvas: 0;--z-scene: 5;--z-hud: 10;--z-toolbar: 20;--z-overlay: 30;--z-drawer: 40;--z-modal: 50;--z-toast: 100}*{box-sizing:border-box;margin:0;padding:0}html,body{width:100%;height:100%;overflow:hidden;background:#05080a;color:var(--color-text);font-family:var(--font-sans);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}#app{position:fixed;inset:0;width:100%;height:100%;pointer-events:none}#app>*{pointer-events:auto}#canvas{position:absolute;inset:0;width:100%;height:100%;display:block;touch-action:none;z-index:var(--z-canvas)}.glass{background:var(--color-bg-glass);backdrop-filter:blur(24px) saturate(180%);-webkit-backdrop-filter:blur(24px) saturate(180%);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass);transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.glass:hover{transform:scale(1.02);box-shadow:var(--shadow-glass),0 10px 30px #00000080;border-color:var(--color-border-hi)}.btn-gold{padding:8px 16px;border-radius:var(--radius-md);background:linear-gradient(135deg,#d4af372e,#8b72202e);border:1px solid var(--color-border-hi);color:var(--color-accent);font-family:var(--font-sans);font-size:12px;font-weight:600;letter-spacing:.04em;cursor:pointer;transition:all var(--duration-base) var(--ease-out)}.btn-gold:hover{background:linear-gradient(135deg,#d4af3752,#8b722052);box-shadow:var(--shadow-glow);transform:translateY(-1px)}.btn-gold:active{transform:translateY(0)}.btn-gold.active{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-dim));color:var(--color-bg);border-color:var(--color-accent)}.btn-ghost{padding:6px 12px;border-radius:var(--radius-md);background:#14282099;border:1px solid var(--color-border-dim);color:var(--color-text);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--duration-base) var(--ease-out)}.btn-ghost:hover{background:#285040b3;border-color:#7fd9b066}.mono{font-family:var(--font-mono);font-variant-numeric:tabular-nums}@keyframes fadeInScale{0%{opacity:0;transform:scale(.95)}to{opacity:1;transform:scale(1)}}@keyframes pulse{0%,to{opacity:.7}50%{opacity:1}}@keyframes recPulse{0%,to{opacity:.4}50%{opacity:1}}body.replay-editor-on .re-root,body.replay-editor-on .tl-container,body.replay-editor-on .sdo-root{display:block!important}.lift-card{transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out),border-color var(--duration-base) var(--ease-out)}.lift-card:hover{transform:translateY(-2px) scale(1.02);box-shadow:var(--shadow-lift);border-color:var(--color-border-hi)}.btn-gold-v2{position:relative;display:inline-flex;align-items:center;gap:6px;padding:9px 18px;border-radius:var(--radius-md);background:var(--grad-gold);border:1px solid var(--color-accent-hi);color:#0a0e0c;font-family:var(--font-sans);font-size:12px;font-weight:700;letter-spacing:.04em;cursor:pointer;overflow:hidden;transition:transform var(--duration-base) var(--ease-out),box-shadow var(--duration-base) var(--ease-out);box-shadow:0 4px 12px #d4af372e,inset 0 1px #ffffff4d}.btn-gold-v2:hover{transform:translateY(-1px) scale(1.03);box-shadow:var(--shadow-glow-strong),0 6px 18px #d4af3766}.btn-gold-v2:active{transform:translateY(0) scale(.99)}.btn-gold-v2:disabled{opacity:.4;cursor:not-allowed;transform:none}.btn-ghost-v2{position:relative;display:inline-flex;align-items:center;gap:6px;padding:8px 14px;border-radius:var(--radius-md);background:#14282099;border:1px solid var(--color-border-dim);color:var(--color-text);font-family:var(--font-sans);font-size:12px;font-weight:500;cursor:pointer;transition:all var(--duration-base) var(--ease-out)}.btn-ghost-v2:hover{background:#285040bf;border-color:var(--color-border);color:var(--color-text-bright);transform:translateY(-1px)}.btn-ghost-v2:active{transform:translateY(0)}.glass-v2{background:#0f2a1e8c;backdrop-filter:blur(20px) saturate(180%);-webkit-backdrop-filter:blur(20px) saturate(180%);border:1px solid var(--color-border);border-radius:var(--radius-lg);box-shadow:var(--shadow-glass);position:relative;overflow:hidden}.glass-v2:before{content:"";position:absolute;inset:0;background:var(--grad-card);pointer-events:none;border-radius:inherit}.glass-v2>*{position:relative;z-index:1}.glass-strong{background:#0f2a1ec7;backdrop-filter:blur(28px) saturate(200%);-webkit-backdrop-filter:blur(28px) saturate(200%);border:1px solid var(--color-border-hi);border-radius:var(--radius-xl);box-shadow:var(--shadow-glass-strong);position:relative;overflow:hidden}.seg-v2{display:inline-flex;align-items:center;padding:3px;background:#0f2a1e73;backdrop-filter:blur(16px) saturate(180%);-webkit-backdrop-filter:blur(16px) saturate(180%);border:1px solid var(--color-border);border-radius:var(--radius-md);box-shadow:inset 0 1px #ffffff0a}.seg-btn-v2{padding:5px 10px;font-size:11px;font-weight:500;color:var(--color-text-dim);background:transparent;border:none;border-radius:6px;cursor:pointer;transition:all var(--duration-base) var(--ease-out);white-space:nowrap}.seg-btn-v2:hover{color:var(--color-text);background:#ffffff0a}.seg-btn-v2.active{color:#0a0e0c;background:var(--grad-gold);font-weight:700;box-shadow:0 2px 6px #d4af374d}@keyframes numberFlow{0%{transform:translateY(-6px);opacity:0}to{transform:translateY(0);opacity:1}}.number-flow{animation:numberFlow var(--duration-slow) var(--ease-spring-soft);display:inline-block}@keyframes goldPulse{0%,to{box-shadow:0 0 #d4af378c,0 0 16px #d4af374d}50%{box-shadow:0 0 0 6px #d4af3700,0 0 24px #d4af378c}}.gold-pulse{animation:goldPulse 1.6s var(--ease-in-out) infinite}@keyframes successPulse{0%,to{box-shadow:0 0 #5bbf7a8c}50%{box-shadow:0 0 0 8px #5bbf7a00}}.success-pulse{animation:successPulse 1.4s var(--ease-in-out) infinite}@keyframes dangerPulse{0%,to{box-shadow:0 0 #c73e3a8c}50%{box-shadow:0 0 0 8px #c73e3a00}}.danger-pulse{animation:dangerPulse 1.2s var(--ease-in-out) infinite}@keyframes shimmer{0%{background-position:-200% 0}to{background-position:200% 0}}.shimmer{background:linear-gradient(90deg,transparent 0%,rgba(255,255,255,.12) 50%,transparent 100%);background-size:200% 100%;animation:shimmer 1.6s linear infinite}@keyframes fadeInScale{0%{opacity:0;transform:scale(.92) translateY(6px)}to{opacity:1;transform:scale(1) translateY(0)}}.fade-in-scale{animation:fadeInScale var(--duration-slow) var(--ease-out-expo) both}@keyframes slideInRight{0%{opacity:0;transform:translate(20px)}to{opacity:1;transform:translate(0)}}.slide-in-right{animation:slideInRight var(--duration-slow) var(--ease-out-expo) both}@keyframes slideInUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.slide-in-up{animation:slideInUp var(--duration-slow) var(--ease-out-expo) both}@keyframes slideInDown{0%{opacity:0;transform:translateY(-20px)}to{opacity:1;transform:translateY(0)}}.slide-in-down{animation:slideInDown var(--duration-slow) var(--ease-out-expo) both}@keyframes fadeInUp{0%{opacity:0;transform:translateY(8px)}to{opacity:1;transform:translateY(0)}}.fade-in-up{animation:fadeInUp var(--duration-base) var(--ease-out) both}@keyframes spin{to{transform:rotate(360deg)}}.spin{display:inline-block;animation:spin 1s linear infinite}button:focus-visible,[role=button]:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--color-accent);outline-offset:2px;box-shadow:0 0 0 4px #d4af372e}.no-scrollbar{scrollbar-width:none;-ms-overflow-style:none}.no-scrollbar::-webkit-scrollbar{display:none}.text-ellipsis{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.pointer-pass-through{pointer-events:none}.pointer-pass-through>*{pointer-events:auto}@keyframes groupHintPulse{0%,to{opacity:.7;transform:scale(1);filter:drop-shadow(0 0 4px rgba(212,175,55,.2))}50%{opacity:1;transform:scale(1.05);filter:drop-shadow(0 0 10px rgba(212,175,55,.6))}}@keyframes celebrateEnter{0%{opacity:0;transform:scale(.6) translateY(-20px);filter:blur(8px)}20%{opacity:1;transform:scale(1.15) translateY(0);filter:blur(0)}30%{transform:scale(.95)}40%{transform:scale(1)}85%{opacity:1;transform:scale(1) translateY(0)}to{opacity:0;transform:scale(1.05) translateY(-8px);filter:blur(4px)}}@keyframes comboBump{0%{transform:scale(1)}40%{transform:scale(1.32)}60%{transform:scale(.94)}80%{transform:scale(1.04)}to{transform:scale(1)}}.combo-bump{animation:comboBump .38s var(--ease-spring) both}@keyframes digitRoll{0%{transform:translateY(0)}to{transform:translateY(-100%)}}.digit-roll{display:inline-block;animation:digitRoll .6s var(--ease-out-expo) both}@keyframes photoFlash{0%{opacity:0}10%{opacity:1}to{opacity:0}}@keyframes countdownPulse{0%{transform:translate(-50%,-50%) scale(.4);opacity:0}20%{transform:translate(-50%,-50%) scale(1.1);opacity:1}80%{transform:translate(-50%,-50%) scale(1);opacity:1}to{transform:translate(-50%,-50%) scale(.9);opacity:0}}@keyframes foulShake{0%{transform:translate(-50%) translate(-8px) scale(.85);opacity:0}10%{transform:translate(-50%) translate(8px) scale(1.05);opacity:1}20%{transform:translate(-50%) translate(-6px) scale(1)}30%{transform:translate(-50%) translate(6px) scale(1)}40%{transform:translate(-50%) translate(-4px) scale(1)}50%{transform:translate(-50%) translate(4px) scale(1)}60%{transform:translate(-50%) translate(-2px) scale(1)}70%{transform:translate(-50%) translate(0) scale(1)}90%{transform:translate(-50%) translate(0) scale(1);opacity:1}to{transform:translate(-50%) translate(0) scale(.92);opacity:0}}@keyframes foulPulse{0%,to{transform:scale(1)}50%{transform:scale(1.12)}}@keyframes foulBlink{0%,to{opacity:1;transform:scale(1)}50%{opacity:.4;transform:scale(.8)}}@keyframes spinFlash{0%{box-shadow:inset 0 0 16px #0006}20%{box-shadow:inset 0 0 16px #0006,0 0 32px #e8c957cc}to{box-shadow:inset 0 0 16px #0006}}@keyframes toastExit{0%{transform:translateY(0) scale(1);opacity:1}to{transform:translateY(-12px) scale(.96);opacity:0}}.toast-exit{animation:toastExit .3s var(--ease-out) forwards}
