.ui-btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;cursor:pointer;-webkit-user-select:none;user-select:none;border-radius:999px;border:1px solid var(--c-border);font-weight:700;transition:border-color .15s,background-color .15s,color .15s,opacity .15s,transform 60ms,box-shadow .15s;background:var(--c-bg-soft);color:var(--c-text);height:36px;padding-inline:14px;line-height:1}.ui-btn--sm{font-size:13px;height:32px;padding-inline:10px}.ui-btn--md{font-size:14px;height:36px;padding-inline:14px}.ui-btn--primary{background:var(--c-primary);color:var(--c-primary-ink);border-color:transparent;box-shadow:0 6px 18px #7c86ff47}.ui-btn--primary:hover{box-shadow:0 10px 26px #7c86ff57}.ui-btn--primary:focus-visible{outline:2px solid color-mix(in oklab,var(--c-primary) 65%,#ffffff);outline-offset:2px}.ui-btn--subtle{background:var(--c-bg-elev);border-color:var(--c-border);box-shadow:0 1px #11182705}.ui-btn--subtle:hover{background:var(--c-bg-elev);border-color:color-mix(in oklab,var(--c-border) 50%,var(--c-primary))}.ui-btn--danger{background:#fee2e2;color:#991b1b;border-color:#fecaca}@media(prefers-color-scheme:dark){.ui-btn--danger{background:#450a0a;color:#fca5a5;border-color:#7f1d1d}}.ui-btn:is(:hover,:focus-visible){border-color:var(--c-primary)}.ui-btn:active{transform:translateY(1px)}.ui-btn.is-disabled,.ui-btn[disabled]{cursor:not-allowed;opacity:.55;box-shadow:none}@media(max-width:640px){.ui-btn{min-height:44px}}.ui-card{background:var(--c-bg-elev);border:1px solid var(--c-border);border-radius:var(--r-lg);box-shadow:var(--shadow-1);padding:12px}.modal__backdrop{position:fixed;inset:0;background:#11182759;display:flex;align-items:center;justify-content:center;z-index:50}.modal__card{max-height:80vh;overflow:hidden;background:var(--c-bg-elev);box-shadow:var(--shadow-2);padding:0;border-radius:var(--r-lg);border:1px solid var(--c-border)}.modal__header{display:flex;align-items:center;gap:8px;padding:12px 16px;border-bottom:1px solid var(--c-border)}.modal__title{font-size:var(--fs-title-sm);font-weight:800}.modal__close{margin-left:auto}.modal__body{padding:12px;overflow-y:auto;max-height:calc(80vh - 56px)}.ui-chip{display:inline-flex;align-items:center;padding:2px 8px;border-radius:var(--r-xs);border:1px solid var(--c-border);font-size:12px;font-weight:700;white-space:nowrap;background:#ffffff0f;color:var(--c-text)}.ui-chip--success{background:var(--c-success-bg);color:var(--c-success-ink);border-color:#a8e06d59}.g-dim{color:var(--c-text-dim)}.g-opening{max-width:480px;margin:0 auto;padding:var(--sp-5) var(--sp-4);display:grid;gap:var(--sp-3)}.g-opening h1{margin:var(--sp-4) 0 0;font-size:36px;font-weight:800}.g-continue{min-height:52px}.g-levels{display:grid;gap:var(--sp-3)}.g-level{display:grid;gap:2px;text-align:left;min-height:64px;padding:var(--sp-3) var(--sp-4);border-radius:var(--r-lg);background:var(--c-bg-elev);box-shadow:var(--shadow-1)}.g-about{margin-top:var(--sp-4);color:var(--c-text-dim)}.g-about p{margin:0 0 var(--sp-2)}.g-about__links{margin-top:var(--sp-3)}.g-about__links a{display:inline-block;padding:10px 0;color:inherit;text-decoration:underline;text-underline-offset:3px}.g-level strong{font-size:var(--fs-title-sm)}.g-level span{font-weight:400}.g-table{max-width:760px;min-height:100dvh;margin:0 auto;padding:var(--sp-3);display:flex;flex-direction:column;gap:var(--sp-3)}.g-level-tag{text-transform:capitalize}.g-row{display:flex;justify-content:center;gap:6px;min-width:0}.g-opponent,.g-you{position:relative;display:grid;gap:var(--sp-2)}.g-row--backs{min-height:62px}.g-middle{flex:1;display:flex;align-items:center;justify-content:center;gap:var(--sp-4);min-height:140px;padding:var(--sp-3);border-radius:var(--r-lg);background:color-mix(in oklab,var(--c-success-bg) 70%,var(--c-bg))}.g-starter{display:grid;justify-items:center;gap:4px;font-size:var(--fs-caption)}.g-starter .pc{flex:none;width:68px}.g-pile{flex:1;min-width:0;display:grid;gap:var(--sp-2)}.g-count{font-size:var(--fs-body)}.g-count strong{font-size:28px}.g-pile{position:relative;grid-template-columns:minmax(0,1fr) auto;align-items:center}.g-count{grid-column:1}.g-pile__cards{position:relative;display:flex;min-height:62px;min-width:0}.g-pile__cards .pc+.pc{margin-left:-24px}.g-pile__cards .pc.is-scoring{transform:translateY(-6px);box-shadow:0 0 0 2px var(--c-primary)}.g-pile__cards .pc{transition:transform .12s}.g-pile__cards{grid-row:1;justify-self:start;min-width:52px}.g-pile>.g-count{grid-row:2}.g-pile>.g-heap{grid-column:2;grid-row:1 / span 2}.g-bubble.g-bubble--pile{bottom:calc(100% + 10px);width:max-content;max-width:min(260px,calc(100vw - 32px))}.g-heap{position:relative;width:52px;height:66px;animation:g-fade .3s ease-out}.g-heap .g-heap__card{position:absolute;top:calc(var(--i) * .5px);left:calc(var(--i) * .5px)}.g-count__n{display:inline-block;animation:g-roll .2s ease-out}.g-return{animation:g-fade .3s ease-out}@keyframes g-roll{0%{opacity:0;transform:translateY(-8px)}}.g-cutnote{margin:0}.g-actions{display:flex;align-items:center;justify-content:center;gap:var(--sp-3);min-height:48px}.g-actions .ui-btn{height:44px;padding-inline:22px}.g-prompt{font-size:16px;font-weight:700}.g-bracket{position:relative;display:grid;justify-items:center;gap:var(--sp-2);padding:var(--sp-4) var(--sp-3) var(--sp-2);border:2px dashed var(--c-primary);border-radius:var(--r-md);animation:g-fade .3s ease-out}.g-bracket__label{position:absolute;top:-10px;left:50%;transform:translate(-50%);padding:0 6px;border-radius:var(--r-xs);background:color-mix(in oklab,var(--c-success-bg) 70%,var(--c-bg));font-size:var(--fs-caption);font-weight:700;white-space:nowrap}.g-bracket__slots{display:flex;gap:4px;min-height:62px}.g-bracket__slot{width:44px;aspect-ratio:5 / 7;border:1px dashed var(--c-border);border-radius:var(--r-sm)}.g-bracket__slots .pc+.pc:nth-child(n+3){margin-left:-40px}.g-bracket__say{margin:0;font-size:14px;font-weight:700;text-align:center}.g-bracket .ui-btn{height:44px;padding-inline:22px}.g-crib{flex:0 0 auto;display:grid;justify-items:center;gap:2px;margin-left:var(--sp-2);font-size:var(--fs-caption);white-space:nowrap;animation:g-slide-in .3s ease-out}.g-crib__stack{box-shadow:3px 3px 0 -1px #4b53c0,6px 6px 0 -2px #4b53c0;border-radius:var(--r-sm);display:flex}.g-deck{box-shadow:2px 2px 0 -1px #4b53c0,4px 4px 0 -2px #4b53c0}.g-flip{animation:g-flip .4s ease-out}.g-bracket__slots .g-flip{animation-duration:.25s}.g-deal-in{animation:g-deal .25s ease-out}.g-deal-in--bot{animation-name:g-deal-bot}.g-throw-in{animation:g-deal .2s ease-out}.g-throw-in--bot{animation:g-deal-bot .25s ease-out}@keyframes g-flip{0%{transform:perspective(400px) rotateY(90deg) scale(1)}60%{transform:perspective(400px) rotateY(0) scale(1.1)}to{transform:none}}@keyframes g-deal{0%{opacity:0;transform:translateY(-90px) scale(.8)}}@keyframes g-deal-bot{0%{opacity:0;transform:translateY(90px) scale(.8)}}@keyframes g-slide-in{0%{opacity:0;transform:translateY(-40px)}}@keyframes g-fade{0%{opacity:0}}body[data-fast] *,body[data-fast] *:before,body[data-fast] *:after{animation:none!important;transition:none!important}@media(prefers-reduced-motion:reduce){.g-flip,.g-deal-in,.g-throw-in,.g-heap,.g-return,.g-count__n,.g-crib,.g-bracket,.g-cut__pair{animation:none}}.g-hand{padding-bottom:var(--sp-2)}.pc{position:relative;flex:0 1 68px;min-width:0;aspect-ratio:5 / 7;padding:4px 6px;border:1px solid var(--c-border);border-radius:var(--r-sm);background:#fff;color:#1f2937;box-shadow:var(--shadow-1);display:flex;flex-direction:column;justify-content:space-between;align-items:flex-start;font-weight:800;line-height:1}.pc--red{color:#c0262d}.pc__rank{font-size:20px}.pc__suit{align-self:flex-end;font-size:24px}.pc--back{background:repeating-linear-gradient(45deg,#5a63d8 0 6px,#7c86ff 6px 12px);border-color:#4b53c0}.pc--small{flex:0 0 auto;width:44px}.pc--small .pc__rank{font-size:15px}.pc--small .pc__suit{font-size:17px}button.pc{font-family:inherit;cursor:pointer;transition:transform .12s}.g-hand__card{min-height:44px}.g-hand__card.is-playable{border-color:var(--c-primary)}body[data-phase=pegging] .g-hand__card:not(.is-playable){opacity:.55}.g-cut{display:grid;gap:var(--sp-2);text-align:center}.g-cut p{margin:0}.g-spread{display:grid;grid-template-columns:repeat(13,minmax(0,1fr));gap:3px}.g-spread__card{aspect-ratio:auto;height:52px;padding:0;border-radius:var(--r-xs)}.g-spread__card:hover{transform:translateY(-4px)}.g-spread.is-cutting .pc--back{opacity:.6}.g-spread__card.is-turned{z-index:1;padding:2px 3px;transform:scale(1.1);transform-origin:bottom center}.g-spread.is-cutting{padding-bottom:18px}.g-spread__turned{position:relative;margin:0;display:grid}.g-spread__turned figcaption{position:absolute;top:calc(100% + 4px);left:50%;translate:-50% 0;font-size:12px;font-weight:600;white-space:nowrap;z-index:2;padding:0 6px;border-radius:999px;background:var(--c-bg)}.g-spread__card.is-turned .pc__rank{font-size:13px}.g-spread__card.is-turned .pc__suit{font-size:14px}.g-cut__pair{display:flex;justify-content:center;gap:var(--sp-4);animation:g-fade .3s ease-out}.g-cut__pair.is-returning{opacity:0;transform:scale(.8);transition:opacity .4s,transform .4s}.g-cut__card{display:grid;justify-items:center;gap:4px;width:76px;margin:0}.g-cut__card .pc{width:68px}.g-cut__card.is-dealer .pc{box-shadow:0 0 0 3px var(--c-primary)}.g-cut__result{font-size:var(--fs-body);font-weight:700}.g-bubble{position:absolute;left:50%;z-index:2;transform:translate(-50%);max-width:90%;padding:6px 14px;border-radius:999px;background:var(--c-primary);color:var(--c-primary-ink);font-weight:700;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;box-shadow:var(--shadow-2);animation:g-pop .16s ease-out}.g-bubble--bot{bottom:-18px}.g-bubble--you{top:-22px}@keyframes g-pop{0%{opacity:0;transform:translate(-50%) scale(.85)}}.g-show{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:1px solid var(--c-border);border-radius:var(--r-lg);background:var(--c-bg-elev)}.g-show__head{display:flex;align-items:center;justify-content:space-between;gap:var(--sp-2)}.g-show__head h2{margin:0;font-size:var(--fs-title-sm)}.g-show__starter{display:flex;align-items:center;gap:var(--sp-2)}.g-show__entry{display:grid;gap:2px;padding-top:var(--sp-2);border-top:1px solid var(--c-border-soft)}.g-show__entry.is-uncounted{opacity:.55}.g-show__title{display:flex;justify-content:space-between;align-items:baseline;font-weight:700}.g-show__points{font-size:var(--fs-title-md)}.g-show__entry.is-uncounted .g-show__points{text-decoration:line-through}.g-show__cards{display:flex;gap:4px}.g-show__lines{margin:0;color:var(--c-text-dim)}.g-show__next{min-height:48px;margin-top:var(--sp-1)}.pb{display:grid;gap:2px;padding:var(--sp-2) var(--sp-2) 0;border:1px solid var(--c-border);border-radius:var(--r-lg);background:#f3e3c3}.pb-legend{display:flex;align-items:center;gap:var(--sp-3);padding:0 var(--sp-1);font-size:var(--fs-caption);color:#3b2a14}.pb .g-dim{color:#7a6440}.pb-legend strong{font-size:22px}.pb-legend__item{display:flex;align-items:center;gap:var(--sp-1)}.pb-legend__goal{margin-left:auto}.pb-dot{display:inline-block;width:10px;height:10px;margin-right:4px;border-radius:50%;vertical-align:-1px}.pb-legend__item--you .pb-dot,.pb-peg--you circle{background:#2563eb;fill:#2563eb}.pb-legend__item--bot .pb-dot,.pb-peg--bot circle{background:#dc2626;fill:#dc2626}.pb-svg{display:block;width:100%;height:auto}.pb-lane{fill:#e4cd9e}.pb-hole{fill:#6b5330}.pb-hole--mark{fill:#3b2a14}.pb-peg{transition:transform .25s ease-out}.pb-peg circle{stroke:#fff;stroke-width:.8}.pb-peg--back{opacity:.45}.g-over{display:grid;gap:var(--sp-2);text-align:center}.g-over p{margin:0}.g-over__scores{font-size:var(--fs-title-md)}.g-over__skunk{font-weight:700}.g-over__again{min-height:48px}@media(min-width:720px){.g-table{padding:var(--sp-5)}.pc:not(.pc--small){flex-basis:84px}.pc:not(.pc--small) .pc__rank{font-size:24px}.pc:not(.pc--small) .pc__suit{font-size:30px}.g-spread{gap:5px}.g-spread__card{height:72px}.g-show__entry{grid-template-columns:auto 1fr;column-gap:var(--sp-3);align-items:center}.g-show__cards{grid-row:1 / span 2}.g-show__entry>:not(.g-show__cards){grid-column:2}}@media(prefers-reduced-motion:reduce){.g-bubble,.pb-peg,button.pc{animation:none;transition:none}}.g-actions{flex-wrap:wrap}.g-hand__card.is-hinted,.g-actions .ui-btn[data-hint=true]{outline:3px dashed var(--c-success-ink);outline-offset:2px}.g-warning{display:grid;gap:var(--sp-2);padding:var(--sp-3);border:2px solid var(--c-primary);border-radius:var(--r-md);background:var(--c-bg-elev)}.g-warning p{margin:0}.g-warning__actions{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:var(--sp-2)}.g-warning__actions .ui-btn{min-height:44px}.g-warning__list{margin:0;padding-left:var(--sp-5);display:grid;gap:2px}.g-warning__list li span{display:inline-block;min-width:9em}.g-warning__list li.is-chosen{font-weight:700}.g-count-form{display:flex;flex-wrap:wrap;align-items:flex-end;gap:var(--sp-2)}.g-count-form__label{display:grid;gap:2px;color:var(--c-text-dim)}.g-count-form__miss{flex-basis:100%;margin:0;color:var(--c-text);font-weight:600}.g-count-form__input{width:5em;height:44px;padding:0 var(--sp-2);font-size:var(--fs-title-sm);border:1px solid var(--c-border);border-radius:var(--r-sm);background:var(--c-bg);color:var(--c-text)}.g-count-form .ui-btn{min-height:44px}.g-show__right{color:var(--c-success-ink)}.g-settings{margin-top:auto;color:var(--c-text-dim);font-size:var(--fs-caption)}.g-settings label{display:inline-flex;align-items:center;gap:4px;min-height:44px}.g-settings input[type=checkbox]{margin:0}.g-settings{display:flex;flex-wrap:wrap;gap:0 var(--sp-3)}.g-settings select{min-height:32px;font:inherit}.g-opponent{grid-template-columns:auto 1fr;align-items:center}.g-who{position:relative;display:flex;align-items:center;gap:var(--sp-2);min-width:0}.g-face{flex:none;transition:transform .25s ease}.g-face.is-thinking{transform:rotate(-6deg) translateY(-2px)}.g-who__name{font-weight:700}.g-talk{position:absolute;left:4px;top:calc(100% + 8px);z-index:3;width:max-content;max-width:min(260px,80vw);padding:6px 12px;border-radius:14px;background:var(--c-bg-elev);color:var(--c-text);box-shadow:var(--shadow-2);font-size:var(--fs-caption);pointer-events:none;animation:g-talk-in .18s ease-out}.g-talk:before{content:"";position:absolute;left:18px;top:-6px;border:6px solid transparent;border-top:0;border-bottom-color:var(--c-bg-elev)}@keyframes g-talk-in{0%{opacity:0;transform:translateY(-4px)}}@media(prefers-reduced-motion:reduce){.g-talk,.g-face{animation:none;transition:none}}.g-opponent .g-row--backs{gap:0}.g-opponent .g-row--backs .pc+.pc{margin-left:-14px}.g-opponent .g-row--backs .g-reveal{z-index:2;translate:0 -10px;box-shadow:var(--shadow-2)}.g-bracket__card{box-shadow:0 0 0 2px var(--c-primary)}@media(max-width:719px){.g-pile__cards .pc+.pc{margin-left:-30px}}.g-counting{flex:1;display:grid;gap:var(--sp-3);padding:var(--sp-3);border-radius:var(--r-lg);background:color-mix(in oklab,var(--c-success-bg) 70%,var(--c-bg))}.g-counting__row{position:relative;display:grid;justify-items:center;gap:4px;min-height:110px;padding-top:48px;opacity:.6;transition:opacity .2s}.g-counting__row.is-on{opacity:1}.g-counting__label{order:2;min-height:18px;font-size:14px;font-weight:700}.g-counting__cards{align-items:flex-start}.g-counting__cards .pc{transition:transform .12s}@media(max-width:719px){.g-counting .pc--small{width:60px}.g-counting .pc--small .pc__rank{font-size:19px}.g-counting .pc--small .pc__suit{font-size:22px}}.g-counting .pc.is-lifted{transform:translateY(-10px);box-shadow:0 0 0 2px var(--c-primary)}.g-counting .pc.is-lifted--starter{transform:translateY(-20px)}.g-counting__starter{display:flex;align-items:center;justify-content:center;gap:var(--sp-2);font-size:var(--fs-caption)}.g-bubble--count{top:0;max-width:min(260px,calc(100vw - 32px))}.g-counting__row .g-count-form{width:100%}.g-starter{position:relative}.g-bubble--starter{bottom:calc(100% + 6px);left:0;transform:none;max-width:min(260px,calc(100vw - 32px));animation-name:g-pop-left}@keyframes g-pop-left{0%{opacity:0;transform:scale(.85)}}.g-announce{margin:0;font-size:var(--fs-title-sm);font-weight:700;animation:g-fade .3s ease-out}.pb-legend .g-dealer{border-color:#3b2a14;background:#3b2a14;color:#fdf6e3}:root{font-family:system-ui,Avenir,Helvetica,Arial,sans-serif;line-height:1.5;font-weight:400;color-scheme:light dark;color:var(--c-text);background-color:var(--c-bg);font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}*,*:before,*:after{box-sizing:border-box}a{font-weight:600;color:var(--c-primary);text-decoration:none}a:hover{filter:brightness(.9)}body{margin:0;min-width:320px;min-height:100vh;background:var(--c-bg);color:var(--c-text)}.app-shell{max-width:1600px;margin:0 auto;padding:var(--sp-4);text-align:left;font-family:system-ui,sans-serif;color:var(--c-text);background:var(--c-bg);min-height:100vh}.app-shell h1{margin:0 0 var(--sp-2);font-size:var(--fs-title-lg);line-height:1.1;letter-spacing:-.2px;font-weight:800;color:var(--c-text)}h2{font-size:var(--fs-title-md);margin:0 0 var(--sp-2);font-weight:800}h3{font-size:var(--fs-title-sm);margin:0 0 var(--sp-2);font-weight:700}.caption{font-size:var(--fs-caption);opacity:.72}.tnum{font-variant-numeric:tabular-nums}.ico{display:inline-block;width:16px;height:16px}.ico--crown,.ico--trophy{filter:drop-shadow(0 0 6px rgba(255,215,0,.18))}.ico--crown:before{content:"👑";display:inline-block;transform:translateY(1px)}.ico--trophy:before{content:"🏆";display:inline-block;transform:translateY(1px)}.ico--menu:before{content:"👥"}.ico--seats:before{content:"🪑"}.ico--log:before{content:"🧾"}button{border-radius:var(--r-md);border:1px solid var(--c-border);padding:8px 12px;font-size:14px;font-weight:600;font-family:inherit;background-color:var(--c-bg-soft);color:var(--c-text);cursor:pointer;transition:border-color .2s,background-color .2s,color .2s,opacity .2s,transform .06s,box-shadow .2s}button:hover{border-color:var(--c-primary)}button:active{transform:translateY(1px)}button:focus,button:focus-visible{outline:2px solid color-mix(in oklab,var(--c-primary) 60%,#ffffff);outline-offset:2px}button:disabled{opacity:.55;cursor:not-allowed}.table-layout{display:grid;gap:var(--sp-4);align-items:start;margin-top:var(--sp-4)}@media(min-width:900px){.table-layout{grid-template-columns:minmax(220px,1fr) minmax(440px,2fr) minmax(220px,1fr)}}@media(min-width:720px)and (max-width:899px){.table-layout{grid-template-columns:minmax(260px,1fr) minmax(420px,1.6fr)}.table-layout>.table-cell:nth-child(3){grid-column:1 / span 2}}@media(max-width:719px){.table-layout{grid-template-columns:1fr}}.logo,.card,.read-the-docs{display:none!important}@media(prefers-color-scheme:light){a:hover{filter:brightness(.92)}}:root{--c-bg: #ffffff;--c-bg-soft: #f6f7fb;--c-bg-elev: #ffffff;--c-border: #e3e8f1;--c-border-soft: #eef1f6;--c-text: #1f2937;--c-text-dim: rgba(31, 41, 55, .72);--c-primary: #7c86ff;--c-primary-ink: #ffffff;--c-accent: #7c86ff;--c-success-bg: #eef7ea;--c-success-ink: #2f7d32;--shadow-1: 0 6px 18px rgba(17, 24, 39, .08);--shadow-2: 0 12px 30px rgba(17, 24, 39, .12);--shadow-soft-1: 0 10px 24px rgba(16, 30, 54, .1);--shadow-soft-2: 0 18px 46px rgba(16, 30, 54, .14);--r-xs: 6px;--r-sm: 8px;--r-md: 10px;--r-lg: 12px;--sp-1: 4px;--sp-2: 8px;--sp-3: 12px;--sp-4: 16px;--sp-5: 20px;--fs-caption: 12px;--fs-body: 14px;--fs-title-sm: 16px;--fs-title-md: 20px;--fs-title-lg: 30px}@media(prefers-color-scheme:dark){:root{--c-bg: #0f1115;--c-bg-soft: #14171c;--c-bg-elev: #1a1f26;--c-border: #2a323c;--c-border-soft: #333;--c-text: #eaeaea;--c-text-dim: rgba(234, 234, 234, .75);--c-success-bg: #0d2b10;--c-success-ink: #86efac;--shadow-1: 0 6px 18px rgba(0, 0, 0, .35);--shadow-2: 0 12px 30px rgba(0, 0, 0, .45);--shadow-soft-1: 0 8px 20px rgba(16, 30, 54, .12);--shadow-soft-2: 0 16px 40px rgba(16, 30, 54, .18)}}
