:root{--font-size-xs: .778rem;--font-size-sm: .889rem;--font-size-base: 1rem;--font-size-lg: 1.222rem;--font-size-xl: 1.556rem;--font-size-2xl: 2rem;--font-size-3xl: 2.444rem;--font-size-4xl: 3.556rem;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--line-height-tight: 1.2;--line-height-normal: 1.5;--line-height-relaxed: 1.75;--space-0: 0;--space-1: .25rem;--space-2: .5rem;--space-3: .75rem;--space-4: 1rem;--space-5: 1.5rem;--space-6: 2rem;--space-7: 3rem;--space-8: 4rem;--radius-sm: .375rem;--radius-md: .5rem;--radius-lg: .75rem;--radius-xl: 1rem;--radius-2xl: 1.5rem;--radius-full: 9999px;--color-primary: #22c55e;--color-primary-hover: #16a34a;--color-primary-light: rgba(34, 197, 94, .15);--color-primary-glow: rgba(34, 197, 94, .4);--color-secondary: #3b82f6;--color-secondary-hover: #2563eb;--color-secondary-light: rgba(59, 130, 246, .15);--color-secondary-glow: rgba(59, 130, 246, .4);--color-accent: #8b5cf6;--color-accent-hover: #7c3aed;--color-accent-light: rgba(139, 92, 246, .15);--color-accent-glow: rgba(139, 92, 246, .4);--color-warning: #f59e0b;--color-warning-hover: #d97706;--color-warning-light: rgba(245, 158, 11, .15);--color-danger: #ef4444;--color-danger-hover: #dc2626;--color-danger-light: rgba(239, 68, 68, .15);--color-background: #1a1a2e;--color-background-alt: #16213e;--color-surface: rgba(255, 255, 255, .05);--color-surface-hover: rgba(255, 255, 255, .08);--color-surface-active: rgba(255, 255, 255, .12);--color-surface-raised: rgba(255, 255, 255, .1);--color-text-primary: #ffffff;--color-text-secondary: rgba(255, 255, 255, .7);--color-text-tertiary: rgba(255, 255, 255, .5);--color-text-muted: rgba(255, 255, 255, .4);--color-border: rgba(255, 255, 255, .1);--color-border-strong: rgba(255, 255, 255, .2);--shadow-sm: 0 1px 2px rgba(0, 0, 0, .2);--shadow-md: 0 4px 8px rgba(0, 0, 0, .25);--shadow-lg: 0 8px 24px rgba(0, 0, 0, .3);--shadow-glow-primary: 0 0 20px var(--color-primary-glow);--shadow-glow-secondary: 0 0 20px var(--color-secondary-glow);--shadow-glow-accent: 0 0 20px var(--color-accent-glow);--transition-fast: .15s ease;--transition-base: .2s ease;--transition-slow: .3s ease;--transition-spring: .4s cubic-bezier(.34, 1.56, .64, 1);--touch-target-min: 2.75rem;--touch-target: 3rem;--touch-target-lg: 3.5rem;--z-base: 0;--z-raised: 10;--z-dropdown: 100;--z-sticky: 200;--z-overlay: 300;--z-modal: 400;--z-toast: 500;--die-size: 2.5rem;--die-size-lg: 4rem;--header-height: 3.5rem;--sidebar-width: 320px;--max-content-width: 1200px}@media(min-width:360px){:root{--die-size: 2.75rem}}@media(min-height:700px){:root{--die-size: 3.25rem;--header-height: 4rem}}@media(min-width:600px){:root{--die-size: 4rem;--space-6: 2.5rem;--space-7: 4rem}}@media(min-width:1024px){:root{--die-size: 4.5rem;--font-size-base: 1.111rem}}@media(min-width:1440px){:root{--die-size: 5rem}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{font-size:18px;-webkit-text-size-adjust:100%;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}@media(min-width:1024px){html{font-size:18px}}body{font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica Neue,Arial,sans-serif;font-size:var(--font-size-base);line-height:var(--line-height-normal);color:var(--color-text-primary);background:linear-gradient(135deg,var(--color-background) 0%,var(--color-background-alt) 100%);min-height:100vh;min-height:100dvh}#root{min-height:100vh;min-height:100dvh;display:flex;flex-direction:column}:focus-visible{outline:3px solid var(--color-secondary);outline-offset:2px}:focus:not(:focus-visible){outline:none}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.text-3xl{font-size:var(--font-size-3xl)}.text-4xl{font-size:var(--font-size-4xl)}.font-normal{font-weight:var(--font-weight-normal)}.font-medium{font-weight:var(--font-weight-medium)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-bold{font-weight:var(--font-weight-bold)}.text-primary{color:var(--color-text-primary)}.text-secondary{color:var(--color-text-secondary)}.text-tertiary{color:var(--color-text-tertiary)}.text-muted{color:var(--color-text-muted)}.die{width:var(--die-size);height:var(--die-size);background:var(--color-text-primary);border:none;border-radius:var(--radius-lg);cursor:pointer;display:grid;place-items:center;position:relative;box-shadow:var(--shadow-md);transition:transform var(--transition-fast),box-shadow var(--transition-fast);-webkit-tap-highlight-color:transparent;touch-action:manipulation}.die:hover:not(.disabled){transform:scale(1.05)}.die:active:not(.disabled){transform:scale(.95)}.die.selected{background:var(--color-primary);box-shadow:var(--shadow-glow-primary)}.die.disabled{cursor:default;opacity:.5}.die.dimmed{background:#ffffff26;border:2px dashed rgba(255,255,255,.3);box-shadow:none}.die.scoring-hint{animation:pulse-hint 1.5s ease-in-out infinite}@keyframes pulse-hint{0%,to{box-shadow:var(--shadow-md)}50%{box-shadow:0 0 16px var(--color-warning)}}.die-face{width:calc(var(--die-size) - .75rem);height:calc(var(--die-size) - .75rem);position:relative}.pip{position:absolute;width:calc(var(--die-size) * .18);height:calc(var(--die-size) * .18);background:var(--color-background);border-radius:50%}.die.selected .pip,.die.dimmed .pip{background:var(--color-background)}.die.dimmed .pip{background:#fff6}.pip.center{top:50%;left:50%;transform:translate(-50%,-50%)}.pip.top-left{top:10%;left:10%}.pip.top-right{top:10%;right:10%}.pip.middle-left{top:50%;left:10%;transform:translateY(-50%)}.pip.middle-right{top:50%;right:10%;transform:translateY(-50%)}.pip.bottom-left{bottom:10%;left:10%}.pip.bottom-right{bottom:10%;right:10%}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--space-2);min-height:var(--touch-target);padding:var(--space-3) var(--space-5);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);line-height:1;text-decoration:none;border:none;border-radius:var(--radius-xl);cursor:pointer;transition:transform var(--transition-fast),box-shadow var(--transition-fast),background var(--transition-fast);-webkit-tap-highlight-color:transparent;touch-action:manipulation;-webkit-user-select:none;user-select:none}.btn:hover:not(:disabled){transform:scale(1.02)}.btn:active:not(:disabled){transform:scale(.98)}.btn:disabled{opacity:.5;cursor:not-allowed}.btn-primary{background:linear-gradient(135deg,var(--color-primary),var(--color-primary-hover));color:var(--color-background);box-shadow:var(--shadow-md),var(--shadow-glow-primary)}.btn-secondary{background:linear-gradient(135deg,var(--color-secondary),var(--color-secondary-hover));color:var(--color-text-primary);box-shadow:var(--shadow-md),var(--shadow-glow-secondary)}.btn-accent{background:linear-gradient(135deg,var(--color-accent),var(--color-accent-hover));color:var(--color-text-primary);box-shadow:var(--shadow-md),var(--shadow-glow-accent)}.btn-warning{background:linear-gradient(135deg,var(--color-warning),var(--color-warning-hover));color:var(--color-background);box-shadow:var(--shadow-md)}.btn-ghost{background:var(--color-surface);color:var(--color-text-primary);box-shadow:none}.btn-ghost:hover:not(:disabled){background:var(--color-surface-hover)}.btn-sm{min-height:var(--touch-target-min);padding:var(--space-2) var(--space-4);font-size:var(--font-size-sm)}.btn-lg{min-height:var(--touch-target-lg);padding:var(--space-4) var(--space-6);font-size:var(--font-size-lg)}.btn-xl{min-height:4rem;padding:var(--space-5) var(--space-7);font-size:var(--font-size-xl);border-radius:var(--radius-2xl)}select{appearance:none;-webkit-appearance:none;-moz-appearance:none;background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 12 12'%3E%3Cpath fill='%23ffffff' fill-opacity='0.7' d='M6 8L1 3h10z'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 12px center;padding-right:36px!important}select::-ms-expand{display:none}.card{background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-xl);padding:var(--space-4)}.card-raised{background:var(--color-surface-raised);box-shadow:var(--shadow-md)}.card-highlight{border-color:var(--color-primary);background:var(--color-primary-light)}.card-accent{border-color:var(--color-accent);background:var(--color-accent-light)}.container{width:100%;max-width:var(--max-content-width);margin:0 auto;padding:0 var(--space-4)}@media(min-width:600px){.container{padding:0 var(--space-5)}}@media(min-width:1024px){.container{padding:0 var(--space-6)}}.hide-mobile{display:none}@media(min-width:480px){.hide-mobile{display:inline}}.flex{display:flex}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-end{justify-content:flex-end}.gap-1{gap:var(--space-1)}.gap-2{gap:var(--space-2)}.gap-3{gap:var(--space-3)}.gap-4{gap:var(--space-4)}.gap-5{gap:var(--space-5)}.gap-6{gap:var(--space-6)}@keyframes shake{0%,to{transform:translate(0)}25%{transform:translate(-4px) rotate(-2deg)}75%{transform:translate(4px) rotate(2deg)}}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}@keyframes spin{0%{transform:rotate(0)}to{transform:rotate(360deg)}}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}@keyframes celebrate{0%{transform:scale(1) rotate(0)}25%{transform:scale(1.1) rotate(-5deg)}50%{transform:scale(1.05) rotate(5deg)}75%{transform:scale(1.1) rotate(-3deg)}to{transform:scale(1) rotate(0)}}.animate-shake{animation:shake .3s ease-in-out}.animate-bounce{animation:bounce .5s ease-in-out}.animate-spin{animation:spin 1s linear infinite}.animate-pulse{animation:pulse 2s ease-in-out infinite}.animate-celebrate{animation:celebrate .6s ease-in-out}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}@media(prefers-reduced-motion:reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}}@media(prefers-contrast:high){:root{--color-border: rgba(255, 255, 255, .5);--color-text-secondary: rgba(255, 255, 255, .9);--color-text-tertiary: rgba(255, 255, 255, .8)}}
