:root{color:#292929;font-synthesis:none;text-rendering:optimizelegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;background:#faf9f6;font-family:system-ui,sans-serif}*{box-sizing:border-box}body{min-width:320px;min-height:100dvh;margin:0}#root{place-items:center;min-height:100dvh;display:grid}.mobile-interaction{width:100vw;height:100dvh;padding:max(6px, env(safe-area-inset-top,0px)) max(6px, env(safe-area-inset-right,0px)) calc(6px + var(--gameplay-bottom-clearance,12px) + env(safe-area-inset-bottom,0px)) max(6px, env(safe-area-inset-left,0px));grid-template-rows:22px minmax(100px,1fr) auto auto;grid-template-columns:minmax(0,1fr) 160px;gap:4px;display:grid;overflow:hidden}.mobile-interaction[data-gated=true]{visibility:hidden;pointer-events:none}.viewport-gate{z-index:20;background:#faf9f6;place-items:center;padding:24px;display:grid;position:fixed;inset:0}.mobile-interaction header{grid-column:1/-1;align-items:center;gap:12px;font-size:12px;display:flex}.mobile-interaction h2{margin:0;font-size:12px}.public-table{touch-action:none;overscroll-behavior:contain;flex-direction:column;grid-area:2/1;min-width:0;min-height:0;display:flex;overflow:clip}.fit-view{z-index:5;touch-action:none;background:#fff;border:1px solid #777;border-radius:5px;flex:none;align-self:flex-end;width:28px;height:28px;padding:0;font-size:24px;line-height:24px;position:sticky;top:0;left:calc(100% - 30px)}.table-heading{pointer-events:none;opacity:0;position:absolute}.table-region{flex:1;justify-content:center;align-items:center;width:100%;min-height:0;display:flex;container-type:size}.table-viewport{min-width:0;min-height:0;width:min(100cqw, calc(100cqh * var(--table-ratio)));aspect-ratio:var(--table-ratio);flex:none;overflow:clip}.table-content{background:#f1efe9;position:relative;box-shadow:inset 0 0 0 1px #777}.tile-row{align-items:center;width:max-content;min-height:64px;display:flex}.tile-space{flex:0 0 44px;width:44px}.mobile-tile{touch-action:none;-webkit-user-select:none;user-select:none;width:44px;height:64px;position:relative}.remote-tile-ghost{touch-action:none;pointer-events:none!important}.mobile-tile.remote-moved{box-shadow:0 0 0 2px #5f91e6a6}.mobile-tile.remote-revealed{box-shadow:0 0 0 3px #ebae36e6,0 0 12px #ebae3673}@media (prefers-reduced-motion:reduce){.remote-tile-ghost{display:none}}.tile-face{text-align:center;pointer-events:none;background:#f6f1e7;border:1px solid #c4bbaa;border-radius:4px;justify-content:center;align-items:center;height:100%;display:flex;overflow:hidden;box-shadow:inset 0 1px #fffcf5,0 1px 2px #4035221a;container-type:inline-size}.tile-number{font-variant-numeric:tabular-nums;letter-spacing:-.04em;font-size:clamp(20px,85cqw,38px);font-weight:750;line-height:1}.tile-icon{flex:none;width:88%;height:auto;max-height:88%;display:block}.tile-pearl{aspect-ratio:1;background:radial-gradient(circle at 33% 28%,#fffefa 0%,#faf5e8 28%,#e4d9c2 64%,#bdae92 100%);border:1px solid #c6b898;border-radius:50%;flex:none;width:76%;display:block;position:relative;box-shadow:inset 1px 1px 2px #fffdf2cc,inset -1px -2px 3px #a99b7933,0 0 4px #fff8dc99,0 2px 3px #81745326}.tile-pearl:before{content:"";opacity:.8;background:#fffefa;border-radius:50%;width:25%;height:13%;position:absolute;top:18%;left:22%;transform:rotate(-35deg)}.tile-space[data-source=true]{opacity:.25}.insertion-slot{color:#555;flex:0 0 24px;place-items:center;width:24px;height:64px;display:grid;position:relative}.insertion-slot span{border-left:1px dashed #777}.insertion-slot[data-preview=true]{background:#e5e5e5;border:2px dashed #333;flex-basis:52px;width:52px}.fixture-meld,.temp-group{padding:calc(var(--table-padding) - 1px);height:var(--meld-height);touch-action:none;border:1px solid #777;outline:none;position:absolute}.fixture-meld[data-valid=false],.temp-group:not([data-feedback=legal]){border-style:dashed}.fixture-meld .tile-row,.temp-group .tile-row{margin-left:var(--table-grip);min-height:var(--table-face-height)}.fixture-meld .tile-space,.temp-group .tile-space{width:var(--table-hit-width);flex-basis:var(--table-hit-width)}.fixture-meld .mobile-tile,.temp-group .mobile-tile{width:var(--table-hit-width);height:var(--table-face-height)}.fixture-meld .tile-face,.temp-group .tile-face,.whole-overlay .tile-face{width:var(--table-face-width);height:var(--table-face-height);margin-inline:auto}.fixture-meld .insertion-slot,.temp-group .insertion-slot{width:var(--table-gap);flex-basis:var(--table-gap);height:var(--table-face-height)}.fixture-meld .insertion-slot[data-preview=true],.temp-group .insertion-slot[data-preview=true]{flex-basis:10px;width:10px}.fixture-meld .insertion-slot>span{visibility:hidden}.split-hit{z-index:1;touch-action:none;width:16px;height:100%;position:absolute;top:0;left:50%;transform:translate(-50%)}.fixture-meld .insertion-slot[data-preview=true]{border-width:1px}.tile-overlay{pointer-events:none}.tile-overlay[data-table-side=true]{height:var(--table-face-height)}.tile-overlay[data-table-side=true] .tile-face{width:var(--table-face-width);height:var(--table-face-height);margin-inline:auto}.meld-label,.temp-group>small{width:var(--table-grip);height:calc(var(--meld-height) - 2px);text-align:center;touch-action:none;background:0 0;border:0;padding:0;font-size:20px;position:absolute;top:1px;left:1px}.temp-group>small{font-size:0}.temp-group>small:after{content:"⋮";font-size:20px}.fixture-meld[data-expanded=false] .tile-row:has(.tile-space:nth-child(8)) .tile-space:not(:nth-child(2)):not(:nth-last-child(2)){flex-basis:var(--folded-step);width:var(--folded-step)}.fixture-meld[data-expanded=false] .tile-row:has(.tile-space:nth-child(8)) .tile-space:not(:nth-child(2)):not(:nth-last-child(2)) .tile-face{justify-content:flex-start}.fixture-meld[data-expanded=false] .tile-row:has(.tile-space:nth-child(8)) .tile-space:not(:nth-child(2)):not(:nth-last-child(2)) .tile-face>*{width:calc(var(--folded-step) - 2px)}.fixture-meld[data-expanded=false] .tile-row:has(.tile-space:nth-child(8)) .tile-space:not(:nth-child(2)):not(:nth-last-child(2)) .tile-number{font-size:clamp(14px, calc(var(--folded-step) * .9), 22px)}.fixture-meld[data-expanded=false] .tile-row:has(.tile-space:nth-child(8)) .insertion-slot:not(:first-child):not(:last-child){flex-basis:0;width:0;overflow:hidden}.temp-workspace{grid-area:3/1;align-items:center;gap:4px;min-width:0;display:flex}.temp-workspace>small{max-width:48px;font-size:10px}.temp-scroll{touch-action:pan-x;overscroll-behavior:contain;align-items:flex-start;width:100%;min-width:0;display:flex;overflow-x:auto}.temp-group{flex:none;margin-right:8px;position:relative}.temp-world{flex:none;position:relative}.temp-world .temp-group{margin-right:0;position:absolute}.temp-world .new-temp-pile{width:44px;height:var(--meld-height);position:absolute}.new-temp-pile{border:1px dashed #888;flex-direction:column;flex:0 0 44px;justify-content:center;align-self:stretch;align-items:center;display:flex}.new-temp-pile small{display:none}.new-temp-pile .insertion-slot{flex:0 0 var(--table-face-height);width:44px;position:relative}.temp-workspace[data-empty=true][data-production=false] .temp-scroll{width:44px}.temp-workspace[data-empty=true] .new-temp-pile .insertion-slot{flex-basis:24px;height:24px}.private-hand{grid-area:4/1;grid-template-columns:110px minmax(0,1fr);min-width:0;display:grid;overflow:hidden}.private-hand h2{display:none}.hand-scroll{touch-action:pan-x;overscroll-behavior:contain;max-width:100%;overflow:auto hidden}.hand-actions{flex-direction:column;display:flex}.hand-actions button{min-height:32px;font-size:11px}.mobile-interaction footer{grid-area:2/2/5;min-width:0;overflow:auto}.mobile-interaction footer p{margin:3px 0;font-size:10px}.mobile-interaction footer button{min-height:32px;font-size:12px}.mobile-interaction footer label,.mobile-interaction footer a{font-size:11px}.touch-trace{font-size:10px}.touch-trace pre{white-space:pre-wrap;overflow-wrap:anywhere;max-height:100px;overflow:auto}.mobile-tile[data-unresolved=true] .tile-face{border-style:dashed}.unresolved-label{text-align:center;background:#fff;font-size:10px;position:absolute;bottom:0;left:0;right:0}.whole-overlay{pointer-events:none;background:#fafafae8;border:1px dashed #555;padding:0;position:relative}.whole-overlay-label{display:none}.merge-preview,.placement-preview{z-index:3;pointer-events:none;background:#fffa;border:2px dashed #333;font-size:12px;position:absolute}.segment-preview{z-index:6;pointer-events:none;background:#ffffffda;border:2px dashed #205d8a;border-radius:4px;align-items:center;gap:3px;padding:3px;font-size:18px;display:flex;position:fixed}.segment-preview .tile-face{width:var(--table-face-width,38px);height:var(--table-face-height,56px);flex:none}.public-table[data-urgent=true]{animation:1.2s ease-in-out infinite turn-urgency}@keyframes turn-urgency{0%,to{box-shadow:inset 0 0 0 2px #b77c30}50%{box-shadow:inset 0 0 0 2px #e9b66b}}.turn-notice{z-index:20;pointer-events:none;text-align:center;color:#fff;text-shadow:0 1px 4px #000;font-size:2rem;font-weight:700;position:fixed;inset:40% 0 auto}.timeout-notice{inset:48% 0 auto}@media (prefers-reduced-motion:reduce){.public-table[data-urgent=true]{animation:none;box-shadow:inset 0 0 0 2px #b77c30}}.timing-fixture-controls{z-index:25;background:#fff;border:1px solid #777;width:148px;padding:4px;font-size:11px;position:fixed;top:28px;right:6px}.timing-fixture-controls p{margin:0 0 4px}.timing-fixture-controls button{width:100%;min-height:28px;font-size:11px}.mobile-interaction button:disabled{opacity:.45;cursor:default}.turn-action-error{color:#44251a;background:#fff0df;border:1px solid #c65f37;padding:8px}.turn-action-error button{margin-left:8px}.mobile-interaction [data-action-error-target]{outline-offset:2px;outline:3px solid #c65f37}.mobile-interaction footer .game-result{pointer-events:none;z-index:1;background:#faf9f6;font-size:1.25rem;position:sticky;top:0}.acceptance{overflow-wrap:anywhere;width:min(100%,900px);padding:1rem}.acceptance h1{font-size:1.5rem}.acceptance label{margin:1rem 0;display:block}.acceptance input{width:100%;font:inherit;padding:.65rem;display:block}.controls{flex-wrap:wrap;gap:.5rem;display:flex}.acceptance button{min-height:44px;font:inherit;padding:.5rem .8rem}.acceptance pre{white-space:pre-wrap;overflow-wrap:anywhere;background:#eee;padding:1rem}.product-shell{width:100vw;height:100dvh;position:relative}.product-table{width:100%;height:100%}.product-table [data-move-diagnostics],.product-table [data-success]{display:none}.shell-table-world{aspect-ratio:2.4;background:#f1efe9;border:1px dashed #aaa;width:min(100%,240cqh)}.product-overlay{z-index:30;background:#faf9f640;place-items:center;padding:12px;display:grid;position:fixed;inset:0}.product-lobby{background:#faf9f6;border:1px solid #777;border-radius:8px;width:min(480px,100%);max-height:calc(100dvh - 24px);padding:16px;overflow:auto;box-shadow:0 4px 18px #0002}.product-lobby h1{margin:0 0 12px;font-size:22px}.product-lobby p{margin:10px 0}.product-lobby button,.product-lobby input{min-height:44px;font:inherit;padding:8px 12px}.product-lobby button{cursor:pointer}.product-lobby button:disabled{cursor:default}.product-lobby label{gap:4px;display:grid}.product-lobby input{width:100%;min-width:0}.product-lobby input[readonly]{letter-spacing:.15em;font-size:24px}.product-lobby form{grid-template-columns:minmax(0,1fr) auto;align-items:end;gap:8px;margin-top:12px;display:grid}.lobby-actions{gap:8px;margin-top:8px;display:flex}.lobby-recovery{margin-bottom:12px}.product-lobby [role=alert]{color:#8a2424}.product-lobby textarea{width:100%;min-height:80px;font:inherit}.account-toggle{z-index:31;overflow-wrap:anywhere;max-width:45vw;min-height:44px;font:inherit;padding:8px 12px;position:fixed;top:12px;right:12px}.account-controls .product-overlay{z-index:32}.active-leave{z-index:29;min-height:44px;font:inherit;padding:8px 12px;position:fixed;top:12px;right:12px}.active-leave-error{z-index:29;color:#8a2424;background:#faf9f6;max-width:320px;padding:8px;position:fixed;top:60px;right:12px}.active-leave-error button{min-height:44px;font:inherit;padding:8px 12px}dialog.product-lobby::backdrop{background:#faf9f640}.auth-panel form{grid-template-columns:minmax(0,1fr) auto}.opponent-presence{z-index:29;color:#4b453d;pointer-events:none;background:#faf9f6;border:1px solid #cec8bd;border-radius:8px;max-width:min(400px,100vw - 24px);margin:0;padding:8px 12px;font-size:14px;position:fixed;top:64px;left:12px}
