/*! tailwindcss v4.2.1 | MIT License | https://tailwindcss.com */
@layer theme{:root,:host{--spacing:.25rem;--default-font-family:var(--font-geist-sans);--default-mono-font-family:var(--font-geist-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{.start{inset-inline-start:var(--spacing)}.end{inset-inline-end:var(--spacing)}.table{display:table}.antialiased{-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}}:root{--background:#10251c;--foreground:#fff8e8;--panel:#141f1ce0;--panel-strong:#0e1915f5;--felt:#1f7653;--felt-dark:#0d3e30;--rail:#7a4226;--rail-dark:#3b2018;--cream:#fff4dc;--muted:#fff4dcb3;--line:#fff4dc2e;--danger:#d9274f;--warm:#ffcc62;--focus:#67c7ff;--hand-card-width:5.2rem}*{box-sizing:border-box}html{background:var(--background);min-height:100%}body{min-height:100%;color:var(--foreground);background:radial-gradient(circle at 12% 8%,#ffcc6233,#0000 25rem),radial-gradient(circle at 90% 16%,#52b7e22e,#0000 28rem),linear-gradient(135deg,#10251c 0%,#21553d 44%,#2b1c18 100%);margin:0;font-family:Arial,Helvetica,sans-serif}.game-navigation{z-index:50;top:max(.6rem, env(safe-area-inset-top));right:max(.6rem, env(safe-area-inset-right));position:fixed}.game-navigation a,.lobby-sign-in{color:#fffaf1;text-transform:uppercase;-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);background:#091813e6;border:1px solid #fff4dc4d;border-radius:999px;justify-content:center;align-items:center;min-height:2.6rem;padding:.55rem .8rem;font-size:.78rem;font-weight:900;text-decoration:none;display:inline-flex;box-shadow:0 .7rem 1.5rem #00000040}.game-navigation a:hover,.lobby-sign-in:hover{border-color:var(--warm);color:var(--warm);transform:translateY(-.08rem)}button,input{font:inherit}button{touch-action:manipulation}button:focus-visible,input:focus-visible{outline:3px solid var(--focus);outline-offset:3px}button:disabled{cursor:not-allowed;opacity:.45}.game-shell{min-height:100vh;padding:clamp(.75rem,2.5vw,1.5rem)}.game-board{grid-template-columns:minmax(18rem,24rem) minmax(0,1fr);gap:clamp(.8rem,2vw,1.25rem);max-width:96rem;min-height:calc(100vh - clamp(1.5rem,5vw,3rem));margin:0 auto;display:grid}.control-rail,.table-surface{border:1px solid var(--line);border-radius:.5rem;box-shadow:0 1.5rem 3.5rem #060e0b57}.control-rail{background:var(--panel);-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);flex-direction:column;gap:1rem;min-height:100%;padding:clamp(1rem,2vw,1.35rem);display:flex}.brand-block{gap:.35rem;display:grid}.eyebrow,.label,.phase-card-panel span,.status-grid span,.result-panel>span{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.73rem;font-weight:850}.brand-block h1{color:#fffaf1;letter-spacing:0;margin:0;font-size:clamp(3.2rem,9vw,5.8rem);font-weight:950;line-height:.86}.setup-panel,.status-panel{gap:1rem;display:grid}.segmented-control{border:1px solid var(--line);background:#fff4dc14;border-radius:.5rem;grid-template-columns:repeat(2,minmax(0,1fr));gap:.45rem;padding:.35rem;display:grid}.segmented-control button,.turn-actions button,.primary-action,.secondary-action,.result-panel button,.hand-card-actions button{min-height:2.8rem;color:var(--cream);border:0;border-radius:.5rem;font-weight:850}.segmented-control button{background:0 0}.segmented-control .selected{color:#2a190b;background:var(--warm)}.range-field{grid-template-columns:1fr auto;align-items:center;gap:.5rem 1rem;display:grid}.range-field span{color:var(--muted);font-weight:800}.range-field strong{color:#fffaf1;font-size:1.25rem}.range-field input{width:100%;accent-color:var(--warm);grid-column:1/-1}.range-field.muted{opacity:.58}.phase-preview-list{gap:.35rem;max-height:min(21rem,38vh);padding-right:.25rem;display:grid;overflow:auto}.phase-preview-list div{background:#fff4dc12;border:1px solid #fff4dc1f;border-radius:.5rem;grid-template-columns:2rem 1fr;align-items:center;gap:.5rem;padding:.55rem .65rem;display:grid}.phase-preview-list span{aspect-ratio:1;color:#2b190a;background:var(--warm);border-radius:50%;place-items:center;width:1.55rem;font-weight:900;display:grid}.phase-preview-list strong{overflow-wrap:anywhere}.primary-action,.result-panel button{color:#fffaf1;background:linear-gradient(135deg, #f15b3b, var(--danger));min-height:3.3rem;box-shadow:0 1rem 2rem #d9274f40}.secondary-action,.turn-actions button,.hand-card button{background:#fff4dc21}.status-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.55rem;display:grid}.status-grid div,.phase-card-panel{background:#fff4dc14;border:1px solid #fff4dc24;border-radius:.5rem}.status-grid div{gap:.25rem;min-width:0;padding:.7rem;display:grid}.status-grid strong{overflow-wrap:anywhere}.phase-card-panel{gap:.45rem;padding:.9rem;display:grid}.phase-card-panel strong{color:#fffaf1;font-size:1.05rem;line-height:1.25}.phase-card-panel p{color:var(--muted);margin:0;font-size:.9rem;line-height:1.4}.rail-actions{gap:.6rem;display:grid}.table-surface{background:linear-gradient(115deg, transparent 0 38%, #ffffff12 42%, transparent 46% 100%), linear-gradient(90deg, #ffffff0a 1px, transparent 1px), linear-gradient(0deg, #ffffff09 1px, transparent 1px), radial-gradient(circle at center, var(--felt) 0%, var(--felt-dark) 74%);background-size:240% 100%,1.5rem 1.5rem,1.5rem 1.5rem,100% 100%;grid-template-rows:auto minmax(18rem,1fr) auto auto auto;gap:clamp(.65rem,1.5vw,1rem);padding:clamp(.8rem,2vw,1.2rem);animation:12s linear infinite table-shimmer;display:grid;position:relative;overflow:hidden}.table-surface:before{content:"";pointer-events:none;border:.35rem solid #7a4226e6;border-radius:.5rem;position:absolute;inset:.65rem;box-shadow:inset 0 0 0 1px #fff4dc2e}.top-strip,.table-center,.action-bar,.hand-zone,.phase-staging,.attract-table{z-index:1;position:relative}.turn-ribbon{z-index:2;color:#fffaf1;pointer-events:none;background:#091813cc;border:1px solid #fff4dc38;border-radius:999px;grid-template-columns:auto auto;align-items:center;gap:.45rem;padding:.4rem .75rem;display:grid;position:absolute;top:.95rem;left:50%;transform:translate(-50%);box-shadow:0 .8rem 1.5rem #0000003d}.turn-ribbon span,.turn-ribbon strong{letter-spacing:0;text-transform:uppercase;white-space:nowrap;font-size:.76rem;font-weight:900}.turn-ribbon strong{color:#241708;background:var(--warm);border-radius:999px;place-items:center;min-width:4.2rem;padding:.22rem .5rem;display:grid}.table-surface.turn-human{box-shadow:0 1.5rem 3.5rem #060e0b57,inset 0 -.35rem #ffcc62b8}.table-surface.turn-ai{box-shadow:0 1.5rem 3.5rem #060e0b57,inset 0 .35rem #67c7ffb8}.table-surface.thinking .turn-ribbon strong:after{content:"";background:#241708;border-radius:50%;width:.3rem;height:.3rem;margin-left:.22rem;animation:.9s ease-in-out infinite thinking-pulse;display:inline-block}.top-strip,.action-bar{grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.75rem;display:grid}.player-badge{background:#051c149e;border:1px solid #fff4dc2e;border-radius:.5rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.4rem .8rem;min-width:0;padding:.75rem;display:grid}.player-badge.active{border-color:#ffcc62b8;box-shadow:0 0 0 3px #ffcc621f}.player-badge div{gap:.15rem;min-width:0;display:grid}.player-badge span,.player-badge small{color:var(--muted);letter-spacing:0;text-transform:uppercase;font-size:.76rem;font-weight:800}.player-badge strong{color:#fffaf1;font-size:1rem}.player-badge p{color:#fffaf1;overflow-wrap:anywhere;grid-column:1/-1;margin:0}.player-badge small{color:var(--warm);justify-self:end}.opponent-hand{width:clamp(5rem,12vw,8.4rem);height:4.6rem;position:relative}.opponent-hand span{aspect-ratio:.7;transform-origin:bottom;background:linear-gradient(90deg,#0000 12%,#fff4dc3b 13% 20%,#0000 21% 79%,#fff4dc3b 80% 87%,#0000 88%),linear-gradient(0deg,#1d355f 0 38%,#304e86 39% 62%,#162b50 63% 100%);border:2px solid #fff4dcdb;border-radius:.45rem;width:2.45rem;position:absolute;bottom:.25rem;left:1.6rem;box-shadow:0 .6rem 1rem #00000038}.opponent-hand span:first-child{transform:translate(-1.8rem)rotate(-18deg)}.opponent-hand span:nth-child(2){transform:translate(-1.4rem)rotate(-14deg)}.opponent-hand span:nth-child(3){transform:translate(-1rem)rotate(-10deg)}.opponent-hand span:nth-child(4){transform:translate(-.6rem)rotate(-6deg)}.opponent-hand span:nth-child(5){transform:translate(-.2rem)rotate(-2deg)}.opponent-hand span:nth-child(6){transform:translate(.2rem)rotate(2deg)}.opponent-hand span:nth-child(7){transform:translate(.6rem)rotate(6deg)}.opponent-hand span:nth-child(8){transform:translate(1rem)rotate(10deg)}.opponent-hand span:nth-child(9){transform:translate(1.4rem)rotate(14deg)}.opponent-hand span:nth-child(10){transform:translate(1.8rem)rotate(18deg)}.opponent-hand strong{color:#2b190a;background:var(--warm);border-radius:50%;place-items:center;min-width:1.75rem;height:1.75rem;font-size:.85rem;display:grid;position:absolute;bottom:0;right:0}.table-center{grid-template-columns:minmax(8rem,13rem) minmax(0,1fr);gap:clamp(.75rem,2vw,1rem);min-height:0;display:grid}.pile-row{align-content:center;justify-items:center;gap:1rem;display:grid}.deck-pile,.discard-pile{aspect-ratio:.72;color:#fffaf1;border:0;border-radius:.5rem;place-items:center;width:min(9.5rem,32vw);max-width:100%;display:grid;box-shadow:0 1rem 1.8rem #050d0a47}.deck-pile{background:linear-gradient(90deg,#0000 12%,#fff4dc33 13% 20%,#0000 21% 79%,#fff4dc33 80% 87%,#0000 88%),linear-gradient(0deg,#1d355f 0 38%,#304e86 39% 62%,#162b50 63% 100%);border:.32rem solid #fff4dc;transition:transform .18s,box-shadow .18s;position:relative}.deck-pile:before{color:#fff4dc52;content:"♜";pointer-events:none;font-size:clamp(2.4rem,6vw,4.6rem);position:absolute;top:14%;left:50%;transform:translate(-50%)}.deck-pile:not(:disabled):hover,.discard-pile:not(:disabled):hover{transform:translateY(-.2rem);box-shadow:0 1.2rem 2rem #050d0a57}.deck-pile span{color:#fff4dcd1;text-transform:uppercase;font-size:.82rem;font-weight:850}.deck-pile strong{font-size:clamp(1.7rem,4vw,2.6rem);line-height:1}.discard-pile{background:#fff4dc1c}.discard-pile .game-card{width:100%;height:100%}.meld-table{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:.7rem;min-height:0;padding:.15rem;display:grid;overflow:auto}.empty-table{color:#fff4dcb8;border:1px dashed #fff4dc4d;border-radius:.5rem;place-items:center;min-height:9rem;font-weight:850;display:grid}.meld{background:#051c148f;border:1px solid #fff4dc2e;border-radius:.5rem;gap:.55rem;min-width:0;padding:.65rem;display:grid}.meld.hit-active{border-color:#67c7ff47}.meld.drop-target{box-shadow:inset 0 0 0 1px #67c7ff29}.meld.drop-target .hit-slot{color:#fff4dce6;border-color:#67c7ff57}.meld header{justify-content:space-between;align-items:center;gap:.75rem;min-width:0;display:flex}.meld header span{color:#fffaf1;overflow-wrap:anywhere;min-width:0;font-weight:900}.meld header small{color:var(--warm);font-weight:850}.meld-cards{grid-template-columns:repeat(auto-fill,minmax(2.55rem,3rem));gap:.35rem;display:grid}.meld-cards .game-card{border-width:.16rem}.meld-cards .game-card:after{inset:.25rem}.meld-cards .card-corner{font-size:.64rem;top:.16rem;left:.18rem}.meld-cards .card-center{font-size:clamp(1.1rem,1.7vw,1.55rem)}.meld-cards .card-note{font-size:.48rem;bottom:.16rem;right:.2rem}.run-hit-layout{grid-template-columns:3.5rem minmax(0,1fr) 3.5rem;align-items:stretch;gap:.45rem;display:grid}.hit-slot,.hit-indicator{color:#fff4dcbd;letter-spacing:0;text-transform:uppercase;background:#fff4dc1a;border:1px solid #fff4dc2e;border-radius:.5rem;place-items:center;min-height:2.7rem;font-size:.78rem;font-weight:900;display:grid}.hit-slot.ready,.hit-indicator.ready{color:#2b190a;background:var(--warm);border-color:#ffcc62db;box-shadow:0 0 0 3px #ffcc6224}.hit-slot.body{min-height:2.45rem}.game-card{aspect-ratio:.72;color:#fffaf1;border:.22rem solid #fffaf1;border-radius:.5rem;place-items:center;width:100%;min-width:0;transition:transform .18s,box-shadow .18s,filter .18s;animation:.22s both card-pop;display:grid;position:relative;overflow:hidden;transform:translateY(0)rotate(0);box-shadow:0 .65rem 1rem #050d0a33}.game-card:not(:disabled):hover{transform:translateY(-.18rem);box-shadow:0 .9rem 1.25rem #050d0a42}.game-card.selected{filter:saturate(1.1);transform:translateY(-.35rem);box-shadow:0 0 0 3px #ffcc62cc,0 1rem 1.35rem #050d0a47}.game-card:after{content:"";pointer-events:none;border:1px solid #ffffff6b;border-radius:.35rem;position:absolute;inset:.45rem}.game-card:before{color:#ffffff1a;content:"♜";pointer-events:none;font-size:clamp(2.6rem,7vw,5rem);line-height:1;position:absolute;bottom:-11%;right:-8%}.game-card.red{background:linear-gradient(145deg,#f3583f,#a90f29)}.game-card.blue{background:linear-gradient(145deg,#32a7de,#17417f)}.game-card.green{background:linear-gradient(145deg,#34ba7b,#116a41)}.game-card.yellow{color:#2c1905;background:linear-gradient(145deg,#ffdc62,#e18a22)}.game-card.wild{background:linear-gradient(135deg,#ef4d3a 0 25%,#ffcf58 25% 50%,#2ca4df 50% 75%,#40b86d 75% 100%)}.game-card.skip{background:radial-gradient(circle,#ffffff3d,#0000 35%),linear-gradient(145deg,#24242c,#6b2034)}.card-corner,.card-center,.card-note{z-index:1;position:relative}.card-corner{font-size:clamp(.68rem,2vw,.9rem);font-weight:950;position:absolute;top:.28rem;left:.34rem}.card-corner.bottom{inset:auto .34rem .28rem auto;transform:rotate(180deg)}.card-center{font-size:clamp(1.35rem,4vw,2.55rem);font-weight:950;line-height:1}.card-note{color:#fffaf1e6;text-transform:uppercase;max-width:calc(100% - 2.2rem);font-size:.58rem;font-weight:900;position:absolute;bottom:.3rem;left:50%;right:auto;transform:translate(-50%)}.game-card.yellow .card-note{color:#2c1905d9}.game-card.yellow:before{color:#2c19051a}.turn-actions{grid-template-columns:repeat(2,minmax(7rem,1fr));gap:.55rem;display:grid}.turn-actions button:not(:disabled),.hand-card-actions button:not(:disabled),.secondary-action:not(:disabled){background:#fff4dc33}.phase-staging{background:#081d16ad;border:1px solid #fff4dc2e;border-radius:.5rem;grid-template-columns:minmax(7rem,auto) minmax(0,1fr);align-items:center;gap:.75rem;padding:.65rem;display:grid}.phase-staging.ready{border-color:#ffcc62d1;box-shadow:0 0 0 3px #ffcc621f}.phase-staging header{gap:.2rem;display:grid}.phase-staging header span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:900}.phase-staging header strong{color:#fffaf1;font-size:1.7rem;line-height:1}.staged-cards{gap:.45rem;min-width:0;padding:.15rem;display:flex;overflow-x:auto}.staged-card{flex:0 0 4.25rem}.staging-empty{color:#fff4dcbf;border:1px dashed #fff4dc47;border-radius:.5rem;place-items:center;min-width:12rem;min-height:5.3rem;font-weight:850;display:grid}.hand-zone{scroll-snap-type:x proximity;gap:clamp(.4rem,1.1vw,.7rem);padding:.35rem .2rem .5rem;display:flex;overflow:auto hidden}.hand-card{flex:0 0 var(--hand-card-width);min-width:var(--hand-card-width);scroll-snap-align:start;gap:.4rem;display:grid}.hand-card .game-card{min-height:0}.hand-card-actions{grid-template-columns:1fr;gap:.25rem;display:grid}.hand-card-actions button{min-height:2.2rem;font-size:.76rem}.result-overlay{z-index:5;-webkit-backdrop-filter:blur(4px);backdrop-filter:blur(4px);background:#060e0b9e;place-items:center;padding:1rem;display:grid;position:absolute;inset:0}.result-panel{background:var(--panel-strong);border:1px solid #fff4dc47;border-radius:.5rem;gap:1rem;width:min(100%,30rem);padding:clamp(1rem,3vw,1.4rem);display:grid;box-shadow:0 1.5rem 4rem #00000059}.result-panel h2{color:#fffaf1;letter-spacing:0;margin:0;font-size:clamp(2rem,7vw,3.2rem);line-height:.96}.score-lines{gap:.55rem;display:grid}.score-lines div{border-bottom:1px solid #fff4dc24;grid-template-columns:minmax(0,1fr) auto;gap:.2rem .8rem;padding-bottom:.55rem;display:grid}.score-lines span{color:#fffaf1;font-weight:850}.score-lines strong{color:var(--warm);font-size:1.3rem}.score-lines small{color:var(--muted);grid-column:1/-1}.attract-table{grid-template-rows:auto 1fr auto;gap:1rem;min-height:100%;display:grid}.sample-opponent{justify-content:flex-end;display:flex}.sample-piles{justify-content:center;align-items:center;gap:clamp(1rem,4vw,2rem);display:flex}.sample-hand{grid-template-columns:repeat(6,minmax(2.7rem,1fr));gap:clamp(.4rem,1.4vw,.75rem);display:grid}@media (width<=1120px){.game-board{grid-template-columns:1fr}.control-rail{min-height:auto}.brand-block{grid-template-columns:auto 1fr;align-items:end;column-gap:1rem}.brand-block h1{font-size:clamp(2.6rem,9vw,4.4rem)}.setup-panel{grid-template-columns:minmax(14rem,.75fr) minmax(14rem,1fr);align-items:start}.phase-preview-list{grid-row:span 3;max-height:16rem}}@media (width<=760px){.game-shell{padding:0}.game-board{gap:0;min-height:100vh}.control-rail,.table-surface{border-radius:0}.setup-panel{grid-template-columns:1fr}.phase-preview-list{grid-row:auto}.table-surface{grid-template-rows:auto minmax(18rem,1fr) auto auto auto;min-height:42rem}.table-center{grid-template-columns:1fr}.pile-row{grid-template-columns:repeat(2,minmax(0,7rem));justify-content:center}.deck-pile,.discard-pile{width:min(7rem,40vw)}.meld-table{grid-template-columns:1fr;align-content:start}.top-strip,.action-bar{grid-template-columns:1fr}.opponent-hand{justify-self:end}.turn-actions{grid-template-columns:repeat(2,minmax(0,1fr))}.phase-staging{grid-template-columns:1fr}.run-hit-layout{grid-template-columns:3.1rem minmax(0,1fr) 3.1rem}.sample-hand{grid-template-columns:repeat(3,minmax(0,1fr))}}@media (width<=520px){.control-rail{padding:.85rem}.brand-block{display:block}.brand-block h1{font-size:3rem}.status-grid{grid-template-columns:1fr}.table-surface{padding:.7rem}.table-surface:before{border-width:.22rem;inset:.35rem}.meld-cards{grid-template-columns:repeat(auto-fill,minmax(2.05rem,1fr))}.card-center{font-size:clamp(1.2rem,8vw,2rem)}:root{--hand-card-width:4.35rem}}.realtime-lobby{border-top:1px solid #fff4dc2e;gap:.75rem;padding-top:1rem;display:grid}.realtime-lobby header,.lobby-actions,.lobby-room li{justify-content:space-between;align-items:center;gap:.55rem;display:flex}.realtime-lobby header div,.lobby-code{gap:.15rem;display:grid}.realtime-lobby header span,.lobby-code span,.lobby-entry label span{color:var(--muted);text-transform:uppercase;font-size:.72rem;font-weight:900}.connection-state{background:#fff4dc1f;border-radius:999px;padding:.3rem .55rem;font-size:.72rem;font-weight:900}.connection-state.connected{color:#8ff0ba}.connection-state.reconnecting{color:var(--warm)}.lobby-entry{gap:.65rem;display:grid}.lobby-choice{background:#fff4dc0d;border:1px solid #fff4dc24;border-radius:.55rem;grid-template-columns:minmax(0,1fr) auto;align-items:center;gap:.65rem;padding:.7rem;display:grid}.lobby-choice>div{gap:.15rem;display:grid}.lobby-choice span{color:var(--warm);text-transform:uppercase;font-size:.7rem;font-weight:900}.lobby-choice small{color:var(--muted)}.lobby-choice label{gap:.2rem;min-width:8rem;display:grid}.lobby-choice input{color:#fffaf1;text-transform:uppercase;background:#051c149e;border:1px solid #fff4dc33;border-radius:.45rem;width:100%;padding:.65rem}.lobby-choice .primary-action{width:auto;min-height:auto;padding:.65rem .8rem;font-size:.85rem}@media (width<=520px){.lobby-choice{grid-template-columns:1fr}.lobby-choice button{width:100%}}.lobby-room{gap:.65rem;display:grid}.lobby-code strong{color:var(--warm);letter-spacing:.18em;font-size:1.65rem}.lobby-room ul{gap:.35rem;margin:0;padding:0;list-style:none;display:grid}.lobby-room li{border:1px solid #fff4dc24;border-radius:.45rem;padding:.5rem}.lobby-room li span{font-weight:850}.lobby-room li em{color:var(--warm);text-transform:uppercase;margin-left:.4rem;font-size:.68rem;font-style:normal}.lobby-room li strong{color:var(--muted);margin-left:auto;font-size:.75rem}.lobby-actions{flex-wrap:wrap;justify-content:flex-start}.lobby-error{color:#ffb3b3;margin:0;font-size:.85rem;font-weight:800}.online-table-surface{grid-template-rows:auto minmax(18rem,1fr) auto auto auto}.online-opponent-strip{padding-top:2.5rem;display:block}.online-opponent-grid{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));gap:.55rem;display:grid}.online-opponent-grid .player-badge{padding:.55rem .65rem}.online-roster{gap:.35rem;display:grid}.online-roster>div{color:var(--muted);border:1px solid #fff4dc1f;border-radius:.45rem;grid-template-columns:minmax(0,1fr) auto;gap:.5rem;padding:.48rem .55rem;font-size:.76rem;display:grid}.online-roster>div.active{color:#fffaf1;background:#ffcc6214;border-color:#ffcc62a6}.online-roster span{text-overflow:ellipsis;white-space:nowrap;min-width:0;font-weight:850;overflow:hidden}.online-roster strong{color:var(--warm);white-space:nowrap;font-size:.7rem}.online-log{border-top:1px solid #fff4dc1f;gap:.25rem;max-height:8rem;padding-top:.65rem;display:grid;overflow:auto}.online-log p{color:var(--muted);margin:0;font-size:.76rem;line-height:1.35}.online-discard small{color:#fffaf1;text-transform:uppercase;font-size:.6rem;font-weight:900;position:absolute;bottom:.2rem;left:.25rem;right:.25rem}.online-table-error{z-index:5;color:#ffe4e4;background:#500a14eb;border:1px solid #ff787873;border-radius:.45rem;max-width:min(28rem,100% - 2.4rem);margin:0;padding:.55rem .7rem;font-size:.82rem;font-weight:800;position:absolute;bottom:1rem;right:1.2rem}@media (width<=760px){.online-opponent-grid{grid-template-columns:1fr}.online-opponent-strip{padding-top:3rem}.online-roster>div{grid-template-columns:1fr}.online-roster strong{white-space:normal}}.multiplayer-shell{color:#fffaf1;background:radial-gradient(circle at top,#174b37,#081c16 70%);align-content:start;gap:1rem;min-height:100vh;padding:clamp(.8rem,2vw,1.5rem);display:grid}.multiplayer-header,.multiplayer-turn,.multiplayer-hand,.multiplayer-table,.multiplayer-result,.multiplayer-log{background:#061913c7;border:1px solid #fff4dc29;border-radius:.7rem;box-shadow:0 1rem 2rem #00000029}.multiplayer-header{justify-content:space-between;align-items:center;gap:1rem;padding:1rem;display:flex}.multiplayer-header h1,.multiplayer-header p{margin:.15rem 0 0}.multiplayer-header>div:first-child>span{color:var(--warm);text-transform:uppercase;font-weight:900}.multiplayer-turn{text-align:right;gap:.2rem;min-width:10rem;padding:.65rem .85rem;display:grid}.multiplayer-turn strong{color:var(--warm);text-transform:uppercase}.multiplayer-opponents{grid-template-columns:repeat(auto-fit,minmax(12rem,1fr));gap:.65rem;display:grid}.multiplayer-opponents article{background:#fff4dc12;border:1px solid #fff4dc24;border-radius:.6rem;gap:.2rem;padding:.75rem;display:grid}.multiplayer-opponents article.active{border-color:var(--warm);box-shadow:0 0 0 3px #ffcc621f}.multiplayer-opponents span{color:var(--muted)}.multiplayer-opponents em{color:#8ff0ba;text-transform:uppercase;font-size:.75rem;font-style:normal;font-weight:900}.multiplayer-table{grid-template-columns:minmax(9rem,13rem) 1fr;gap:1rem;min-height:18rem;padding:1rem;display:grid}.multiplayer-piles{align-content:center;gap:.75rem;display:grid}.multiplayer-piles button{border:2px solid #fff4dc4d;border-radius:.65rem;place-items:center;min-height:7rem;display:grid}.multiplayer-piles strong{font-size:1.35rem}.multiplayer-melds{grid-template-columns:repeat(auto-fit,minmax(13rem,1fr));align-content:start;gap:.65rem;display:grid}.multiplayer-melds article{border:1px solid #fff4dc26;border-radius:.55rem;gap:.55rem;padding:.65rem;display:grid}.multiplayer-melds article header,.multiplayer-melds article footer{flex-wrap:wrap;justify-content:space-between;gap:.35rem;display:flex}.multiplayer-melds article>div{flex-wrap:wrap;gap:.3rem;display:flex}.multiplayer-melds i{color:#241708;background:var(--warm);border-radius:.35rem;padding:.3rem .4rem;font-size:.75rem;font-style:normal;font-weight:900}.multiplayer-hand{gap:.75rem;padding:1rem;display:grid}.multiplayer-hand header,.multiplayer-hand footer{flex-wrap:wrap;justify-content:space-between;align-items:center;gap:.5rem;display:flex}.multiplayer-hand>div{grid-template-columns:repeat(auto-fill,minmax(4rem,1fr));gap:.5rem;display:grid}.multiplayer-hand>div button{color:#fff;background:#555;border:3px solid #fffaf1;border-radius:.55rem;place-items:center;min-height:6rem;display:grid}.multiplayer-hand>div button.red{background:#b32639}.multiplayer-hand>div button.blue{background:#2462a8}.multiplayer-hand>div button.green{background:#168254}.multiplayer-hand>div button.yellow{color:#2c1905;background:#e9ac2e}.multiplayer-hand>div button.wild{background:linear-gradient(135deg,#b32639 25%,#e9ac2e 25% 50%,#2462a8 50% 75%,#168254 75%)}.multiplayer-hand>div button.skip{background:#53263c}.multiplayer-hand>div button.selected{outline:4px solid var(--warm);transform:translateY(-.25rem)}.multiplayer-hand>div button strong{text-transform:uppercase;font-size:1.4rem}.multiplayer-hand>div button span{text-transform:uppercase;font-size:.65rem}.multiplayer-hand footer{justify-content:flex-start}.multiplayer-result{place-items:center;gap:.75rem;padding:1rem;display:grid}.multiplayer-result h2{margin:0}.multiplayer-log{gap:.2rem;padding:.75rem;display:grid}.multiplayer-log p{color:var(--muted);margin:0;font-size:.82rem}.touch-draggable{touch-action:none;-webkit-user-select:none;user-select:none}.phase-staging[data-card-drop=stage],.multiplayer-phase-drop{border-style:dashed}.multiplayer-hand>.multiplayer-phase-drop{min-height:3.5rem;color:var(--muted);background:#fff4dc0a;border:2px dashed #fff4dc4d;border-radius:.55rem;justify-content:space-between;align-items:center;gap:.75rem;padding:.65rem .8rem;display:flex}.multiplayer-hand>.multiplayer-phase-drop.has-cards{border-color:var(--warm);color:#fffaf1;background:#ffcc6214}.touch-card-ghost,.multiplayer-touch-ghost{z-index:1000;pointer-events:none;opacity:.92;filter:drop-shadow(0 .8rem 1rem #00000073);width:4.5rem;height:6.3rem;position:fixed;transform:translate(-50%,-58%)rotate(3deg)}.touch-card-ghost .game-card{width:100%;height:100%}.multiplayer-touch-ghost{color:#fff;background:#555;border:3px solid #fffaf1;border-radius:.55rem;place-items:center;display:grid}.multiplayer-touch-ghost.red{background:#b32639}.multiplayer-touch-ghost.blue{background:#2462a8}.multiplayer-touch-ghost.green{background:#168254}.multiplayer-touch-ghost.yellow{color:#2c1905;background:#e9ac2e}.multiplayer-touch-ghost.wild{background:linear-gradient(135deg,#b32639 25%,#e9ac2e 25% 50%,#2462a8 50% 75%,#168254 75%)}.multiplayer-touch-ghost.skip{background:#53263c}[data-card-drop],[data-multi-drop]{scroll-margin:1rem}@media (pointer:coarse){[data-card-drop],[data-multi-drop]{outline-offset:3px}.hit-slot{min-height:3.2rem}.multiplayer-melds article footer button{min-height:2.9rem}}@media (width<=700px){.multiplayer-header{flex-direction:column;align-items:stretch}.multiplayer-turn{text-align:left}.multiplayer-table{grid-template-columns:1fr}.multiplayer-piles{grid-template-columns:1fr 1fr}.multiplayer-piles button{min-height:5rem}}@media (width<=760px),(width<=1100px) and (height<=760px){:is(html:has(.game-active),body:has(.game-active)){height:100%;overflow:hidden}.game-navigation{top:max(.3rem, env(safe-area-inset-top));right:max(.3rem, env(safe-area-inset-right))}.game-navigation a{min-height:2rem;padding:.32rem .52rem;font-size:.62rem}.game-active{width:100vw;height:100svh;min-height:0;padding:0;overflow:hidden}.game-active .game-board{width:100%;height:100%;min-height:0;display:block}.game-active .control-rail{display:none}.game-active .table-surface{width:100%;height:100%;min-height:0;padding:max(.28rem, env(safe-area-inset-top)) max(.3rem, env(safe-area-inset-right)) max(.22rem, env(safe-area-inset-bottom)) max(.3rem, env(safe-area-inset-left));border:0;grid-template-rows:auto minmax(0,1fr) auto auto 6.15rem;gap:.28rem;overflow:hidden}.game-active .table-surface:before{border-width:.14rem;inset:.12rem}.game-active .turn-ribbon{grid-template-columns:auto auto;gap:.25rem;padding:.24rem .4rem;top:.25rem;left:.35rem;transform:none}.game-active .turn-ribbon span,.game-active .turn-ribbon strong{font-size:.58rem}.game-active .turn-ribbon strong{min-width:2.9rem;padding:.15rem .3rem;animation:1.8s ease-in-out infinite turn-glow}.game-active .top-strip{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:.25rem;min-height:3.2rem;padding-top:2rem}.game-active .online-opponent-strip{padding-top:2rem;display:block}.game-active .online-opponent-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:.2rem}.game-active .player-badge,.game-active .online-opponent-grid .player-badge{border-radius:.35rem;gap:.08rem .25rem;padding:.28rem .35rem}.game-active .player-badge strong{text-overflow:ellipsis;white-space:nowrap;font-size:.72rem;overflow:hidden}.game-active .player-badge span,.game-active .player-badge small{font-size:.52rem}.game-active .player-badge p{max-height:1.55rem;font-size:.62rem;line-height:1.15;overflow:hidden}.game-active .opponent-hand{transform-origin:100% 100%;width:4.2rem;height:2.65rem;transform:scale(.62)}.game-active .table-center{grid-template-columns:4.7rem minmax(0,1fr);gap:.25rem;min-height:0;overflow:hidden}.game-active .pile-row{grid-template-columns:1fr;align-content:center;gap:.25rem;display:grid}.game-active .deck-pile,.game-active .discard-pile{border-width:.18rem;border-radius:.35rem;width:4.25rem;min-height:0}.game-active .deck-pile:before{font-size:1.7rem}.game-active .deck-pile span{font-size:.52rem}.game-active .deck-pile strong{font-size:1.3rem}.game-active .meld-table{grid-template-columns:repeat(2,minmax(0,1fr));align-content:center;gap:.2rem;min-height:0;padding:0;overflow:hidden}.game-active .empty-table{grid-column:1/-1;min-height:3.5rem;font-size:.7rem}.game-active .meld{gap:.15rem;padding:.25rem}.game-active .meld header{gap:.2rem}.game-active .meld header span,.game-active .meld header small{font-size:.57rem}.game-active .meld-cards{justify-content:center;gap:0;min-width:0;display:flex;overflow:hidden}.game-active .meld-cards .game-card{flex:0 2.15rem;width:2.15rem;min-width:0;margin-left:-.55rem}.game-active .meld-cards .game-card:first-child{margin-left:0}.game-active .run-hit-layout{grid-template-columns:2rem minmax(0,1fr) 2rem;gap:.12rem}.game-active .hit-slot,.game-active .hit-indicator{min-height:1.85rem;font-size:.52rem}.game-active .action-bar{grid-template-columns:minmax(0,1fr) auto;gap:.25rem}.game-active .action-bar .player-badge{min-height:2.75rem}.game-active .turn-actions{grid-template-columns:repeat(2,4.3rem);gap:.2rem}.game-active .turn-actions button,.game-active .turn-actions .hit-indicator{min-height:2.3rem;padding:.2rem;font-size:.58rem}.game-active .phase-staging{grid-template-columns:3.25rem minmax(0,1fr);gap:.25rem;min-height:3.75rem;padding:.25rem}.game-active .phase-staging header span{font-size:.52rem}.game-active .phase-staging header strong{font-size:1.1rem}.game-active .staged-cards{gap:0;overflow:hidden}.game-active .staged-card{flex:0 3rem;min-width:1.7rem;margin-left:-.65rem}.game-active .staged-card:first-child{margin-left:0}.game-active .staging-empty{text-align:center;min-width:0;min-height:3.1rem;padding:.2rem;font-size:.62rem}.game-active .hand-zone{justify-content:center;align-items:end;gap:0;min-width:0;height:6.15rem;padding:.15rem 0 0;display:flex;overflow:hidden}.game-active .hand-card{transform-origin:bottom;flex:0 0 4.2rem;width:4.2rem;min-width:4.2rem;margin-left:clamp(-2.25rem,10vw - 4.62rem,-.35rem);animation:.32s both hand-fan;display:block}.game-active .hand-card:first-child{margin-left:0}.game-active .hand-card .game-card{min-height:5.8rem;box-shadow:0 .3rem .65rem #050d0a57}.game-active .hand-card-actions{clip-path:inset(50%);width:1px;height:1px;position:absolute;overflow:hidden}.game-active .game-card{border-width:.16rem}.game-active .game-card:after{inset:.25rem}.game-active .card-corner{font-size:.66rem;top:.18rem;left:.22rem}.game-active .card-corner.bottom{inset:auto .22rem .18rem auto}.game-active .card-center{font-size:1.8rem}.game-active .card-note{font-size:.42rem;bottom:.16rem;left:50%;right:auto}.game-active .online-table-error{max-width:calc(100% - .8rem);bottom:6.5rem;right:.4rem}}@media (height<=520px) and (width<=1100px){.game-active .table-surface{grid-template-rows:auto minmax(0,1fr) auto auto 4.45rem}.game-active .top-strip,.game-active .online-opponent-strip{min-height:2.3rem;padding-top:1.55rem}.game-active .player-badge p{display:none}.game-active .table-center{grid-template-columns:7rem minmax(0,1fr)}.game-active .pile-row{grid-template-columns:repeat(2,3.3rem)}.game-active .deck-pile,.game-active .discard-pile{width:3.25rem}.game-active .deck-pile:before{font-size:1.25rem}.game-active .action-bar .player-badge{min-height:2rem}.game-active .turn-actions button,.game-active .turn-actions .hit-indicator{min-height:1.9rem}.game-active .phase-staging{min-height:2.75rem}.game-active .staging-empty{min-height:2.2rem}.game-active .hand-zone{height:4.45rem}.game-active .hand-card{flex-basis:3.1rem;width:3.1rem;min-width:3.1rem;margin-left:clamp(-1.4rem,10vw - 3.41rem,-.25rem)}.game-active .hand-card .game-card{min-height:4.3rem}.game-active .card-center{font-size:1.35rem}}@media (prefers-reduced-motion:reduce){.table-surface,.game-card,.hand-card,.turn-ribbon strong{transition:none!important;animation:none!important}}@keyframes table-shimmer{0%{background-position:180% 0,0 0,0 0,0 0}to{background-position:-80% 0,0 0,0 0,0 0}}@keyframes hand-fan{0%{opacity:0;transform:translateY(.75rem)rotate(2deg)}to{opacity:1;transform:translateY(0)rotate(0)}}@keyframes turn-glow{0%,to{box-shadow:0 0 #ffcc6200}50%{box-shadow:0 0 0 .25rem #ffcc6229}}@keyframes card-pop{0%{opacity:0;transform:translateY(.35rem)scale(.97)}to{opacity:1;transform:translateY(0)scale(1)}}@keyframes thinking-pulse{0%,to{opacity:.35;transform:translateY(0)}50%{opacity:1;transform:translateY(-.08rem)}}.rail-actions{flex-wrap:wrap;gap:.55rem;display:flex}.rail-actions button{flex:8rem}.match-history{background:#080e1cb3;border:1px solid #c5a46040;border-radius:1rem;margin-top:1.25rem;padding:1rem}.match-history>header{justify-content:space-between;align-items:center;gap:1rem;margin-bottom:.75rem;display:flex}.match-history>header span{font-weight:800}.match-history>header a{color:#e8c873;font-size:.82rem}.match-history>div{grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:.65rem;display:grid}.match-history article{background:#ffffff0b;border-radius:.75rem;gap:.2rem;padding:.7rem;display:grid}.match-history small{opacity:.7}.lobby-code button{margin-top:.5rem}.share-link{opacity:.62;word-break:break-all;text-align:center;font-size:.72rem}.result-actions{flex-wrap:wrap;justify-content:center;gap:.7rem;display:flex}.rules-panel{text-align:left;max-width:620px}.rules-panel ol{gap:.65rem;padding-left:1.3rem;line-height:1.45;display:grid}.rules-panel>button{margin:1rem auto 0;display:block}.player-badge small{display:block}.player-badge:has(small){transition:opacity .2s}.player-badge small{white-space:normal}.online-roster div:has(strong){position:relative}.online-roster div strong{white-space:normal}@supports (padding:max(0px)){.game-shell{padding-top:max(.4rem,env(safe-area-inset-top));padding-right:max(.4rem,env(safe-area-inset-right));padding-bottom:max(.4rem,env(safe-area-inset-bottom));padding-left:max(.4rem,env(safe-area-inset-left))}}@media (width<=760px){html,body{overscroll-behavior:none}.game-active{height:100dvh;min-height:100dvh;overflow:hidden}.game-active .game-board{height:100%;max-height:100dvh}.online-table-surface{touch-action:none}.hand-zone{touch-action:none;overscroll-behavior:contain}.rules-panel{max-height:82dvh;overflow:auto}.match-history{display:none}}@media (prefers-reduced-motion:reduce){.result-overlay,.game-card,.turn-ribbon,.table-surface{transition:none!important;animation:none!important}}.admin-debug-button{z-index:90;color:#fff3c4;background:#7b2626;border:1px solid #e6ba58;border-radius:999px;padding:.6rem .9rem;font-weight:900;position:fixed;bottom:.75rem;right:.75rem}.admin-debug-overlay{z-index:99;background:#000b;place-items:center;padding:.5rem;display:grid;position:fixed;inset:0}.admin-debug-panel{color:#fff3cf;background:#13251c;border:1px solid #e6ba58;border-radius:.75rem;gap:.65rem;width:min(28rem,100%);padding:1rem;display:grid}.admin-debug-panel header{justify-content:space-between;align-items:center;display:flex}.admin-debug-panel label{gap:.2rem;display:grid}.admin-debug-panel input,.admin-debug-panel select{color:#fff;background:#07140e;border:1px solid #71805e;padding:.55rem}.admin-debug-panel>div{flex-wrap:wrap;gap:.4rem;display:flex}.debug-revealed-hand{justify-content:center;max-width:100%;padding:.2rem;display:flex;overflow:hidden}.debug-revealed-hand .game-card{width:2.7rem;min-width:0;height:3.8rem;margin-right:-.8rem}.debug-revealed-hand .card-center{font-size:1rem}
