:root{--color-bg: #08070d;--color-surface-1: #0f0e18;--color-surface-2: #16152a;--color-surface-3: #1f2133;--color-border: #1a1930;--color-border-active: #2a2850;--color-gold: #e8c547;--color-gold-dim: #8a7430;--color-gold-glow: rgba(232, 197, 71, .15);--color-win: #3dd68c;--color-win-glow: rgba(61, 214, 140, .15);--color-lose: #e8475c;--color-lose-glow: rgba(232, 71, 92, .15);--color-bonus: #9b6dff;--color-bonus-glow: rgba(155, 109, 255, .15);--color-info: #5b8def;--color-scatter: #5ce0d8;--color-text: #ddd8e8;--color-text-dim: #55516a;--color-text-muted: #3a3750;--font-display: "Cinzel Decorative", serif;--font-mono: "JetBrains Mono", monospace;--font-body: "Crimson Pro", serif;--text-xs: .5rem;--text-sm: .625rem;--text-md: .75rem;--text-lg: .875rem;--text-xl: 1.125rem;--text-2xl: 1.5rem;--text-3xl: 2rem;--space-1: 4px;--space-2: 8px;--space-3: 12px;--space-4: 16px;--space-5: 20px;--space-6: 24px;--space-8: 32px;--radius-sm: 6px;--radius-md: 10px;--radius-lg: 14px;--radius-xl: 20px;--radius-full: 50px;--shadow-card: 0 2px 8px rgba(0,0,0,.3);--shadow-glow-gold: 0 0 16px var(--color-gold-glow);--shadow-glow-win: 0 0 16px var(--color-win-glow);--shadow-glow-lose: 0 0 16px var(--color-lose-glow);--shadow-glow-bonus: 0 0 16px var(--color-bonus-glow);--ease-out: cubic-bezier(.22, .68, .36, 1);--ease-bounce: cubic-bezier(.22, .68, .36, 1.2);--ease-dramatic: cubic-bezier(.4, 0, .2, 1);--duration-fast: .15s;--duration-med: .3s;--duration-slow: .6s;--duration-spin: 1.2s;--cell-gap: 6px;--cell-radius: 10px;--card-aspect: 11 / 16;--z-base: 1;--z-overlay: 10;--z-narrative: 20;--z-bigwin: 30;--z-particles: 40;--z-modal: 50;--safe-top: env(safe-area-inset-top, 0px);--safe-bottom: env(safe-area-inset-bottom, 0px)}@keyframes pulse-gold{0%,to{box-shadow:0 0 8px #e8c54733}50%{box-shadow:0 0 24px #e8c54780}}@keyframes pulse-win{0%,to{box-shadow:0 0 8px var(--color-win-glow)}50%{box-shadow:0 0 24px #3dd68c80}}@keyframes float-up{0%{transform:translateY(0) scale(1);opacity:.6}to{transform:translateY(-100vh) scale(.5);opacity:0}}@keyframes spin-blur{0%{transform:translateY(0);filter:blur(0)}50%{filter:blur(4px)}to{transform:translateY(-20px);filter:blur(0)}}@keyframes count-up-pulse{0%{transform:scale(1)}50%{transform:scale(1.15)}to{transform:scale(1)}}@keyframes screen-shake{0%,to{transform:translate(0)}10%{transform:translate(-3px,-2px)}20%{transform:translate(3px,2px)}30%{transform:translate(-2px,3px)}40%{transform:translate(2px,-3px)}50%{transform:translate(-3px,1px)}60%{transform:translate(3px,-1px)}70%{transform:translate(-1px,3px)}80%{transform:translate(1px,-2px)}90%{transform:translate(-2px,1px)}}@keyframes jar-fill{0%{transform:scale(1)}50%{transform:scale(1.2)}to{transform:scale(1)}}@keyframes particle-rise{0%{transform:translateY(0) rotate(0);opacity:1}to{transform:translateY(-80vh) rotate(720deg);opacity:0}}@keyframes card-glow{0%,to{box-shadow:0 0 8px #9b6dff33}50%{box-shadow:0 0 32px #9b6dff99}}.animate-pulse-gold{animation:pulse-gold .8s ease-in-out 2}.animate-shake{animation:screen-shake .5s ease-in-out}.animate-jar-fill{animation:jar-fill .5s var(--ease-bounce)}.text-display{font-family:var(--font-display);font-weight:700}.text-display-bold{font-family:var(--font-display);font-weight:900}.text-mono{font-family:var(--font-mono)}.text-body{font-family:var(--font-body)}.text-body-italic{font-family:var(--font-body);font-style:italic}.text-gold{color:var(--color-gold)}.text-win{color:var(--color-win)}.text-lose{color:var(--color-lose)}.text-bonus{color:var(--color-bonus)}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{-webkit-tap-highlight-color:transparent}body{font-family:var(--font-body);font-size:var(--text-md);color:var(--color-text);background:var(--color-bg);min-height:100vh;min-height:100dvh;overflow-x:hidden}body:before{content:"";position:fixed;inset:0;background:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.08'/%3E%3C/svg%3E");pointer-events:none;z-index:999;opacity:.4}#root{min-height:100vh;min-height:100dvh;position:relative;z-index:1}::-webkit-scrollbar{width:0;height:0}button{font-family:inherit;touch-action:manipulation}img{user-select:none;-webkit-user-drag:none}
