:root{--buncss-light: ;--buncss-dark:initial;color-scheme:dark;color:#f7f1df;font-synthesis:none;--cream:#f7f1df;--ink:#10231c;--felt:#14553d;--felt-dark:#0c3d2b;--gold:#e9b949;--red:#d85c4a;--blue:#59a7c8;background:#0a251b;font-family:Inter,ui-rounded,SF Pro Rounded,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Noto Sans,Ubuntu,Cantarell,Helvetica Neue,sans-serif}*{box-sizing:border-box}html,body,#app{min-height:100%;margin:0}body{overflow-x:hidden;min-height:100dvh}button,input{font:inherit}button{-webkit-tap-highlight-color:transparent}.app-shell{background:radial-gradient(circle at 50% 10%,#1c654a,#0a251b 68%);min-height:100dvh}.connection-banner{position:fixed;z-index:50;padding:calc(.55rem + env(safe-area-inset-top))1rem .55rem;text-align:center;color:#fff;background:#9c3e32;font-weight:750;inset:0 0 auto}.error-toast{position:fixed;z-index:60;left:50%;bottom:calc(1rem + env(safe-area-inset-bottom));color:#fff;background:#742e27;border:1px solid #f4a99d;border-radius:.9rem;width:min(92vw,32rem);padding:.85rem 1rem;transform:translate(-50%);box-shadow:0 .8rem 2rem #0008}.home-screen{display:grid;padding:max(1.5rem,env(safe-area-inset-top))max(1rem,env(safe-area-inset-right))max(1.5rem,env(safe-area-inset-bottom))max(1rem,env(safe-area-inset-left));align-content: center;gap:1.5rem;min-height:100dvh}.brand-block,.home-card{width:min(100%,31rem);margin-inline-start:auto;margin-inline-end:auto}.brand-kicker,.eyebrow{color:var(--gold);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;font-weight:800}.brand-block h1{color:var(--cream);text-shadow:0 .25rem #082017;margin:.15rem 0;font-family:Georgia,serif;font-size:clamp(3.5rem,18vw,6rem);line-height:.95}.brand-block p{color:#d4e0d8;margin:.8rem 0 0}.home-card{color:var(--ink);background:#f7f1df;border:1px solid #ffffff24;border-radius:1.4rem;padding:1.25rem;box-shadow:0 1.25rem 3rem #0006}label,fieldset{display:grid;gap:.45rem;font-size:.82rem;font-weight:750}fieldset{border:0;margin:1rem 0 0;padding:0}legend{margin-bottom:.45rem}input{color:#14261e;background:#fff;border:1px solid #b9c0b8;border-radius:.75rem;width:100%;min-height:3rem;padding:.65rem .8rem;font-size:1rem}input:focus{outline:3px solid #e9b94966;border-color:#a16f00}.code-input{text-transform:uppercase;letter-spacing:.18em;font-weight:850}.mode-switch{display:grid;grid-template-columns:1fr 1fr;gap:.5rem;margin-bottom:.7rem}.mode-switch button{color:var(--ink);background:0 0;border:1px solid #aab3ac;border-radius:.7rem;min-height:2.7rem;font-weight:800}.mode-switch button.active{border-color:var(--felt);background:var(--felt);color:#fff}.primary-button,.secondary-button,.claim-button{border:0;border-radius:.8rem;width:100%;min-height:3rem;padding:.7rem 1rem;font-weight:850}.primary-button{background:var(--gold);color:#332500;box-shadow:inset 0 -.18rem #b98213}.secondary-button{background:var(--felt);color:#fff;margin-top:.7rem}.claim-button{color:#392f1d;background:#e8ddc1;box-shadow:inset 0 -.18rem #a99568}button:disabled{opacity:.42;cursor:not-allowed}.divider{display:flex;color:#6d776f;align-items: center;gap:.7rem;margin:1rem 0;font-size:.75rem}.divider:before,.divider:after{content:"";background:#c7ccc7;flex:1;height:1px}.lobby-screen{display:grid;grid-template-rows:auto 1fr auto;padding:max(1rem,env(safe-area-inset-top))max(1rem,env(safe-area-inset-right))max(1rem,env(safe-area-inset-bottom))max(1rem,env(safe-area-inset-left));min-height:100dvh}.lobby-header{display:flex;justify-content:space-between;align-items: center}.room-code{display:block;color:#fff;letter-spacing:.12em;background:0 0;border:0;padding:.15rem 0;font-size:2rem;font-weight:900}.text-button{color:#fff;background:#ffffff0d;border:1px solid #ffffff35;border-radius:.7rem;padding:.55rem .8rem}.seat-map{position:relative;aspect-ratio:1/1.12;background:radial-gradient(circle,#267156,#104830 75%);border:.65rem solid #4c2f1f;border-radius:42%;align-self: center;width:min(94vw,34rem);margin:1rem auto;box-shadow:inset 0 0 0 .15rem #c18c4b,0 1rem 2.5rem #0007}.lobby-seat{position:absolute;color:#fff;background:#092d20e8;border:1px solid #ffffff35;border-radius:1rem;width:8rem;min-height:4.6rem;padding:.5rem;box-shadow:0 .4rem .9rem #0005}.lobby-seat strong,.lobby-seat span{display:block}.lobby-seat .seat-direction{color:var(--gold);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem}.lobby-seat span:last-child{color:#b9ccc1;margin-top:.2rem;font-size:.7rem}.lobby-seat.is-self{outline:3px solid var(--gold)}.lobby-seat.seat-south{bottom:-1rem;left:50%;transform:translate(-50%)}.lobby-seat.seat-north{top:-1rem;left:50%;transform:translate(-50%)}.lobby-seat.seat-east{top:50%;right:-2.2rem;transform:translateY(-50%)}.lobby-seat.seat-west{top:50%;left:-2.2rem;transform:translateY(-50%)}.lobby-table-mark{position:absolute;text-align:center;inset:50% auto auto 50%;transform:translate(-50%,-50%)}.lobby-table-mark span{display:block;color:var(--gold);font-family:Georgia,serif;font-size:2rem}.lobby-table-mark small{white-space:nowrap;color:#d6e2da}.lobby-actions{text-align:center;color:#cbd8d0;width:min(100%,30rem);margin:auto}.game-screen{display:grid;grid-template-rows:auto minmax(0,1fr)auto auto;padding:max(.45rem,env(safe-area-inset-top))max(.45rem,env(safe-area-inset-right))max(.45rem,env(safe-area-inset-bottom))max(.45rem,env(safe-area-inset-left));background:#08291d;gap:.45rem;min-height:100dvh}.game-header{display:grid;grid-template-columns:1fr minmax(8rem,1.2fr)1fr;align-items: center;gap:.4rem}.score{display:grid;grid-template-columns:auto auto;background:#ffffff0c;border:1px solid #ffffff18;border-radius:.75rem;align-items: center;gap:0 .35rem;padding:.45rem .55rem}.score span,.score small{font-size:.65rem}.score strong{grid-row:1/3;grid-column:2;justify-self:end;font-size:1.65rem}.score-a{border-bottom:3px solid var(--blue)}.score-b{border-bottom:3px solid var(--red)}.game-meta{text-align:center;min-width:0}.game-meta strong,.game-meta small{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.game-meta strong{font-size:.76rem}.game-meta small{color:#9db5a8;font-size:.62rem}.timer{display:block;position:relative;overflow:hidden;font-variant-numeric:tabular-nums;background:#ffffff15;border-radius:1rem;width:5rem;margin:.2rem auto;font-size:.75rem;font-weight:850}.timer:before{content:"";position:absolute;width:var(--timer-progress);background:#e9b94944;transition:width .1s linear;inset:0 auto 0 0}.timer.paused{color:#efb4a9}.felt-table{position:relative;overflow:hidden;background:radial-gradient(circle,#216b4e,#0f4933 72%);border:.4rem solid #452c1d;border-radius:2.2rem;min-height:0;box-shadow:inset 0 0 0 .12rem #a9783e,inset 0 0 2rem #00170e}.table-center{position:absolute;display:flex;flex-wrap:wrap;place-content: center;gap:.2rem;inset:18% 13%}.empty-table{color:#ffffff35;font-family:Georgia,serif;font-size:1.2rem;font-style:italic}.player-position{position:absolute;z-index:3;text-align:center;background:#071f17bd;border-radius:.55rem;min-width:5rem;max-width:9rem;padding:.25rem .4rem}.player-position.seat-north{top:.35rem;left:50%;transform:translate(-50%)}.player-position.seat-south{bottom:.35rem;left:50%;transform:translate(-50%)}.player-position.seat-east{top:50%;right:.25rem;transform:translateY(-50%)}.player-position.seat-west{top:50%;left:.25rem;transform:translateY(-50%)}.player-position.is-active{outline:2px solid var(--gold);box-shadow:0 0 1rem #e9b94966}.player-position.is-self{background:#173a2e}.your-turn-label{color:var(--gold);font-size:1.1em}.game-screen.is-my-turn .own-hand{outline:2px solid var(--gold);border-radius:.9rem;box-shadow:0 0 1.25rem #e9b94966}@media (prefers-reduced-motion:no-preference){.game-screen.is-my-turn .your-turn-label{animation:turn-pulse 1.2s ease-in-out infinite alternate}}@keyframes turn-pulse{0%{text-shadow:none}to{text-shadow:0 0 .8rem #e9b949aa}}.player-label{display:flex;justify-content:center;align-items: center;gap:.25rem;font-size:.7rem}.dealer-chip{display:inline-grid;aspect-ratio:1;background:var(--gold);color:#332500;border-radius:50%;place-items: center;width:1.15rem;font-weight:900}.offline-dot{position:absolute;color:#ffad9f;font-size:.55rem;top:100%;left:50%;transform:translate(-50%)}.card-backs{position:relative;width:3rem;height:2.3rem;margin:.2rem auto 0}.card-backs img{position:absolute;left:calc(var(--back-index)*.25rem);border-radius:.18rem;width:1.6rem;box-shadow:0 .1rem .25rem #0006}.card-backs span{position:absolute;display:grid;aspect-ratio:1;background:var(--cream);color:var(--ink);border-radius:50%;place-items: center;width:1.25rem;font-size:.68rem;font-weight:900;bottom:0;right:0}.stock-indicator{position:absolute;display:flex;align-items: flex-end;bottom:.6rem;right:.6rem}.stock-indicator img{border-radius:.18rem;width:1.9rem}.stock-indicator span{background:var(--cream);color:var(--ink);text-align:center;border-radius:1rem;min-width:1.15rem;margin-left:-.25rem;font-size:.62rem;font-weight:900}.playing-card{filter:drop-shadow(0 .25rem .25rem #0006);animation:card-enter .22s ease-out;background:0 0;border:0;border-radius:.35rem;flex:none;width:clamp(3.4rem,16vw,5.1rem);padding:0;transition:transform .14s,filter .14s}.playing-card img{display:block;pointer-events:none;border-radius:.35rem;width:100%}.playing-card.is-small{width:clamp(2.8rem,12vw,4.4rem)}.playing-card.is-selected{filter:drop-shadow(0 .35rem .35rem #0008)drop-shadow(0 0 .28rem var(--gold));transform:translateY(-.45rem)scale(1.04)}.playing-card:disabled{opacity:1}.own-hand{display:flex;justify-content:center;align-items: end;min-height:5.7rem;padding-top:.5rem}.own-hand .playing-card+.playing-card{margin-left:clamp(-1.1rem,-3vw,-.45rem)}.game-actions{width:min(100%,30rem);min-height:3rem;margin:auto}.effect-overlay{position:fixed;z-index:40;color:var(--gold);text-shadow:0 .15rem #000;opacity:0;pointer-events:none;background:#112b20e8;border:2px solid #ffe09a;border-radius:1rem;width:max-content;max-width:90vw;padding:.7rem 1.2rem;font-family:Georgia,serif;font-size:clamp(1.8rem,10vw,3.5rem);font-weight:900;top:48%;left:50%;transform:translate(-50%,-50%)}.result-screen{display:grid;text-align:center;place-content: center;justify-items:center;gap:.75rem;min-height:100dvh;padding:1.5rem}.result-mark{display:grid;aspect-ratio:1;border:.4rem double var(--gold);color:var(--gold);border-radius:50%;place-items: center;width:8rem;font-family:Georgia,serif;font-size:4rem}.result-screen h1{margin:0;font-size:2.2rem}.result-screen p{color:#cbd8d0;margin:0}.result-screen .primary-button{width:min(19rem,90vw);margin-top:1rem}@keyframes card-enter{0%{opacity:0;transform:translateY(-.4rem)scale(.94)}}@media (orientation:landscape) and (height<=600px){.game-screen{grid-template-columns:minmax(0,1fr)minmax(12rem,28vw);grid-template-rows:auto minmax(0,1fr)auto}.game-header{grid-column:1/3}.felt-table{grid-column:1;grid-row:2/4}.own-hand{grid-column:2;grid-row:2;flex-wrap:wrap;align-content: center;padding:0}.own-hand .playing-card+.playing-card{margin-left:-.8rem}.game-actions{grid-column:2;grid-row:3;align-self: end}.playing-card{width:clamp(3rem,7vw,4.5rem)}.playing-card.is-small{width:clamp(2.5rem,5.5vw,3.7rem)}.table-center{inset:17% 12%}}@media (width>=700px){.game-screen{max-width:70rem;margin:auto}.lobby-seat.seat-east{right:-1rem}.lobby-seat.seat-west{left:-1rem}}@media (prefers-reduced-motion:reduce){*,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;transition-duration:.01ms!important}.effect-overlay{display:none}}
