.adm-table-scroll{overflow-x:auto;margin:1rem 0 2rem}.adm-table{width:100%;border-collapse:collapse;text-align:left;font-size:.9rem}.adm-table th,.adm-table td{padding:.7rem;border-bottom:1px solid #45404b;vertical-align:top}.adm-table th{white-space:nowrap}.adm-root{min-height:100dvh;padding:2rem 1rem;font-family:var(--font-body)}.adm-wrap{max-width:860px;margin:0 auto}.adm-title{font-family:var(--font-display);font-size:1.5rem;margin-bottom:1.5rem;letter-spacing:.04em}.adm-h2{font-family:var(--font-display);font-size:1rem;margin:1.5rem 0 .5rem;color:var(--color-purple-soft)}.adm-card{display:flex;flex-direction:column;gap:.75rem;max-width:360px}.adm-label{font-size:.9rem;color:var(--color-text-secondary)}.adm-input{padding:.6rem;background:var(--color-surface);color:var(--color-text-primary);border:1px solid rgba(124,58,237,.4);border-radius:2px;font:inherit}.adm-btn{padding:.5rem 1rem;background:var(--color-purple-subtle);color:var(--color-text-primary);border:1px solid var(--color-purple);border-radius:2px;font:inherit;cursor:pointer}.adm-btn:disabled{opacity:.5;cursor:default}.adm-err{color:#f0a0a0}.adm-note{color:var(--color-purple-soft)}.adm-muted{color:var(--color-text-muted)}.adm-bar{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-bottom:1rem}.adm-env{font-family:var(--font-display);font-size:.8rem;letter-spacing:.2em;color:var(--color-purple-soft)}.adm-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(130px,1fr));gap:.5rem}.adm-stat{background:var(--color-surface);border:1px solid rgba(124,58,237,.25);padding:.6rem}.adm-stat dt{font-size:.8rem;color:var(--color-text-secondary)}.adm-stat dd{font-size:1.5rem}.adm-list{list-style:none;display:flex;flex-direction:column;gap:2px}.adm-row{width:100%;display:grid;grid-template-columns:1.2fr 1fr .6fr 1.4fr;gap:.5rem;text-align:left;padding:.5rem;background:var(--color-surface);color:inherit;border:1px solid transparent;font:inherit;cursor:pointer;overflow-wrap:anywhere}.adm-row.open,.adm-row:hover{border-color:var(--color-purple)}.adm-pre{background:var(--color-surface);padding:1rem;overflow:auto;font-size:.8rem;white-space:pre-wrap;overflow-wrap:anywhere;font-family:monospace}@media(max-width:600px){.adm-row{grid-template-columns:1fr 1fr}}.play-root{--color-gold: #f3c765;min-height:100dvh;background:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-body);display:flex;flex-direction:column;padding:1.5rem;gap:1.5rem}.play-header{display:flex;justify-content:space-between;align-items:center;background:var(--color-surface);padding:1rem 1.5rem;border-radius:8px;border:1px solid var(--color-purple-subtle);box-shadow:0 4px 24px #0006,0 0 12px var(--color-purple-subtle)}.game-board{flex:1;display:grid;grid-template-columns:1fr 2fr 1fr;grid-template-rows:auto 1fr auto;gap:1.5rem;max-width:1600px;margin:0 auto;width:100%}.play-header button[aria-pressed=true]{background:var(--color-purple-subtle);border-color:var(--color-gold);color:var(--color-gold)}.deal-controls{display:flex;flex-direction:column;align-items:center;gap:1rem}.play-header-tools{display:flex;flex-direction:column;align-items:flex-end;min-width:0}.gameplay-controls{display:flex;flex-wrap:wrap;justify-content:flex-end;gap:.4rem;max-width:100%;margin-top:.4rem}.play-header .gameplay-control{display:inline-flex;align-items:center;justify-content:center;box-sizing:border-box;height:2rem;padding:.25rem .5rem;font-size:.75rem}.play-header .gameplay-control:not(.gameplay-control-flag){flex:0 0 4.5rem}.play-header .gameplay-control-flag{min-width:4.5rem}.player-panel{background:var(--color-surface);border:1px solid rgba(245,240,255,.1);border-radius:12px;padding:1.25rem;display:flex;flex-direction:column;gap:1rem;transition:all .3s cubic-bezier(.2,0,0,1);box-shadow:0 4px 12px #0000004d}.player-panel.active{border-color:var(--color-purple);box-shadow:0 0 0 1px var(--color-purple),0 0 20px var(--color-purple-glow);transform:translateY(-2px)}.player-top{grid-column:2;grid-row:1}.player-left{grid-column:1;grid-row:2}.player-right{grid-column:3;grid-row:2}.player-bottom{grid-column:2;grid-row:3}.center-table{grid-column:2;grid-row:2;background:#0d0a12b3;border-radius:16px;border:1px solid var(--color-purple-subtle);padding:2rem;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:1.5rem;text-align:center;box-shadow:inset 0 0 40px #00000080;-webkit-backdrop-filter:blur(8px);backdrop-filter:blur(8px)}.trump-indicator{display:inline-flex;align-items:center;gap:.75rem;padding:.65rem 1.1rem;border:1px solid var(--color-gold);border-radius:8px;background:#fbbf241f;color:var(--color-gold);box-shadow:0 0 14px #fbbf242e}.trump-indicator-label{font-size:.8rem;font-weight:800;letter-spacing:.12em}.trump-indicator strong{font-size:1.35rem;letter-spacing:.06em}.hand-score{color:var(--color-text-secondary);font-size:.9rem;font-weight:600}.trick-pause-result{color:var(--color-gold);font-weight:700;margin:0}.trick-pause-cards{display:flex;flex-wrap:wrap;gap:1rem;justify-content:center}.card-hand{display:flex;flex-wrap:wrap;gap:.5rem;min-height:5.5rem;align-items:center}.playing-card{position:relative;display:flex;flex-direction:column;align-items:center;justify-content:center;width:4rem;height:5.5rem;background:#15111c;border:1px solid rgba(245,240,255,.15);border-radius:6px;font-family:var(--font-body);font-size:1.25rem;font-weight:600;-webkit-user-select:none;user-select:none;cursor:default;transition:all .2s cubic-bezier(.2,0,0,1);color:var(--color-text-primary);box-shadow:0 4px 8px #0006;padding:0}.playing-card.suit-hearts,.playing-card.suit-diamonds{color:#fb923c}.playing-card.card-back{background:var(--color-purple-subtle);border-color:var(--color-purple)}.playing-card.suit-clubs,.playing-card.suit-spades{color:#f8fafc}.playing-card.interactive{cursor:pointer}.playing-card.interactive:hover{border-color:var(--color-purple-soft);transform:translateY(-6px);box-shadow:0 8px 16px var(--color-purple-glow);background:#1c1626}.playing-card.interactive:focus-visible,.btn:focus-visible{outline:2px solid var(--color-gold);outline-offset:3px}.playing-card.selected{border-color:#fbbf24;box-shadow:0 0 0 1px #fbbf24,0 0 16px #fbbf244d;background:#1c170d}.card-status{position:absolute;right:.2rem;bottom:.2rem;padding:.1rem .22rem;border-radius:3px;font-size:.45rem;font-weight:800;letter-spacing:.05em;line-height:1}.card-status-keep{background:#fbbf24;color:#1c170d}.card-status-discard{background:#dc2626d9;color:#fff}.playing-card.disabled{opacity:.4;pointer-events:none;filter:grayscale(.5)}.btn{background:var(--color-purple);color:#fff;border:none;padding:.6rem 1.2rem;border-radius:6px;font-family:var(--font-display);font-size:.9rem;font-weight:600;cursor:pointer;transition:all .2s cubic-bezier(.2,0,0,1);text-transform:uppercase;letter-spacing:.05em;box-shadow:0 2px 8px #0000004d}.btn:hover:not(:disabled){background:var(--color-purple-soft);transform:translateY(-1px);box-shadow:0 4px 12px var(--color-purple-glow)}.btn:active:not(:disabled){transform:translateY(0)}.btn:disabled{background:#ffffff1a;color:#ffffff4d;cursor:not-allowed;box-shadow:none}.btn.btn-outline{background:transparent;border:1px solid var(--color-purple);color:var(--color-purple-soft)}.btn.btn-outline:hover:not(:disabled){background:var(--color-purple-subtle);color:#fff}.error-banner{background:#dc262626;border:1px solid rgba(220,38,38,.4);color:#fca5a5;padding:1rem 1.5rem;border-radius:8px;text-align:center;font-weight:500;letter-spacing:.01em;box-shadow:0 4px 12px #0003}.trick-status{margin-top:1rem;font-size:.85rem;color:var(--color-text-muted)}.trick-status-number{display:none}.trick-play-area{display:flex;gap:1.5rem;margin-top:1.5rem;justify-content:center}.trick-card{display:flex;flex-direction:column;align-items:center;gap:.5rem}.trick-card-label{font-size:.85rem;color:var(--color-purple-soft);font-weight:700;letter-spacing:.05em}.player-actions{display:flex;gap:.5rem;flex-wrap:wrap;margin-top:.5rem}.action-guidance{flex-basis:100%;color:var(--color-gold);font-size:.85rem;line-height:1.35}.action-history{position:fixed;right:1rem;bottom:1rem;z-index:3;max-width:18rem;max-height:42vh;overflow-y:auto;overflow-wrap:anywhere;padding:.75rem 1rem;border:1px solid var(--color-purple-subtle);border-radius:8px;background:#0d0a12f0;color:var(--color-text-secondary);font-size:.8rem}.action-history strong{display:block;margin-bottom:.35rem;color:var(--color-gold)}.action-history-trick{margin:.45rem 0 .15rem;font-size:inherit;color:var(--color-gold)}.action-history-trick span{font-weight:400;color:var(--color-text-muted)}.action-history-winner{margin:.15rem 0 .35rem;font-weight:600}.played-trump{position:fixed;left:1rem;bottom:1rem;z-index:3;max-width:18rem;padding:.75rem 1rem;border:1px solid var(--color-purple-subtle);border-radius:8px;background:#0d0a12f0;color:var(--color-text-secondary);font-size:.8rem}.played-trump strong{display:block;margin-bottom:.5rem;color:var(--color-gold)}.played-trump-cards{display:flex;flex-wrap:wrap;gap:.35rem}.played-trump-cards .playing-card{width:2.5rem;height:3.5rem;font-size:.9rem}.played-trump-empty{color:var(--color-text-muted)}@media(min-width:901px){:root{--desktop-play-gap: clamp(.5rem, 1dvh, 1rem);--desktop-header-inline-padding: 1rem}.play-root:has(>.game-board){min-height:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:auto auto auto;align-content:start;padding:var(--desktop-play-gap);gap:var(--desktop-play-gap)}.play-root>.play-header,.play-root>.game-board,.play-root>.error-banner,.play-root>section{grid-column:1 / -1}.play-header{padding:clamp(.375rem,.8dvh,.75rem) var(--desktop-header-inline-padding);align-items:flex-start}.play-header>:first-child{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;text-align:left}.play-header>:first-child>h1{line-height:1.1}.play-header>:first-child>div{line-height:1.2}.play-header-summary{display:flex;flex-direction:column;align-items:flex-end;gap:.125rem;line-height:1.2}.play-header-tools{gap:.25rem}.gameplay-controls{margin-top:0}.game-board{grid-template-rows:auto auto auto;align-content:start;gap:var(--desktop-play-gap)}.player-panel{padding-block:clamp(.375rem,.8dvh,.75rem);gap:clamp(.375rem,.8dvh,.75rem)}.player-actions:empty{display:none}.player-actions{gap:.25rem;margin-top:0}.player-actions .btn{min-height:2rem;padding:.4rem .55rem}.center-table{--desktop-center-gap: clamp(.375rem, .8dvh, .75rem);padding:var(--desktop-play-gap);gap:var(--desktop-center-gap)}.trick-table,.trick-pause{--desktop-trick-card-area-height: 7.0625rem ;min-height:calc(1.35rem * 1.25 + 1.3rem + 2px + var(--desktop-trick-card-area-height) + .9rem * 1.25 + .85rem * 1.25 + 3 * var(--desktop-center-gap) + .25rem + 2 * var(--desktop-play-gap) + 2px)}.trick-table .trump-indicator strong,.trick-table .hand-score,.trick-table .trick-status,.trick-table .trick-card-label,.trick-pause .trick-card-label{line-height:1.25}.trick-table .trick-mobile-heading{display:none}.trick-table .trick-status{margin-top:0}.trick-table .trick-status-number{display:inline}.trick-table .trick-play-area{min-height:var(--desktop-trick-card-area-height);align-items:flex-start}.game-board:has(>.trick-table,>.trick-pause)>.player-panel.active{transform:none}.trick-play-area{gap:.75rem;margin-top:.25rem}.trick-pause-cards{gap:.75rem}.deal-controls{gap:.5rem}.play-root>.played-trump,.play-root>.action-history{position:static;align-self:start;width:min(100%,18rem);overflow-y:auto;padding:.5rem .75rem}.play-root>.played-trump{grid-column:1;max-height:28rem}.play-root>.action-history{grid-column:2;justify-self:end;max-height:26rem}.player-top,.player-bottom{grid-column:1 / -1;justify-self:center;width:max-content;max-width:100%;min-width:min(100%,calc(42.5rem + 2px))}.player-top .card-hand,.player-bottom .card-hand{justify-content:center}.player-top .card-hand>.playing-card,.player-bottom .card-hand>.playing-card{flex-shrink:0}.player-left .card-hand,.player-right .card-hand{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:.25rem;align-items:start}.player-left .card-hand>.playing-card,.player-right .card-hand>.playing-card{width:100%;height:auto;aspect-ratio:8 / 11;min-width:0;font-size:clamp(.875rem,1.1vw,1.125rem)}}@media(max-width:900px){.play-root{padding:.75rem}.game-board{display:contents}.game-board>.player-bottom{order:2}.play-root>.played-trump{order:3}.game-board>.player-panel:not(.player-bottom){order:4}.play-root>.action-history{order:5}.player-panel .card-hand{width:min(100%,19.875rem);min-height:0;align-self:center;justify-content:center;gap:.375rem}.player-panel .card-hand>.playing-card{flex:0 0 auto;width:calc((100% - 1.875rem) / 6);height:auto;aspect-ratio:8 / 11;font-size:1rem}.player-panel .card-hand>.playing-card:has(.card-status){padding-bottom:.75rem}.player-bottom .card-hand>.playing-card.selected{border-color:#fbbf24;box-shadow:0 0 0 1px #fbbf24,0 0 16px #fbbf244d;background:#1c170d}.player-bottom .card-hand>.playing-card.interactive:hover:not(:disabled){transform:none}.center-table{order:1;min-height:0;padding:.75rem;gap:.5rem}.center-table>p{margin-block:0}.trick-table .trick-mobile-heading{display:none}.trick-table .trick-status{margin-top:0}.trick-table .trick-status-number{display:inline}.trick-table .trick-play-area{margin-top:0;gap:.5rem;flex-wrap:wrap}.trick-table .trick-play-area:empty{display:none}.trick-pause-cards{gap:.5rem}.play-header{flex-wrap:wrap;align-items:flex-start;padding:.625rem .75rem;gap:.375rem}.play-header>:first-child{display:flex;flex-direction:column;gap:.125rem;width:100%;min-width:0;overflow-wrap:anywhere}.play-header>:first-child>h1{font-size:1.75rem;line-height:1.1}.play-header>:first-child>div{line-height:1.25}.play-header-tools{flex:1 1 100%;width:100%;align-items:stretch;gap:.375rem}.play-header-summary{display:flex;flex-direction:column;align-items:flex-start;gap:.125rem;line-height:1.25}.play-header-summary>div{max-width:100%;text-align:left;overflow-wrap:anywhere}.play-header-summary>:first-child{line-height:1.1}.gameplay-controls{width:100%;margin-top:0;gap:.375rem}.play-header .gameplay-control{height:2.75rem;padding:.375rem .25rem}.play-header .gameplay-control:not(.gameplay-control-flag),.play-header .gameplay-control-flag{flex:1 1 0;min-width:0}.played-trump,.action-history{position:static;max-width:none}}.tester-bar{max-width:1200px;margin:0 auto;padding:.65rem 1rem 0;display:flex;flex-wrap:wrap;align-items:baseline;gap:.4rem 1rem;font-size:.85rem;color:var(--color-text-muted)}.tester-link{background:none;border:0;padding:.15rem;color:inherit;text-decoration:underline;cursor:pointer;font:inherit}.tester-intro-title{font-family:var(--font-display);letter-spacing:.04em}.tester-intro{max-width:420px;margin:2rem auto;padding:1rem;display:flex;flex-wrap:wrap;gap:1rem}.tester-intro label{width:100%;font-size:1.15rem}.tester-intro input{width:100%;padding:.65rem;font:inherit;color:var(--color-text-primary);background:var(--color-bg);border:1px solid currentColor;border-radius:4px}.tester-intro p{width:100%}.tester-intro select,.tester-intro textarea{width:100%;padding:.65rem;font:inherit;color:var(--color-text-primary);background:var(--color-bg);border:1px solid currentColor;border-radius:4px}@media(max-width:900px){.tester-bar{padding:.25rem .75rem 0;align-items:center;gap:.25rem .5rem;font-size:.8rem}.tester-bar>span{min-width:0;overflow-wrap:anywhere}.tester-bar .tester-link{padding:.25rem .375rem;line-height:1.25}}@media(min-width:901px){.tester-bar{max-width:none;padding-inline:calc(var(--desktop-play-gap) + var(--desktop-header-inline-padding) + 1px)}}.privacy-page{width:min(100%,48rem);margin:0 auto;padding:clamp(1.25rem,4vw,3rem);font-size:1.2rem;line-height:1.65;overflow-wrap:break-word}.privacy-page article{margin-top:2rem}.privacy-page h1,.privacy-page h2,.privacy-page h3{font-family:var(--font-display);line-height:1.35}.privacy-page h1{font-size:clamp(1.8rem,5vw,2.5rem);margin-bottom:1rem}.privacy-page h2{font-size:1.4rem;margin:2rem 0 1rem}.privacy-page h3{font-size:1.1rem;margin:1.5rem 0 .75rem}.privacy-page p{margin-bottom:1rem}.privacy-page a,.footer .privacy-link{color:var(--color-text-secondary);text-underline-offset:.2em}.privacy-page a:hover,.footer .privacy-link:hover{color:var(--color-text-primary)}.privacy-page a:focus-visible,.footer .privacy-link:focus-visible{outline:2px solid var(--color-purple-soft);outline-offset:4px}.footer .privacy-link{display:inline-block;margin-top:.5rem;font-size:.9rem}:root{--color-bg: #08060a;--color-surface: #0d0a12;--color-purple: #7c3aed;--color-purple-soft: #9d5cf6;--color-purple-glow: rgba(124, 58, 237, .35);--color-purple-subtle: rgba(124, 58, 237, .12);--color-text-primary: #f5f0ff;--color-text-secondary: rgba(245, 240, 255, .6);--color-text-muted: rgba(245, 240, 255, .35);--font-display: "Cinzel", "Georgia", serif;--font-body: "EB Garamond", "Georgia", serif}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html,body,#root{width:100%;min-height:100dvh}body{background-color:var(--color-bg);color:var(--color-text-primary);font-family:var(--font-body);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;overflow-x:hidden}.noise-overlay{position:fixed;inset:0;pointer-events:none;z-index:1;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 256 256' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='noise'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23noise)' opacity='0.035'/%3E%3C/svg%3E");background-size:200px 200px;opacity:.4}.splash-root{position:relative;min-height:100dvh;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3rem 1.5rem 2rem;gap:0}.content{position:relative;z-index:2;display:flex;flex-direction:column;align-items:center;gap:2rem;width:100%;max-width:900px}.coming-soon{font-family:var(--font-display);font-size:clamp(.65rem,1.5vw,.8rem);font-weight:400;letter-spacing:.35em;text-transform:uppercase;color:var(--color-purple-soft);opacity:.9;padding:.4em 1.2em;border:1px solid rgba(124,58,237,.3);border-radius:2px}.hero-block{position:relative;width:100%;max-width:860px}.hero-image{display:block;width:100%;height:auto;border-radius:4px;box-shadow:0 0 80px var(--color-purple-glow),0 0 160px #7c3aed26,0 40px 80px #000000b3}.hero-block:after{content:"";position:absolute;inset:0;border-radius:4px;background:linear-gradient(to bottom,transparent 40%,rgba(8,6,10,.65) 75%,var(--color-bg) 100%);pointer-events:none}.title-overlay{position:absolute;bottom:0;left:0;right:0;z-index:3;display:flex;justify-content:center;padding:0 1rem 1.5rem}.title{font-family:var(--font-display);font-size:clamp(2.2rem,7vw,5.5rem);font-weight:700;letter-spacing:.04em;text-align:center;color:var(--color-text-primary);text-shadow:0 0 40px var(--color-purple-glow),0 0 80px rgba(124,58,237,.2),0 2px 24px rgba(0,0,0,.9);line-height:1.05}.tagline{display:flex;flex-direction:column;align-items:center;gap:.3rem;padding-top:.25rem}.tagline p{font-family:var(--font-body);font-size:clamp(1rem,2.2vw,1.25rem);font-style:italic;color:var(--color-text-secondary);text-align:center;line-height:1.7;letter-spacing:.01em}.footer{position:relative;z-index:2;margin-top:auto;padding-top:2.5rem;text-align:center}.footer p{font-family:var(--font-body);font-size:clamp(.7rem,1.4vw,.8rem);color:var(--color-text-muted);letter-spacing:.05em}@media(min-width:601px){.splash-root{padding:2rem 1.5rem 1.5rem}.splash-root .content{gap:1.5rem}.splash-root .hero-block{max-width:min(860px,max(300px,calc((100dvh - 22rem)*1.5)))}.splash-root .title{font-size:clamp(2.2rem,min(7vw,calc((100dvh - 22rem)*.15)),5.5rem)}.splash-root .footer{padding-top:1.5rem}}@media(max-width:600px){.splash-root{padding:2rem 1rem 1.5rem;gap:0}.content{gap:1.5rem}.title-overlay{padding:0 .75rem 1rem}.hero-block:after{background:linear-gradient(to bottom,transparent 30%,rgba(8,6,10,.7) 70%,var(--color-bg) 100%)}.tagline{gap:.2rem;padding-top:0}.footer{padding-top:2rem}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
