:root{color-scheme:dark;--rojo: #e63946;--amarillo: #ffd166;--azul: #118ab2;--verde: #06d6a0;--ink: #fff8e8;--muted: #ffe7b0;--bg: #1a1214;--felt: #0f4a3c;--felt-mid: #176655;--felt-deep: #0a3229;--gold: var(--amarillo);--gold-deep: #d7a53d;--cream: #fff4d8;--chili: var(--rojo);--wine: #9b2030;--go: var(--verde);--line: rgba(255, 209, 102, .38);--shadow: 0 18px 50px rgba(0, 0, 0, .42);--ad-banner-height: 0px;--ad-banner-lift: 0px;--ad-banner-reserve: calc(var(--ad-banner-height) + var(--ad-banner-lift));font-family:Nunito,Segoe UI,sans-serif;background:var(--bg);color:var(--ink)}*{box-sizing:border-box}html,body,#root,.app-shell{height:100%;height:100dvh;margin:0}.app-shell{display:flex;flex-direction:column;overflow:hidden}body.has-ad-banner .app-shell{height:calc(100dvh - var(--ad-banner-reserve, 0px))}.app-shell:has(.title-screen){overflow:auto}body{background:radial-gradient(900px 420px at 50% -18%,rgba(230,57,70,.28),transparent 58%),radial-gradient(720px 340px at 88% 108%,rgba(255,209,102,.1),transparent 50%),radial-gradient(640px 300px at 8% 96%,rgba(17,138,178,.12),transparent 48%),var(--bg)}button,input{font:inherit}h1,h2,strong{font-family:Abril Fatface,Times New Roman,serif;letter-spacing:.01em;font-weight:400}.eyebrow{margin:0 0 .35rem;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--gold)}.btn{border:2px solid var(--amarillo);background:transparent;color:var(--ink);padding:.75rem 1.15rem;cursor:pointer;letter-spacing:.03em;border-radius:999px}.btn.primary{background:var(--amarillo);color:#5a2a10}.btn.sky{background:var(--azul);border-color:var(--azul);color:#fff8e8}.btn.danger{background:var(--rojo);border-color:var(--rojo);color:#fff8e8}.btn.ghost{background:transparent}.btn.small{padding:.4rem .75rem;font-size:.9rem}.btn.icon{padding:.4rem;width:2.55rem;height:2.55rem;display:grid;place-items:center}.btn.icon.small{width:2.2rem;height:2.2rem;padding:.28rem}.speaker-icon{width:1.15rem;height:1.15rem;display:block}.btn:disabled{opacity:.4;cursor:default}.title-screen,.table-screen{min-height:100%;padding:max(1.25rem,env(safe-area-inset-top)) 1.25rem max(1.25rem,env(safe-area-inset-bottom),var(--ad-banner-reserve, 0px))}.title-screen{max-width:36rem;width:100%;margin:0 auto;display:flex;flex-direction:column;justify-content:safe center;gap:.85rem;flex:1 0 auto}.title-screen h1{margin:0;flex-shrink:0;font-size:clamp(3.2rem,11vw,5.2rem);line-height:.92;color:var(--amarillo);text-shadow:0 3px 0 rgba(0,0,0,.35)}.fiesta-stripe{display:grid;flex-shrink:0;grid-template-columns:1fr 1fr 1fr 1fr;height:12px;width:min(18rem,100%);margin:.15rem 0 .1rem;border-radius:999px;overflow:hidden;box-shadow:0 4px #0000002e}.fiesta-stripe.felt-stripe{width:100%;height:10px}.fiesta-stripe i{display:block}.fiesta-stripe .rojo{background:var(--rojo)}.fiesta-stripe .amarillo{background:var(--amarillo)}.fiesta-stripe .azul{background:var(--azul)}.fiesta-stripe .verde{background:var(--verde)}.subtitle,.lede,.seat-picker-copy{margin:0;color:var(--muted)}.lede{line-height:1.45}.modal .lede{margin-bottom:1.1rem}.name-field,.seat-picker{display:grid;gap:.4rem}.name-field input{width:100%;border:1px solid var(--line);background:#ffffff0a;color:var(--ink);padding:.75rem .9rem;border-radius:12px}.name-field input::placeholder{color:#ffe7b073}.seat-picker-row{display:flex;align-items:center;gap:1rem}.seat-picker-row strong{font-size:2rem;min-width:2rem;text-align:center;color:var(--amarillo)}.title-actions{display:flex;flex-wrap:wrap;gap:.75rem}.home-actions{display:grid;gap:.75rem}.home-actions .btn{width:100%}.title-links{display:flex;align-items:center;justify-content:center;gap:1.1rem}.setup-title{margin:0;color:var(--amarillo);font-size:clamp(2rem,7vw,2.8rem);line-height:1}.setup-actions .btn{flex:1 1 0}.length-select{width:100%;border:1px solid var(--line);background:#ffffff0a;color:var(--ink);padding:.75rem .9rem;border-radius:12px;font:inherit}.title-legal{margin-top:2.4rem;text-align:center}.remove-ads{display:grid;justify-items:center;gap:.45rem;margin:1.6rem 0 0}.remove-ads .btn{min-width:12rem}.remove-ads-note{margin:1.4rem 0 0;color:var(--muted);font-size:.85rem;text-align:center}.text-link{background:none;border:0;padding:0;color:var(--gold);cursor:pointer;font:inherit;text-decoration:underline;text-underline-offset:.18em}.privacy-copy{display:grid;gap:.85rem;padding-left:0}.privacy-copy p{margin:0}.title-error{color:#ffb4a8}.length-picker{display:grid;gap:.4rem}.choice-rows{display:grid;gap:.45rem}.choice-row{display:flex;flex-wrap:nowrap;gap:.45rem}.choice-row .btn{flex:1 1 0;min-width:0;text-align:center}.code-input{letter-spacing:.18em;text-transform:uppercase;font-family:IBM Plex Mono,ui-monospace,monospace}.lobby-title{font-size:clamp(2.6rem,10vw,4.4rem)!important}.room-code-mark{margin:0;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:clamp(2rem,7vw,3rem);letter-spacing:.22em;color:var(--gold)}.lobby-panel{display:grid;gap:.4rem}.lobby-seats{display:grid;gap:.45rem;padding:0;margin:0;list-style:none}.lobby-seats li{display:flex;justify-content:space-between;gap:1rem;padding:.65rem .8rem;border:1px solid var(--line);border-radius:12px}.lobby-seats .away,.lobby-seats .empty{opacity:.7}.lobby-seats small{color:var(--muted)}.score-table{width:100%;border-collapse:collapse;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.82rem}.score-table th,.score-table td{padding:.35rem .4rem;text-align:left}.score-table th:not(:first-child),.score-table td:not(:first-child){text-align:right}.score-table .low td{color:var(--amarillo)}.score-note{margin:0;color:var(--muted);font-size:.9rem}.leftover-ranks{margin-top:.12rem;color:var(--muted);font-size:.72rem;letter-spacing:.02em}.table-screen{display:flex;flex-direction:column;flex:1;gap:.55rem;min-height:0}.table-topbar{display:flex;align-items:center;justify-content:space-between;gap:.75rem}.table-topbar strong{display:block}.topbar-actions{display:flex;gap:.45rem}.btn.muted{opacity:.45}.felt{position:relative;flex:1;min-height:22rem;height:100%;border-radius:28px;background:radial-gradient(circle at 50% 38%,var(--felt-mid),var(--felt) 52%,#11483c 100%);box-shadow:inset 0 0 0 3px #ffd16647,var(--shadow);overflow:hidden}.table-key{position:absolute;left:.75rem;bottom:1.5rem;z-index:1;display:grid;gap:.12rem;color:#fff4d8b8;font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.62rem;letter-spacing:.02em;line-height:1.25;pointer-events:none}.table-key b{display:inline-block;min-width:.85rem;color:var(--amarillo)}.play-dir{display:flex;align-items:center;justify-content:center;gap:.4rem;color:var(--amarillo);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.7rem;letter-spacing:.04em;text-transform:uppercase}.play-dir-arrow{font-size:1.85rem;line-height:1;font-weight:600;color:var(--amarillo)}.play-dir.pulse .play-dir-arrow{animation:dir-pulse 1.2s ease}@keyframes dir-pulse{0%,to{transform:scale(1)}40%{transform:scale(1.28)}}.felt-callout{margin:0;min-height:1.35rem;text-align:center;font-family:Abril Fatface,Times New Roman,serif;font-size:1.15rem;letter-spacing:.02em;color:var(--amarillo);text-shadow:0 2px 12px rgba(0,0,0,.45);opacity:0;transition:opacity .16s ease;pointer-events:none}.felt-callout.show{opacity:1}.felt-callout.locos-shout{min-height:2.4rem;padding:.45rem 1.1rem;border-radius:999px;background:#1a1214c7;border:2px solid var(--amarillo);box-shadow:0 0 18px #ffd16659;font-size:1.55rem}.table-center{position:absolute;inset:16% 0;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:.55rem;z-index:1}.center-piles{display:grid;grid-template-columns:auto auto;grid-template-rows:auto auto;column-gap:2.6rem;row-gap:.7rem;justify-items:center;align-items:start}.pile-button,.discard-stack{display:grid;justify-items:center;color:var(--cream);font-size:.78rem}.discard-stack{padding:0 1.35rem}.pile-label,.discard-suit{position:relative;z-index:2;line-height:1.2;color:var(--cream);font-size:.78rem;text-align:center}.pile-stack{position:relative;width:68px;height:98px}.pile-placeholder{border:1px dashed rgba(255,244,216,.2);border-radius:8px}.pile-under{position:absolute;inset:0;z-index:0;pointer-events:none}.pile-under-card{position:absolute;inset:0}.pile-under-card.under-0{transform:translate(-20px,-4px) rotate(-14deg)}.pile-under-card.under-1{transform:translate(18px,-6px) rotate(12deg)}.pile-under-card.under-2{transform:translate(-8px,-2px) rotate(-6deg)}.pile-top{position:relative;z-index:1}.pile-button{border:0;background:transparent;padding:0;cursor:pointer}.pile-button:disabled{cursor:default;opacity:.85}.seat{--rail: .7rem;position:absolute;z-index:2;display:grid;justify-items:center;gap:.15rem;max-width:7.2rem;color:var(--cream)}.seat.slot-n{left:50%;top:var(--rail);transform:translate(-50%)}.seat.slot-nw{left:28%;top:var(--rail);transform:translate(-50%)}.seat.slot-ne{left:72%;top:var(--rail);transform:translate(-50%)}.seat.slot-s{left:50%;bottom:var(--rail);transform:translate(-50%)}.seat.slot-sw{left:28%;bottom:var(--rail);transform:translate(-50%)}.seat.slot-se{left:72%;bottom:var(--rail);transform:translate(-50%)}.seat.slot-w{left:var(--rail);top:50%;transform:translateY(-50%)}.seat.slot-e{right:var(--rail);top:50%;transform:translateY(-50%)}.seat.active{z-index:5}.seat.active .seat-cards,.seat.active .seat-lead{position:relative;filter:drop-shadow(0 0 8px rgba(255,209,102,.55))}.seat.active .seat-cards:after,.seat.active .seat-lead:after{content:"";position:absolute;inset:-.18rem -.22rem;border:2px solid var(--amarillo);border-radius:14px;box-shadow:0 0 6px #ffd16652;pointer-events:none;animation:seat-pulse 1.35s ease-in-out infinite}.seat.active .seat-name,.seat.active .seat-count{color:var(--amarillo);text-shadow:0 0 10px rgba(255,209,102,.45)}@keyframes seat-pulse{0%,to{opacity:.5}50%{opacity:1}}.seat.lead-high .seat-name,.seat.locos-pending .seat-name,.seat.locos-pending .seat-count{color:var(--amarillo)}.seat-lead{animation:card-in .18s ease-out}.seat-lead .card.compact{width:44px;height:62px}.seat-cards .card:last-child{animation:card-in .16s ease-out}@keyframes card-in{0%{transform:translateY(-10px) scale(.86);opacity:0}to{transform:none;opacity:1}}.seat-meta{display:grid;justify-items:center;gap:.05rem;width:100%;min-width:0}.seat-name,.seat-count,.seat-score{font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.75rem}.seat-name{display:block;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;text-align:center}.seat-stats{display:flex;align-items:baseline;justify-content:center;gap:.35rem}.seat-score{color:var(--amarillo)}.seat-plus{color:var(--amarillo);font-family:IBM Plex Mono,ui-monospace,monospace;font-size:.7rem;font-weight:800;animation:seat-plus-in 1.2s ease}@keyframes seat-plus-in{0%{opacity:0;transform:translateY(4px)}20%,70%{opacity:1;transform:translateY(0)}to{opacity:.85}}.seat-cards{display:flex}.seat-cards .card{margin-left:-1.15rem}.seat-cards .card:first-child{margin-left:0}.seat-cards.leftover{flex-wrap:wrap;justify-content:center;max-width:8.2rem}.seat-cards.leftover .card{margin-left:-.72rem;animation:card-in .22s ease-out}.status-row{display:grid;grid-template-columns:4.5rem 1fr 4.5rem;align-items:center;min-height:2rem}.status-line{margin:0;min-height:1.15rem;text-align:center;color:var(--amarillo);grid-column:2}.skip-intro{grid-column:3;justify-self:end;padding:.28rem .65rem;font-size:.8rem}.hand-dock{display:grid;gap:.45rem}.hand-fan{container-type:inline-size;--card-w: 68px;--peek-min: 18px;--peek-max: 52px;--fan-n: 1;--fan-swing: 36px;--peek: max( var(--peek-min), min(var(--peek-max), calc((100cqi - var(--card-w) - var(--fan-swing)) / var(--fan-n))) );display:flex;justify-content:safe center;align-items:flex-end;min-height:132px;width:100%;max-width:100%;overflow-x:clip;overflow-y:visible;overscroll-behavior-x:contain;scrollbar-width:thin;padding:2rem 1.1rem .35rem;box-sizing:border-box}.hand-fan.is-scrollable{justify-content:flex-start;overflow-x:auto;overflow-y:hidden}.hand-fan.dealt-in{animation:card-in .28s ease-out}.fan-slot{position:relative;flex:0 0 var(--peek);width:var(--peek);z-index:calc(var(--i) + 1);transform:rotate(calc((var(--i) - var(--mid)) * var(--fan-step, 3.6deg)));transform-origin:calc(var(--card-w) * .5) 120%}.fan-slot:last-child{flex-basis:var(--card-w);width:var(--card-w)}.fan-slot .card{width:var(--card-w);transition:transform .14s ease}@media(hover:hover){.fan-slot:hover{z-index:30}}.fan-slot.selected{z-index:40;transform:translateY(-16px) rotate(calc((var(--i) - var(--mid)) * var(--fan-step, 3.6deg)))}.hand-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:.7rem;min-height:2.8rem}.btn.locos{letter-spacing:.04em}.card{position:relative;width:68px;height:98px;border:1px solid #d8c7a2;border-radius:8px;background:#f7eede;color:#1a1208;box-shadow:0 8px 16px #00000047;font-family:IBM Plex Mono,ui-monospace,monospace}.card.compact{width:34px;height:48px}.card.red{color:#b42318}.card.black{color:#1a1208}.card.clickable{padding:0;cursor:pointer}.card.selected{outline:2px solid var(--gold)}.card-back{background:repeating-linear-gradient(45deg,#6b1d18,#6b1d18 6px,#8a2a22 6px 12px);border-color:#3d1410}.card-corner,.card-pip{pointer-events:none}.card-corner{position:absolute;display:flex;flex-direction:column;line-height:1;font-size:.78rem}.card.compact .card-corner{font-size:.55rem}.card-corner.top{top:5px;left:6px}.card-corner.bottom{right:6px;bottom:5px;transform:rotate(180deg)}.card-pip{position:absolute;inset:0;display:grid;place-items:center;font-size:1.7rem}.card.compact .card-pip{font-size:1rem}.modal-backdrop{position:fixed;inset:0;bottom:var(--ad-banner-reserve, 0px);background:#120408c2;display:flex;justify-content:center;align-items:flex-start;overflow-y:auto;padding:max(.75rem,env(safe-area-inset-top)) .75rem max(1.25rem,env(safe-area-inset-bottom));z-index:20}.modal{width:min(640px,100%);margin-block:auto;background:#24181c;border:1px solid var(--line);border-radius:20px;padding:1.3rem;box-shadow:var(--shadow)}.rules-list{margin:0 0 1.2rem;padding-left:1.1rem;color:var(--muted);line-height:1.5}.suit-grid{display:grid;grid-template-columns:1fr 1fr;gap:.75rem}.modal .btn.locos{width:100%;margin:.35rem 0 .9rem}.suit-btn{border:1px solid var(--line);background:#ffffff0a;color:var(--ink);border-radius:16px;padding:1rem .75rem;display:grid;gap:.2rem;cursor:pointer}.suit-btn i{font-style:normal;font-size:1.8rem}.win-overlay{position:fixed;inset:0;bottom:var(--ad-banner-reserve, 0px);z-index:30;display:grid;place-items:center;background:#120408b8;overflow:hidden}.streamers{position:absolute;inset:0;pointer-events:none}.streamer{position:absolute;top:-16%;border-radius:2px;opacity:.92;animation-name:streamer-fall;animation-timing-function:linear;animation-iteration-count:infinite}.streamer.hue-0{background:var(--rojo)}.streamer.hue-1{background:var(--amarillo)}.streamer.hue-2{background:var(--azul)}.streamer.hue-3{background:var(--verde)}.laugh-emoji{position:absolute;top:-12%;line-height:1;animation-name:streamer-fall;animation-timing-function:linear;animation-iteration-count:infinite}.locos-roast{z-index:32;pointer-events:auto}.roast-banner{max-width:14rem}@keyframes streamer-fall{0%{transform:translateY(0) rotate(18deg)}to{transform:translateY(125vh) rotate(320deg)}}.win-card{position:relative;z-index:1;display:grid;justify-items:center;gap:1.5rem;width:min(26rem,calc(100% - 2rem));text-align:center}.win-banner{margin:0;color:var(--amarillo);font-size:clamp(2.1rem,8vw,3.6rem);line-height:1.05;text-shadow:0 3px 0 rgba(0,0,0,.35);animation:win-flash 1s ease-in-out infinite}@keyframes win-flash{0%,to{opacity:1;transform:scale(1)}50%{opacity:.78;transform:scale(1.06)}}.win-actions{display:grid;gap:.75rem;width:min(16rem,100%)}.win-actions .btn{width:100%}.suit-btn.red{color:#ff8a7a}@media(max-width:720px){.title-actions.play-modes{flex-wrap:nowrap;gap:.4rem}.title-actions.play-modes .btn{flex:1 1 0;min-width:0;padding:.55rem .3rem;font-size:.78rem;letter-spacing:.01em}.table-screen{padding:.35rem .55rem .3rem;gap:.28rem}.table-topbar strong{font-size:1.15rem}.fiesta-stripe.felt-stripe{height:6px}.felt{min-height:0;border-radius:20px}.play-dir-label{display:none}.play-dir-arrow{font-size:1.4rem}.felt-callout{font-size:1rem}.felt-callout.locos-shout{font-size:1.25rem}.table-key{left:.35rem;bottom:.4rem;font-size:.48rem}.table-key b{min-width:.7rem}.table-center{top:15%;bottom:15%;gap:.3rem}.center-piles{column-gap:.65rem;row-gap:.35rem}.discard-stack{padding:0}.card{width:58px;height:84px}.pile-stack{width:52px;height:76px}.pile-under-card.under-0{transform:translate(-8px,-2px) rotate(-8deg)}.pile-under-card.under-1{transform:translate(8px,-3px) rotate(7deg)}.pile-under-card.under-2{transform:translate(-4px,-1px) rotate(-4deg)}.seat-cards .card{margin-left:-1.4rem}.status-row{min-height:1.55rem}.hand-fan{--card-w: 58px;--peek-min: 16px;--peek-max: 40px;--fan-swing: 40px;min-height:118px;padding:1.6rem 1.15rem .3rem}.fan-slot{transform:rotate(calc((var(--i) - var(--mid)) * min(2.4deg,var(--fan-step, 3.6deg))))}.fan-slot.selected{transform:translateY(-16px) rotate(calc((var(--i) - var(--mid)) * min(2.4deg,var(--fan-step, 3.6deg))))}.felt.seats-5 .table-center,.felt.seats-6 .table-center{inset:16% 21%}.felt.seats-6 .table-key{top:auto;bottom:22%}.seat{max-width:5.4rem}.felt.seats-5 .seat.slot-w,.felt.seats-5 .seat.slot-e,.felt.seats-6 .seat.slot-w,.felt.seats-6 .seat.slot-e{--rail: .28rem;max-width:4.7rem}.felt.seats-5 .seat-cards:not(.leftover) .card:nth-child(n+4),.felt.seats-6 .seat-cards:not(.leftover) .card:nth-child(n+4){display:none}}
