@import"https://fonts.googleapis.com/css2?family=DM+Sans:ital,opsz,wght@0,9..40,400;0,9..40,500;0,9..40,600;0,9..40,700;1,9..40,400&display=swap";.learn-page{max-width:1100px}.learn-page .page-header{margin-bottom:2.5rem}.learn-rules{margin-top:2rem;padding-top:2rem}.learn-rules-title{font-size:1.5rem;font-weight:700;margin:0 0 1rem;color:var(--text)}.learn-rules-intro{margin:0 0 1.25rem;color:var(--text-secondary);line-height:1.6}.learn-rules h3{font-size:1.125rem;font-weight:600;margin:1.75rem 0 .5rem;color:var(--text)}.learn-rules p{margin:0 0 .75rem;line-height:1.6;color:var(--text-secondary)}.learn-rules ul{margin:0 0 1rem;padding-left:1.5rem;line-height:1.6;color:var(--text-secondary)}.learn-rules li{margin-bottom:.45rem}.learn-rules strong{color:var(--text)}.learn-variations-tabs{display:flex;flex-wrap:wrap;gap:.5rem;margin-bottom:1.25rem}.learn-variations-tab{padding:.5rem 1rem;font-size:.9375rem;font-weight:500;color:var(--text-secondary);background:var(--surface);border:1px solid var(--border);border-radius:8px;cursor:pointer;transition:color .2s,background .2s,border-color .2s}.learn-variations-tab:hover{color:var(--text);background:var(--surface-hover);border-color:var(--border-focus)}.learn-variations-tab.active{color:var(--text-inverse);background:var(--accent);border-color:var(--accent)}.learn-variations-panel{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.25rem 1.5rem;margin-bottom:2rem}.variation-summary{margin:0 0 .75rem;line-height:1.65;color:var(--text-secondary);font-weight:500}.variation-details{margin:0;padding-left:1.4rem;display:flex;flex-direction:column;gap:.4rem}.variation-details li{line-height:1.6;color:var(--text-secondary);font-size:.9375rem}.learn-house-rules{margin-top:3rem;padding-top:2.5rem;border-top:1px solid var(--border)}.house-rules-grid{display:grid;grid-template-columns:1fr;gap:1rem;margin-top:.5rem}@media(min-width:600px){.house-rules-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:960px){.house-rules-grid{grid-template-columns:repeat(4,1fr)}}.house-rule-card{background:var(--surface);border:1px solid var(--border);border-radius:10px;padding:1.1rem 1.25rem;display:flex;flex-direction:column;gap:.6rem;transition:border-color .2s,box-shadow .2s}.house-rule-card:hover{border-color:var(--border-focus);box-shadow:0 4px 14px #0000002e}.house-rule-header{display:flex;align-items:flex-start;gap:.75rem}.house-rule-icon{font-size:1.5rem;line-height:1;flex-shrink:0;margin-top:.1rem}.house-rule-name{font-size:1rem;font-weight:600;margin:0 0 .2rem;color:var(--text);line-height:1.3}.house-rule-tag{font-size:.75rem;font-weight:500;color:var(--accent);text-transform:uppercase;letter-spacing:.04em}.house-rule-desc{font-size:.9rem;color:var(--text-secondary);line-height:1.55;margin:0}.video-library{margin-top:.5rem}.video-library-favorites{margin-top:3.5rem;padding-top:2.5rem;border-top:1px solid var(--border)}.video-library-learn{margin-top:2.5rem;padding-top:2.5rem;border-top:1px solid var(--border)}.video-grid{display:grid;gap:2rem;grid-template-columns:1fr}@media(min-width:720px){.video-grid{grid-template-columns:repeat(2,1fr)}}@media(min-width:1000px){.video-grid{grid-template-columns:repeat(3,1fr)}}.video-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;display:flex;flex-direction:column;transition:border-color .2s,box-shadow .2s}.video-card:hover{border-color:var(--border-focus);box-shadow:0 8px 24px #00000040}.video-card-embed{position:relative;width:100%;padding-top:56.25%;background:#000}.video-card-embed iframe{position:absolute;top:0;left:0;width:100%;height:100%;border:none}.video-thumbnail-btn{position:absolute;inset:0;width:100%;height:100%;padding:0;border:none;background:none;cursor:pointer;display:block}.video-thumbnail-img{width:100%;height:100%;object-fit:cover;display:block}.video-thumbnail-placeholder{position:absolute;inset:0;width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:.5rem;background:var(--surface);color:var(--text-muted);font-size:.875rem}.video-thumbnail-placeholder-icon{font-size:2.5rem;color:var(--text-muted);opacity:.7}.video-play-btn{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;pointer-events:none;transition:opacity .15s}.video-thumbnail-btn:hover .video-play-btn{opacity:.85}.video-card-body{padding:1.25rem;display:flex;flex-direction:column;gap:.5rem;flex:1}.video-card-title{font-size:1.0625rem;font-weight:600;margin:0;line-height:1.35;color:var(--text)}.video-card-meta{font-size:.8125rem;color:var(--text-muted);margin:0}.video-card-desc{font-size:.9375rem;color:var(--text-secondary);margin:0;line-height:1.5;flex:1}.video-card-link{font-size:.875rem;font-weight:500;margin-top:.25rem}.video-card-link:hover{text-decoration:none}.disclosure{background:var(--surface);border:1px solid var(--border);border-radius:8px;padding:.75rem 1rem;margin-bottom:2rem;font-size:.875rem;color:var(--text-secondary)}.empty-state{background:var(--surface);border:1px dashed var(--border);border-radius:8px;padding:2rem;text-align:center;color:var(--text-secondary)}.empty-state code{background:var(--bg);padding:.2em .5em;border-radius:4px;font-size:.9em}.marketplace-grid{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:1.5rem}.marketplace-card{background:var(--surface);border:1px solid var(--border);border-radius:12px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.marketplace-card:hover{border-color:var(--accent);box-shadow:0 4px 12px #0000004d}.marketplace-card-link{display:block;color:inherit;text-decoration:none;height:100%}.marketplace-card-link:hover{text-decoration:none;color:inherit}.marketplace-card-image{aspect-ratio:1;background:var(--bg);overflow:hidden}.marketplace-card-image img{width:100%;height:100%;object-fit:cover}.marketplace-card-body{padding:1rem}.marketplace-card-title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600}.marketplace-card-desc{margin:0 0 .5rem;font-size:.875rem;color:var(--text-secondary);line-height:1.4}.marketplace-card-price{margin:0 0 .5rem;font-size:.875rem;font-weight:500}.marketplace-card-cta{font-size:.875rem;color:var(--accent)}.marketplace-card-link:hover .marketplace-card-cta{text-decoration:underline}.card-mat{--mat-green: #2d5a27;--mat-green-dark: #1e3d1a;--mat-green-light: #3d7a35;--mat-shadow: rgba(0, 0, 0, .4);--card-width: 72px;--card-height: 100px;--card-radius: 8px;--card-shadow: 0 2px 8px rgba(0, 0, 0, .35);background-color:#2d5a27;background-image:radial-gradient(ellipse 120% 80% at 50% 50%,var(--mat-green-light) 0%,transparent 50%),linear-gradient(180deg,var(--mat-green-dark) 0%,var(--mat-green) 40%,var(--mat-green-dark) 100%);box-shadow:inset 0 0 120px var(--mat-shadow);min-height:calc(var(--game-viewport-height, 100dvh) - 56px);margin-left:0;margin-right:0;margin-bottom:-3rem;width:100%;padding:1rem;position:relative;overflow-x:hidden;overflow-y:auto;isolation:isolate}.card-mat:before{content:"";position:absolute;inset:0;border:12px solid rgba(80,50,30,.6);border-radius:20px;pointer-events:none;box-shadow:inset 0 0 60px #0003}.card-mat-scoreboard{display:flex;justify-content:center;gap:1.5rem;flex-wrap:wrap;padding:.75rem 1rem;margin-bottom:.5rem;background:#0003;border-radius:12px;max-width:640px;margin-left:auto;margin-right:auto}.card-mat-scoreboard .player-col{text-align:center;min-width:4rem}.card-mat-scoreboard .player-label{font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#ffffffd9;margin-bottom:.25rem}.card-mat-scoreboard .player-score,.card-mat-scoreboard .player-wins{font-size:1rem;font-weight:700;color:#f5e6a3}.card-table{position:relative;max-width:1200px;margin:0 auto;min-height:420px;width:100%;display:grid;grid-template-areas:"top top top" "left center right" "left center right" "bottom bottom bottom";grid-template-columns:1fr minmax(200px,2fr) 1fr;grid-template-rows:auto 1fr 1fr auto;gap:.5rem;align-items:stretch}.card-table-zone.left{grid-area:left;flex-direction:column;justify-content:center}.card-table-zone.right{grid-area:right;flex-direction:column;justify-content:center}.card-table-zone.center{grid-area:center;min-height:140px}.playing-card{width:var(--card-width);height:var(--card-height);border-radius:var(--card-radius);box-shadow:var(--card-shadow);transition:transform .3s ease,box-shadow .2s ease,opacity .3s ease;position:relative;transform-style:preserve-3d;cursor:default;flex-shrink:0}.playing-card.clickable:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 8px 20px #0006}.playing-card.flip.clickable:hover{transform:rotateY(180deg) translateY(-6px) scale(1.02)}.playing-card.selected{transform:translateY(-10px) scale(1.04);box-shadow:0 0 0 3px gold,0 8px 24px #ffd70080;z-index:10}.playing-card.flip.selected{transform:rotateY(180deg) translateY(-10px) scale(1.04);box-shadow:0 0 0 3px gold,0 8px 24px #ffd70080;z-index:10}.playing-card-back{position:absolute;inset:0;border-radius:var(--card-radius);background:linear-gradient(135deg,#9c2042,#6b1530,#4a0f22);border:2px solid rgba(255,255,255,.2);backface-visibility:hidden;display:flex;align-items:center;justify-content:center;pointer-events:none}.playing-card-face{position:absolute;inset:0;border-radius:var(--card-radius);background:#fff;border:1px solid #e0e0e0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px;pointer-events:none}.swoop-tableau{display:flex;align-items:center;justify-content:center;gap:6px;flex-wrap:wrap;margin-bottom:.5rem;overflow:visible}.swoop-tableau-stack{position:relative;width:var(--card-width);height:var(--card-height);overflow:visible}.swoop-tableau-stack .playing-card{position:absolute;top:0;left:0}.swoop-tableau-stack .playing-card.tableau-down{z-index:0}.swoop-tableau-stack-face-down-trigger{position:absolute;top:-6px;left:-6px;width:calc(var(--card-width) + 12px);height:calc(var(--card-height) + 12px);padding:0;margin:0;border:none;background:transparent;cursor:pointer;z-index:20;display:block;touch-action:manipulation;pointer-events:auto;-webkit-tap-highlight-color:transparent;isolation:isolate}.swoop-tableau-stack-face-down-trigger .playing-card{position:absolute;top:6px;left:6px}.swoop-tableau-stack .playing-card.tableau-up{z-index:1;top:0;left:0;box-shadow:0 4px 12px #00000059}.swoop-tableau-stack .playing-card.tableau-up.clickable{cursor:pointer}.swoop-tableau-stack .playing-card.tableau-up.clickable:hover{transform:rotateY(180deg) translateY(-6px) scale(1.05);box-shadow:0 8px 20px #00000080}.swoop-tableau-stack .playing-card.tableau-up.selected{transform:rotateY(180deg) translateY(-10px) scale(1.06);box-shadow:0 0 0 3px gold,0 8px 24px #ffd70080;z-index:10}.swoop-tableau-stack .playing-card.tableau-down-playable{cursor:pointer;animation:blind-pulse 1.5s ease-in-out infinite;z-index:2;pointer-events:auto;touch-action:manipulation}.swoop-tableau-stack .playing-card.tableau-down-playable:hover{transform:translateY(-6px) scale(1.05);box-shadow:0 0 0 3px gold,0 6px 20px #ffd70080;animation:none}@keyframes blind-pulse{0%,to{box-shadow:0 2px 8px #00000059}50%{box-shadow:0 0 0 2px #ffd70099,0 4px 16px #ffd7004d}}.swoop-hand-label{font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#f5e6a3;margin-bottom:4px}@media(min-width:1200px){.card-mat{--card-width: 80px;--card-height: 112px}.card-table{max-width:1400px}.playing-card-rank{font-size:1.35rem}.playing-card-suit{font-size:1.6rem}.card-hand .playing-card{margin-left:-26px}}@media(max-width:768px){.card-mat{--card-width: 56px;--card-height: 78px;margin-left:0;margin-right:0;width:100%}.playing-card-rank{font-size:1rem}.playing-card-suit{font-size:1.2rem}.card-table{grid-template-columns:1fr minmax(140px,1.5fr) 1fr}.card-hand .playing-card{margin-left:-18px}}:root{--sz-primary: #FF7A00;--sz-secondary: #0F1E3A;--sz-accent: #FFC300;--sz-energy: #00BFFF;--sz-dark: #0B0F1A;--sz-light: #FFFFFF;--bg: var(--sz-dark);--bg-elevated: var(--sz-secondary);--surface: #1a2535;--surface-hover: #243044;--border: #2d3d52;--border-focus: var(--sz-primary);--text: #e8edf4;--text-secondary: #9ca8b8;--text-muted: #6b7a8f;--text-inverse: var(--sz-dark);--accent: var(--sz-primary);--accent-hover: #ff8c1a;--accent-muted: rgba(255, 122, 0, .2);--accent-glow: rgba(255, 122, 0, .4);--accent-deep: #e06d00;--gold: var(--sz-accent);--gold-muted: rgba(255, 195, 0, .15);--danger: #e05c5c;--danger-muted: rgba(224, 92, 92, .2);--success: #4ade80;--success-muted: rgba(74, 222, 128, .2);font-family:DM Sans,system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif;font-size:16px;line-height:1.5;color:var(--text);background:var(--bg);-webkit-font-smoothing:antialiased}*{box-sizing:border-box}body{margin:0;min-height:100vh;min-height:100dvh;-webkit-text-size-adjust:100%;overscroll-behavior-y:none}.layout-root-pwa{min-height:100dvh;min-height:100vh}@media(display-mode:standalone){body{overscroll-behavior-y:none;-webkit-overflow-scrolling:touch}}a{color:var(--accent);text-decoration:none}a:hover{color:var(--accent-hover);text-decoration:underline}#root{min-height:100vh;min-height:100dvh}.layout-root{display:flex;flex-direction:column;min-height:100vh;min-height:100dvh}.layout-root.layout-root-main-scroll{height:100vh;height:100dvh;max-height:100dvh;overflow:hidden}.site-header{flex-shrink:0;background:var(--surface);border-bottom:1px solid var(--border);position:sticky;top:0;z-index:100;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);padding-top:max(0px,env(safe-area-inset-top));padding-left:max(.75rem,env(safe-area-inset-left));padding-right:max(.75rem,env(safe-area-inset-right))}.nav{max-width:1200px;margin:0 auto;padding:.5rem .75rem;display:flex;align-items:center;justify-content:space-between;gap:.5rem;flex-wrap:nowrap}.nav-brand{font-weight:700;font-size:1.15rem;letter-spacing:-.02em;color:var(--text);text-decoration:none;display:flex;align-items:center}.nav-brand:hover{color:var(--text);text-decoration:none;opacity:.9}.nav-brand-logo{height:1.75rem;width:auto;display:block;object-fit:contain}.nav{flex-wrap:nowrap}.nav-brand-logo{height:1.75rem}.nav-links-desk{display:none!important}.nav-burger{display:flex;align-items:center;justify-content:center;width:2.75rem;height:2.75rem;padding:0;background:var(--surface-hover);border:1px solid var(--border);border-radius:10px;cursor:pointer;flex-direction:column;gap:5px;transition:background .2s,border-color .2s;-webkit-tap-highlight-color:transparent}.nav-burger:hover{background:var(--border)}.nav-burger-bar{display:block;width:1.25rem;height:2px;background:var(--text);border-radius:1px;transition:transform .2s ease,opacity .2s ease}.nav-burger[aria-expanded=true] .nav-burger-bar:nth-child(1){transform:translateY(7px) rotate(45deg)}.nav-burger[aria-expanded=true] .nav-burger-bar:nth-child(2){opacity:0}.nav-burger[aria-expanded=true] .nav-burger-bar:nth-child(3){transform:translateY(-7px) rotate(-45deg)}.nav-drawer-overlay{display:block;position:fixed;inset:0;background:#00000080;z-index:200;opacity:0;visibility:hidden;transition:opacity .25s ease,visibility .25s ease}.nav-drawer-overlay-open{opacity:1;visibility:visible}.nav-drawer{display:flex;position:fixed;top:0;right:0;bottom:0;width:clamp(280px,84vw,360px);max-width:100vw;background:var(--surface);border-left:1px solid var(--border);z-index:201;box-shadow:-8px 0 32px #0000004d;transform:translate(100%);transition:transform .25s ease;flex-direction:column;overflow:hidden;min-height:100dvh;-webkit-overflow-scrolling:touch;padding-top:max(8px,env(safe-area-inset-top));padding-right:max(8px,env(safe-area-inset-right));padding-left:max(8px,env(safe-area-inset-left));padding-bottom:max(4px,env(safe-area-inset-bottom))}.nav-drawer-open{transform:translate(0)}.nav-drawer-header{display:flex;align-items:center;justify-content:space-between;padding:1rem 1.25rem;border-bottom:1px solid var(--border)}.nav-drawer-title{font-weight:600;font-size:1.125rem}.nav-drawer-close{width:2.5rem;height:2.5rem;padding:0;font-size:1.5rem;line-height:1;background:none;border:none;color:var(--text-secondary);cursor:pointer;border-radius:8px;display:flex;align-items:center;justify-content:center}.nav-drawer-close:hover{background:var(--surface-hover);color:var(--text)}.nav-drawer-links{padding:1rem 1rem max(.5rem,env(safe-area-inset-bottom));display:flex;flex-direction:column;gap:.25rem;flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch}.nav-drawer-links .nav-link{display:flex;align-items:center;padding:.75rem 1rem;border-radius:10px}.nav-drawer-links .nav-link-logout{display:flex;width:100%;align-items:center;padding:.75rem 1rem;border-radius:10px;background:none;border:none;font-family:inherit;font-size:1rem;font-weight:500;color:var(--danger);cursor:pointer;text-align:left}.nav-drawer-links .nav-link-logout:hover{background:var(--danger-muted)}.nav-drawer-links .nav-auth-buttons{display:flex;gap:.5rem;margin-top:.5rem}.bottom-nav{display:flex;position:fixed;bottom:0;left:0;right:0;height:calc(56px + max(0px,env(safe-area-inset-bottom)));padding-bottom:max(8px,env(safe-area-inset-bottom));padding-left:max(.5rem,env(safe-area-inset-left));padding-right:max(.5rem,env(safe-area-inset-right));background:#12171ff0;-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px);border-top:1px solid var(--border);z-index:90;align-items:center;justify-content:space-around}.bottom-nav-item{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:3px;padding:.5rem .75rem;color:var(--text-muted);text-decoration:none;font-size:.65rem;font-weight:500;background:none;border:none;font-family:inherit;cursor:pointer;min-width:4.5rem;min-height:50px;border-radius:12px;transition:color .2s,background .2s;-webkit-tap-highlight-color:transparent}.bottom-nav-item:hover{color:var(--text);background:#ffffff0f;text-decoration:none}.bottom-nav-item:active{background:#ffffff1a}.bottom-nav-item.active{color:var(--accent);text-decoration:none}.bottom-nav-icon{font-size:1.35rem;line-height:1}.bottom-nav-label{line-height:1.2;letter-spacing:.02em}.nav-links{display:flex;align-items:center;gap:.5rem;flex-wrap:wrap}.nav-links-desk{flex-wrap:nowrap}.nav-links-desk .nav-link{padding:.4rem .6rem;font-size:.875rem;white-space:nowrap}.nav-more{position:relative}.nav-more-trigger{background:none;border:none;font-family:inherit;cursor:pointer;color:var(--text-secondary);font-weight:500;border-radius:8px}.nav-more-trigger:hover{color:var(--text);background:var(--surface-hover)}.nav-more-dropdown{top:calc(100% + .35rem);left:0;right:auto;min-width:160px}.nav-link{color:var(--text-secondary);text-decoration:none;padding:.5rem .75rem;border-radius:8px;font-weight:500;transition:color .15s,background .15s}.nav-link:hover{color:var(--text);background:var(--surface-hover);text-decoration:none}.nav-link.active{color:var(--accent);background:var(--accent-muted);text-decoration:none}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.625rem 1.25rem;min-height:44px;font-size:.9375rem;font-weight:600;font-family:inherit;line-height:1.4;border:none;border-radius:10px;cursor:pointer;transition:background .2s,color .2s,box-shadow .2s,transform .1s;-webkit-tap-highlight-color:transparent}.btn:active{transform:scale(.98)}.btn:disabled{opacity:.6;cursor:not-allowed;transform:none}.btn-primary{background:var(--accent);color:var(--text-inverse)}.btn-primary:hover:not(:disabled){background:var(--accent-hover);box-shadow:0 4px 14px var(--accent-glow)}.btn-secondary{background:var(--surface-hover);color:var(--text);border:1px solid var(--border)}.btn-secondary:hover:not(:disabled){background:var(--border);color:var(--text)}.btn-ghost{background:transparent;color:var(--text-secondary)}.btn-ghost:hover:not(:disabled){background:var(--surface-hover);color:var(--text)}.btn-danger{background:var(--danger);color:#fff}.btn-danger:hover:not(:disabled){filter:brightness(1.1)}.btn-sm{padding:.4rem .9rem;font-size:.875rem;min-height:36px}.btn-lg{padding:.875rem 1.75rem;font-size:1rem;min-height:48px}.btn-block{width:100%}.form-group{margin-bottom:1.25rem}.form-label{display:block;font-size:.875rem;font-weight:500;color:var(--text-secondary);margin-bottom:.375rem}.form-label .required{color:var(--danger)}.form-input,.form-select,.form-textarea{width:100%;padding:.625rem .875rem;font-size:1rem;font-family:inherit;color:var(--text);background:var(--bg-elevated);border:1px solid var(--border);border-radius:10px;transition:border-color .2s,box-shadow .2s}.form-input::placeholder,.form-textarea::placeholder{color:var(--text-muted)}.form-input:hover,.form-select:hover,.form-textarea:hover{border-color:var(--text-muted)}.form-input:focus,.form-select:focus,.form-textarea:focus{outline:none;border-color:var(--accent);box-shadow:0 0 0 3px var(--accent-muted)}.form-input.error,.form-select.error,.form-textarea.error{border-color:var(--danger)}.form-hint{font-size:.8125rem;color:var(--text-muted);margin-top:.25rem}.form-error{font-size:.8125rem;color:var(--danger);margin-top:.25rem}.form-success{font-size:.8125rem;color:var(--success);margin-top:.25rem}.form-textarea{min-height:100px;resize:vertical}.card{background:var(--surface);border:1px solid var(--border);border-radius:14px;overflow:hidden;transition:border-color .2s,box-shadow .2s}.card-max-28{width:min(28rem,100%)}.card-max-32{width:min(32rem,100%)}.card-max-30,.card-max-480{width:min(30rem,100%)}.card:hover{border-color:var(--border);box-shadow:0 8px 24px #00000040}.card-body{padding:1.25rem}.card-title{margin:0 0 .5rem;font-size:1.125rem;font-weight:600;letter-spacing:-.01em}.card-desc{margin:0;font-size:.9375rem;color:var(--text-secondary);line-height:1.45}.discover-modal-overlay{position:fixed;inset:0;z-index:200;background:#00000080;display:flex;align-items:center;justify-content:center;padding:1rem;animation:discover-fade-in .2s ease}@keyframes discover-fade-in{0%{opacity:0}to{opacity:1}}.discover-modal-card{max-width:360px;width:100%;box-shadow:0 16px 48px #0000004d}.install-prompt-overlay{position:fixed;inset:0;z-index:220;background:#00000094;display:flex;align-items:center;justify-content:center;padding:1rem;animation:discover-fade-in .2s ease}.install-prompt-card{width:min(30rem,100%);max-height:min(85dvh,38rem);overflow-y:auto;box-shadow:0 20px 50px #0006}.install-prompt-header{display:flex;align-items:center;justify-content:space-between;gap:.5rem}.install-prompt-header h2{margin:0;font-size:1.25rem}.install-prompt-text{margin:.5rem 0 0;color:var(--text-secondary);font-size:.9375rem}.install-prompt-actions{margin-top:1rem}.install-prompt-ios-steps{display:grid;gap:.4rem}.install-prompt-hint{margin:.125rem 0}.install-prompt-divider{margin:1rem 0;border-top:1px solid var(--border)}.install-prompt-notify h3{margin:0 0 .45rem;font-size:1rem}.leaderboard-row:hover{background:var(--surface-hover, rgba(0, 0, 0, .04))}.main{flex:1;min-height:0;padding:1rem .75rem max(1rem,env(safe-area-inset-bottom));overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.main.main-with-bottom-nav{padding-bottom:calc(56px + max(8px,env(safe-area-inset-bottom)) + 1rem)}.ad-slot-wrapper{min-height:50px;margin-bottom:.5rem;display:flex;justify-content:center;align-items:center}.main-play{display:flex;flex-direction:column;flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.main-play>*:first-child{flex:1;min-height:0}.main-play>.page:first-child{min-height:min-content}.main-game{padding:0;display:flex;flex-direction:column;min-height:0;overflow:hidden}.main-game .card-mat{flex:1;min-height:0;display:flex;flex-direction:column}.main-game .card-mat .card-table{flex:1;min-height:0}html.game-viewport-lock,body.game-viewport-lock{position:fixed;inset:0;width:100%;height:var(--game-viewport-height, 100vh);height:var(--game-viewport-height, 100dvh);height:var(--game-viewport-height, 100svh);max-width:100vw;max-height:var(--game-viewport-height, 100vh);max-height:var(--game-viewport-height, 100dvh);max-height:var(--game-viewport-height, 100svh);overflow:hidden;overscroll-behavior:none;-webkit-overflow-scrolling:auto}body.game-viewport-lock #root{height:100%;overflow:hidden;max-width:100%}body.game-viewport-lock #root .layout-root-in-game{max-height:100%}.layout-root-in-game{position:fixed;inset:0;z-index:1;display:flex;flex-direction:column;width:100%;height:var(--game-viewport-height, 100vh);height:var(--game-viewport-height, 100dvh);height:var(--game-viewport-height, 100svh);max-width:100vw;overflow:hidden}.layout-root-in-game .main-game .page{flex:1;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch}.layout-root-in-game .site-header{padding:max(0px,env(safe-area-inset-top)) max(.5rem,env(safe-area-inset-right)) 0 max(.5rem,env(safe-area-inset-left));flex-shrink:0}.layout-root-in-game .site-header .nav{padding:.35rem .5rem}.layout-root-in-game .nav-brand-logo{height:1.4rem}.layout-root-in-game .main{padding:0;min-height:0;overflow:hidden;flex:1;display:flex;flex-direction:column}.layout-root-in-game .main-game{flex:1;min-height:min(60dvh,480px);overflow:hidden}.layout-root-in-game .game-table-layout{min-height:min(58dvh,460px)}.layout-root-in-game .main-game .card-mat{margin-left:0;margin-right:0;width:100%;padding:.5rem;border-radius:0;flex:1;min-height:min(65dvh,520px);overflow:hidden}.layout-root-in-game .card-table{min-height:min(60dvh,480px)}.layout-root-in-game .card-table-zone{min-height:0}.layout-root-in-game .card-table-zone.center{min-height:0;overflow:hidden}.layout-root-in-game .main-game .card-mat:before{border-width:6px;border-radius:12px}.layout-root-in-game .card-table-zone.bottom{position:relative;z-index:1;background:#2d5a27;padding-bottom:max(.25rem,env(safe-area-inset-bottom));box-shadow:none;overflow-x:auto;overflow-y:hidden;flex-shrink:0;flex-direction:column;align-items:center;justify-content:flex-start;flex-wrap:nowrap;gap:.25rem;width:100%;-webkit-overflow-scrolling:touch}.layout-root-in-game .card-table-zone.bottom .swoop-tableau{position:relative;z-index:3}.layout-root-in-game .card-table-zone.bottom .card-hand{position:relative;z-index:2}.layout-root-in-game .card-table-zone.bottom .bottom-zone-actions{position:relative;z-index:1;width:100%;justify-content:center;flex-wrap:wrap;gap:.4rem}.layout-root-in-game .card-table-zone.bottom .bottom-zone-actions .btn{min-height:44px;min-width:44px;padding:.625rem 1rem}.layout-root-in-game .card-table-zone.bottom .swoop-hand-label{width:100%;text-align:center;margin-bottom:0}.layout-root-in-game .card-table-zone.bottom .swoop-tableau,.layout-root-in-game .card-table-zone.bottom .card-hand{width:100%;justify-content:center}.layout-root-in-game .card-table-zone.bottom .card-hand{min-width:max-content;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.page{max-width:960px;margin:0 auto}.page-header{margin-bottom:2rem}.page-title{font-size:1.75rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem}.page-lead{font-size:1.0625rem;color:var(--text-secondary);margin:0;line-height:1.5}.auth-page{min-height:calc(var(--game-viewport-height, 100dvh) - 56px);display:flex;align-items:center;justify-content:center;padding:2rem 1rem max(2rem,env(safe-area-inset-bottom)) 1rem}.auth-panel{width:100%;max-width:420px;background:var(--surface);border:1px solid var(--border);border-radius:16px;padding:2rem;box-shadow:0 12px 40px #0000004d}.auth-panel h1{font-size:1.5rem;font-weight:700;letter-spacing:-.02em;margin:0 0 .5rem}.auth-panel .subtitle{font-size:.9375rem;color:var(--text-secondary);margin:0 0 1.75rem}.auth-panel .form-error.global{margin-bottom:1rem;padding:.75rem;background:var(--danger-muted);border-radius:8px}.auth-panel .form-success.global{margin-bottom:1rem;padding:.75rem;background:var(--success-muted);border-radius:8px;color:var(--success)}.auth-panel .form-success.global strong{color:var(--text)}.auth-panel .footer-link{margin-top:1.5rem;text-align:center;font-size:.9375rem;color:var(--text-secondary)}.auth-panel .footer-link a{font-weight:500}.user-menu{position:relative}.user-menu-trigger{display:flex;align-items:center;gap:.5rem;padding:.4rem .75rem;background:var(--surface-hover);border:1px solid var(--border);border-radius:10px;color:var(--text);font-weight:500;font-size:.9375rem;cursor:pointer;transition:background .2s,border-color .2s}.user-menu-trigger:hover{background:var(--border)}.user-menu-dropdown{position:absolute;top:calc(100% + .5rem);right:0;min-width:200px;background:var(--surface);border:1px solid var(--border);border-radius:12px;box-shadow:0 12px 32px #00000059;padding:.5rem;z-index:50}.user-menu-dropdown .menu-item{display:block;width:100%;padding:.6rem .75rem;text-align:left;font-size:.9375rem;color:var(--text);background:none;border:none;border-radius:8px;cursor:pointer;font-family:inherit;text-decoration:none}.user-menu-dropdown .menu-item:hover{background:var(--surface-hover);color:var(--text);text-decoration:none}.user-menu-dropdown .menu-item.logout{color:var(--danger)}.empty-state{background:var(--surface);border:1px dashed var(--border);border-radius:14px;padding:2.5rem;text-align:center;color:var(--text-secondary)}.empty-state code{background:var(--bg-elevated);padding:.2em .5em;border-radius:6px;font-size:.9em}.badge{display:inline-flex;align-items:center;padding:.25rem .6rem;font-size:.75rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em;border-radius:6px}.badge-locality{background:var(--accent-muted);color:var(--accent)}.badge-gold{background:var(--gold-muted);color:var(--gold)}.grid{display:grid;gap:1.25rem}.grid-2{grid-template-columns:repeat(auto-fill,minmax(280px,1fr))}.grid-3{grid-template-columns:repeat(auto-fill,minmax(260px,1fr))}.hero{text-align:center;padding:3rem 0 4rem;max-width:640px;margin:0 auto;position:relative}.hero:before{content:"";position:absolute;width:120%;inset:-20% 50% 0 -10%;background:radial-gradient(ellipse 80% 60% at 50% 30%,var(--accent-glow) 0%,transparent 55%);pointer-events:none;z-index:0}.hero .hero-logo,.hero .hero-title,.hero .hero-lead,.hero .btn,.hero>div{position:relative;z-index:1}.hero-logo{max-width:100%;width:min(420px,90vw);height:auto;margin:0 auto 1rem;display:block;object-fit:contain}.update-banner{position:fixed;top:0;left:0;right:0;z-index:1000;display:flex;align-items:center;justify-content:center;gap:1rem;flex-wrap:wrap;padding:.6rem 1rem;font-size:.9rem;font-weight:500;box-shadow:0 2px 12px #00000040}.update-banner-refresh{background:var(--accent);color:var(--text-inverse)}.update-banner-refresh .update-banner-text{color:inherit}.update-banner-refresh .btn-primary{background:#fffffff2;color:var(--text-inverse)}.update-banner-refresh .btn-primary:hover{background:#fff}.update-banner-offline{background:var(--surface);border-bottom:1px solid var(--border);color:var(--text)}.update-banner-text{flex:1;min-width:0;text-align:center}.update-banner-actions{display:flex;align-items:center;gap:.5rem}.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.hero-title{font-size:2.75rem;font-weight:800;letter-spacing:-.03em;margin:0 0 1rem;background:linear-gradient(135deg,#fff 0%,var(--text-secondary) 100%);-webkit-background-clip:text;-webkit-text-fill-color:transparent;background-clip:text}.hero-lead{font-size:1.125rem;color:var(--text-secondary);line-height:1.6;margin:0 0 2rem}.features{padding:2.5rem 0 3rem;border-top:1px solid var(--border)}.features-title{font-size:1.5rem;font-weight:700;margin:0 0 1.5rem;text-align:center}.feature-card{height:100%}.cta-section{text-align:center;padding:2.5rem 1rem;background:var(--surface);border:1px solid var(--border);border-radius:16px;margin-top:2rem;box-shadow:0 0 40px var(--accent-glow)}@media(min-width:1280px){.nav{padding:.6rem 1.25rem;flex-wrap:wrap}.nav-brand-logo{height:2rem}.nav-links-desk{display:flex!important}.nav-burger,.nav-drawer-overlay,.nav-drawer,.bottom-nav{display:none!important}.main{padding:1.5rem 1.25rem 3rem}.layout-root-in-game .main-game .card-mat{margin-left:0;margin-right:0;width:100%;padding:1rem}}.layout-root-pwa .nav-links-desk,.layout-root-pwa .nav-more{display:none!important}.layout-root-pwa .nav-burger{display:flex!important}.layout-root-pwa .nav-drawer-overlay{display:block!important}.layout-root-pwa .nav-drawer,.layout-root-pwa .bottom-nav{display:flex!important}@media(display-mode:standalone),(display-mode:fullscreen){.nav-links-desk,.nav-more{display:none!important}.nav-burger{display:flex!important}.nav-drawer-overlay{display:block!important}.nav-drawer,.bottom-nav{display:flex!important}}@media(max-width:640px){.nav{padding:.4rem .5rem}.nav-brand-logo{height:1.5rem}.main{padding:.75rem .5rem max(.75rem,env(safe-area-inset-bottom))}.main.main-with-bottom-nav{padding-bottom:calc(56px + max(8px,env(safe-area-inset-bottom)) + .75rem)}.page-title{font-size:1.5rem}.auth-panel{padding:1.5rem}.hero{padding:2rem 0 3rem}.hero-title{font-size:2rem}.hero-logo{width:min(320px,85vw);margin-bottom:.75rem}}@media(max-width:360px){.nav{padding:.35rem .4rem}.nav-brand-logo{height:1.35rem}.nav-burger{width:2.5rem;height:2.5rem}.nav-drawer-header{padding:.75rem 1rem}.nav-drawer-title{font-size:1rem}.nav-drawer-links{padding:.75rem}.nav-drawer-links .nav-link,.nav-drawer-links .nav-link-logout{padding:.6rem .75rem;font-size:.9rem}.bottom-nav-item{min-width:3.5rem;padding:.4rem .5rem;font-size:.6rem;min-height:44px}.bottom-nav-icon{font-size:1.2rem}.main{padding:.5rem .4rem max(.5rem,env(safe-area-inset-bottom))}.main.main-with-bottom-nav{padding-bottom:calc(56px + max(8px,env(safe-area-inset-bottom)) + .5rem)}.page-title{font-size:1.35rem}.hero{padding:1.5rem 0 2rem}.hero-title{font-size:1.65rem}.hero-logo{width:min(280px,88vw);margin-bottom:.5rem}}.card-mat{--mat-green: #2d5a27;--mat-green-dark: #1e3d1a;--mat-green-light: #3d7a35;--mat-shadow: rgba(0, 0, 0, .4);--card-width: 72px;--card-height: 100px;--card-radius: 8px;--card-shadow: 0 2px 8px rgba(0, 0, 0, .35);--card-transition: transform .25s ease, box-shadow .2s ease;background-color:#2d5a27;background-image:radial-gradient(ellipse 120% 80% at 50% 50%,var(--mat-green-light) 0%,transparent 50%),radial-gradient(circle at 20% 30%,rgba(255,255,255,.03) 0%,transparent 40%),linear-gradient(180deg,var(--mat-green-dark) 0%,var(--mat-green) 40%,var(--mat-green-dark) 100%);box-shadow:inset 0 0 120px var(--mat-shadow);min-height:calc(var(--game-viewport-height, 100dvh) - 56px);margin-left:0;margin-right:0;margin-bottom:-3rem;width:100%;padding:1rem;position:relative;overflow:hidden;isolation:isolate}.card-mat:before{content:"";position:absolute;inset:0;border:8px solid rgba(60,45,35,.35);border-radius:16px;pointer-events:none;box-shadow:inset 0 0 40px #00000026}@media(min-width:640px){.card-mat{margin-left:-1.25rem;margin-right:-1.25rem;width:calc(100% + 2.5rem)}}.card-mat-header{text-align:center;padding:.5rem 1rem}.card-mat-title{color:#f5e6a3;margin:0;font-size:1.35rem;font-weight:700;letter-spacing:.02em}.card-mat-subtitle{color:#ffffffeb;margin:.25rem 0 0;font-size:.9rem}.card-mat-scoreboard{display:grid;grid-template-columns:repeat(var(--score-cols, 4),minmax(0,1fr));justify-content:stretch;align-items:stretch;gap:.75rem;padding:.5rem 1rem;margin-bottom:.35rem;max-width:560px;margin-left:auto;margin-right:auto}.card-mat-scoreboard .player-col{text-align:center;min-width:0;padding:.5rem .85rem;border-radius:12px;background:#00000040;border:1px solid rgba(255,255,255,.08);transition:background .2s ease,border-color .2s ease,box-shadow .2s ease}.card-mat-scoreboard .player-col.player-col-active{background:#ffd70026;border-color:#ffd70073;box-shadow:0 0 0 1px #ffd70033}.card-mat-scoreboard .player-label{font-size:.8rem;font-weight:700;text-transform:uppercase;letter-spacing:.06em;color:#ffffffe6;margin-bottom:.2rem;display:block}.card-mat-scoreboard .player-score-row{font-size:1rem;font-weight:600;color:#f5e6a3;display:flex;align-items:center;justify-content:center;gap:.35rem}.card-mat-scoreboard .player-score-sep{color:#ffffff59;font-weight:400}.card-mat-scoreboard .player-wins-val{font-size:.85rem;color:#ffffffd9}.card-mat-scoreboard-many-cols{grid-template-columns:repeat(auto-fill,minmax(72px,1fr));max-width:100%}.opponent-summary-list{width:100%;max-height:min(220px,38dvh);overflow-y:auto;overflow-x:hidden;display:flex;flex-direction:column;gap:2px;padding:2px;align-items:stretch;-webkit-overflow-scrolling:touch}.opponent-summary-row{display:flex;flex-direction:column;gap:1px;padding:3px 6px;border-radius:4px;background:#0003;border:1px solid rgba(255,255,255,.1);min-height:0}.opponent-summary-row-active{background:#ffd7001f;border-color:#ffd70066}.opponent-summary-header{display:flex;align-items:center;gap:4px;flex-wrap:wrap}.opponent-summary-name{font-size:clamp(.55rem,1.8vw,.68rem);font-weight:700;text-transform:uppercase;letter-spacing:.03em;color:#fffffff2;line-height:1.2}.opponent-summary-turn{font-size:clamp(.5rem,1.6vw,.62rem);font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:gold;margin-left:auto}.opponent-summary-stats{font-size:clamp(.55rem,1.8vw,.68rem);color:#ffffffa6;line-height:1.2}.opponent-summary-score{font-weight:600;color:#f5e6a3f2}.opponent-summary-tableau{display:flex;gap:4px;flex-wrap:wrap;font-size:clamp(.58rem,1.9vw,.72rem);font-weight:600;color:#f5e6a3;line-height:1.2}.opponent-summary-tableau-slot{min-width:1.8em;text-align:center}.card-table-zone.top:has(.opponent-summary-list){overflow:hidden;align-items:flex-start;justify-content:flex-start}.card-table-zone.top .opponent-summary-list{flex:1 1 auto;min-height:0}.card-table{position:relative;max-width:1200px;margin:0 auto;min-height:0;display:grid;grid-template-areas:"top top top" "left center right" "left center right" "bottom bottom bottom";grid-template-columns:1fr minmax(200px,2fr) 1fr;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) minmax(140px,auto);gap:.5rem;align-items:stretch}.card-table-zone{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:4px;min-height:80px;padding:.5rem}.card-table-zone.top{grid-area:top;justify-content:center}.card-table-zone.left{grid-area:left;flex-direction:column;justify-content:flex-start;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;align-items:center}.card-table-zone.right{grid-area:right;flex-direction:column;justify-content:flex-start;min-height:0;overflow-y:auto;overflow-x:hidden;-webkit-overflow-scrolling:touch;align-items:center}.card-table-zone.bottom{grid-area:bottom;justify-content:center}.card-table-zone.center{grid-area:center;min-height:140px;overflow:visible;align-items:center;justify-content:center}.game-table-inner-contained .card-table-zone.center{overflow:visible;flex-direction:column;justify-content:flex-start;align-items:center;gap:.35rem}.player-zone{width:100%;max-width:100%;border-radius:10px;padding:4px 6px;border:1px solid rgba(255,255,255,.12);background:#00000026;min-height:40px}.player-zone-left{border-left:3px solid rgba(100,160,255,.7)}.player-zone-top{border-top:3px solid rgba(180,120,255,.7)}.player-zone-right{border-right:3px solid rgba(80,200,200,.7)}.player-zone-you{border-bottom:3px solid rgba(255,200,80,.8);background:#0003}.player-zone-header{display:flex;flex-wrap:wrap;align-items:center;gap:.35rem .5rem;margin-bottom:4px;padding-bottom:2px;border-bottom:1px solid rgba(255,255,255,.1);min-width:0}.player-zone-header[data-active]{border-bottom-color:#ffd70066}.player-zone-name{font-size:1rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#fffffff2}.player-zone-left .player-zone-name{color:#8cbeff}.player-zone-top .player-zone-name{color:#dcb4ff}.player-zone-right .player-zone-name{color:#78dcdc}.player-zone-you .player-zone-name{color:#f5e6a3}.player-zone-stats{font-size:.85rem;color:#ffffff8c;font-weight:500}.player-zone-score{font-size:.8rem;color:#fff9;font-weight:600}.player-zone-turn{font-size:.65rem;font-weight:700;text-transform:uppercase;letter-spacing:.05em;color:gold;margin-left:auto}.player-zone-header-you .player-zone-turn{color:gold}.flipped-in-hand-label{font-size:.75rem;font-weight:600;color:#fff9;align-self:center;margin-right:6px;padding-right:2px;flex-shrink:0;white-space:nowrap;min-width:5.75em}.opponent-hand .playing-card{margin-left:-20px}.opponent-hand .playing-card:first-child{margin-left:0}.center-play-area{display:flex;flex-direction:column;align-items:center;justify-content:center;width:100%;max-width:min(420px,90vw);margin:0 auto;padding:10px 14px;border-radius:12px;background:#00000040;border:1px solid rgba(255,255,255,.12);min-height:120px}.center-play-area-label{font-size:.7rem;font-weight:700;text-transform:uppercase;letter-spacing:.08em;color:#ffffff8c;margin-bottom:6px}.clear-cards-indicator{font-size:.7rem;font-weight:600;color:#f5e6a3d9;margin-bottom:6px;letter-spacing:.02em}.swoop-hand-label{font-size:.72rem;font-weight:600;text-transform:uppercase;letter-spacing:.05em;color:#ffffff80;margin-bottom:2px}.swoop-tableau{display:flex;gap:4px;flex-wrap:wrap}.swoop-tableau-stack{position:relative;display:inline-flex;flex-direction:column;align-items:center}.playing-card{width:var(--card-width);height:var(--card-height);min-width:var(--card-width);min-height:var(--card-height);aspect-ratio:72 / 100;box-sizing:border-box;border-radius:var(--card-radius);box-shadow:var(--card-shadow);transition:transform .3s ease,box-shadow .2s ease,opacity .3s ease;position:relative;transform-style:preserve-3d;cursor:default;flex-shrink:0}.playing-card.clickable{cursor:pointer}@media(hover:hover)and (pointer:fine){.playing-card.clickable:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 8px 20px #0006}.card-hand.fan-bottom .playing-card.clickable:hover{transform:translateY(-6px) scale(1.02) rotate(var(--fan-offset, 0deg))}}.card-hand.fan-bottom .playing-card.selected{transform:translateY(-6px) rotate(var(--fan-offset, 0deg));box-shadow:0 0 0 4px gold,0 8px 24px #ffd70073;z-index:10}.card-hand.fan-bottom .playing-card.selected+.playing-card{margin-left:24px}.playing-card.face-down{background:linear-gradient(135deg,#8b1538,#6b1028,#4a0b1a);border:2px solid rgba(255,255,255,.15)}.playing-card-back{position:absolute;inset:0;border-radius:var(--card-radius);background:linear-gradient(135deg,#9c2042,#6b1530,#4a0f22);border:2px solid rgba(255,255,255,.2);backface-visibility:hidden;display:flex;align-items:center;justify-content:center}.playing-card-back:before{content:"";position:absolute;inset:8px;border:2px solid rgba(255,255,255,.25);border-radius:4px}.playing-card-back-inner{width:60%;height:70%;background:repeating-linear-gradient(45deg,rgba(255,255,255,.08),rgba(255,255,255,.08) 4px,transparent 4px,transparent 8px);border-radius:4px}.playing-card-face{position:absolute;inset:0;border-radius:var(--card-radius);background:#fff;border:1px solid #e0e0e0;backface-visibility:hidden;display:flex;flex-direction:column;align-items:center;justify-content:center;padding:4px}.playing-card-face.red{color:#b71c1c}.playing-card-face.black{color:#1a1a1a}.playing-card-corner{position:absolute;display:flex;flex-direction:column;align-items:center;line-height:1.1}.playing-card-corner-tl{top:2px;left:4px;text-align:center}.playing-card-corner-br{bottom:2px;right:4px;transform:rotate(180deg);text-align:center}.playing-card-corner-rank{font-size:.7em;font-weight:700}.playing-card-corner-suit{font-size:.9em;line-height:1}.playing-card-rank{font-size:1.25rem;font-weight:700;line-height:1.2}.playing-card-rank.playing-card-center-rank{font-size:1.1rem}.playing-card-suit{font-size:1.5rem;line-height:1}.playing-card-suit.playing-card-center-suit{font-size:1.35rem}.playing-card-face.joker .playing-card-rank{font-size:.9rem;font-weight:600}.playing-card .playing-card-back{transform:rotateY(0)}.playing-card .playing-card-face,.playing-card.flip{transform:rotateY(180deg)}.playing-card.playing-card-face-only{transform:none}.playing-card.playing-card-face-only .playing-card-face.playing-card-face-visible{transform:none;position:absolute;inset:0}.playing-card.playing-card-face-only.selected,.swoop-tableau-stack .playing-card.playing-card-face-only.tableau-up.selected{transform:translateY(-10px) scale(1.06);box-shadow:0 0 0 3px gold,0 8px 24px #ffd70080;z-index:10}.playing-card.playing-card-face-only.clickable:hover,.swoop-tableau-stack .playing-card.playing-card-face-only.tableau-up.clickable:hover{transform:translateY(-6px) scale(1.02);box-shadow:0 8px 20px #0006}.playing-card.fly{transition:transform .4s cubic-bezier(.34,1.56,.64,1),opacity .3s ease;z-index:100}.playing-card.fly.hiding{opacity:0;pointer-events:none}.playing-card.card-just-played{animation:cardLanded .35s ease-out}@keyframes cardLanded{0%{transform:scale(.7);opacity:.6}to{transform:scale(1);opacity:1}}.card-hand{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:2px}.card-hand .playing-card{margin-left:-24px}.card-hand .playing-card:first-child{margin-left:0}.card-hand.fan-bottom{display:flex;align-items:flex-end;justify-content:center;padding-bottom:4px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch}.card-hand.fan-bottom .playing-card{margin-left:-20px;transform:rotate(var(--fan-offset, 0deg));transition:transform .25s ease,box-shadow .2s ease}.card-hand.fan-bottom .playing-card:first-child{margin-left:0}.playing-card.card-deal-appear{opacity:0;animation:cardDealAppear .4s ease-out forwards}@keyframes cardDealAppear{0%{opacity:0;transform:translateY(-24px) scale(.95)}to{opacity:1;transform:translateY(0) scale(1)}}.card-hand.fan-bottom .playing-card.card-deal-appear{animation-name:cardDealAppearFan}@keyframes cardDealAppearFan{0%{opacity:0;transform:translateY(-24px) scale(.95)}to{opacity:1;transform:rotate(var(--fan-offset, 0deg))}}.playing-card.card-deal-from-center{opacity:0;animation:cardDealFromCenter .5s cubic-bezier(.34,1.2,.64,1) forwards}@keyframes cardDealFromCenter{0%{opacity:.4;transform:translateY(-80px) scale(.85)}to{opacity:1;transform:translateY(0) scale(1)}}.card-hand.fan-bottom .playing-card.card-deal-from-center{animation-name:cardDealFromCenterFan}@keyframes cardDealFromCenterFan{0%{opacity:.4;transform:translateY(-80px) scale(.85)}to{opacity:1;transform:rotate(var(--fan-offset, 0deg))}}.draw-pile{position:relative;width:var(--card-width);height:var(--card-height)}.draw-pile .playing-card{position:absolute;top:0;left:0}.draw-pile .playing-card:nth-child(1){z-index:1;transform:translate(0)}.draw-pile .playing-card:nth-child(2){z-index:2;transform:translate(2px,2px)}.draw-pile .playing-card:nth-child(3){z-index:3;transform:translate(4px,4px)}.pile-cards{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:4px;min-height:var(--card-height)}.pile-spread{display:flex;flex-direction:column;align-items:center;justify-content:center}.pile-spread-row{display:flex;flex-direction:row;align-items:center;justify-content:center;flex-wrap:wrap;max-width:100%;gap:0}.pile-spread-row .playing-card{margin-left:-36px}.pile-spread-row .playing-card:first-child{margin-left:0}.pile-spread-empty .pile-spread-row{display:none}@media(max-width:768px){.card-mat{--card-width: 56px;--card-height: 78px;margin-left:-1rem;margin-right:-1rem;width:calc(100% + 2rem)}.playing-card-rank{font-size:1rem}.playing-card-suit{font-size:1.2rem}.card-table{grid-template-columns:1fr minmax(140px,1.5fr) 1fr}.card-hand .playing-card{margin-left:-18px}}@media(max-width:480px){.card-mat{--card-width: 48px;--card-height: 67px;padding:.5rem}.playing-card-rank{font-size:.85rem}.playing-card-suit{font-size:1rem}.card-hand .playing-card{margin-left:-14px}}.game-table-inner-contained .card-mat{--card-width: 72px;--card-height: 100px;margin-left:0;margin-right:0;margin-bottom:0;width:100%;min-height:0;flex:1;display:flex;flex-direction:column;border-radius:0}.game-table-inner-contained .card-mat:before{border-radius:12px}.game-table-inner-contained .card-mat .card-table{flex:1;min-height:0}@media(orientation:portrait){.game-table-inner-contained .card-mat{--card-width: 56px;--card-height: 80px}.game-table-inner-contained .card-mat .card-table{grid-template-areas:"top" "left" "center" "right" "bottom";grid-template-columns:1fr;grid-template-rows:auto auto minmax(0,1fr) auto auto;gap:.3rem}.game-table-inner-contained .card-mat .card-table-zone{padding:.25rem;gap:2px}.game-table-inner-contained .card-mat .card-table-zone.left,.game-table-inner-contained .card-mat .card-table-zone.right{transform:none;transform-origin:initial;flex-direction:column;justify-content:center}.game-table-inner-contained .card-mat .card-table-zone.top,.game-table-inner-contained .card-mat .card-table-zone.bottom{flex-direction:column;justify-content:center}.game-table-inner-contained .card-mat .card-table-zone.center{min-height:0;max-height:min(40vh,200px)}.game-table-inner-contained .card-mat .card-mat-scoreboard{gap:.35rem;max-width:96%;padding:.3rem .4rem}.game-table-inner-contained .card-mat .player-col{min-width:3.1rem;padding:.22rem .32rem}.game-table-inner-contained .card-mat .player-zone-name{font-size:max(.8rem,.62rem)}.game-table-inner-contained .card-mat .player-zone-stats{font-size:max(.75rem,.55rem)}.game-table-inner-contained .card-mat .player-zone-turn{font-size:.52rem}.game-table-inner-contained .card-mat .player-zone{padding:3px 5px}.game-table-inner-contained .card-mat .opponent-hand .playing-card{margin-left:-18px}.game-table-inner-contained .card-mat .opponent-hand .playing-card:first-child{margin-left:0}.game-table-inner-contained .card-mat .card-hand.fan-bottom .playing-card{margin-left:-14px}.game-table-inner-contained .card-mat .center-play-area{min-height:96px;padding:6px 10px}}.card-mat .bottom-zone-actions .btn{min-height:44px;min-width:44px;padding:.625rem 1rem}@media(max-height:780px){.game-table-inner-contained .card-mat{--card-width: 58px;--card-height: 82px}.game-table-inner-contained .card-mat .card-mat-header{padding:.2rem .5rem}.game-table-inner-contained .card-mat .card-mat-title{font-size:1rem}.game-table-inner-contained .card-mat .card-mat-subtitle{display:none}.game-table-inner-contained .card-mat .card-mat-scoreboard{padding:.2rem .4rem;gap:.3rem;margin-bottom:.2rem;max-width:96%}.game-table-inner-contained .card-mat .player-col{min-width:3.6rem;padding:.2rem .35rem}.game-table-inner-contained .card-mat .player-zone{min-height:34px;padding:3px 5px}.game-table-inner-contained .card-mat .player-zone-header{margin-bottom:2px;gap:.35rem}.game-table-inner-contained .card-mat .player-zone-name{font-size:max(.8rem,.6rem)}.game-table-inner-contained .card-mat .player-zone-stats{font-size:max(.75rem,.54rem)}.game-table-inner-contained .card-mat .card-table{gap:.2rem}.game-table-inner-contained .card-mat .card-table-zone{padding:.2rem}.game-table-inner-contained .card-mat .opponent-hand .playing-card{margin-left:-20px}.game-table-inner-contained .card-mat .center-play-area{min-height:86px;padding:4px 8px}}.game-table-inner-contained.game-profile-desktop .card-mat{--card-width: 70px;--card-height: 98px}.game-table-inner-contained.game-profile-desktop .card-table{grid-template-areas:"top top top" "left center right" "left center right" "bottom bottom bottom";grid-template-columns:1fr minmax(220px,2fr) 1fr;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) minmax(180px,auto)}.game-table-inner-contained.game-profile-compact .card-mat{--card-width: 58px;--card-height: 81px}.game-table-inner-contained.game-profile-compact .card-mat:before{border-width:4px;border-radius:10px}.game-table-inner-contained.game-profile-compact .card-mat-header{padding:.15rem .4rem}.game-table-inner-contained.game-profile-compact .card-mat-title{font-size:1rem}.game-table-inner-contained.game-profile-compact .card-mat-subtitle{display:none}.game-table-inner-contained.game-profile-compact .card-mat-scoreboard{max-width:96%;gap:.2rem;padding:.15rem .3rem;margin-bottom:.2rem}.game-table-inner-contained.game-profile-compact .player-col{padding:.15rem .28rem}.game-table-inner-contained.game-profile-compact .swoop-hand-label{font-size:.6rem;margin-bottom:1px}.game-table-inner-contained.game-profile-compact .card-table-zone.bottom .swoop-tableau{gap:2px}.game-table-inner-contained.game-profile-compact .card-table{gap:.25rem;grid-template-columns:.75fr minmax(200px,2.5fr) .75fr;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) minmax(130px,auto)}.game-table-inner-contained.game-profile-compact .card-table-zone.center{min-height:110px}.game-table-inner-contained.game-profile-compact .card-table-zone{padding:.2rem}.game-table-inner-contained.game-profile-compact .player-zone{min-height:34px;padding:3px 5px}.game-table-inner-contained.game-profile-compact .player-zone-header{margin-bottom:2px;gap:.35rem}.game-table-inner-contained.game-profile-compact .player-zone-name{font-size:max(.8rem,.6rem)}.game-table-inner-contained.game-profile-compact .player-zone-stats{font-size:max(.75rem,.54rem)}.game-table-inner-contained.game-profile-compact .card-hand.fan-bottom{justify-content:flex-start;gap:2px;padding-left:2px;padding-right:2px}.game-table-inner-contained.game-profile-compact .card-hand.fan-bottom .playing-card{margin-left:-8px;flex-shrink:0}.game-table-inner-contained.game-profile-compact .card-hand.fan-bottom .playing-card:first-child{margin-left:0}.game-table-inner-contained.game-profile-compact .opponent-hand .playing-card{margin-left:-18px}.game-table-inner-contained.game-profile-compact .opponent-hand .playing-card:first-child{margin-left:0}.game-table-inner-contained.game-profile-compact .center-play-area{min-height:96px;padding:4px 8px}.game-table-inner-contained.game-profile-portrait .card-mat{--card-width: 56px;--card-height: 80px}.game-table-inner-contained.game-profile-portrait .card-mat-header{padding:.22rem .45rem}.game-table-inner-contained.game-profile-portrait .card-mat-title{font-size:1rem}.game-table-inner-contained.game-profile-portrait .card-mat-subtitle{font-size:.7rem}.game-table-inner-contained.game-profile-portrait .card-mat-scoreboard{gap:.3rem;max-width:96%;padding:.25rem .35rem}.game-table-inner-contained.game-profile-portrait .player-col{padding:.2rem .3rem}.game-table-inner-contained.game-profile-portrait .player-label{font-size:.58rem}.game-table-inner-contained.game-profile-portrait .player-score-row{font-size:.74rem}.game-table-inner-contained.game-profile-portrait .card-table{grid-template-areas:"top top top" "left center right" "left center right" "bottom bottom bottom";grid-template-columns:minmax(92px,.9fr) minmax(150px,1.25fr) minmax(92px,.9fr);grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) minmax(150px,auto);gap:.2rem}.game-table-inner-contained.game-profile-portrait .card-table-zone{padding:.22rem;min-height:0}.game-table-inner-contained.game-profile-portrait .card-table-zone.top,.game-table-inner-contained.game-profile-portrait .card-table-zone.bottom{flex-direction:column;justify-content:center}.game-table-inner-contained.game-profile-portrait .card-table-zone.center{min-height:120px;max-height:none;justify-content:flex-start;align-items:center}.game-table-inner-contained.game-profile-portrait .player-zone{min-height:34px;padding:3px 5px}.game-table-inner-contained.game-profile-portrait .player-zone-header{margin-bottom:2px;gap:.3rem}.game-table-inner-contained.game-profile-portrait .player-zone-name{font-size:max(.8rem,.6rem)}.game-table-inner-contained.game-profile-portrait .player-zone-stats{font-size:max(.75rem,.52rem)}.game-table-inner-contained.game-profile-portrait .player-zone-turn{font-size:.5rem}.game-table-inner-contained.game-profile-portrait .opponent-hand .playing-card{margin-left:-14px}.game-table-inner-contained.game-profile-portrait .opponent-hand .playing-card:first-child{margin-left:0}.game-table-inner-contained.game-profile-portrait .card-hand.fan-bottom{justify-content:center;gap:4px;padding-left:4px;padding-right:4px;min-height:0}.game-table-inner-contained.game-profile-portrait .card-hand.fan-bottom .playing-card{margin-left:-6px;flex-shrink:0}.game-table-inner-contained.game-profile-portrait .card-hand.fan-bottom .playing-card:first-child{margin-left:0}.game-table-inner-contained.game-profile-portrait .center-play-area{min-height:110px;padding:5px 8px}.game-table-inner-contained.game-profile-portrait .card-table-zone.bottom{display:flex;flex-direction:column;min-height:0}.game-table-inner-contained.game-profile-portrait .card-table-zone.bottom .bottom-zone-actions{flex-shrink:0;margin-top:auto;padding-top:.5rem;padding-bottom:max(env(safe-area-inset-bottom),8px);position:relative;z-index:2}.game-table-inner-contained.game-profile-portrait .bottom-zone-actions .btn{min-height:48px;min-width:48px;padding:.75rem 1.25rem;touch-action:manipulation;-webkit-tap-highlight-color:transparent}@media(max-height:680px){.game-table-inner-contained .card-mat{--card-width: clamp(44px, 7.5vh, 52px);--card-height: clamp(58px, 10vh, 72px)}.game-table-inner-contained .card-mat-header{padding:.1rem .3rem}.game-table-inner-contained .card-mat-title{font-size:.85rem}.game-table-inner-contained .card-mat-subtitle{display:none}.game-table-inner-contained .card-mat-scoreboard{gap:.15rem;padding:.1rem .25rem;margin-bottom:.15rem}.game-table-inner-contained .player-col{padding:.1rem .2rem}.game-table-inner-contained .card-table{gap:.1rem;grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) minmax(90px,auto)}.game-table-inner-contained .card-table-zone{padding:.1rem}.game-table-inner-contained .player-zone{min-height:28px;padding:2px 4px}.game-table-inner-contained .player-zone-header{margin-bottom:1px;gap:.2rem}.game-table-inner-contained .player-zone-name{font-size:.7rem}.game-table-inner-contained .player-zone-stats{font-size:.65rem}.game-table-inner-contained .swoop-hand-label{font-size:.55rem;margin-bottom:0}.game-table-inner-contained .card-table-zone.bottom .swoop-tableau{gap:1px}.game-table-inner-contained .center-play-area{min-height:56px;padding:2px 6px}.game-table-inner-contained .card-mat:before{border-width:3px;border-radius:8px}}@media(max-height:560px){.game-table-inner-contained .card-mat{--card-width: clamp(40px, 6.5vh, 48px);--card-height: clamp(54px, 9vh, 66px)}.game-table-inner-contained .card-mat-header{padding:.08rem .25rem}.game-table-inner-contained .card-mat-title{font-size:.8rem}.game-table-inner-contained .card-mat-scoreboard{gap:.1rem;padding:.08rem .2rem}.game-table-inner-contained .player-col{padding:.08rem .15rem}.game-table-inner-contained .card-table{grid-template-rows:auto minmax(0,1fr) minmax(0,1fr) minmax(72px,auto)}.game-table-inner-contained .player-zone-name{font-size:.65rem}.game-table-inner-contained .player-zone-stats{font-size:.6rem}.game-table-inner-contained .center-play-area{min-height:48px;padding:2px 4px}.game-table-inner-contained .bottom-zone-actions .btn{min-height:44px;min-width:44px;padding:.4rem .6rem;font-size:.75rem}}@media(max-width:360px){.game-table-inner-contained .card-mat .card-mat-scoreboard{gap:.2rem;padding:.15rem .3rem;max-width:100%}.game-table-inner-contained .card-mat .player-col{min-width:2.5rem;padding:.15rem .25rem}.game-table-inner-contained .card-mat .player-zone-name{font-size:max(.7rem,.6rem)}.game-table-inner-contained .card-mat .player-zone-stats{font-size:max(.65rem,.55rem)}.game-table-inner-contained .card-mat .player-label{font-size:.65rem}.game-table-inner-contained .bottom-zone-actions .btn{min-height:44px;min-width:44px;padding:.5rem .75rem;font-size:.8rem}}
