:root{color-scheme:dark;font-family:Inter,ui-sans-serif,system-ui,sans-serif;color:#f6f2e8;background:#071510;font-synthesis:none}*{box-sizing:border-box}body{margin:0;min-width:320px;min-height:100vh;background:radial-gradient(circle at 50% 15%,#214b38 0,#0c2118 42%,#071510)}button,input{font:inherit}a{color:inherit}.site-header{min-height:64px;padding:.75rem max(1rem,env(safe-area-inset-left));display:flex;align-items:center;justify-content:space-between;border-bottom:1px solid #ffffff1c}.brand{min-height:44px;display:inline-flex;align-items:center;font-weight:900;letter-spacing:.16em;text-decoration:none}.connection{font-size:.8rem;color:#b9c9c1}.connection-connected{color:#7fe2ac}.page{width:min(100% - 2rem,64rem);margin-inline:auto;padding:clamp(2rem,7vw,6rem) 0 max(2rem,env(safe-area-inset-bottom))}.hero{min-height:calc(100vh - 64px);display:grid;align-content:center;justify-items:start}h1{margin:.15em 0;font-family:Georgia,serif;font-size:clamp(2.5rem,10vw,6.7rem);line-height:.95}.eyebrow{margin:0;color:#d9b96e;text-transform:uppercase;letter-spacing:.14em;font-size:.78rem;font-weight:800}.lede{max-width:35rem;color:#c8d5cf;font-size:clamp(1.05rem,2vw,1.35rem)}.button-group,.secondary-nav,.row-actions{display:flex;gap:.75rem;flex-wrap:wrap;align-items:center}.button{min-height:44px;border:1px solid transparent;border-radius:999px;padding:.7rem 1.1rem;display:inline-flex;align-items:center;justify-content:center;font-weight:800;text-decoration:none;cursor:pointer}.button-primary{background:#efc366;color:#162016}.button-secondary{border-color:#ffffff38;background:#ffffff0d}.button-quiet{min-height:44px;background:transparent;border-color:#ffffff2b;color:inherit}.button:disabled{opacity:.45;cursor:not-allowed}.secondary-nav{margin-top:2rem;color:#9eb3a9}form{max-width:30rem;display:grid;gap:1.1rem}label{display:grid;gap:.45rem;font-weight:700}input{min-height:48px;padding:.7rem .85rem;border-radius:.65rem;border:1px solid #ffffff2d;background:#081510;color:inherit}input:focus-visible,button:focus-visible,a:focus-visible{outline:3px solid #80e8b1;outline-offset:3px}.player-list{padding:0;list-style:none;display:grid;gap:.6rem}.player-row{min-height:60px;border:1px solid #ffffff1b;background:#ffffff0a;border-radius:.9rem;padding:.75rem 1rem;display:flex;align-items:center;justify-content:space-between;gap:1rem}.notice{color:#b9c9c1}.error-banner{margin:1rem;padding:.8rem 1rem;display:flex;justify-content:space-between;gap:1rem;background:#7b2222;border-radius:.6rem}@media(max-width:479px){.player-row{align-items:flex-start;flex-direction:column}.row-actions{width:100%;justify-content:space-between}}.game-shell{width:min(100%,100rem);min-width:0;margin-inline:auto;overflow-x:clip;padding:1rem max(1rem,env(safe-area-inset-left)) calc(6.5rem + env(safe-area-inset-bottom))}.game-hud{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.55rem;margin-bottom:1rem}.game-hud div{min-width:0;padding:.7rem;border:1px solid #ffffff16;border-radius:.65rem;background:#0815109c}.game-hud span{display:block;color:#94aa9f;font-size:.7rem;text-transform:uppercase;letter-spacing:.08em}.game-hud strong{display:block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.opponents{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem;margin-bottom:1rem}.opponent-seat{min-width:0;padding:.7rem;border:1px solid #ffffff1c;border-radius:.8rem;background:#0d2119dc}.opponent-seat.current-seat{border-color:#80e8b1;box-shadow:0 0 0 2px #80e8b138,0 12px 36px #0004}.opponent-seat.disconnected-seat{opacity:.62;border-style:dashed}.opponent-seat header{display:flex;justify-content:space-between;gap:.4rem}.seat-badges{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.3rem}.turn-badge,.hand-state{border-radius:999px;padding:.18rem .48rem;background:#256b4b;color:#e9fff2;font-size:.7rem;font-weight:900}.viewer-turn{color:#80e8b1}.seat-meta{margin:.3rem 0;color:#94aa9f;font-size:.75rem}.badge,.total-badge{display:inline-flex;align-items:center;border-radius:999px;padding:.18rem .45rem;background:#efc366;color:#182017;font-size:.7rem;font-weight:900}.mini-hands,.mini-hand,.card-row{display:flex;gap:.35rem;align-items:center;min-width:0}.mini-hand+.mini-hand{margin-left:.25rem;border-left:1px solid #ffffff22;padding-left:.5rem}.playing-card{width:clamp(3.6rem,17vw,6.2rem);aspect-ratio:2.5 / 3.5;flex:0 0 auto;border-radius:.55rem;padding:.45rem;display:flex;flex-direction:column;justify-content:space-between;background:#fbf7ea;color:#172018;box-shadow:0 8px 24px #0005;font-family:Georgia,serif;font-size:clamp(1.1rem,5vw,2rem);font-weight:900}.mini-hand .playing-card{width:1.9rem;border-radius:.25rem;padding:.2rem;font-size:.65rem;box-shadow:none}.card-red{color:#b62436}.card-hidden{align-items:center;justify-content:center;color:#efc366;background:repeating-linear-gradient(45deg,#132f24,#132f24 6px,#1e4935 6px,#1e4935 12px);border:2px solid #e5c276;letter-spacing:.08em}.game-layout{display:grid;gap:1rem}.your-game{min-width:0;padding:1rem;border:1px solid #ffffff20;border-radius:1rem;background:#102a1fbd}.your-game.hand-active{border-color:#80e8b1;box-shadow:inset 0 0 0 1px #80e8b12b}.your-game.hand-bust{border-color:#ef7878}.your-game.hand-locked{opacity:.82}.hand-state{width:fit-content;margin:0;font-size:.85rem}.hand-bust .hand-state{background:#812e35}.hand-locked .hand-state{background:#3f4c46}.your-game-heading{display:flex;align-items:flex-end;justify-content:space-between}.your-game h1{font-size:clamp(2rem,8vw,4rem)}.large-total{font-family:Georgia,serif;font-size:3rem;color:#efc366}.card-row{min-height:9rem;padding:1rem 0;overflow-x:auto;scroll-snap-type:x proximity}.card-row .playing-card{scroll-snap-align:start}.hand-tabs{display:flex;gap:.4rem;overflow-x:auto;padding:.4rem 0}.hand-tabs button,.action-bar button,.decision-panel button,.resolution button{min-height:44px;border:1px solid #ffffff2c;border-radius:.65rem;padding:.6rem .85rem;background:#183b2b;color:inherit;font-weight:800}.hand-tabs button[aria-selected=true],.action-bar .primary-action{background:#efc366;color:#162016}.game-sidebar{min-width:0}.decision-panel,.resolution{min-inline-size:0;margin:0;padding:1rem;border:1px solid #ffffff1d;border-radius:1rem;background:#081510c9}.decision-panel h2,.resolution h2{margin-top:0}.decision-list,.decision-row{display:flex;flex-wrap:wrap;align-items:center;gap:.55rem;margin-block:.6rem}.decision-row>span{flex:1 1 100%;color:#b9c9c1}.action-bar{position:fixed;z-index:5;inset:auto 0 0;min-height:72px;padding:.7rem max(1rem,env(safe-area-inset-right)) max(.7rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));display:flex;gap:.55rem;overflow-x:auto;background:#071510f2;border:0;border-top:1px solid #ffffff24;-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px)}.action-bar button{flex:1 0 auto}.action-bar button:disabled,.decision-panel button:disabled,.resolution button:disabled,.game-sidebar>button:disabled{cursor:wait;opacity:.55}.action-feedback{position:fixed;z-index:6;inset:auto 1rem 76px;margin:0;padding:.5rem .75rem;border-radius:.65rem;background:#071510f2;color:#efc366;text-align:center}.turn-message{position:fixed;z-index:5;inset:auto 0 0;margin:0;padding:1rem max(1rem,env(safe-area-inset-right)) max(1rem,env(safe-area-inset-bottom)) max(1rem,env(safe-area-inset-left));text-align:center;background:#071510ed;color:#b9c9c1}.connection-banner{position:sticky;z-index:6;top:0;padding:.7rem;border-radius:.6rem;background:#7b5722;text-align:center}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.game-over{text-align:center;display:grid;min-height:calc(100vh - 64px);place-content:center;justify-items:center}@media(min-width:768px){.game-hud{grid-template-columns:repeat(4,minmax(0,1fr))}.opponents{grid-template-columns:repeat(3,minmax(0,1fr))}.game-layout{grid-template-columns:minmax(0,1fr) 22rem}.action-bar{left:50%;width:min(42rem,calc(100% - 2rem));bottom:1rem;transform:translate(-50%);border:1px solid #ffffff24;border-radius:1rem}}@media(max-width:479px){.game-shell{padding-inline:.65rem}.your-game{padding:.8rem}.playing-card{width:clamp(4rem,21vw,5.2rem)}.action-bar button{min-height:52px;padding-inline:1rem}}@media(min-width:1200px){.opponents{grid-template-columns:repeat(4,minmax(8rem,1fr))}}@media(min-width:1600px){.game-shell{padding-inline:2rem}}
