@import"https://fonts.googleapis.com/css2?family=Playfair+Display:wght@700&family=Roboto:wght@400;500;700&display=swap";:root{--color-bg: #1a1a1a;--color-table: #0f380f;--color-table-accent: #1a4a1a;--color-text: #e0e0e0;--color-gold: #ffd700;--color-red: #ff4444;--color-card-bg: #ffffff;font-family:Inter,system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:var(--color-text);background-color:var(--color-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}body{margin:0;display:flex;place-items:center;min-width:320px;min-height:100vh;background-color:var(--color-bg)}#root{width:100%;height:100vh;display:flex;flex-direction:column}button{border-radius:8px;border:1px solid transparent;padding:.6em 1.2em;font-size:1em;font-weight:500;font-family:inherit;background-color:#1a1a1a;cursor:pointer;transition:border-color .25s}button:hover{border-color:#646cff}button:focus,button:focus-visible{outline:4px auto -webkit-focus-ring-color}:root{--color-table: #004d00;--color-table-accent: #006600;--color-gold: #f1c40f;--color-gold-dim: #f39c12;--color-red: #c0392b;--color-white: #ecf0f1;--glass-bg: rgba(0, 20, 0, .4);--glass-border: rgba(255, 255, 255, .1);--shadow-soft: 0 10px 40px rgba(0, 0, 0, .6)}body{margin:0;font-family:GFS Didot,Roboto,sans-serif;font-size:clamp(14px,1.5vmin,24px)}.app-container{display:flex;flex-direction:column;height:100vh;height:100dvh;background:radial-gradient(circle at 50% 30%,#006400,#004d00,#030);position:relative;background-image:radial-gradient(circle at 50% 30%,#006400,#004d00,#030);background-size:cover}.app-header{padding:1vmin 3vmin;display:flex;justify-content:space-between;align-items:center;background:linear-gradient(to bottom,#000c,#0000);border-bottom:none;z-index:10;height:8vh;min-height:40px}.app-header h1{margin:0;color:var(--color-gold);font-family:GFS Didot,Playfair Display,serif;font-size:clamp(1.5rem,4vmin,3rem);letter-spacing:.2vmin;text-shadow:0 .2vmin 1vmin rgba(0,0,0,.8),0 0 2vmin rgba(241,196,15,.4)}.game-board{flex:1;display:flex;flex-direction:column;justify-content:space-between;padding:2vmin;width:100%;height:100%;box-sizing:border-box;position:relative}.mobile-label{display:none}.desktop-label{display:inline}.mobile-spacer-top,.mobile-spacer-bottom{display:none}.hand-container{display:flex;flex-direction:column;align-items:center;min-height:25vmin;padding:1vmin;border-radius:1.5vmin}.hand-info{display:flex;align-items:center;gap:1vmin;margin-bottom:2vmin;background:linear-gradient(180deg,#0009,#000c);padding:.5vmin 1.5vmin;border-radius:.5vmin;border:1px solid rgba(255,215,0,.3);box-shadow:0 .5vmin 1vmin #00000080}.hand-title{margin:0;font-size:.9rem;color:#bbb;text-transform:uppercase;letter-spacing:1px;font-weight:700}.hand-score{color:var(--color-gold);background:none;padding:0;font-size:1.3rem;font-weight:800;text-shadow:0 2px 5px rgba(0,0,0,.8);box-shadow:none}.cards-area{display:flex;justify-content:center;height:18vmin;position:relative}.card{width:12vmin;height:16.8vmin;background:radial-gradient(circle at 50% 50%,#fff,#f0f0f0);border-radius:1vmin;position:relative;display:flex;flex-direction:column;justify-content:space-between;padding:.8vmin;box-shadow:-.2vmin .2vmin .5vmin #0003,0 0 .2vmin #0000001a;font-family:GFS Didot,Roboto,serif;font-weight:700;text-shadow:0 0 1px currentColor;-webkit-user-select:none;user-select:none;margin-left:-5vmin;z-index:1;box-sizing:border-box;opacity:0;transform:translateY(-20vmin) translate(5vmin) rotate(45deg);animation:dealCard .5s cubic-bezier(.19,1,.22,1) forwards}.card:first-child{margin-left:0}.card:hover{transform:translateY(-20px)!important;z-index:100!important}@keyframes dealCard{to{opacity:1;transform:translateY(0) rotateY(0)}}.card.card-back{background:#e63946;border:4px solid white;padding:0;overflow:hidden;position:relative;box-sizing:border-box}.card .pattern{width:100%;height:100%;position:relative;background-image:repeating-linear-gradient(45deg,transparent,transparent 8px,rgba(255,255,255,.9) 8px,rgba(255,255,255,.9) 10px),repeating-linear-gradient(-45deg,transparent,transparent 8px,rgba(255,255,255,.9) 8px,rgba(255,255,255,.9) 10px),repeating-linear-gradient(45deg,transparent,transparent 2px,rgba(255,255,255,.3) 2px,rgba(255,255,255,.3) 3px),repeating-linear-gradient(-45deg,transparent,transparent 2px,rgba(255,255,255,.3) 2px,rgba(255,255,255,.3) 3px);background-size:40px 40px,40px 40px,20px 20px,20px 20px;background-position:0 0,0 0,0 0,0 0}.card .pattern:after{display:none}.card-top-left{display:flex;flex-direction:column;align-items:center;line-height:1;font-size:1.4rem}.card-bottom-right{display:flex;flex-direction:column;align-items:center;line-height:1;font-size:1.4rem;transform:rotate(180deg)}.card-center{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);font-size:3.5rem}.controls-container{display:flex;flex-direction:column;align-items:center;gap:2vmin;margin-top:auto;margin-left:auto;margin-right:auto;padding:2vmin 4vmin;background:linear-gradient(180deg,#1c1c1c,#000);border-top:1vmin solid #3a2a1a;box-shadow:0 -1vmin 3vmin #000c;width:100%;max-width:1200px;box-sizing:border-box;position:relative;border-radius:0}.controls-container:before{content:"";position:absolute;inset:0;opacity:.1;background-image:url("data:image/svg+xml,%3Csvg width='20' height='20' viewBox='0 0 20 20' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M0 0h20v20H0V0zm10 10h10v10H10V10zM0 10h10v10H0V10zM10 0h10v10H10V0z' fill='%23fff' fill-opacity='0.1' fill-rule='evenodd'/%3E%3C/svg%3E");pointer-events:none}.action-buttons{display:flex;gap:1rem}.btn{padding:1.5vmin 4vmin;font-size:clamp(18px,2.5vmin,26px);border:none;border-radius:4vmin;cursor:pointer;text-transform:uppercase;font-weight:800;letter-spacing:.2vmin;transition:all .2s ease;box-shadow:0 .5vmin 2vmin #0000004d;position:relative;overflow:hidden}.btn:active{transform:scale(.95)}.btn-primary{background:linear-gradient(135deg,var(--color-gold) 0%,var(--color-gold-dim) 100%);color:#0f2027}.btn-primary:hover{box-shadow:0 0 20px #ffd70099;transform:translateY(-2px)}.btn-secondary{background:#ffffff1a;color:#fff;border:1px solid rgba(255,255,255,.3)}.btn-hit{background:linear-gradient(135deg,#ff4b4b,#c00);color:#fff}.btn-hit:hover:not(:disabled){box-shadow:0 0 20px #ff4b4b99}.btn-stand{background:linear-gradient(135deg,#4bff4b,#0c0);color:#0f2027}.btn-stand:hover:not(:disabled){box-shadow:0 0 20px #4bff4b99}.btn-double{background:linear-gradient(135deg,#4b4bff,#00c);color:#fff}.btn-double:hover:not(:disabled){box-shadow:0 0 20px #4b4bff99}.btn-split{background:linear-gradient(135deg,#ffff4b,#cc0);color:#0f2027}.btn-split:hover:not(:disabled){box-shadow:0 0 20px #ffff4b99}.btn:disabled{opacity:.5;cursor:not-allowed;filter:grayscale(100%);box-shadow:none;transform:none}.btn-secondary:hover{background:#fff3;border-color:#fff}.btn-accent{background:linear-gradient(135deg,#ff6b6b,#ee5253);color:#fff}.btn-accent:hover{box-shadow:0 0 20px #ee525399}.game-message{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:100;pointer-events:none;width:100%;display:flex;justify-content:center}.message-box{background:#0f2027f2;padding:2rem 4rem;border-radius:20px;border:2px solid var(--color-gold);color:var(--color-gold);font-size:2.5rem;font-weight:900;text-transform:uppercase;letter-spacing:2px;box-shadow:0 0 50px #000c;animation:popIn .4s cubic-bezier(.175,.885,.32,1.275);text-align:center}@keyframes popIn{0%{transform:scale(.8) translateY(20px);opacity:0}to{transform:scale(1) translateY(0);opacity:1}}.betting-controls{display:flex;flex-direction:column;align-items:center;gap:1.5vmin;width:100%;outline:3px solid red}.bankroll-info{display:flex;gap:2vmin;font-size:clamp(16px,1.8vmin,24px);font-weight:700;color:var(--color-gold);text-shadow:0 .2vmin .5vmin rgba(0,0,0,.5);background:#0006;padding:.8vmin 3vmin;border-radius:4vmin;border:1px solid var(--glass-border);outline:3px solid red}.chip-container{display:flex;gap:1.5vmin;padding:1vmin;outline:3px solid red}.chip{width:clamp(50px,9vmin,90px);height:clamp(50px,9vmin,90px);border-radius:50%;border:clamp(2px,.8vmin,6px) dashed white;display:flex;justify-content:center;align-items:center;font-weight:700;font-size:clamp(16px,1.8vmin,24px);cursor:pointer;transition:transform .2s;box-shadow:0 .5vmin 1vmin #0006;-webkit-user-select:none;user-select:none;position:relative}.chip:hover{transform:translateY(-10px) scale(1.1)}.chip:active{transform:scale(.95)}.chip:before{content:"";position:absolute;inset:5px;border-radius:50%;border:2px solid rgba(255,255,255,.5)}.chip-1{background:brown;color:#fff}.chip-5{background:#e74c3c;color:#fff}.chip-10{background:#3498db;color:#fff}.chip-25{background:#2ecc71;color:#fff}.chip-100{background:#1a1a1a;color:#fff}.player-hands-area{display:flex;flex-direction:row-reverse;justify-content:center;gap:1rem;width:100%}@media(max-width:900px){.game-board{padding:1rem;max-width:100%}.shortcut-hint{display:none}}@media(max-width:768px){.app-header{padding:.5rem 1rem;height:50px}.app-header h1{font-size:1.8rem}.game-board{padding:.5rem}.card{width:90px;height:135px;margin-left:-40px}.controls-container{padding:1.5rem}.shortcut-hint{display:none}}@media(max-width:480px){.app-container{height:100vh;height:100dvh;display:flex;flex-direction:column}.app-header{flex:0 0 auto;height:auto;flex-direction:row;justify-content:space-between;align-items:center;padding:.5rem;background:transparent}.app-header h1{font-size:1rem;margin:0;display:block;white-space:nowrap}.stats-bar{display:flex;justify-content:flex-end;align-items:center;gap:1rem;font-size:.9rem;color:#ffffffe6;flex-grow:0;margin:0}.stats-bar span{display:flex;flex-direction:column;align-items:center;line-height:1.2;font-family:GFS Didot,Roboto,sans-serif;font-weight:500;text-transform:uppercase;font-size:clamp(12px,1rem,16px);letter-spacing:.5px}.stats-bar small{display:inline;font-size:clamp(9px,.7rem,12px);color:#f1c40f}.desktop-label{display:none}.mobile-label{display:inline}.stats-bar b{font-size:1rem!important}.mobile-spacer-top{display:block;flex:1.5 1 auto;min-height:1rem}.mobile-spacer-bottom{display:block;flex:1 1 auto;min-height:.5rem}.shortcut-hint{display:none}.game-board>.hand-container{flex:0 0 auto;justify-content:center;padding-top:.5rem}.hand-container{min-height:0;padding:.25rem;display:flex;flex-direction:column;justify-content:center;background:none;border:none;box-shadow:none}.player-hands-area{flex:0 0 auto;display:flex;flex-direction:row-reverse;justify-content:center;padding-bottom:4rem;width:100%}.player-hands-area .hand-container{flex:0 0 auto;justify-content:center}.hand-info{flex:0 0 auto;margin-bottom:.2rem;padding:.1rem .6rem;min-height:24px}.hand-title{font-size:.7rem}.hand-score{font-size:.9rem}.cards-area{flex:1 1 auto;height:auto;max-height:140px;min-height:110px;align-items:center;margin:0}.card{width:70px;height:105px;margin-left:-4vw}.card-top-left{font-size:1.8rem;font-weight:800}.card-center{font-size:2.5rem}.card-bottom-right{display:none}.betting-area{flex:0 0 50px;height:50px;margin:0;z-index:5}.bet-chip{scale:.7;transform-origin:bottom center}.controls-container{flex:0 0 auto;padding:.5rem;gap:.5rem;background:#111;border-top:1px solid #333;margin-top:1rem}.bankroll-info{font-size:.9rem;padding:.2rem;background:transparent;border:none;justify-content:center;gap:1rem;margin:0}.chip-container{padding:0;gap:.5rem;justify-content:center;margin-bottom:.25rem}.chip{border-width:2px}.action-buttons{display:grid;grid-template-columns:1fr 1fr;gap:6px;width:100%}.btn{padding:12px 0;font-size:1rem;width:100%;border-radius:8px}.modal-content{width:90%!important;max-height:80vh}.controls-container:before{display:none}}.active-hand{background:#ffd7001a;border:1px solid var(--color-gold);box-shadow:0 0 15px #ffd70033}.text-red-500{color:#e74c3c}.text-black{color:#1a1a1a}.stats-bar{display:flex;justify-content:flex-end;align-items:center;gap:1.5rem;font-size:.9rem;color:#ffffffe6;flex-grow:1}.stats-bar span{display:flex;flex-direction:column;align-items:center;line-height:1.2;font-family:GFS Didot,Roboto,sans-serif;font-weight:500;text-transform:uppercase;font-size:1.5rem;letter-spacing:1px}.stats-bar span:after{content:"";display:none}.stats-bar span{background:none;border:none;padding:0}.auto-play-toggle{display:flex;align-items:center;gap:10px;color:var(--color-gold);font-weight:700;margin-bottom:1rem}.switch{position:relative;display:inline-block;width:50px;height:24px}.switch input{opacity:0;width:0;height:0}.slider{position:absolute;cursor:pointer;inset:0;background-color:#fff3;transition:.4s}.slider:before{position:absolute;content:"";height:16px;width:16px;left:4px;bottom:4px;background-color:#fff;transition:.4s}input:checked+.slider{background-color:var(--color-gold)}input:checked+.slider:before{transform:translate(26px)}.slider.round{border-radius:34px}.slider.round:before{border-radius:50%}.hint-highlight{border:8px solid var(--color-gold)!important;box-shadow:0 0 20px #f1c40f99;transform:translateY(-2px);z-index:10}.betting-area{position:relative;height:100px;width:100%;display:flex;justify-content:center;align-items:flex-end;margin:1rem 0;z-index:5;transition:all .5s}.bet-chip{position:absolute;bottom:0;transition:all .3s;pointer-events:none}.bet-chip .chip{animation:chipFlyIn .4s cubic-bezier(.175,.885,.32,1.275) backwards}@keyframes chipFlyIn{0%{transform:translateY(300px) scale(.5);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}.total-bet-label{position:absolute;bottom:-30px;background:#0009;padding:4px 12px;border-radius:12px;color:var(--color-gold);font-weight:700;border:1px solid var(--glass-border);font-size:.9rem}.betting-area.win-anim{animation:stackToPlayer .8s ease-in forwards;animation-delay:2s}.betting-area.lose-anim{animation:stackToDealer .8s ease-in forwards;animation-delay:1s}.payout-chip-anim .chip{animation:chipPayout .5s cubic-bezier(.175,.885,.32,1.275) backwards}@keyframes chipPayout{0%{transform:translateY(-400px) scale(.5);opacity:0}to{transform:translateY(0) scale(1);opacity:1}}@keyframes stackToPlayer{0%{transform:translateY(0) scale(1);opacity:1}20%{transform:translateY(-20px) scale(1.1)}to{transform:translateY(400px) scale(.5);opacity:0}}@keyframes stackToDealer{0%{transform:translateY(0) scale(1);opacity:1}20%{transform:translateY(20px) scale(1.1)}to{transform:translateY(-400px) scale(.5);opacity:0}}.hand-wrapper{display:inline-block;position:relative;padding-bottom:22px}.shoe-container{position:absolute;top:10vmin;right:2vmin;width:25vmin;background:#000c;border-radius:2vmin;padding:1.5vmin;box-shadow:0 1vmin 3vmin #000000b3;border:.2vmin solid rgba(241,196,15,.4);display:flex;flex-direction:column;align-items:center;z-index:100;gap:1vmin}.shoe-stats-grid{display:grid;grid-template-columns:1fr 1fr;gap:1vmin;width:100%;margin-bottom:.5vmin}.stat-box{text-align:center}.stat-label{font-size:clamp(11px,1.2vmin,15px);color:#aaa;text-transform:uppercase}.stat-value{font-size:clamp(14px,2vmin,22px);font-weight:700}.rec-bet-box{width:100%;text-align:center;background:#f1c40f1a;border:1px solid rgba(241,196,15,.3);border-radius:1vmin;padding:.5vmin}.rec-bet-label{font-size:clamp(11px,1.2vmin,15px);color:#f1c40f;text-transform:uppercase}.rec-bet-value{font-size:clamp(16px,2.5vmin,28px);font-weight:700;color:#fff}.cards-left-text{color:#fff9;font-size:clamp(11px,1.2vmin,15px);border-top:1px solid rgba(255,255,255,.1);width:100%;text-align:center;padding-top:.5vmin}.shoe-btn{margin-top:.5vmin;border:1px solid #d35400;border-bottom:.4vmin solid #d35400;padding:1vmin 0;border-radius:1vmin;font-size:clamp(12px,1.4vmin,18px);font-weight:900;width:100%;font-family:GFS Didot,Playfair Display,serif;letter-spacing:.1vmin;text-transform:uppercase;transition:all .1s active}.shoe-btn-shuffle{background:linear-gradient(180deg,#f1c40f,#f39c12);color:#2c3e50;border-color:#d35400}.shoe-btn-shuffle:disabled{background:#32323280;color:#7f8c8d;border-color:#7f8c8d}.shoe-btn-test{background:linear-gradient(180deg,#3498db,#2980b9);color:#ecf0f1;border-color:#2c3e50}.shoe-btn:active:not(:disabled){transform:translateY(.2vmin);border-bottom-width:.1vmin}.toggles-container{display:flex;gap:3vmin}.auto-play-toggle{display:flex;align-items:center;gap:1vmin;color:var(--color-gold);font-weight:700;margin-bottom:1vmin;font-size:clamp(14px,1.5vmin,20px)}.switch{position:relative;display:inline-block;width:5vmin;height:2.8vmin}.slider:before{height:2vmin!important;width:2vmin!important;left:.4vmin!important;bottom:.4vmin!important}input:checked+.slider:before{transform:translate(2.2vmin)!important}.slider.round{border-radius:3vmin!important}
