@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/8a480f0b521d4e75-s.8e0177b5.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/7178b3e590c64307-s.b97b3418.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/caa3a2e1cccd8315-s.p.853070df.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Fallback;src:local(Arial);ascent-override:95.94%;descent-override:28.16%;line-gap-override:0.0%;size-adjust:104.76%}.geist_a71539c9-module__T19VSG__className{font-family:Geist,Geist Fallback;font-style:normal}.geist_a71539c9-module__T19VSG__variable{--font-geist-sans:"Geist","Geist Fallback"}
@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/4fa387ec64143e14-s.c1fdd6c2.woff2)format("woff2");unicode-range:U+301,U+400-45F,U+490-491,U+4B0-4B1,U+2116}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/bbc41e54d2fcbd21-s.799d8ef8.woff2)format("woff2");unicode-range:U+100-2BA,U+2BD-2C5,U+2C7-2CC,U+2CE-2D7,U+2DD-2FF,U+304,U+308,U+329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF}@font-face{font-family:Geist Mono;font-style:normal;font-weight:100 900;font-display:swap;src:url(../media/797e433ab948586e-s.p.dbea232f.woff2)format("woff2");unicode-range:U+??,U+131,U+152-153,U+2BB-2BC,U+2C6,U+2DA,U+2DC,U+304,U+308,U+329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}@font-face{font-family:Geist Mono Fallback;src:local(Arial);ascent-override:74.67%;descent-override:21.92%;line-gap-override:0.0%;size-adjust:134.59%}.geist_mono_8d43a2aa-module__8Li5zG__className{font-family:Geist Mono,Geist Mono Fallback;font-style:normal}.geist_mono_8d43a2aa-module__8Li5zG__variable{--font-geist-mono:"Geist Mono","Geist Mono Fallback"}
@layer theme{:root,:host{--font-sans:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji";--font-mono:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace;--default-font-family:var(--font-sans);--default-mono-font-family:var(--font-mono)}}@layer base{*,:after,:before,::backdrop{box-sizing:border-box;border:0 solid;margin:0;padding:0}::file-selector-button{box-sizing:border-box;border:0 solid;margin:0;padding:0}html,:host{-webkit-text-size-adjust:100%;tab-size:4;line-height:1.5;font-family:var(--default-font-family,ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji","Segoe UI Symbol","Noto Color Emoji");font-feature-settings:var(--default-font-feature-settings,normal);font-variation-settings:var(--default-font-variation-settings,normal);-webkit-tap-highlight-color:transparent}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;-webkit-text-decoration:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:var(--default-mono-font-family,ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,"Liberation Mono","Courier New",monospace);font-feature-settings:var(--default-mono-font-feature-settings,normal);font-variation-settings:var(--default-mono-font-variation-settings,normal);font-size:1em}small{font-size:80%}sub,sup{vertical-align:baseline;font-size:75%;line-height:0;position:relative}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}:-moz-focusring{outline:auto}progress{vertical-align:baseline}summary{display:list-item}ol,ul,menu{list-style:none}img,svg,video,canvas,audio,iframe,embed,object{vertical-align:middle;display:block}img,video{max-width:100%;height:auto}button,input,select,optgroup,textarea{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}::file-selector-button{font:inherit;font-feature-settings:inherit;font-variation-settings:inherit;letter-spacing:inherit;color:inherit;opacity:1;background-color:#0000;border-radius:0}:where(select:is([multiple],[size])) optgroup{font-weight:bolder}:where(select:is([multiple],[size])) optgroup option{padding-inline-start:20px}::file-selector-button{margin-inline-end:4px}::placeholder{opacity:1}@supports (not ((-webkit-appearance:-apple-pay-button))) or (contain-intrinsic-size:1px){::placeholder{color:currentColor}@supports (color:color-mix(in lab, red, red)){::placeholder{color:color-mix(in oklab,currentcolor 50%,transparent)}}}textarea{resize:vertical}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-date-and-time-value{min-height:1lh;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-datetime-edit{padding-block:0}::-webkit-datetime-edit-year-field{padding-block:0}::-webkit-datetime-edit-month-field{padding-block:0}::-webkit-datetime-edit-day-field{padding-block:0}::-webkit-datetime-edit-hour-field{padding-block:0}::-webkit-datetime-edit-minute-field{padding-block:0}::-webkit-datetime-edit-second-field{padding-block:0}::-webkit-datetime-edit-millisecond-field{padding-block:0}::-webkit-datetime-edit-meridiem-field{padding-block:0}::-webkit-calendar-picker-indicator{line-height:1}:-moz-ui-invalid{box-shadow:none}button,input:where([type=button],[type=reset],[type=submit]){appearance:button}::file-selector-button{appearance:button}::-webkit-inner-spin-button{height:auto}::-webkit-outer-spin-button{height:auto}[hidden]:where(:not([hidden=until-found])){display:none!important}}@layer components;@layer utilities{.visible{visibility:visible}.container{width:100%}@media (min-width:40rem){.container{max-width:40rem}}@media (min-width:48rem){.container{max-width:48rem}}@media (min-width:64rem){.container{max-width:64rem}}@media (min-width:80rem){.container{max-width:80rem}}@media (min-width:96rem){.container{max-width:96rem}}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}html{overflow-x:hidden}:root{--background:#fff;--foreground:#171717}@media (prefers-color-scheme:dark){:root{--background:#0a0a0a;--foreground:#ededed}}body{background:var(--background);color:var(--foreground);font-family:Arial,Helvetica,sans-serif;overflow-x:hidden}.page{--cream:#f6ebd9;--bark:#4b2b1f;--ember:#d68a4a;--moss:#2f4d2a;--pine:#1e3521;min-height:100svh;color:var(--cream);background:radial-gradient(1200px 520px at 50% -10%,#ffeed5eb,#c68b5c9e 42%,#372118fa 100%),repeating-linear-gradient(90deg,#ffffff0d 0 2px,#0000 2px 10px),repeating-linear-gradient(0deg,#00000014 0 14px,#0000 14px 46px);place-items:center;padding:4.5rem 1.5rem 5.5rem;display:grid;position:relative;overflow-x:hidden}.scene{z-index:0;pointer-events:none;position:absolute;inset:0}.sky{opacity:.9;background:radial-gradient(60% 80% at 50% 20%,#ffeccdcc,#c7905c66 60%,#0000 100%),linear-gradient(#3e281de6,#0000);position:absolute;inset:-20% 0 35%}.hills{filter:blur(.2px);background:radial-gradient(120% 120% at 50% 100%,#243921e6,#192516f2);border-radius:50% 50% 0 0;height:32%;position:absolute;bottom:28%;left:-15%;right:-15%}.ground{background:radial-gradient(120% 120% at 50% 0,#3e542de6,#141c12f5);height:45%;position:absolute;bottom:-20%;left:-10%;right:-10%}.cabin{background:repeating-linear-gradient(0deg,#8a5a3b 0 18px,#7a4f34 18px 36px);border:1px solid #ffebd226;border-radius:18px 18px 8px 8px;width:min(560px,90vw);height:220px;position:absolute;bottom:22%;left:50%;transform:translate(-50%);box-shadow:0 24px 50px #11090673}.cabin:before{content:"";clip-path:polygon(50% 0%,0% 100%,100% 100%);background:linear-gradient(#5d3b2a,#392217);height:60%;position:absolute;top:-58%;left:-6%;right:-6%;box-shadow:0 20px 35px #0d070466}.cabin:after{content:"";opacity:.9;background:linear-gradient(90deg,#704a34,#4b2f21);border-radius:0 0 14px 14px;height:14px;position:absolute;bottom:-12px;left:0;right:0}.window{background:radial-gradient(circle at 30% 30%,#ffe8c0e6,#ffc27480 55%,#442618e6 100%);border:2px solid #321a10b3;border-radius:14px;width:74px;height:74px;position:absolute;top:30%;box-shadow:0 0 30px #ffc27866}.window-left{left:16%}.window-right{right:16%}.door{background:linear-gradient(#5b3824,#3c2318);border-radius:18px 18px 6px 6px;width:96px;height:150px;position:absolute;bottom:0;left:50%;transform:translate(-50%);box-shadow:inset 0 0 0 2px #ffe0be14}.door:before{content:"";background:#e7c489;border-radius:50%;width:12px;height:12px;position:absolute;top:50%;right:18px;box-shadow:0 0 8px #e7c48999}.hero{z-index:1;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);text-align:center;background:#20140e94;border:1px solid #ffebd233;border-radius:30px;width:min(820px,92vw);padding:clamp(2rem,5vw,3.5rem) clamp(2rem,5vw,3.5rem) clamp(3.2rem,6vw,4.4rem);position:relative;box-shadow:0 32px 80px #0c06038c}.title-wrap{margin-bottom:.4rem;padding:1.25rem 2.5rem 2.4rem;display:inline-block;position:relative}.flora{z-index:0;opacity:.95;width:clamp(240px,60vw,440px);height:110px;position:absolute;bottom:-.9rem;left:50%;transform:translate(-50%)}.title{z-index:1;letter-spacing:.04em;text-shadow:0 8px 30px #140a06b3;color:#fff6e6;margin-top:-3.4rem;font-size:clamp(3.2rem,8vw,6.2rem);position:relative;transform:translateY(-16px)}.subtitle{color:#f8eedfe0;max-width:42ch;margin:0 auto 2rem;font-size:clamp(1rem,2.3vw,1.25rem);line-height:1.6}.form{text-align:left;gap:.5rem;max-width:360px;margin:0 auto 1rem;display:grid}.label{text-transform:uppercase;letter-spacing:.16em;color:#f6e6d2b3;font-size:.78rem}.input{color:#2d1a12;background:#ffefdbe6;border:1px solid #ffe2be40;border-radius:16px;width:100%;padding:.8rem 1rem;font-size:1rem;box-shadow:inset 0 0 0 1px #4928181a}.input::placeholder{color:#46281a99}.input:focus-visible{outline-offset:2px;outline:3px solid #f5d6a8e6}.error{color:#f5b69cf2;max-width:360px;margin:0 auto 1.1rem;font-size:.95rem}.join-page{padding:4rem 1.5rem 5rem}.join-shell{z-index:1;-webkit-backdrop-filter:blur(10px);backdrop-filter:blur(10px);background:#1a100c9e;border:1px solid #ffebd233;border-radius:30px;gap:1.6rem;width:min(860px,92vw);padding:clamp(2rem,5vw,3.2rem);display:grid;position:relative;box-shadow:0 32px 80px #0c06038c}.join-header{text-align:center}.join-kicker{text-transform:uppercase;letter-spacing:.26em;color:#f6e6d2b3;margin:0 0 .4rem;font-size:.75rem}.join-title{color:#fff6e6;letter-spacing:.04em;margin:0 0 .6rem;font-size:clamp(2.4rem,6vw,4.2rem)}.join-subtitle{color:#f8eedfd9;max-width:40ch;margin:0 auto;font-size:1rem;line-height:1.6}.join-form{gap:.5rem;max-width:360px;margin:0 auto;display:grid}.join-list{gap:1rem;display:grid}.join-card{background:#120b0899;border:1px solid #ffebd22e;border-radius:20px;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.2rem;padding:1.2rem 1.4rem;display:flex;box-shadow:0 18px 40px #0c060366}.join-card-title{color:#f7ecd9;margin:0 0 .35rem;font-size:1.1rem}.join-card-meta{color:#f8eedfb3;margin:0}.join-card-actions{flex-wrap:wrap;align-items:center;gap:.9rem;margin-left:auto;display:flex}.join-button{color:#2d1a12;cursor:pointer;background:linear-gradient(135deg,#f5c67c,#d67a45);border:none;border-radius:999px;padding:.7rem 1.6rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 12px 24px #0f080466}.join-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 30px #0f080473}.join-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.join-delete{color:#ffd7c5;cursor:pointer;background:#582016bf;border:1px solid #ffbaa073;border-radius:999px;padding:.65rem 1.3rem;font-weight:600;transition:transform .2s,box-shadow .2s}.join-delete:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 16px 26px #190a0673}.join-delete:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.join-loading,.join-empty{text-align:center;color:#f8eedfbf;background:#160e0a8c;border:1px solid #ffebd226;border-radius:18px;padding:1.5rem}.join-actions{flex-wrap:wrap;justify-content:center;gap:1rem;display:flex}.join-back{color:#f8eedfe6;cursor:pointer;background:#18100c99;border:1px solid #ffebd240;border-radius:999px;padding:.6rem 1.4rem;transition:transform .2s,box-shadow .2s}.join-back:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0c060366}.join-modal-backdrop{-webkit-backdrop-filter:blur(3px);backdrop-filter:blur(3px);z-index:999;pointer-events:auto;background:#0a0503d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.join-modal{z-index:1000;color:#f8eedf;background:#180e0af5;border:1px solid #ffebd233;border-radius:24px;gap:1rem;width:min(420px,92vw);padding:1.8rem;display:grid;position:relative;box-shadow:0 32px 80px #0c060399}.join-modal-title{letter-spacing:.02em;margin:0;font-size:1.4rem}.join-modal-text{color:#f8eedfcc;margin:0;line-height:1.5}.join-modal-actions{flex-wrap:wrap;justify-content:flex-end;gap:.75rem;display:flex}.seven-hearts-cards{flex-wrap:wrap;justify-content:center;gap:.6rem;display:flex}.seven-hearts-card{cursor:pointer;background:0 0;border:none;padding:0;transition:transform .2s,box-shadow .2s}.seven-hearts-card.selected{transform:translateY(-2px);box-shadow:0 16px 24px #0c060373}.seven-hearts-card:disabled{cursor:not-allowed;opacity:.6;box-shadow:none}.seven-hearts-error{color:#f5b69cf2;text-align:center;margin:0;font-size:.9rem}.join-modal-cancel,.join-modal-confirm{cursor:pointer;border-radius:999px;padding:.6rem 1.4rem;font-weight:600;transition:transform .2s,box-shadow .2s}.join-modal-cancel{color:#f8eedfe6;background:#18100c99;border:1px solid #ffebd240}.join-modal-confirm{color:#2b120c;background:linear-gradient(135deg,#f4a07b,#bf4f32);border:none;box-shadow:0 16px 28px #14080473}.join-modal-cancel:hover:not(:disabled),.join-modal-confirm:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 30px #0f080480}.join-modal-cancel:disabled,.join-modal-confirm:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.game-room{--cream:#f6ebd9;--log-light:#7a4f34;--log-mid:#6a422c;--log-dark:#3c2418;--floor-light:#5b3a24;--floor-dark:#3b2418;height:100svh;min-height:100svh;color:var(--cream);background:#22150f;justify-content:center;padding:clamp(1.4rem,2.6vh,2.2rem) 1.2rem 2.2rem;display:flex;position:relative;overflow:hidden}.game-room:before{content:"";z-index:0;background:radial-gradient(120% 70% at 50% 0%,#ffe3be38,transparent 60%),repeating-linear-gradient(0deg,var(--log-light)0 36px,var(--log-mid)36px 72px),repeating-linear-gradient(90deg,#0000002e 0 5px,transparent 5px 90px);filter:saturate(1.05);position:absolute;inset:0 0 32%}.game-room:after{content:"";z-index:0;background:linear-gradient(180deg,#0003,#0000008c),repeating-linear-gradient(90deg,var(--floor-light)0 120px,var(--floor-dark)120px 132px),repeating-linear-gradient(180deg,#ffffff0f 0 2px,transparent 2px 14px);border-top:3px solid #ffe6c81f;height:34%;position:absolute;bottom:0;left:0;right:0;box-shadow:inset 0 18px 40px #00000059}.game-room .scene{display:none}.room-shell{z-index:1;grid-template-rows:auto minmax(0,1fr) auto auto;gap:1rem;width:100%;height:100%;display:grid;position:relative}.room-top{flex-wrap:wrap;justify-content:space-between;align-items:flex-start;gap:1rem;display:flex}.status-card{color:#f8eedfd9;background:#140c09b3;border:1px solid #ffebd238;border-radius:18px;gap:.6rem;min-width:220px;max-width:360px;margin-left:auto;padding:.9rem 1.2rem 1rem;display:grid;box-shadow:0 18px 40px #0a060473}.mobile-only{display:none}.mobile-state{width:100%}.mobile-state-card{color:#f8eedfd9;background:#140c09b8;border:1px solid #ffebd238;border-radius:18px;gap:1rem;width:min(520px,92vw);padding:1.1rem 1.2rem 1.3rem;display:grid;box-shadow:0 18px 40px #0a060473}.mobile-state-title{text-transform:uppercase;letter-spacing:.22em;color:#f6e6d2b3;margin:0;font-size:.7rem}.mobile-state-summary{gap:.5rem;display:grid}.mobile-state-row{justify-content:space-between;gap:.8rem;font-size:.85rem;display:flex}.mobile-state-label{text-transform:uppercase;letter-spacing:.14em;color:#ebdecea6;font-size:.68rem}.mobile-state-value{text-align:right;color:#f8eedfe6}.mobile-state-players{gap:1rem;display:grid}.mobile-eliminated{width:100%}.mobile-eliminated-card{color:#f8eedfd9;background:#140c09b8;border:1px solid #ffebd238;border-radius:18px;gap:.7rem;width:min(520px,92vw);padding:.95rem 1.1rem 1.1rem;display:grid;box-shadow:0 18px 40px #0a060473}.mobile-eliminated-list{gap:.55rem;display:grid}.mobile-eliminated-row{justify-content:space-between;align-items:center;gap:.8rem;font-size:.85rem;display:flex}.mobile-eliminated-name{color:#f8eedfeb;font-weight:600}.mobile-player{background:#1a100c8c;border:1px solid #ffebd22e;border-radius:16px;gap:.55rem;padding:.9rem 1rem;display:grid}.mobile-player-header{justify-content:space-between;align-items:center;gap:.6rem;display:flex}.mobile-player-name{color:#f7ecd9;font-size:.95rem;font-weight:600}.mobile-player-tags{gap:.35rem;display:flex}.mobile-player-tag{text-transform:uppercase;letter-spacing:.16em;color:#f6daaee6;background:#f6d19e33;border-radius:999px;padding:.2rem .5rem;font-size:.6rem}.mobile-player-tag-danger{color:#f39c96f2;background:#dd605433}.mobile-player-meta{color:#f8eedfb3;flex-wrap:wrap;gap:.35rem .8rem;font-size:.75rem;display:flex}.mobile-player-kept{flex-wrap:wrap;gap:.35rem;display:flex}.mobile-player-kept-empty{color:#f8eedf99;font-size:.75rem}.status-kicker{text-transform:uppercase;letter-spacing:.22em;color:#f6e6d2b3;margin:0;font-size:.7rem}.status-list{gap:.4rem;display:grid}.status-row{justify-content:space-between;gap:.8rem;font-size:.85rem;display:flex}.status-label{text-transform:uppercase;letter-spacing:.14em;color:#ebdecea6;font-size:.68rem}.status-value{text-align:right;color:#f8eedfe6}.table-zone{z-index:0;place-items:start center;min-height:0;margin-top:-5rem;display:grid;position:relative}.table-stage{place-items:center;width:min(780px,92vw);height:min(420px,60vw,46svh);display:grid;position:relative}.table-surface{background:linear-gradient(145deg,#5b3826,#3f2417);border:1px solid #ffe6c826;border-radius:50%;place-items:center;width:100%;height:100%;padding:1.2rem;display:grid;box-shadow:0 30px 80px #0c06038c}.table-felt{background:radial-gradient(circle at 30% 30%,#4c6e48f2,#284026f2 60%,#172817fa 100%);border:1px solid #ffe7c81f;border-radius:50%;grid-template-rows:auto 1fr auto;gap:.75rem;width:100%;height:100%;padding:clamp(1.2rem,4vw,2.2rem);display:grid;position:relative}.table-played{pointer-events:none;z-index:2;flex-wrap:wrap;justify-content:center;gap:1.2rem;width:min(640px,86%);display:flex;position:absolute;left:50%;transform:translate(-50%)}.table-played-positions{z-index:2;pointer-events:none;position:absolute;inset:0}.table-played-top{top:16%}.table-played-bottom{bottom:16%}.table-played-seat{justify-content:center;gap:.35rem;display:flex;position:absolute;transform:translate(-50%,-50%)}.table-header{text-transform:uppercase;letter-spacing:.18em;color:#eaddcdbf;justify-content:flex-end;align-items:center;font-size:.9rem;display:flex}.table-turn{text-transform:none;letter-spacing:.06em;font-size:.85rem}.table-header-spacer{min-height:1.6rem}.table-cards{grid-template-columns:1fr auto;align-items:center;gap:1.4rem;width:100%;min-height:140px;display:grid}.active-pile{place-items:center;min-height:130px;display:grid;position:relative}.play-stack{width:200px;height:120px;transform:translate(-50%,-50%)translateY(calc(var(--stack-index)*-12px));z-index:calc(10 + var(--stack-index));position:absolute;top:50%;left:50%}.play-card{transform:translate(-50%,-50%)translateX(var(--card-offset))rotate(var(--card-tilt));position:absolute;top:50%;left:50%;box-shadow:0 10px 18px #0a060466}.discard-pile{justify-items:center;gap:.4rem;min-width:90px;display:grid}.game-room .discard-pile{display:none}.discard-stack{width:70px;height:96px;position:relative}.discard-card{transform:translateX(calc(var(--discard-index)*3px))translateY(calc(var(--discard-index)*4px));background:linear-gradient(150deg,#6f4a34,#352016);border:1px solid #ffebd233;border-radius:12px;position:absolute;inset:0;box-shadow:inset 0 0 0 2px #ffebd21a}.discard-empty{text-transform:uppercase;letter-spacing:.16em;color:#e6e0d699;font-size:.75rem}.discard-count{color:#e6e0d6bf;font-size:.8rem}.table-seat{background:#18120c99;border:1px solid #ffe6c833;border-radius:999px;align-items:center;gap:.45rem;max-width:70%;padding:.45rem 1.1rem;font-size:.95rem;display:inline-flex;position:absolute;bottom:-1.5rem;left:50%;transform:translate(-50%)}.table-seat.turn-glow{position:absolute}.table-seat-name{color:#fff1d8;text-overflow:ellipsis;white-space:nowrap;max-width:18ch;font-weight:600;overflow:hidden}.table-card{color:#2d1a12;background:linear-gradient(160deg,#f8efe2,#e5d0b6);border-radius:12px;place-items:center;width:58px;height:86px;font-weight:600;display:grid;box-shadow:0 8px 16px #0a060459}.card-red{color:#b23a2b;text-shadow:0 1px #ffebd259}.card-black{color:#2d1a12}.table-empty{color:#e6e0d6b3;font-size:.95rem}.table-footer{text-align:center;color:#e6e0d6b3;font-size:.85rem}.opponents-area{z-index:3;pointer-events:none;position:absolute;inset:0}.opponent-panel{pointer-events:none;background:#1a100ca6;border:1px solid #ffebd22e;border-radius:20px;gap:.6rem;width:min(220px,30vw);padding:1rem 1.2rem 1.1rem;display:grid;position:absolute;transform:translate(-50%,-50%);box-shadow:0 16px 40px #0a060459}.opponent-panel.current{border-color:#f8d6a280;box-shadow:0 18px 50px #140a0680}.turn-glow{border-color:#ffd69680;position:relative;box-shadow:0 0 0 1px #ffd69659,0 18px 45px #1008048c,0 0 30px #ffb66059}.turn-glow:after{content:"";border-radius:inherit;pointer-events:none;border:1px solid #ffd69640;position:absolute;inset:-6px;box-shadow:0 0 22px #ffc47466}.opponent-header{justify-content:space-between;align-items:center;gap:.8rem;display:flex}.opponent-kept-inline{text-align:right;flex-wrap:wrap;justify-content:flex-end;align-items:center;gap:.45rem;display:flex}.opponent-kept-inline .kept-row{justify-content:flex-end}.opponent-kept-inline .kept-total{white-space:nowrap}.opponent-name{color:#f7ecd9;margin:0;font-size:1.05rem;font-weight:600}.player-chip{text-transform:uppercase;letter-spacing:.18em;color:#f6daaee6;background:#f6d19e33;border-radius:999px;padding:.3rem .6rem;font-size:.7rem}.dealer-chip{color:#bdeba3f2;background:#a3d67a33;border:1px solid #a3d67a73;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;margin-left:.5rem;font-size:.7rem;font-weight:700;display:inline-flex}.dealer-chip-seat{margin-left:.6rem}.eliminated-chip{color:#f39c96f2;background:#dd605433;border:1px solid #dd605480;border-radius:999px;justify-content:center;align-items:center;width:22px;height:22px;margin-left:.5rem;font-size:.7rem;font-weight:700;display:inline-flex}.eliminated-chip-seat{margin-left:.6rem}.opponent-cards{flex-wrap:wrap;gap:.4rem;display:flex}.opponent-reveal{border-radius:10px;width:48px;height:72px;font-size:.85rem}.card-back{background:linear-gradient(150deg,#784f35,#3c2518);border:1px solid #ffebd233;border-radius:10px;width:38px;height:56px;box-shadow:inset 0 0 0 2px #ffebd21f}.opponent-count{color:#f8eedfb3;margin:0;font-size:.85rem}.opponent-swap{text-transform:uppercase;letter-spacing:.08em;color:#f8eedfa6;font-size:.75rem}.kept-row{flex-wrap:wrap;justify-content:flex-end;gap:.4rem;display:flex}.kept-summary{justify-items:end;gap:.35rem;display:grid}.kept-row-inline,.my-hand .kept-row-inline{margin-left:auto}.kept-card{color:#2d1a12;background:linear-gradient(160deg,#f4e7d6,#d8c2a7);border-radius:10px;place-items:center;min-width:32px;height:48px;padding:0 .35rem;font-size:.85rem;font-weight:600;display:grid;box-shadow:0 6px 12px #0a06044d}.my-hand .kept-card{min-width:24px;height:36px;font-size:.7rem}.my-hand .kept-summary{text-align:right;justify-items:end}.my-hand .kept-summary-inline{flex-shrink:0;align-self:center;margin-left:auto}.kept-total{color:#f8eedfb3;text-transform:uppercase;letter-spacing:.08em;font-size:.75rem}.my-hand{z-index:2;background:#140c099e;border:1px solid #ffebd233;border-radius:22px;justify-self:center;gap:.4rem;width:fit-content;max-width:min(700px,88vw);padding:.65rem .8rem .75rem;display:grid;position:relative;box-shadow:0 18px 45px #0c060373}.my-hand-header{text-align:left;flex-wrap:wrap;justify-content:flex-start;align-items:center;gap:.45rem .8rem;width:100%;display:flex}.my-hand-title{color:#f7ecd9;margin:0;font-size:.95rem;font-weight:600}.my-hand-meta{text-transform:uppercase;letter-spacing:.08em;color:#f8eedfb3;font-size:.75rem}.my-hand-body{align-items:center;gap:.6rem;display:flex}.hand-area{gap:.35rem;display:grid}.hand-cards{flex-wrap:wrap;justify-content:flex-start;gap:.3rem;max-width:min(520px,70vw);display:flex}.hand-card{color:#2d1a12;cursor:pointer;background:linear-gradient(160deg,#fdf6eb,#e3ceb3);border:1px solid #dcc8b480;border-radius:10px;place-items:center;width:56px;height:84px;padding:0;font-size:.85rem;font-weight:600;transition:transform .2s,box-shadow .2s;display:grid}.hand-card:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 10px 20px #140a0659}.hand-card.selected{z-index:1;background:linear-gradient(160deg,#fff2dc,#f1cfa3);border-color:#ffd696f2;position:relative;transform:translateY(-6px)scale(1.05);box-shadow:0 0 0 3px #ffd69673,0 14px 24px #140a0666}.table-card.card-red,.hand-card.card-red,.kept-card.card-red,.played-card.card-red{color:#ff2d2d;text-shadow:0 2px #ffdcdca6}.table-card.card-black,.hand-card.card-black,.kept-card.card-black,.played-card.card-black{color:#2d1a12}.hand-card:disabled{color:#32221880;cursor:not-allowed;box-shadow:none;background:#ebe1d7b3}.hand-empty{color:#e6e0d6b3;text-align:left;width:100%;font-size:.95rem}.played-cards{flex-wrap:wrap;align-items:center;gap:.35rem;display:flex}.played-card{color:#2d1a12;background:linear-gradient(160deg,#f8efe2,#e5d0b6);border-radius:8px;place-items:center;width:44px;height:66px;font-size:.75rem;font-weight:600;display:grid;box-shadow:0 6px 12px #0a06044d}.room-actions,.room-actions-main{flex-wrap:wrap;justify-content:center;align-items:center;gap:1.2rem;display:flex}.room-actions-errors{flex-basis:100%;justify-items:center;gap:.35rem;display:grid}.chat-widget{z-index:200;justify-items:end;gap:.6rem;display:grid;position:fixed;bottom:1.4rem;right:1.4rem}.chat-toggle{color:#f8eedfeb;cursor:pointer;background:#1a100cbf;border:1px solid #ffebd240;border-radius:999px;padding:.55rem 1.2rem;font-weight:600;position:relative;box-shadow:0 14px 32px #0a060473}.chat-badge{color:#fff;background:#d8432f;border-radius:999px;justify-content:center;align-items:center;min-width:1.25rem;height:1.25rem;padding:0 .35rem;font-size:.65rem;font-weight:700;display:inline-flex;position:absolute;top:-.35rem;right:-.35rem;box-shadow:0 10px 18px #0a060473}.chat-panel{color:#f8eedfe6;background:#140c09db;border:1px solid #ffebd238;border-radius:20px;grid-template-rows:auto 1fr auto auto;gap:.6rem;width:min(360px,88vw);height:min(420px,60vh);padding:.9rem 1rem 1rem;display:none;box-shadow:0 22px 50px #08040299}.chat-widget.open .chat-panel{display:grid}.chat-header{justify-content:space-between;align-items:center;gap:.5rem;display:flex}.chat-title{text-transform:uppercase;letter-spacing:.2em;color:#f6e6d2bf;font-size:.7rem}.chat-close{color:#f8eedfd9;cursor:pointer;background:0 0;border:none;font-size:1.2rem}.chat-messages{gap:.55rem;padding-right:.2rem;display:grid;overflow-y:auto}.chat-message{align-items:baseline;gap:.4rem;font-size:.85rem;display:flex}.chat-author{color:#f8eedff2;font-weight:600}.chat-text{color:#e8e0d4d9;line-height:1.4}.chat-empty{color:#e6e0d6a6;margin:0;font-size:.85rem}.chat-error{color:#f5b69cf2;margin:0;font-size:.8rem}.chat-input{gap:.5rem;display:flex}.chat-input input{color:#f8eedfe6;background:#100a08b3;border:1px solid #ffebd240;border-radius:999px;flex:1;padding:.45rem .9rem}.chat-input input:disabled{opacity:.6}.chat-input button{color:#2d1a12;cursor:pointer;background:linear-gradient(135deg,#f2c98d,#d78c52);border:none;border-radius:999px;padding:.45rem 1rem;font-weight:600}.chat-input button:disabled{opacity:.6;cursor:not-allowed}.deal-controls{background:#18100c73;border:1px solid #ffebd233;border-radius:999px;flex-wrap:wrap;align-items:center;gap:.6rem;padding:.75rem 1rem;display:flex;box-shadow:0 12px 28px #0c060359}.deal-label{color:#f6e6d2cc;letter-spacing:.08em;text-transform:uppercase;font-size:.85rem}.deal-input{color:#2d1a12;background:#fdf6ebf2;border:1px solid #dcc8b480;border-radius:10px;width:72px;padding:.4rem .6rem;font-weight:600}.deal-input:focus{outline-offset:2px;outline:2px solid #588fdc99}.deal-button{color:#1f2c1f;cursor:pointer;background:linear-gradient(135deg,#a3d67a,#4b8a4f);border:none;border-radius:999px;padding:.6rem 1.4rem;font-size:.95rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 14px 28px #140a0659}.deal-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 18px 34px #140a0673}.deal-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.swap-button{color:#2d1a12;cursor:pointer;background:linear-gradient(135deg,#f2b9a0,#c46a52);border:none;border-radius:999px;padding:.8rem 2rem;font-size:.95rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 16px 30px #140a0659}.swap-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 20px 36px #140a0673}.swap-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.start-button{color:#1f2c1f;cursor:pointer;background:linear-gradient(135deg,#a3d67a,#4b8a4f);border:none;border-radius:999px;padding:.9rem 2.2rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 18px 35px #140a0666}.start-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 22px 40px #140a0680}.start-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.restart-button{color:#1c2b26;cursor:pointer;background:linear-gradient(135deg,#8fd0c5,#3b7f72);border:none;border-radius:999px;padding:.9rem 2.2rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 18px 35px #140a0666}.restart-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 22px 40px #140a0680}.restart-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.play-button{color:#2d1a12;cursor:pointer;background:linear-gradient(135deg,#f5c67c,#d67a45);border:none;border-radius:999px;padding:.9rem 2.2rem;font-size:1rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 18px 35px #140a0666}.play-button:hover:not(:disabled){transform:translateY(-2px);box-shadow:0 22px 40px #140a0680}.play-button:disabled{opacity:.6;cursor:not-allowed;box-shadow:none}.lobby-button{color:#f8eedfe6;cursor:pointer;background:#18100c99;border:1px solid #ffebd240;border-radius:999px;padding:.65rem 1.6rem;transition:transform .2s,box-shadow .2s}.lobby-button-top{padding:.55rem 1.2rem;font-size:.9rem}.lobby-button:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0c060366}.turn-note{color:#f6e6d2bf;font-size:.95rem}.room-error-text{color:#f5b69cf2;margin:0 0 1rem;font-size:1rem}.room-error{text-align:center;color:#f5b69cf2;flex-basis:100%;margin:0;font-size:.95rem}.room-loading{text-align:center;background:#1a100c99;border:1px solid #ffebd233;border-radius:22px;padding:3rem;font-size:1.2rem;box-shadow:0 18px 50px #0c060373}@media (max-width:720px){.room-top{flex-wrap:nowrap;align-items:flex-start;gap:.6rem;display:flex}.lobby-button-top{flex-shrink:0}.table-header{flex-direction:column;gap:.35rem}.join-card{flex-direction:column;align-items:flex-start}.join-card-actions{justify-content:flex-start;width:100%;margin-left:0}.status-card{flex:1 1 0;min-width:0;max-width:60vw;margin-left:0}.status-row{align-items:flex-start}}.actions{flex-wrap:wrap;justify-content:center;gap:1rem;margin-bottom:1.2rem;display:flex}.cta{letter-spacing:.02em;color:#2d1a12;cursor:pointer;background:linear-gradient(135deg,#f5c67c,#d67a45);border:none;border-radius:999px;padding:.9rem 2.6rem;font-size:1.05rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 18px 35px #140a0666}.cta.secondary{color:#2d1a12;background:linear-gradient(135deg,#e6decf,#c9a98a)}.cta:hover{transform:translateY(-2px);box-shadow:0 22px 40px #140a0680}.cta:active{transform:translateY(1px)}.cta:focus-visible{outline-offset:4px;outline:3px solid #f5d6a8e6}.hint{color:#f6e6d2b3;margin:0;font-size:.95rem}.rules-button{color:#f8eedfeb;text-transform:uppercase;letter-spacing:.16em;cursor:pointer;background:#18100c8c;border:1px solid #ffebd240;border-radius:999px;padding:.45rem 1.1rem;font-size:.75rem;transition:transform .2s,box-shadow .2s;position:absolute;bottom:1.2rem;right:1.6rem}.rules-button:hover{transform:translateY(-2px);box-shadow:0 12px 24px #0c060373}.rules-button:focus-visible{outline-offset:3px;outline:3px solid #f5d6a8e6}.rules-modal-backdrop{-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);z-index:30;background:#0a0503d9;justify-content:center;align-items:center;padding:1.5rem;display:flex;position:fixed;inset:0}.rules-modal{color:#f8eedff2;background:#1a100cf2;border:1px solid #ffebd233;border-radius:26px;gap:1.2rem;width:min(640px,92vw);max-height:86svh;padding:2rem;display:grid;overflow:auto;box-shadow:0 32px 80px #0c060399}.rules-title{color:#fff6e6;margin:0;font-size:clamp(1.8rem,4vw,2.4rem)}.rules-section{gap:.45rem;display:grid}.rules-heading{text-transform:uppercase;letter-spacing:.2em;color:#f6e6d2b3;margin:0;font-size:.8rem}.rules-list{color:#f8eedfd9;gap:.45rem;margin:0;padding-left:1.2rem;line-height:1.5;display:grid}.rules-close{color:#2d1a12;cursor:pointer;background:linear-gradient(135deg,#f5c67c,#d67a45);border:none;border-radius:999px;justify-self:end;padding:.6rem 1.6rem;font-weight:600;transition:transform .2s,box-shadow .2s;box-shadow:0 16px 30px #0c060366}.rules-close:hover{transform:translateY(-2px);box-shadow:0 20px 36px #0c060380}.shrub{background:radial-gradient(circle at 20% 25%,#7db65a 0 20px,#0000 21px),radial-gradient(circle at 45% 10%,#6da24a 0 18px,#0000 19px),radial-gradient(circle at 65% 28%,#5a8f3f 0 22px,#0000 23px),radial-gradient(circle at 35% 60%,#3f6a34 0 26px,#0000 27px),radial-gradient(circle at 70% 55%,#2f4d2b 0 24px,#0000 25px),linear-gradient(#3f6a34,#244126);border-radius:999px;position:absolute;bottom:6px;box-shadow:inset -16px -10px #00000040,inset 12px 6px #ffffff0f}.shrub-1{width:140px;height:70px;left:4%}.shrub-2{width:160px;height:76px;left:38%}.shrub-3{width:120px;height:64px;right:6%}.mushroom{filter:drop-shadow(0 6px 10px #0c080659);width:58px;height:82px;position:absolute;bottom:2px}.mushroom:before{content:"";background:radial-gradient(circle at 30%,#fce9e0 0 6px,#0000 7px),radial-gradient(circle at 70% 40%,#fce9e0 0 5px,#0000 6px),linear-gradient(#d6684c,#a94a32);border-radius:50% 50% 45% 45%;height:42px;position:absolute;top:0;left:0;right:0;box-shadow:inset 0 -8px #4a231866}.mushroom:after{content:"";background:linear-gradient(#f7ead9,#e0cbb5);border-radius:18px 18px 12px 12px;position:absolute;inset:30px 16px 0;box-shadow:inset 0 -6px #946e5033}.mushroom-1{left:20%;transform:scale(1.05)}.mushroom-2{left:50%;transform:scale(.85)translate(-50%)}.mushroom-3{right:18%;transform:scale(.95)}@media (max-width:720px){.page:not(.join-page){place-items:stretch stretch;padding:1.5rem}.page:not(.join-page) .hero{box-sizing:border-box;flex-direction:column;justify-content:center;width:100%;height:auto;min-height:0;display:flex}.hero{padding:2rem 1.5rem 2.4rem}.page:not(.join-page) .title-wrap{flex-direction:column;align-items:center;gap:.9rem;margin-bottom:.9rem;padding:.6rem 1.6rem 0;display:flex}.page:not(.join-page) .title{order:1;margin-top:0;transform:translateY(30px)}.page:not(.join-page) .flora{order:2;width:clamp(220px,70vw,360px);height:110px;margin:0;position:relative;bottom:auto;left:auto;transform:none}.page:not(.join-page) .form{text-align:center;width:100%;max-width:300px;margin:0 auto 1rem}.page:not(.join-page) .label{text-align:center}.page:not(.join-page) .input,.page:not(.join-page) .cta{box-sizing:border-box}.rules-button{padding:.4rem .9rem;font-size:.7rem;bottom:1rem;right:1rem}.rules-modal{max-height:88svh;padding:1.6rem}.page:not(.join-page) .actions{flex-direction:column;align-items:center;gap:.8rem;width:100%;max-width:300px;margin:0 auto 1.2rem}.page:not(.join-page) .cta{width:100%}.game-room{height:auto;min-height:100svh;padding:clamp(1.4rem,3vh,2.4rem) 1rem 3.6rem;overflow-x:hidden}.room-shell{grid-template-rows:auto auto auto auto;gap:1.2rem;width:min(560px,94vw);height:auto}.status-card{display:none}.mobile-only{display:block}.mobile-state{justify-items:center;margin-top:1.2rem;display:grid}.opponent-panel{width:fit-content;min-width:0;max-width:86vw;box-shadow:none;text-align:center;background:#18120c8c;border:1px solid #ffebd22e;border-radius:999px;flex-direction:column;justify-content:center;align-items:center;gap:.2rem;padding:.35rem .7rem;display:inline-flex;overflow:visible}.opponent-panel.current{box-shadow:0 0 0 1px #ffd69659}.opponent-panel .player-chip,.opponent-panel .dealer-chip,.opponent-panel .opponent-count,.opponent-panel .opponent-swap,.opponent-panel .opponent-kept-inline,.opponent-panel .kept-summary,.opponent-panel .kept-row{display:none}.opponent-header{flex-direction:row;justify-content:center;gap:0;width:auto;display:inline-flex}.opponent-name{text-overflow:ellipsis;white-space:nowrap;width:max-content;max-width:100%;font-size:.85rem;overflow:hidden}.opponent-panel .opponent-cards{justify-content:center;gap:.25rem;margin-top:.2rem;display:flex}.opponent-panel .opponent-reveal{width:36px;height:54px;font-size:.65rem}.table-stage{width:min(74vw,336px);height:min(74vw,336px)}.opponents-area{inset:-6%}.window{width:60px;height:60px}.door{width:80px;height:130px}.cabin{height:190px}.table-header{justify-content:center}.table-cards{grid-template-columns:1fr;gap:1rem}.table-seat{bottom:-3rem}.table-played{gap:.8rem;width:min(360px,84%)}.table-played-top{top:12%}.table-played-bottom{bottom:20%}.active-pile{min-height:110px}.play-stack{width:160px;height:110px}.discard-pile{display:none}.discard-stack{width:64px;height:86px}.my-hand{justify-self:center;width:min(90vw,420px);max-width:90vw;margin-top:1rem}.my-hand-header{flex-direction:column;align-items:center;gap:.4rem}.hand-cards{justify-content:flex-start}.hand-card{width:50px;height:74px;font-size:.8rem}.played-card{width:38px;height:58px;font-size:.7rem}.room-actions{text-align:center;flex-direction:column;align-items:center;gap:1.2rem;width:100%}.room-actions-main{text-align:center;flex-direction:column;align-items:center;gap:.8rem;width:100%}.turn-note{text-align:center;max-width:28ch}.room-actions-errors{width:100%}.deal-controls{justify-content:center}.table-zone{z-index:0;justify-items:center;margin-top:0;position:relative}.table-stage{z-index:0}.my-hand,.room-actions{z-index:2;position:relative}.chat-widget{bottom:1rem;right:1rem}.chat-panel{width:min(94vw,420px);height:min(55vh,420px)}}@media (max-width:420px){.page:not(.join-page){padding:1.1rem 1rem 1.4rem}.page:not(.join-page) .hero{gap:.4rem;padding:1.6rem 1.1rem 1.8rem}.page:not(.join-page) .title{font-size:clamp(2.4rem,10vw,3.4rem)}.page:not(.join-page) .subtitle{margin-bottom:1.4rem;font-size:.95rem}.page:not(.join-page) .actions{margin-bottom:.9rem}}@media (min-width:900px){.hero{width:min(1150px,92vw);padding:clamp(3.2rem,4.6vw,5.2rem)}.subtitle{max-width:48ch}}
