*{box-sizing:border-box}html{-webkit-text-size-adjust:100%;-webkit-tap-highlight-color:transparent}body{margin:0;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Oxygen,Ubuntu,Cantarell,Fira Sans,Droid Sans,Helvetica Neue,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#0a0a0a;color:#fff;overscroll-behavior:none}#root{min-height:100vh;min-height:100dvh}.menu{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;align-items:center;justify-content:center;padding:20px}.menu-content{text-align:center;max-width:500px}.menu-title{font-family:Georgia,serif;font-size:3.5rem;color:#c9a227;margin:0 0 10px;text-shadow:2px 2px 4px rgba(0,0,0,.5),0 0 30px rgba(201,162,39,.3)}.menu-subtitle{font-family:Georgia,serif;font-size:1.2rem;color:#ffffffb3;margin:0 0 40px;font-style:italic}.menu-description{background:#0000004d;border-radius:8px;padding:20px 30px;margin-bottom:40px}.menu-description p{color:#fffc;margin:10px 0;line-height:1.6}.start-button{font-family:Georgia,serif;font-size:1.4rem;font-weight:700;padding:18px 60px;background:linear-gradient(180deg,#c9a227,#a67c00);color:#1a1a1a;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:2px;box-shadow:0 4px #7d5a00,0 6px 20px #0006}.start-button:hover{transform:translateY(-3px);box-shadow:0 7px #7d5a00,0 10px 30px #00000080}.start-button:active{transform:translateY(2px);box-shadow:0 2px #7d5a00,0 4px 10px #0006}.plaque{width:90px;height:55px;border-radius:8px;background:linear-gradient(135deg,var(--plaque-color, #e74c3c) 0%,color-mix(in srgb,var(--plaque-color, #e74c3c) 70%,black) 100%);border:3px solid #fff;box-shadow:0 0 0 1px var(--plaque-color, #e74c3c),0 4px 8px #0006,inset 0 1px #ffffff4d,inset 0 -1px #0003;cursor:grab;transition:transform .15s ease,box-shadow .15s ease;-webkit-user-select:none;user-select:none;position:relative;touch-action:none;-webkit-touch-callout:none}.plaque:before{content:"";position:absolute;inset:4px;border:1px dashed rgba(255,255,255,.4);border-radius:4px;pointer-events:none}.plaque:hover{transform:translateY(-3px) scale(1.02);box-shadow:0 0 0 1px var(--plaque-color, #e74c3c),0 8px 16px #00000080,inset 0 1px #ffffff4d,inset 0 -1px #0003}.plaque:active{cursor:grabbing}.plaque.dragging{opacity:0;transition:none}.plaque.has-effect{animation:effectGlow 2s ease-in-out infinite}.plaque.locked{cursor:not-allowed;opacity:.85}.plaque.locked:hover{transform:none;box-shadow:0 0 0 1px var(--plaque-color, #e74c3c),0 4px 8px #0006,inset 0 1px #ffffff4d,inset 0 -1px #0003}@keyframes effectGlow{0%,to{box-shadow:0 0 0 1px var(--plaque-color, #e74c3c),0 4px 8px #0006,0 0 12px #ffffff4d,inset 0 1px #ffffff4d,inset 0 -1px #0003}50%{box-shadow:0 0 0 1px var(--plaque-color, #e74c3c),0 4px 8px #0006,0 0 20px #ffffff80,inset 0 1px #ffffff4d,inset 0 -1px #0003}}.plaque-inner{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:0 8px;box-sizing:border-box}.plaque-value{font-family:Georgia,serif;font-size:1.1rem;font-weight:700;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.6);line-height:1}.plaque-effects{font-size:.9rem;line-height:1;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.5))}.plaque.has-effect .plaque-value{font-size:1rem}.plaque-tooltip{position:absolute;bottom:calc(100% + 10px);left:50%;transform:translate(-50%);background:#14141ef2;border:1px solid #c9a227;border-radius:8px;padding:10px 12px;min-width:180px;max-width:250px;z-index:1000;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none;box-shadow:0 4px 12px #0006}.plaque-tooltip:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:6px solid transparent;border-top-color:#c9a227}.plaque:hover .plaque-tooltip{opacity:1;visibility:visible}.plaque.dragging .plaque-tooltip{opacity:0;visibility:hidden}.plaque-tooltip-item{display:flex;align-items:flex-start;gap:8px}.plaque-tooltip-item+.plaque-tooltip-item{margin-top:8px;padding-top:8px;border-top:1px solid rgba(201,162,39,.3)}.plaque-tooltip-icon{font-size:1.2rem;line-height:1;flex-shrink:0}.plaque-tooltip-text{display:flex;flex-direction:column;gap:2px}.plaque-tooltip-name{font-family:Georgia,serif;font-size:.85rem;font-weight:700;color:#c9a227}.plaque-tooltip-desc{font-size:.75rem;color:#ffffffd9;line-height:1.3}.plaque-compact{width:70px;height:42px}.plaque-compact .plaque-value{font-size:.9rem}.plaque-compact .plaque-effects{font-size:.75rem}.plaque-tiny{width:50px;height:30px;border-width:2px}.plaque-tiny:before{inset:2px}.plaque-tiny .plaque-inner{gap:3px;padding:0 4px}.plaque-tiny .plaque-value{font-size:.65rem}.plaque-tiny .plaque-effects{font-size:.55rem}.tooltip-wrapper{position:relative;display:inline-flex}.tooltip-content{position:absolute;background:#14141ef2;border:1px solid #c9a227;border-radius:6px;padding:8px 12px;min-width:120px;max-width:220px;z-index:1000;opacity:0;visibility:hidden;transition:opacity .15s ease,visibility .15s ease;pointer-events:none;box-shadow:0 4px 12px #0006;font-family:Georgia,serif;font-size:.8rem;color:#fff;text-align:center;line-height:1.4;white-space:normal}.tooltip-content.visible{opacity:1;visibility:visible}.tooltip-top .tooltip-content{bottom:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-top .tooltip-content:after{content:"";position:absolute;top:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-top-color:#c9a227}.tooltip-bottom .tooltip-content{top:calc(100% + 8px);left:50%;transform:translate(-50%)}.tooltip-bottom .tooltip-content:after{content:"";position:absolute;bottom:100%;left:50%;transform:translate(-50%);border:5px solid transparent;border-bottom-color:#c9a227}.tooltip-left .tooltip-content{right:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-left .tooltip-content:after{content:"";position:absolute;left:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-left-color:#c9a227}.tooltip-right .tooltip-content{left:calc(100% + 8px);top:50%;transform:translateY(-50%)}.tooltip-right .tooltip-content:after{content:"";position:absolute;right:100%;top:50%;transform:translateY(-50%);border:5px solid transparent;border-right-color:#c9a227}.bet-area{background:#00500099;border:3px solid #c9a227;border-radius:8px;padding:10px 15px;min-width:140px;min-height:90px;display:flex;flex-direction:column;align-items:center;gap:6px;transition:all .2s ease;position:relative}.bet-area.compact{min-width:70px;min-height:80px;padding:8px 6px;gap:4px}.bet-area.compact .bet-area-label{font-size:1.5rem;letter-spacing:0}.bet-area.compact .bet-area-plaques{gap:4px}.bet-area.compact .bet-area-plaques{gap:6px}.bet-area.compact .bet-total{font-size:1rem}.bet-area.tiny{min-width:60px;min-height:50px;padding:6px 4px;gap:2px;border-width:2px}.bet-area.tiny .bet-area-label{font-size:.7rem;letter-spacing:0}.bet-area.tiny .bet-area-sublabel{font-size:.9rem;margin-top:-4px}.bet-area.tiny .bet-area-odds{font-size:.6rem;margin-top:-2px}.bet-area.tiny .bet-area-plaques{gap:3px}.bet-area.tiny .bet-total{font-size:.7rem}.bet-area.drag-over{background:#007800b3;border-color:#fff;box-shadow:0 0 20px #c9a22780}.bet-area.locked{opacity:.6}.bet-area.is-point{border-color:#f1c40f;box-shadow:0 0 15px #f1c40f80}.bet-area.is-point .bet-area-label{color:#f1c40f}.bet-area-label{font-family:Georgia,serif;font-size:1rem;font-weight:700;color:#fff;text-transform:uppercase;letter-spacing:1px;text-shadow:1px 1px 3px rgba(0,0,0,.5);line-height:1}.bet-area-sublabel{font-family:Georgia,serif;font-size:1rem;font-weight:700;color:#c9a227;line-height:1}.bet-area-odds{font-family:Georgia,serif;font-size:.75rem;color:#ffffffb3;margin-top:-6px}.bet-area-plaques{display:flex;flex-wrap:wrap;gap:10px;justify-content:center;flex:1;align-items:center}.placed-plaque{cursor:pointer;transition:transform .15s ease}.bet-area:not(.locked) .placed-plaque:hover{transform:scale(1.1)}.bet-total{font-family:Georgia,serif;font-size:1.1rem;font-weight:700;color:#c9a227;text-shadow:1px 1px 2px rgba(0,0,0,.5)}.bet-hint{color:#fff6;font-style:italic;font-size:.9rem}.dice{display:flex;gap:20px;justify-content:center;padding:20px}.die{width:60px;height:60px;background:#fff;border-radius:8px;position:relative;box-shadow:0 4px 8px #0000004d,inset 0 -2px 4px #0000001a}.dot{width:12px;height:12px;background:#1a1a1a;border-radius:50%;position:absolute;transform:translate(-50%,-50%)}.place-bets-puck{width:60px;height:60px;border-radius:50%;font-family:Georgia,serif;font-size:1rem;font-weight:700;letter-spacing:1px;cursor:pointer;transition:all .2s ease;border:3px solid;text-transform:uppercase;box-shadow:0 4px 8px #0000004d}.place-bets-puck:hover{transform:scale(1.05)}.place-bets-puck:active{transform:scale(.95)}.place-bets-puck.off{background:#1a1a1a;color:#fff;border-color:#444}.place-bets-puck.on{background:#fff;color:#1a1a1a;border-color:#ccc}.prop-bets{display:flex;flex-direction:column;align-items:center;gap:8px;padding:10px;background:#0003;border-radius:8px;border:2px solid rgba(201,162,39,.3)}.prop-bets-label{font-family:Georgia,serif;font-size:.8rem;color:#c9a227;text-transform:uppercase;letter-spacing:2px}.prop-bets-list{display:grid;grid-template-columns:repeat(2,1fr);gap:6px}.game-board{flex:1;background:linear-gradient(135deg,#1a472a,#0d2818);padding:12px 20px;display:flex;flex-direction:column;align-items:center;gap:8px;overflow:hidden;position:relative}.board-header{display:flex;justify-content:space-between;align-items:flex-start;width:100%;max-width:700px;gap:20px}.score-info{display:flex;flex-direction:column;gap:4px}.bankroll{font-family:Georgia,serif;font-size:1.4rem;color:#c9a227;font-weight:700}.bankroll .target{font-size:1rem;color:#c9a22799}.progress-bar{width:150px;height:8px;background:#0000004d;border-radius:4px;overflow:hidden}.progress-fill{height:100%;background:linear-gradient(90deg,#c9a227,#f1c40f);border-radius:4px;transition:width .3s ease}.game-stats{display:flex;align-items:center;gap:15px}.turns-remaining,.reloads-remaining,.vault-count{display:flex;align-items:center;gap:4px;font-family:Georgia,serif;font-size:1.1rem;color:#fff;background:#0000004d;padding:6px 12px;border-radius:20px}.vault-count{color:#9b59b6;background:#9b59b633;border:1px solid rgba(155,89,182,.4)}.active-item{display:flex;align-items:center;gap:6px;font-family:Georgia,serif;font-size:.9rem;color:#c9a227;background:#c9a22726;border:1px solid rgba(201,162,39,.3);padding:6px 12px;border-radius:20px;cursor:help}.stat-icon{font-size:.9rem}.turns-remaining .warning{color:#e74c3c;font-weight:700;animation:pulse 1s infinite}.point-marker{background:#f1c40f;color:#1a1a1a;padding:6px 16px;border-radius:20px;font-family:Georgia,serif;font-weight:700;font-size:1rem;animation:pulse 1.5s infinite}@keyframes pulse{0%,to{transform:scale(1)}50%{transform:scale(1.05)}}.game-over-overlay{position:absolute;inset:0;background:#000000d9;display:flex;align-items:center;justify-content:center;z-index:100}.game-over-content{text-align:center;padding:40px;background:linear-gradient(135deg,#1a1a2e,#16213e);border-radius:16px;border:3px solid #c9a227}.game-over-overlay.won .game-over-content{border-color:#2ecc71}.game-over-overlay.lost .game-over-content{border-color:#e74c3c}.game-over-content h2{font-family:Georgia,serif;font-size:2.5rem;margin:0 0 15px;color:#fff}.game-over-content p{font-size:1.2rem;color:#fffc;margin:0 0 25px}.play-again-button{font-family:Georgia,serif;font-size:1.2rem;font-weight:700;padding:15px 40px;background:linear-gradient(180deg,#c9a227,#a67c00);color:#1a1a1a;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px;box-shadow:0 4px #7d5a00,0 6px 10px #0000004d}.play-again-button:hover{transform:translateY(-2px);box-shadow:0 6px #7d5a00,0 8px 15px #0000004d}.message-area{background:#0000004d;padding:8px 20px;border-radius:6px;color:#fff;font-size:.9rem;text-align:center;max-width:600px}.main-layout{display:flex;gap:20px;align-items:center;justify-content:center;flex:1}.main-board{display:flex;flex-direction:column;align-items:center;gap:8px}.numbers-area{display:flex;flex-direction:column;align-items:center;gap:4px}.numbers-header{display:flex;align-items:center;gap:15px}.numbers-label{font-family:Georgia,serif;font-size:.85rem;color:#c9a227;text-transform:uppercase;letter-spacing:2px}.numbers-row{display:flex;gap:8px;flex-wrap:wrap;justify-content:center}.number-stack{display:flex;flex-direction:column;gap:4px;align-items:center}.come-point-indicator,.dont-come-point-indicator{display:flex;gap:4px}.field-bet-area{display:flex;justify-content:center;width:100%;max-width:500px}.field-bet-area .bet-area{width:100%;min-height:60px;background:#1e503299;border:2px dashed rgba(201,162,39,.4)}.line-bets-area{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;align-items:flex-start;width:100%;max-width:800px}.pass-line-group,.dont-pass-group{display:flex;flex-direction:column;gap:4px;align-items:center}.controls{display:flex;gap:10px;margin-top:4px;flex-wrap:wrap;justify-content:center}.roll-button,.new-round-button,.reload-button{font-family:Georgia,serif;font-size:1rem;font-weight:700;padding:10px 24px;border:none;border-radius:8px;cursor:pointer;transition:all .2s ease;text-transform:uppercase;letter-spacing:1px}.roll-button{background:linear-gradient(180deg,#e74c3c,#c0392b);color:#fff;box-shadow:0 4px #922b21,0 6px 10px #0000004d}.roll-button:hover{transform:translateY(-2px);box-shadow:0 6px #922b21,0 8px 15px #0000004d}.roll-button:active{transform:translateY(2px);box-shadow:0 2px #922b21,0 3px 5px #0000004d}.new-round-button{background:linear-gradient(180deg,#27ae60,#1e8449);color:#fff;box-shadow:0 4px #145a32,0 6px 10px #0000004d}.new-round-button:hover{transform:translateY(-2px);box-shadow:0 6px #145a32,0 8px 15px #0000004d}.new-round-button:active{transform:translateY(2px);box-shadow:0 2px #145a32,0 3px 5px #0000004d}.reload-button{background:linear-gradient(180deg,#3498db,#2980b9);color:#fff;box-shadow:0 4px #1f6dad,0 6px 10px #0000004d}.reload-button:hover{transform:translateY(-2px);box-shadow:0 6px #1f6dad,0 8px 15px #0000004d}.reload-button:active{transform:translateY(2px);box-shadow:0 2px #1f6dad,0 3px 5px #0000004d}@media(max-width:700px){.game-board{padding:8px 10px;gap:6px;overflow-y:auto;-webkit-overflow-scrolling:touch}.board-header{flex-wrap:wrap;gap:8px;justify-content:center}.game-stats{gap:8px;flex-wrap:wrap;justify-content:center}.turns-remaining,.reloads-remaining,.vault-count,.active-item{font-size:.9rem;padding:4px 10px}.bankroll{font-size:1.2rem;text-align:center}.main-layout{flex-direction:column;gap:10px}.numbers-row{gap:4px}.line-bets-area,.controls{gap:8px}.roll-button,.new-round-button,.reload-button{font-size:.9rem;padding:8px 16px}.message-area{font-size:.8rem;padding:6px 12px}}.hand-row{background:linear-gradient(180deg,#1a472a,#0d2818);border-top:4px solid #c9a227;padding:12px 20px;display:flex;align-items:center;justify-content:center;gap:20px;flex-shrink:0}.deck-pile,.discard-pile{display:flex;flex-direction:column;align-items:center;justify-content:center;min-width:70px;padding:8px 12px;background:#0000004d;border-radius:8px;border:2px solid rgba(201,162,39,.3);cursor:default;transition:border-color .2s ease}.deck-pile:hover,.discard-pile:hover{border-color:#c9a22799}.pile-icon{font-size:1.5rem;line-height:1}.pile-count{font-size:1.25rem;font-weight:700;color:#fff;margin-top:4px}.pile-label{font-size:.7rem;color:#c9a227;text-transform:uppercase;letter-spacing:1px;margin-top:2px}.hand{flex:1;max-width:600px;display:flex;flex-direction:column;align-items:center;gap:8px;padding:8px 16px;background:#0003;border-radius:8px;transition:background .2s ease}.hand.drop-target{background:#1a5a3280;box-shadow:0 0 10px #ffffff4d}.hand-label{font-family:Georgia,serif;font-size:.9rem;color:#c9a227;text-transform:uppercase;letter-spacing:2px}.hand-plaques{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;min-height:55px}@media(max-width:600px){.hand-row{padding:10px 12px;gap:10px}.hand{max-width:none;width:100%;overflow-x:auto;-webkit-overflow-scrolling:touch}.hand-plaques{flex-wrap:nowrap;justify-content:flex-start;padding-bottom:4px}.deck-pile,.discard-pile{min-width:55px;padding:6px 8px}.pile-icon{font-size:1.2rem}.pile-count{font-size:1rem}}.hand-empty{color:#fff6;font-style:italic;display:flex;align-items:center}.drag-layer{position:fixed;pointer-events:none;z-index:10000;left:0;top:0;width:100%;height:100%}.drag-preview{position:absolute;top:0;left:0;width:90px;height:55px;margin-left:-45px;margin-top:-27px;border-radius:8px;background:linear-gradient(135deg,var(--plaque-color, #e74c3c) 0%,color-mix(in srgb,var(--plaque-color, #e74c3c) 70%,black) 100%);border:3px solid #fff;box-shadow:0 0 0 1px var(--plaque-color, #e74c3c),0 8px 20px #00000080;cursor:grabbing}.drag-preview:before{content:"";position:absolute;inset:4px;border:1px dashed rgba(255,255,255,.4);border-radius:4px}.drag-preview.has-effect{box-shadow:0 0 0 1px var(--plaque-color, #e74c3c),0 8px 20px #00000080,0 0 15px #fff6}.drag-preview-inner{width:100%;height:100%;display:flex;flex-direction:row;align-items:center;justify-content:center;gap:6px;padding:0 8px;box-sizing:border-box}.drag-preview-value{font-family:Georgia,serif;font-size:1.1rem;font-weight:700;color:#fff;text-shadow:1px 1px 2px rgba(0,0,0,.6)}.drag-preview-effects{font-size:.9rem;filter:drop-shadow(1px 1px 1px rgba(0,0,0,.5))}.drag-preview.returning{transform:translate(var(--from-x),var(--from-y));animation:returnToOrigin .2s ease-out forwards}@keyframes returnToOrigin{0%{transform:translate(var(--from-x),var(--from-y));opacity:1}to{transform:translate(var(--return-x),var(--return-y));opacity:0}}.item-select{min-height:100vh;background:linear-gradient(135deg,#1a1a2e,#16213e,#0f3460);display:flex;flex-direction:column;align-items:center;justify-content:center;padding:40px 20px;gap:40px}.item-select-header{text-align:center}.item-select-header h2{font-family:Georgia,serif;font-size:2.5rem;color:#c9a227;margin:0 0 10px;text-shadow:2px 2px 4px rgba(0,0,0,.5)}.item-select-header p{font-size:1.1rem;color:#ffffffb3;margin:0}.item-grid{display:flex;gap:20px;flex-wrap:wrap;justify-content:center;max-width:900px}.item-card{background:linear-gradient(135deg,#ffffff1a,#ffffff0d);border:2px solid rgba(201,162,39,.3);border-radius:16px;padding:30px 25px;width:250px;cursor:pointer;transition:all .3s ease;display:flex;flex-direction:column;align-items:center;gap:15px;text-align:center}.item-card:hover{background:linear-gradient(135deg,#ffffff26,#ffffff14);border-color:#c9a227;transform:translateY(-5px);box-shadow:0 10px 30px #0000004d,0 0 20px #c9a22733}.item-card:active{transform:translateY(-2px)}.item-icon{font-size:3rem;filter:drop-shadow(2px 2px 4px rgba(0,0,0,.3))}.item-name{font-family:Georgia,serif;font-size:1.4rem;font-weight:700;color:#fff}.item-description{font-size:.95rem;color:#fffc;line-height:1.4}.item-effect{font-size:.85rem;color:#c9a227;font-style:italic;padding-top:10px;border-top:1px solid rgba(255,255,255,.1);width:100%}.game-page{height:100vh;height:100dvh;display:flex;flex-direction:column;overflow:hidden}
