:root,.dark{--brand-evergreen:#0b2a22;--brand-rose:#8b2e2e;--brand-gold:#c9a354;--brand-ivory:#f8f3e8;--brand-stone:#e6dcc7;--brand-charcoal:#2c2c2c;--brand-sage:#7a8f74;--brand-highlight:#fff;--brand-rose-readable:color-mix(in oklab, var(--brand-rose) 48%, var(--brand-ivory));--brand-pink:var(--brand-rose-readable);--brand-pink-hover:color-mix(in oklab, var(--brand-pink) 78%, var(--brand-ivory));--brand-pink-soft:color-mix(in oklab, var(--brand-pink) 58%, var(--brand-ivory));--brand-panel:color-mix(in oklab, var(--brand-evergreen) 88%, var(--brand-sage));--brand-deep:color-mix(in oklab, var(--brand-evergreen) 85%, var(--brand-charcoal));--brand-line:color-mix(in oklab, var(--brand-gold) 32%, var(--brand-evergreen));--brand-shadow:color-mix(in oklab, var(--brand-charcoal) 24%, transparent);--background:var(--brand-evergreen);--foreground:var(--brand-ivory);--card:var(--brand-panel);--card-foreground:var(--brand-ivory);--popover:var(--brand-evergreen);--popover-foreground:var(--brand-ivory);--primary:var(--brand-pink);--primary-foreground:var(--brand-evergreen);--secondary:var(--brand-panel);--secondary-foreground:var(--brand-ivory);--muted:var(--brand-panel);--muted-foreground:var(--brand-stone);--accent:var(--brand-panel);--accent-foreground:var(--brand-ivory);--border:var(--brand-line);--input:var(--brand-line);--ring:var(--brand-pink);--midnight:var(--brand-evergreen);--midnight-deep:var(--brand-deep);--midnight-raised:var(--brand-panel);--ivory:var(--brand-ivory);--jade-brand:var(--brand-sage);--jade-deep:var(--brand-evergreen);--accent-rose:var(--brand-rose);--rose-gold:var(--brand-pink);--rose-gold-hover:var(--brand-pink-hover);--rose-gold-soft:var(--brand-pink-soft);--rose-gold-foreground:var(--brand-evergreen);--rose-gold-ink:var(--brand-pink);--rose-soft:var(--brand-pink);--rose-deep:var(--brand-rose);--berry:var(--brand-rose-readable);--berry-soft:var(--brand-stone);--berry-foreground:var(--brand-evergreen);--sidebar:var(--brand-evergreen);--sidebar-foreground:var(--brand-ivory);--sidebar-primary:var(--brand-pink);--sidebar-primary-foreground:var(--brand-evergreen);--sidebar-accent:var(--brand-panel);--sidebar-accent-foreground:var(--brand-ivory);--sidebar-border:var(--brand-line);--sidebar-ring:var(--brand-pink);--toast-success:var(--jade-light);--toast-info:var(--dot-light);--toast-warning:var(--brand-gold);--toast-error:var(--crack-light);--surface-app:var(--brand-evergreen);--surface-toolbar:var(--brand-evergreen);--surface-card:var(--brand-panel);--rack-surface:var(--brand-panel);--divider-accent:var(--brand-gold);--gold:var(--brand-gold);--mat-porcelain-paper:oklch(94% .025 245);--mat-porcelain-pond:oklch(86.5% .038 245);--mat-porcelain-ink:oklch(32% .072 255);--mat-koi-paper:oklch(91% .035 165);--mat-koi-pond:oklch(79% .045 155);--mat-koi-ink:oklch(30% .049 190);--mat-lily-paper:oklch(93.5% .031 125);--mat-lily-pond:oklch(86% .045 120);--mat-lily-ink:oklch(30% .045 145);--mat-deco-paper:oklch(24% .008 70);--mat-deco-pond:oklch(30% .012 75);--mat-deco-ink:oklch(16% .006 70);--mat-harbor-paper:oklch(30% .07 258);--mat-harbor-pond:oklch(36% .075 255);--mat-harbor-ink:oklch(20% .05 258);--mat-walnut-paper:oklch(25% .015 50);--mat-walnut-pond:oklch(33% .035 45);--mat-walnut-ink:oklch(18% .02 45);--mat-dragon-paper:oklch(32% .11 25);--mat-dragon-pond:oklch(36% .12 25);--mat-dragon-ink:oklch(20% .07 25);--mat-cherry-paper:oklch(95% .025 10);--mat-cherry-pond:oklch(88% .045 8);--mat-cherry-ink:oklch(32% .08 5);--table-paper:var(--mat-porcelain-paper);--table-pond:var(--mat-porcelain-pond);--table-ink:var(--mat-porcelain-ink);--table-text:var(--table-ink);--table-outline:color-mix(in oklab, var(--table-ink) 65%, transparent);--felt-1:var(--table-paper);--felt-2:var(--table-paper);--felt-3:var(--table-pond);--playmat-art:none;--font-display:"Playfair Display", Georgia, serif;--font-sans:"Inter", ui-sans-serif, system-ui, sans-serif}html.theme-porcelain{--table-paper:var(--mat-porcelain-paper);--table-pond:var(--mat-porcelain-pond);--table-ink:var(--mat-porcelain-ink)}html.theme-koi{--table-paper:var(--mat-koi-paper);--table-pond:var(--mat-koi-pond);--table-ink:var(--mat-koi-ink)}html.theme-lily{--table-paper:var(--mat-lily-paper);--table-pond:var(--mat-lily-pond);--table-ink:var(--mat-lily-ink)}html.theme-deco{--table-paper:var(--mat-deco-paper);--table-pond:var(--mat-deco-pond);--table-ink:var(--mat-deco-ink);--table-outline:var(--brand-gold)}html.theme-harbor{--table-paper:var(--mat-harbor-paper);--table-pond:var(--mat-harbor-pond);--table-ink:var(--mat-harbor-ink);--table-outline:var(--brand-gold)}html.theme-walnut{--table-paper:var(--mat-walnut-paper);--table-pond:var(--mat-walnut-pond);--table-ink:var(--mat-walnut-ink);--table-outline:var(--brand-gold)}html.theme-dragon{--table-paper:var(--mat-dragon-paper);--table-pond:var(--mat-dragon-pond);--table-ink:var(--mat-dragon-ink);--table-outline:var(--brand-gold)}html:is(.theme-harbor,.theme-walnut,.theme-dragon,.theme-deco) .game-scale-root:not(.solo-two) :is(.playmat-field .grid p,.playmat-field .grid span,.playmat-empty,[data-opponent-identity] span){color:var(--brand-ivory)}html:is(.theme-harbor,.theme-walnut,.theme-dragon,.theme-deco) .game-scale-root:not(.solo-two) [data-opponent-identity] span:first-child{background:var(--brand-gold);color:var(--table-text)}html body{font-family:var(--font-sans)}html body *,html body :before,html body :after{letter-spacing:0}.app-brand-icon,.app-brand-rose{color:var(--brand-rose-readable)}.app-main-surface{background:var(--background)}.tactile-panel,.admin-group,.dark .tactile-panel,.dark .admin-group{background:var(--card);box-shadow:0 2px 8px var(--brand-shadow);border-color:var(--border)}.admin-section,.dark .admin-section{box-shadow:none;border-color:var(--border);background:0 0}.tactile-dashboard:before{display:none}.safe-sheet,.mobile-sheet,.app-sheet,[role=dialog]{background-color:var(--popover);color:var(--popover-foreground)}.menu-group{border-color:var(--border);border-radius:6px}li[data-sonner-toast][data-styled=true]{border-color:var(--border);border-radius:8px}:root,.dark{--salon-overlay:linear-gradient(90deg, var(--brand-evergreen) 0%, color-mix(in oklab, var(--brand-evergreen) 96%, transparent) 23%, color-mix(in oklab, var(--brand-evergreen) 75%, transparent) 40%, transparent 66%);--salon-bottom-fade:linear-gradient(0deg, var(--brand-evergreen), transparent 36%);--salon-header:color-mix(in oklab, var(--brand-evergreen) 95%, transparent);--salon-control-line:color-mix(in oklab, var(--brand-gold) 65%, var(--brand-evergreen))}.rose-play-home{max-width:none}.rose-play-hero{isolation:isolate;min-height:min(740px, calc(100svh - var(--app-header-h) - 100px));background:var(--brand-evergreen);color:var(--brand-ivory);align-items:center;display:flex;position:relative;overflow:hidden}.rose-play-hero picture{z-index:-2;position:absolute;inset:0}.rose-play-hero img{object-fit:cover;object-position:center;width:100%;height:100%}.rose-play-hero:before{content:"";z-index:-1;background:var(--salon-bottom-fade), var(--salon-overlay);position:absolute;inset:0}.rose-play-hero-copy{width:47%;max-width:620px;margin-left:5%;padding:50px 0 150px}.rose-hero-brand{font-family:var(--font-display);color:var(--brand-pink);font-size:20px}.rose-play-hero h1{color:var(--brand-ivory);margin:20px 0;font-size:72px;font-weight:500;line-height:1.08}.rose-play-hero p{max-width:none;color:var(--brand-stone);font-size:15px;line-height:1.8}.rose-play-hero-actions{flex-wrap:wrap;align-items:center;gap:25px;margin-top:28px;display:flex}.rose-play-hero-actions .rose-hero-cta{background:var(--brand-pink);color:var(--brand-evergreen);border-color:var(--brand-pink);min-height:46px;padding:13px 25px}.rose-play-hero-actions .rose-hero-cta:hover{background:var(--brand-pink-hover)}.rose-play-hero-actions .rose-hero-secondary{border-color:var(--salon-control-line);color:var(--brand-ivory);min-height:46px;padding:13px 25px}.rose-play-hero-actions .rose-hero-secondary:hover{background:var(--brand-panel)}.rose-hero-shortcuts{border-top:1px solid var(--brand-line);grid-template-columns:repeat(3,minmax(0,1fr));max-width:1050px;padding-top:24px;display:grid;position:absolute;bottom:28px;left:5%;right:5%}.rose-hero-shortcuts a{color:var(--brand-ivory);border-right:1px solid var(--brand-line);align-items:center;gap:16px;padding:4px 24px;font-size:14px;display:flex}.rose-hero-shortcuts a:first-child{padding-left:0}.rose-hero-shortcuts a:last-child{border-right:0}.rose-hero-shortcuts svg{width:28px;height:28px;color:var(--brand-gold);stroke-width:1.5px;flex:none}.rose-hero-shortcuts small{color:var(--brand-stone);margin-top:4px;font-size:12px;display:block}.rose-hero-shortcuts .rose-shortcut-arrow{width:16px;height:16px;color:var(--brand-pink);margin-left:auto}.rose-hero-shortcuts a:hover{color:var(--brand-pink)}.rose-home-content{max-width:1440px;margin-inline:auto;padding:48px 5%}.rose-mode-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:22px;display:grid}.rose-mode{border:1px solid var(--border);background:var(--brand-panel);border-radius:8px;flex-direction:column;min-width:0;padding:28px;display:flex}.rose-mode[data-featured]{border-color:var(--salon-control-line)}.rose-mode-heading{align-items:center;gap:14px;margin-bottom:14px;display:flex}.rose-mode-heading h2{margin:0}.rose-mode-icon{width:28px;height:28px;color:var(--brand-gold);flex:none}.rose-mode h2{margin-bottom:12px;font-size:26px;font-weight:500;line-height:1.2}.rose-mode p{color:var(--muted-foreground);margin-bottom:22px;font-size:13px;line-height:1.8}.rose-mode-actions{margin-top:0}.rose-mode-actions>div{flex-flow:wrap;align-items:center;gap:10px}.rose-mode-actions>div>*{flex:0 auto;min-width:8.5rem}.rose-mode-actions button,.rose-mode-actions a[role=button]{white-space:normal;height:auto;min-height:42px;padding:10px 20px;font-size:13px;line-height:1.4}.game-scale-root:not(.solo-two),.game-scale-root.jade-arena{background:var(--table-paper)}.game-scale-root:not(.solo-two) .felt-surround{box-shadow:inset 0 0 0 1px var(--table-outline);background:0 0}.game-scale-root:not(.solo-two) .felt-texture{opacity:.06}.game-scale-root:not(.solo-two) [data-discard-board]{background:var(--table-pond);border-color:var(--table-outline);box-shadow:inset 0 0 20px var(--brand-shadow);-webkit-backdrop-filter:none;backdrop-filter:none}.game-scale-root:not(.solo-two) [data-discard-header]{background:var(--table-ink);border-color:var(--table-outline);box-shadow:none}.game-scale-root:not(.solo-two) [data-discard-header] p,.game-scale-root:not(.solo-two) [data-discard-header] p span,.game-scale-root:not(.solo-two) [data-discard-header] button{color:var(--brand-ivory)}.game-scale-root:not(.solo-two) [data-discard-header] button[aria-pressed=true]{background:var(--brand-ivory);color:var(--midnight)}.playmat-field{isolation:isolate;position:relative}.game-scale-root:not(.solo-two) .playmat-field:before{content:"";background:var(--playmat-art) center / 100% 100% no-repeat;z-index:-1;pointer-events:none;position:absolute;inset:0}.game-scale-root:not(.solo-two) .playmat-field>[data-discard-view]{flex:none;width:72%;height:76%;margin:auto;padding:8px}.game-scale-root:not(.solo-two) .playmat-field>[data-discard-view=chronological]>[data-discard-rows]{justify-content:center;gap:6px}.game-scale-root:not(.solo-two) .playmat-field>.grid>div{background:color-mix(in oklab, var(--table-paper) 56%, transparent);border-color:var(--table-outline)}.game-scale-root:not(.solo-two) .playmat-field .grid p,.game-scale-root:not(.solo-two) .playmat-field .grid span,.game-scale-root:not(.solo-two) .playmat-empty{color:var(--table-text);text-shadow:none}.game-scale-root:not(.solo-two) .playmat-empty p,.game-scale-root:not(.solo-two) .playmat-empty span{color:inherit}.game-scale-root:not(.solo-two) .jade-action-dock{background:var(--table-ink);border-color:var(--table-outline)}.game-scale-root:not(.solo-two) [data-controlbar] button{box-shadow:none;border-radius:9999px}.game-scale-root:not(.solo-two) [data-rack-sort]{border-radius:9999px}.game-scale-root:not(.solo-two) [data-controlbar] button:disabled{opacity:1;color:var(--brand-stone);background:color-mix(in oklab, var(--brand-ivory) 16%, var(--table-ink))}.game-scale-root:not(.solo-two) [data-controlbar] button.bg-rose-gold:disabled{color:var(--table-text);background:var(--brand-stone)}.game-scale-root:not(.solo-two) .opponent-rack-rail{background:linear-gradient(180deg, var(--rack-top), var(--rack-base));border-color:var(--table-outline)}.game-scale-root:not(.solo-two) [data-player-rack]{background-color:var(--rack-base)}.game-scale-root:not(.solo-two) [data-opponent-identity],.game-scale-root:not(.solo-two) [data-opponent-identity] span{color:var(--table-text)}.game-scale-root:not(.solo-two) [data-opponent-identity] span:first-child{background:var(--table-ink);color:var(--brand-ivory);border-radius:3px}.game-scale-root:not(.solo-two) .side-opponent-rail:not(.rack-wood){background:color-mix(in oklab, var(--table-ink) 8%, transparent)}.game-scale-root:not(.solo-two) [data-discard-view=categorized]>div,.game-scale-root:not(.solo-two) [data-discard-view=seat_trays]>div{background:color-mix(in oklab, var(--table-paper) 75%, transparent);border-color:var(--table-outline)}.game-scale-root:not(.solo-two) [data-discard-view] p,.game-scale-root:not(.solo-two) [data-discard-view] span.text-on-felt{color:var(--table-text);text-shadow:none}.game-scale-root:not(.solo-two) .playmat-game-tools>button,.game-scale-root:not(.solo-two) [data-controlbar]{background:var(--table-ink);color:var(--brand-ivory)}.game-scale-root:not(.solo-two) .charleston-stage-panel{background:var(--brand-panel);border-color:var(--brand-line);box-shadow:0 4px 12px var(--brand-shadow)}.game-scale-root:not(.solo-two) .charleston-headline,.game-scale-root:not(.solo-two) .charleston-pass-count,.game-scale-root:not(.solo-two) .charleston-instruction-copy,.game-scale-root:not(.solo-two) .charleston-instruction>svg{color:var(--brand-ivory)}.game-scale-root:not(.solo-two) .charleston-eyebrow{color:var(--rose-gold-soft)}.game-scale-root:not(.solo-two) .charleston-step-label{color:color-mix(in oklab, var(--brand-ivory) 62%, transparent)}.game-scale-root:not(.solo-two) .charleston-instruction{background:color-mix(in oklab, var(--brand-ivory) 9%, transparent);border-color:#0000;border-left-color:color-mix(in oklab, var(--rose-gold) 80%, transparent)}.game-scale-root:not(.solo-two) .charleston-instruction span{background:color-mix(in oklab, var(--rose-gold) 32%, transparent);color:var(--brand-ivory)}.game-scale-root:not(.solo-two) .charleston-stepper-rail{background:color-mix(in oklab, var(--brand-ivory) 18%, transparent)}.game-scale-root:not(.solo-two) .charleston-stepper-rail>div{box-shadow:none}.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-complete=true]{background:var(--brand-pink)}.game-scale-root:not(.solo-two) .charleston-action-bar{color:var(--table-text);background:0 0}.game-scale-root:not(.solo-two) .charleston-action-bar span{color:inherit}.game-scale-root:not(.solo-two) .charleston-action-bar button{border-radius:9999px}.game-scale-root:not(.solo-two) .charleston-action-bar button:disabled,.game-scale-root:not(.solo-two) .charleston-action-bar button.bg-rose-gold:disabled{background:var(--brand-panel);color:var(--brand-pink);border-color:var(--brand-pink)}.game-scale-root:not(.solo-two) .charleston-selection-count{text-transform:none;font-size:1rem}.game-scale-root:not(.solo-two) .charleston-action-bar .charleston-sort-button{background:var(--brand-evergreen);color:var(--brand-pink);border-color:var(--brand-pink)}.game-scale-root:not(.solo-two) .charleston-action-bar .charleston-sort-button:hover{background:var(--brand-panel)}@media (width>=768px) and (height>=600px){.game-scale-root .charleston-stage-panel{gap:calc(1rem * var(--game-ui-scale));padding:calc(1rem * var(--game-ui-scale)) calc(1.5rem * var(--game-ui-scale))}}.game-scale-root:not(.solo-two) button[aria-label=Open\ menu]{background-color:var(--table-ink);color:var(--brand-ivory)}.game-scale-root.tile-sorter-table{--sorter-background:color-mix(in oklab, var(--table-ink) 25%, var(--surface-app));background:repeating-linear-gradient(45deg, color-mix(in oklab, var(--brand-ivory) 3%, transparent) 0 1px, transparent 1px 4px), repeating-linear-gradient(-45deg, color-mix(in oklab, var(--brand-charcoal) 10%, transparent) 0 1px, transparent 1px 5px), var(--sorter-background);color:var(--foreground)}.tile-sorter-table>.safe-overlay{color:var(--brand-ivory)}.game-scale-root.mahjong-minute-game{background:var(--surface-app)}.mahjong-minute-game>header{color:var(--brand-ivory);background:0 0}.mahjong-minute-game [data-minute-goal]>div:first-child span,.mahjong-minute-game [data-minute-goal] [role=status],.mahjong-minute-game [data-minute-goal]>div:first-child svg,.mahjong-minute-game .mahjong-minute-label{color:var(--brand-ivory)}.playmat-picker{flex-shrink:0;width:180px}.playmat-trigger{background:var(--brand-ivory);width:100%;min-height:44px;color:var(--midnight);border-color:var(--table-outline);border-radius:3px;font-size:12px;font-weight:600}.playmat-choice{background:linear-gradient(135deg, var(--choice-paper), var(--choice-ink))}.playmat-choice[data-selected=true]{box-shadow:0 0 0 2px var(--popover), 0 0 0 4px var(--choice-ink)}.game-scale-root:not(.solo-two) [data-pinned-hand] [data-fill=empty]{opacity:.18}.game-scale-root:not(.solo-two) [data-pinned-hand] [data-fill=real]{filter:saturate(1.5)}.mahjong-minute-map-caption,.mahjong-minute-map-milestone-stack{color:var(--brand-ivory)}.rose-site-header{-webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);box-shadow:none;background:var(--salon-header)!important}.rose-site-header>nav{border:1px solid var(--brand-line);background:var(--brand-deep);border-radius:9999px;padding:4px}.rose-site-header nav a{color:var(--brand-stone);border-radius:9999px}.rose-site-header nav a[aria-current=page]{background:var(--brand-panel);color:var(--brand-ivory);box-shadow:inset 0 0 0 1px var(--brand-line)}.rose-site-shell .botanical-icon{stroke-width:1.5px}.rose-site-shell .app-main-surface{background:var(--brand-evergreen)}.rose-site-shell .app-main-surface>div>div>header h1{color:var(--brand-ivory);font-weight:500}.rose-site-shell :is(a,button):focus-visible{outline:2px solid var(--brand-pink);outline-offset:4px}.rose-site-menu{border-color:var(--brand-line);background:var(--brand-deep)!important}.rose-site-footer{background:var(--brand-deep)}@media (width<=1100px){.rose-mode-grid{gap:18px}.rose-mode{padding:20px 22px}}@media (width<=1000px){.rose-play-hero h1{font-size:56px}.rose-play-hero{min-height:580px}.rose-hero-shortcuts a{gap:12px;padding-inline:16px}}@media (width<=600px){.rose-play-hero{align-items:flex-start;min-height:650px}.rose-play-hero img{object-position:72% bottom;height:60%;position:absolute;bottom:0}.rose-play-hero:before{background:var(--salon-bottom-fade), linear-gradient(180deg, var(--brand-evergreen), var(--brand-evergreen) 38%, color-mix(in oklab, var(--brand-evergreen) 88%, transparent) 48%, transparent 70%)}.rose-play-hero-copy{width:90%;padding:28px 0 0}.rose-play-hero h1{max-width:340px;margin:16px 0;font-size:48px}.rose-play-hero p{font-size:14px;line-height:1.7}.rose-play-hero-actions{gap:12px;margin-top:20px}.rose-hero-shortcuts{display:none}.rose-home-content{padding-block:38px}.rose-mode-grid{grid-template-columns:1fr;gap:26px}.rose-mode{padding:20px 22px}.game-scale-root:not(.solo-two) .playmat-field>[data-discard-view]{width:90%;height:82%;padding:4px}.playmat-picker{width:142px}}@media (height<=520px){.playmat-picker{width:150px}.game-scale-root:not(.solo-two) .playmat-field>[data-discard-view]{width:88%;height:84%;padding:4px}}.tile-back-sheen{border-radius:inherit;pointer-events:none;background:linear-gradient(155deg,#ffffff47 0%,#ffffff14 22%,#0000 42%),radial-gradient(120% 90% at 50% 45%,#0000 55%,#280a1261 100%);position:absolute;inset:0;box-shadow:inset 0 1.5px #ffffff80,inset 1px 0 #ffffff2e,inset 0 -2px 2px #1e060c73,inset -1px 0 #1e060c4d,inset 0 0 0 1px #3a121cb3}.main-tile-look{--hp-gold:oklch(73.7% .107 84);--hp-ivory:oklch(96.5% .016 86);--hp-stone:oklch(89.7% .031 87);--hp-charcoal:oklch(29.3% 0 0);--hp-highlight:oklch(100% 0 0)}.main-tile-face{width:var(--preview-w);height:var(--preview-h);flex:none}.main-tile-face .hp-tile{border:1px solid var(--hp-stone,#e6dcc7);background:linear-gradient(160deg, var(--hp-highlight,#fff), var(--hp-ivory,#f8f3e8) 65%, var(--hp-stone,#e6dcc7));width:100%;height:100%;box-shadow:inset 0 1px 1px var(--hp-highlight,#fff), 0 1px 0 var(--hp-tile-backing,#e6dcc7), 0 2px 0 var(--hp-tile-backing,#e6dcc7), 0 3px 5px color-mix(in oklab, var(--hp-charcoal,#2c2c2c) 24%, transparent);border-radius:4px;justify-content:center;align-items:center;display:flex;position:relative}.main-tile-face .hp-pretty-face{opacity:0;width:100%;height:100%;display:block}.main-tile-face .hp-pretty-face[data-ready=true]{opacity:1}.game-scale-root:not(.solo-two) .opponent-rack.rack-wood{box-shadow:0 2px 6px var(--brand-shadow);border-radius:8px;padding:4px 6px}.game-scale-root:not(.solo-two) .opponent-rack.rack-wood [data-opponent-identity] span{color:var(--brand-ivory)}.game-scale-root:not(.solo-two) .opponent-rack.rack-wood [data-opponent-identity] span:first-child{background:color-mix(in oklab, var(--brand-ivory) 18%, transparent);color:var(--brand-ivory)}.game-scale-root:not(.solo-two) .opponent-rack[data-active=true]{outline:2px solid var(--brand-gold);outline-offset:3px;box-shadow:0 0 0 6px color-mix(in oklab, var(--brand-gold) 28%, transparent), 0 0 18px color-mix(in oklab, var(--brand-gold) 55%, transparent);animation:1.8s ease-in-out infinite main-turn-pulse}@keyframes main-turn-pulse{50%{box-shadow:0 0 0 4px color-mix(in oklab, var(--brand-gold) 18%, transparent), 0 0 10px color-mix(in oklab, var(--brand-gold) 35%, transparent)}}@media (prefers-reduced-motion:reduce){.game-scale-root:not(.solo-two) .opponent-rack[data-active=true]{animation:none}}[data-main-pin] [data-fill=real]{filter:saturate(1.5)}[data-main-pin] [data-fill=empty]{opacity:.18}html:is(.theme-harbor,.theme-walnut,.theme-dragon,.theme-deco) .game-scale-root:not(.solo-two) .charleston-selection-count{color:var(--brand-ivory)}.game-scale-root:not(.solo-two) [data-discard-board]:has(>.playmat-field){background:var(--table-paper)}.game-scale-root:not(.solo-two) [data-discard-board] .playmat-field{border-radius:inherit;flex:auto;min-height:0;overflow:hidden}.game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{content:"";background:var(--playmat-art) center / 100% 100% no-repeat;z-index:-1;pointer-events:none;position:absolute;inset:0}html.theme-cherry{--table-paper:var(--mat-cherry-paper);--table-pond:var(--mat-cherry-pond);--table-ink:var(--mat-cherry-ink)}@media (width>=761px){.rose-play-hero-copy{width:auto;max-width:60%}.rose-hero-line{white-space:nowrap}}.claim-call-btn,.game-scale-root:not(.solo-two) [data-controlbar] button.claim-call-btn,.game-scale-root:not(.solo-two) button.claim-call-btn{background:linear-gradient(180deg, var(--brand-ivory), color-mix(in oklab, var(--brand-ivory) 82%, var(--brand-pink)));color:var(--table-ink,var(--brand-evergreen));border:2px solid var(--brand-pink);box-shadow:0 3px 0 color-mix(in oklab, var(--brand-pink) 70%, black), 0 6px 14px #00000059;border-radius:9999px;transition:transform .12s,box-shadow .12s,filter .12s}.claim-call-btn:hover{filter:brightness(1.05)}.claim-call-btn:active{box-shadow:0 1px 0 color-mix(in oklab, var(--brand-pink) 70%, black), 0 2px 6px #0000004d;transform:translateY(2px)}.claim-call-btn:focus-visible{outline:3px solid var(--brand-pink);outline-offset:2px}.mahjong-minute-map-reward{text-shadow:0 1px 2px #0009;background:var(--brand-evergreen,#0b2a22)!important;border:1.5px solid var(--brand-ivory,#f8f3e8)!important;color:var(--brand-ivory,#f8f3e8)!important}.mahjong-minute-map-reward svg{filter:drop-shadow(0 1px 1px #0009);color:#f2c14e!important}.mahjong-minute-map-reward--earned{text-shadow:none;background:var(--brand-ivory,#f8f3e8)!important;border-color:var(--brand-evergreen,#0b2a22)!important;color:var(--brand-evergreen,#0b2a22)!important}.mahjong-minute-map-reward--earned svg{filter:none;color:#8a5a00!important}.game-scale-root:not(.solo-two) .charleston-stage-panel{box-shadow:none!important;background:0 0!important;border-color:#0000!important;padding-block:.25rem!important;padding-inline:.25rem!important}.game-scale-root:not(.solo-two) .charleston-stage-panel .charleston-eyebrow,.game-scale-root:not(.solo-two) .charleston-stage-panel .charleston-step-label,.game-scale-root:not(.solo-two) .charleston-stepper-diamond:not([data-active=true]):not([data-complete=true]) .charleston-step-letter{color:var(--brand-ivory)}.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-complete=true] .charleston-step-letter,.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-active=true] .charleston-step-letter{text-shadow:none}.game-scale-root:not(.solo-two) .charleston-stepper-diamond:not([data-active=true]){background:var(--brand-evergreen);border-color:var(--brand-ivory)}.game-scale-root:not(.solo-two) .charleston-instruction{border-radius:9999px;background:#0000008c!important;padding-block:.35rem!important}.game-scale-root:not(.solo-two) .charleston-instruction-copy,.game-scale-root:not(.solo-two) .charleston-instruction>svg,.game-scale-root:not(.solo-two) .charleston-pass-count span{color:var(--brand-ivory)!important}.game-scale-root:not(.solo-two) .charleston-action-bar .charleston-sort-button,.game-scale-root:not(.solo-two) .charleston-action-bar button:disabled,.game-scale-root:not(.solo-two) .charleston-action-bar button.bg-rose-gold:disabled{color:#fff!important}.game-scale-root:not(.solo-two) .charleston-action-bar button:disabled{opacity:1!important}.rose-loading{background:var(--brand-evergreen,#0b2a22);border:1.5px solid var(--brand-ivory,#f8f3e8);color:var(--brand-ivory,#f8f3e8);border-radius:9999px;align-items:center;gap:.6rem;padding:.6rem 1.1rem;font-size:.95rem;font-weight:600;display:inline-flex;box-shadow:0 4px 14px #00000059}.rose-spinner{border:3px solid color-mix(in oklab, var(--brand-ivory,#f8f3e8) 30%, transparent);border-top-color:var(--brand-ivory,#f8f3e8);border-radius:9999px;width:1.4rem;height:1.4rem;animation:.9s linear infinite rose-spin}.rose-spinner-icon{width:1.4rem;height:1.4rem;animation:.9s linear infinite rose-spin}@media (prefers-reduced-motion:reduce){.rose-spinner,.rose-spinner-icon{animation-duration:2.4s}}@keyframes rose-spin{to{transform:rotate(360deg)}}.game-scale-root:not(.solo-two) .charleston-stage-panel :is(h2,p,span,.charleston-step-label,.charleston-step-letter){text-shadow:none!important}.game-scale-root:not(.solo-two) .charleston-stage-panel :is(.charleston-headline,.charleston-pass-count,.charleston-pass-count span,.charleston-eyebrow,.charleston-step-label,.charleston-instruction-copy),.game-scale-root:not(.solo-two) .charleston-stage-panel .charleston-instruction>svg{color:var(--table-text)!important}.game-scale-root:not(.solo-two) .charleston-instruction{border-radius:0;border-left:3px solid var(--table-text)!important;background:0 0!important}.game-scale-root:not(.solo-two) .charleston-stepper-rail{background:color-mix(in oklab, var(--table-ink) 30%, transparent);box-shadow:none}.game-scale-root:not(.solo-two) .charleston-stepper-diamond:not([data-active=true]):not([data-complete=true]){background:var(--table-paper,transparent);border-color:var(--table-ink)}.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-active=true]{background:var(--table-ink);box-shadow:0 0 0 2px var(--brand-pink)}.game-scale-root:not(.solo-two) .charleston-instruction span,.game-scale-root:not(.solo-two) .charleston-action-bar span.inline-flex{background:var(--brand-evergreen)!important;color:var(--brand-ivory)!important;box-shadow:0 0 0 1px var(--brand-ivory)!important}.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-complete=true]{background:var(--brand-evergreen)!important;border:1.5px solid var(--brand-ivory)!important;box-shadow:none!important}.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-complete=true] .charleston-step-letter{color:var(--brand-ivory)!important}.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-active=true]{background:var(--brand-ivory)!important;border:2px solid var(--brand-evergreen)!important;box-shadow:0 0 0 2px var(--brand-ivory)!important}.game-scale-root:not(.solo-two) .charleston-stepper-diamond[data-active=true] .charleston-step-letter{color:var(--brand-evergreen)!important}.game-scale-root:not(.solo-two) .charleston-stepper-diamond:not([data-active=true]):not([data-complete=true]){background:var(--brand-ivory)!important;border:1.5px solid var(--brand-evergreen)!important}.game-scale-root:not(.solo-two) .charleston-stepper-diamond:not([data-active=true]):not([data-complete=true]) .charleston-step-letter{color:var(--brand-evergreen)!important}.game-scale-root:not(.solo-two) .charleston-stepper-rail{background:var(--brand-evergreen)!important;height:6px!important;box-shadow:0 0 0 1.5px var(--brand-ivory)!important}.game-scale-root:not(.solo-two) .charleston-stepper-rail>div{background:var(--brand-pink)!important;box-shadow:none!important}:root,html{--table-text:var(--table-ink)}html.theme-harbor,html.theme-walnut,html.theme-dragon,html.theme-deco{--table-text:var(--brand-ivory)}.main-tile-face .hp-tile.hp-tile-dark{box-shadow:inset 0 1px 1px oklch(42% .005 260), 0 1px 0 var(--hp-tile-backing,#3a3a3a), 0 2px 0 var(--hp-tile-backing,#3a3a3a), 0 3px 5px oklab(0% none none/.4);background:linear-gradient(160deg,oklch(32% .005 260),oklch(23% .004 260) 65%,oklch(18% .003 260));border-color:oklch(36% .005 260)}@media (width<=767px),(height<=519px){.game-scale-root:not(.solo-two) .playmat-field:before,.game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:var(--playmat-art) top center / cover no-repeat;opacity:.9;-webkit-mask-image:linear-gradient(#000 0% 55%,#0000 100%);mask-image:linear-gradient(#000 0% 55%,#0000 100%)}}html.theme-dragon .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-dragon .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-dragon-ink) 55%, transparent) 100%), url(/assets/playmat-dragon-lg-DtHqSJmR.webp) center / cover no-repeat, var(--mat-dragon-paper);image-rendering:auto;box-shadow:inset 0 0 24px oklab(0% none none/.45)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-dragon .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-dragon .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-dragon-ink) 55%, transparent) 100%), url(/assets/playmat-dragon-md-oUCGsH5u.webp) top center / cover no-repeat, var(--mat-dragon-paper)}}@media (width<=767px),(height<=519px){html.theme-dragon .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-dragon .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:url(/assets/playmat-dragon-sm-BIybSvnW.webp) top center / cover no-repeat, var(--mat-dragon-paper);box-shadow:none;opacity:1;-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}html.theme-porcelain .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-porcelain .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-porcelain-ink,black) 40%, transparent) 100%), url(/assets/playmat-porcelain-lg-BBwvcKPE.webp) center / cover no-repeat, var(--mat-porcelain-paper);box-shadow:inset 0 0 24px oklab(0% none none/.35)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-porcelain .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-porcelain .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-porcelain-ink,black) 40%, transparent) 100%), url(/assets/playmat-porcelain-md-DGtKvtMH.webp) top center / cover no-repeat, var(--mat-porcelain-paper)}}@media (width<=767px),(height<=519px){html.theme-porcelain .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-porcelain .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:url(/assets/playmat-porcelain-sm-DMcFkUf4.webp) top center / cover no-repeat, var(--mat-porcelain-paper);box-shadow:none;opacity:1;-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}html.theme-koi .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-koi .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-koi-ink,black) 40%, transparent) 100%), url(/assets/playmat-koi-lg-D_2PfKgU.webp) center / cover no-repeat, var(--mat-koi-paper);box-shadow:inset 0 0 24px oklab(0% none none/.35)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-koi .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-koi .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-koi-ink,black) 40%, transparent) 100%), url(/assets/playmat-koi-md-bQg3kSMs.webp) top center / cover no-repeat, var(--mat-koi-paper)}}@media (width<=767px),(height<=519px){html.theme-koi .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-koi .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:url(/assets/playmat-koi-sm-YoEHtBiQ.webp) top center / cover no-repeat, var(--mat-koi-paper);box-shadow:none;opacity:1;-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}html.theme-lily .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-lily .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-lily-ink,black) 40%, transparent) 100%), url(/assets/playmat-lily-lg-1s_k37Hv.webp) center / cover no-repeat, var(--mat-lily-paper);box-shadow:inset 0 0 24px oklab(0% none none/.35)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-lily .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-lily .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-lily-ink,black) 40%, transparent) 100%), url(/assets/playmat-lily-md-DxO4B8a-.webp) top center / cover no-repeat, var(--mat-lily-paper)}}@media (width<=767px),(height<=519px){html.theme-lily .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-lily .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:url(/assets/playmat-lily-sm-D_rdncNJ.webp) top center / cover no-repeat, var(--mat-lily-paper);box-shadow:none;opacity:1;-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}html.theme-cherry .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-cherry .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-cherry-ink,black) 40%, transparent) 100%), url(/assets/playmat-cherry-lg-CRCNjnX6.webp) center / cover no-repeat, var(--mat-cherry-paper);box-shadow:inset 0 0 24px oklab(0% none none/.35)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-cherry .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-cherry .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-cherry-ink,black) 40%, transparent) 100%), url(/assets/playmat-cherry-md-vb75LSzA.webp) top center / cover no-repeat, var(--mat-cherry-paper)}}@media (width<=767px),(height<=519px){html.theme-cherry .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-cherry .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:url(/assets/playmat-cherry-sm-Cx96dORp.webp) top center / cover no-repeat, var(--mat-cherry-paper);box-shadow:none;opacity:1;-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}html.theme-harbor .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-harbor .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-harbor-ink,black) 40%, transparent) 100%), url(/assets/playmat-harbor-lg-CT3dE9a4.webp) center / cover no-repeat, var(--mat-harbor-paper);box-shadow:inset 0 0 24px oklab(0% none none/.35)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-harbor .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-harbor .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-harbor-ink,black) 40%, transparent) 100%), url(/assets/playmat-harbor-md-BtW8Subq.webp) top center / cover no-repeat, var(--mat-harbor-paper)}}@media (width<=767px),(height<=519px){html.theme-harbor .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-harbor .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:url(/assets/playmat-harbor-sm-BDTCWv4V.webp) top center / cover no-repeat, var(--mat-harbor-paper);box-shadow:none;opacity:1;-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}html.theme-walnut .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-walnut .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-walnut-ink,black) 40%, transparent) 100%), url(/assets/playmat-walnut-lg-JkdK4RDQ.webp) center / cover no-repeat, var(--mat-walnut-paper);box-shadow:inset 0 0 24px oklab(0% none none/.35)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-walnut .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-walnut .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(ellipse at center, transparent 55%, color-mix(in oklab, var(--mat-walnut-ink,black) 40%, transparent) 100%), url(/assets/playmat-walnut-md-Bm9h9Pfz.webp) top center / cover no-repeat, var(--mat-walnut-paper)}}@media (width<=767px),(height<=519px){html.theme-walnut .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-walnut .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:url(/assets/playmat-walnut-sm-BCWvJ8hI.webp) top center / cover no-repeat, var(--mat-walnut-paper);box-shadow:none;opacity:1;-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}html.theme-deco .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-deco .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(#0000 60%,oklab(0% none none/.35) 100%),url(/assets/playmat-deco-lg-dX1myxbS.webp) 50%/cover no-repeat,oklch(22% .006 70);box-shadow:inset 0 0 24px oklab(0% none none/.45)}@media (width<=1279px) and (width>=768px) and (height>=520px){html.theme-deco .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-deco .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{background:radial-gradient(#0000 60%,oklab(0% none none/.35) 100%),url(/assets/playmat-deco-md-BonA_e6I.webp) top/cover no-repeat,oklch(22% .006 70)}}@media (width<=767px),(height<=519px){html.theme-deco .game-scale-root:not(.solo-two) .playmat-field:before,html.theme-deco .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{box-shadow:none;opacity:1;background:url(/assets/playmat-deco-sm-DgSrXRAg.webp) top/cover no-repeat,oklch(22% .006 70);-webkit-mask-image:linear-gradient(#000 0% 60%,#0000 100%);mask-image:linear-gradient(#000 0% 60%,#0000 100%)}}@media (width>=768px) and (height>=520px){html[class*=theme-] .game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before,html[class*=theme-] .game-scale-root:not(.solo-two) .playmat-field:before{-webkit-mask-image:linear-gradient(#000 0% 65%,#0000 100%);mask-image:linear-gradient(#000 0% 65%,#0000 100%);background-position:top!important;background-size:100%!important}}.game-scale-root:not(.solo-two) .charleston-mat:after{content:"";z-index:-1;pointer-events:none;background:color-mix(in oklab, var(--table-pond,var(--table-ink)) 30%, transparent);position:absolute;inset:0}html[class*=theme-] .game-scale-root:not(.solo-two) .charleston-mat:before,html[class*=theme-] .game-scale-root:not(.solo-two) .charleston-mat:after{box-shadow:none!important;background-position:top!important;background-size:100%!important;border-radius:0!important;position:fixed!important;inset:0!important;-webkit-mask-image:linear-gradient(#000 0% 50%,#0000 92%)!important;mask-image:linear-gradient(#000 0% 50%,#0000 92%)!important}html[class*=theme-] .game-scale-root:not(.solo-two) .charleston-mat:before{opacity:.45!important}html[class*=theme-] .game-scale-root:not(.solo-two) .charleston-mat:after{background:color-mix(in oklab, var(--table-pond,var(--table-ink)) 45%, transparent)!important}.game-scale-root:not(.solo-two) .playmat-field:before,.game-scale-root:not(.solo-two) [data-discard-board] .playmat-field:before{backface-visibility:hidden;will-change:transform;transform:translateZ(0)}
