@charset "UTF-8";*,*:before,*:after{margin:0;padding:0;box-sizing:border-box}:root{--bg-app: #121214;--bg-surface: #1e1e24;--brand-primary: #ffb703;--brand-secondary: #e63946;--text-primary: #e0e1dd;--text-muted: #8d99ae;--semantic-success: #52b788;--semantic-error: #e57373;--border-subtle: rgba(255, 255, 255, .08);--border-medium: rgba(255, 255, 255, .15);--border-strong: rgba(255, 255, 255, .22);--bg-hover: rgba(255, 255, 255, .06);--bg-active: rgba(230, 57, 70, .1);--overlay-bg: rgba(0, 0, 0, .65);--shadow-sm: 0 1px 4px rgba(0, 0, 0, .25);--shadow-md: 0 4px 16px rgba(0, 0, 0, .4);--shadow-lg: 0 8px 32px rgba(0, 0, 0, .55);--shadow-brand: 0 0 12px rgba(230, 57, 70, .4);--shadow-gold: 0 0 14px rgba(255, 183, 3, .35);--shadow-green: 0 0 12px rgba(82, 183, 136, .35);--shadow-error: 0 0 15px rgba(229, 115, 115, .4);--radius-sm: 6px;--radius-md: 12px;--radius-lg: 16px;--radius-pill: 999px;--transition-fast: .15s ease;--transition-smooth: .25s ease-in-out;--transition-bounce: .3s cubic-bezier(.4, 0, .2, 1);--font-xs: .75rem;--font-sm: .85rem;--font-base: .95rem;--font-md: 1.1rem;--font-lg: 1.35rem;--font-xl: 1.5rem;--font-2xl: 2rem;--saki-green: #52b788;--saki-yellow: #ffb703;--saki-red: #e57373}html,body{height:100%;width:100%;overflow:hidden;font-family:Segoe UI,system-ui,-apple-system,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background-color:var(--bg-app);color:var(--text-primary);line-height:1.5}body{margin:0;padding:0}.no-select{user-select:none;-webkit-user-select:none}::-webkit-scrollbar{width:6px}::-webkit-scrollbar-track{background:transparent}::-webkit-scrollbar-thumb{background:#555;border-radius:3px}::-webkit-scrollbar-thumb:hover{background:#888}.interactive{transition:transform var(--transition-fast),box-shadow var(--transition-fast),border-color var(--transition-fast),background-color var(--transition-smooth)}.hover-lift:hover{transform:translateY(-2px);box-shadow:var(--shadow-md)}.hover-lift:active{transform:scale(.97);box-shadow:var(--shadow-sm)}:focus-visible{outline:2px solid var(--brand-primary);outline-offset:2px}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@keyframes fadeOut{0%{opacity:1}to{opacity:0}}@keyframes scaleIn{0%{opacity:0;transform:scale(.92)}to{opacity:1;transform:scale(1)}}@keyframes scaleOut{0%{opacity:1;transform:scale(1)}to{opacity:0;transform:scale(.92)}}@keyframes slideInUp{0%{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}@keyframes slideOutDown{0%{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(16px)}}@keyframes slideInRight{0%{opacity:0;transform:translate(24px)}to{opacity:1;transform:translate(0)}}@keyframes slideOutRight{0%{opacity:1;transform:translate(0)}to{opacity:0;transform:translate(24px)}}@keyframes pulseGlow{0%,to{box-shadow:var(--shadow-brand)}50%{box-shadow:0 0 20px #e63946a6}}@keyframes scoreFlashGreen{0%{color:var(--semantic-success)}to{color:var(--text-primary)}}@keyframes scoreFlashRed{0%{color:var(--semantic-error)}to{color:var(--text-primary)}}@keyframes diceShake{0%,to{transform:rotate(0)}20%{transform:rotate(-8deg)}40%{transform:rotate(8deg)}60%{transform:rotate(-5deg)}80%{transform:rotate(5deg)}}@keyframes overlayFadeIn{0%{background:transparent}to{background:var(--overlay-bg)}}
